@corp-products/app-core 1.0.0 → 1.0.2
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/esm2022/corp-products-app-core.mjs +5 -0
- package/esm2022/index.mjs +10 -0
- package/esm2022/lib/core/components/app-breadcrumb/app-breadcrumb.component.mjs +105 -0
- package/esm2022/lib/core/components/app-breadcrumb/app-breadcrumb.interface.mjs +2 -0
- package/esm2022/lib/core/components/app-header/app-header.component.mjs +51 -0
- package/esm2022/lib/core/components/app-side-menu/app-side-menu.component.mjs +31 -0
- package/esm2022/lib/core/components/app-side-menu/routes-names.mjs +27 -0
- package/esm2022/lib/core/components/app-side-menu/side-menu-items.mjs +44 -0
- package/esm2022/lib/core/components/app-side-menu/side-menu.mjs +2 -0
- package/esm2022/lib/core/components/global-loader/global-loader.component.mjs +20 -0
- package/esm2022/lib/core/components/index.mjs +5 -0
- package/esm2022/lib/core/core-config.mjs +3 -0
- package/esm2022/lib/core/directives/index.mjs +2 -0
- package/esm2022/lib/core/directives/permissions.directive.mjs +99 -0
- package/esm2022/lib/core/enums/index.mjs +2 -0
- package/esm2022/lib/core/enums/user-permissions.enum.mjs +38 -0
- package/esm2022/lib/core/guards/auth.guard.mjs +14 -0
- package/esm2022/lib/core/guards/index.mjs +3 -0
- package/esm2022/lib/core/guards/permissions.guard.mjs +16 -0
- package/esm2022/lib/core/handlers/http-context-handler.mjs +8 -0
- package/esm2022/lib/core/handlers/storage-handler.mjs +33 -0
- package/esm2022/lib/core/handlers/stortage.mjs +9 -0
- package/esm2022/lib/core/interceptors/app-http-config.mjs +9 -0
- package/esm2022/lib/core/interceptors/base-http.interceptor.mjs +46 -0
- package/esm2022/lib/core/interceptors/global-http-error.interceptor.mjs +17 -0
- package/esm2022/lib/core/interceptors/index.mjs +4 -0
- package/esm2022/lib/core/interfaces/index.mjs +4 -0
- package/esm2022/lib/core/interfaces/jwt-token-decoded.interface.mjs +2 -0
- package/esm2022/lib/core/interfaces/list-response.interface.mjs +2 -0
- package/esm2022/lib/core/interfaces/router-data.interface.mjs +2 -0
- package/esm2022/lib/core/interfaces/user-info.interface.mjs +2 -0
- package/esm2022/lib/core/interfaces/user-profile-data.mjs +2 -0
- package/esm2022/lib/core/services/auth.service.mjs +64 -0
- package/esm2022/lib/core/services/base-http-service/base-http-response.mjs +2 -0
- package/esm2022/lib/core/services/base-http-service/base-http-types.mjs +2 -0
- package/esm2022/lib/core/services/base-http-service/base-http-utils.mjs +32 -0
- package/esm2022/lib/core/services/base-http-service/base-http.service.mjs +79 -0
- package/esm2022/lib/core/services/base-http-service/index.mjs +5 -0
- package/esm2022/lib/core/services/base-pagination-service/base-pagination.service.mjs +49 -0
- package/esm2022/lib/core/services/base-pagination-service/index.mjs +4 -0
- package/esm2022/lib/core/services/base-pagination-service/list-options.interface.mjs +2 -0
- package/esm2022/lib/core/services/base-pagination-service/pagination.mjs +8 -0
- package/esm2022/lib/core/services/error-handler.service.mjs +76 -0
- package/esm2022/lib/core/services/index.mjs +9 -0
- package/esm2022/lib/core/services/jwt-decoder.service.mjs +25 -0
- package/esm2022/lib/core/services/loader.service.mjs +33 -0
- package/esm2022/lib/core/services/lov.service.mjs +26 -0
- package/esm2022/lib/core/services/permissions.service.mjs +64 -0
- package/esm2022/lib/core/services/toaster.service.mjs +67 -0
- package/fesm2022/corp-products-app-core.mjs +1024 -0
- package/fesm2022/corp-products-app-core.mjs.map +1 -0
- package/{src/index.ts → index.d.ts} +9 -9
- package/lib/core/components/app-breadcrumb/app-breadcrumb.component.d.ts +18 -0
- package/lib/core/components/app-breadcrumb/app-breadcrumb.interface.d.ts +12 -0
- package/lib/core/components/app-header/app-header.component.d.ts +19 -0
- package/lib/core/components/app-side-menu/app-side-menu.component.d.ts +13 -0
- package/lib/core/components/app-side-menu/routes-names.d.ts +2 -0
- package/lib/core/components/app-side-menu/side-menu-items.d.ts +2 -0
- package/lib/core/components/app-side-menu/side-menu.d.ts +11 -0
- package/lib/core/components/global-loader/global-loader.component.d.ts +9 -0
- package/{src/lib/core/components/index.ts → lib/core/components/index.d.ts} +4 -4
- package/lib/core/core-config.d.ts +9 -0
- package/{src/lib/core/directives/index.ts → lib/core/directives/index.d.ts} +1 -1
- package/lib/core/directives/permissions.directive.d.ts +31 -0
- package/{src/lib/core/enums/index.ts → lib/core/enums/index.d.ts} +1 -1
- package/lib/core/enums/user-permissions.enum.d.ts +35 -0
- package/lib/core/guards/auth.guard.d.ts +2 -0
- package/{src/lib/core/guards/index.ts → lib/core/guards/index.d.ts} +2 -2
- package/lib/core/guards/permissions.guard.d.ts +2 -0
- package/lib/core/handlers/http-context-handler.d.ts +5 -0
- package/lib/core/handlers/storage-handler.d.ts +16 -0
- package/lib/core/handlers/stortage.d.ts +7 -0
- package/lib/core/interceptors/app-http-config.d.ts +8 -0
- package/lib/core/interceptors/base-http.interceptor.d.ts +15 -0
- package/lib/core/interceptors/global-http-error.interceptor.d.ts +6 -0
- package/{src/lib/core/interceptors/index.ts → lib/core/interceptors/index.d.ts} +3 -3
- package/lib/core/interfaces/index.d.ts +3 -0
- package/{src/lib/core/interfaces/jwt-token-decoded.interface.ts → lib/core/interfaces/jwt-token-decoded.interface.d.ts} +7 -7
- package/lib/core/interfaces/list-response.interface.d.ts +5 -0
- package/lib/core/interfaces/router-data.interface.d.ts +17 -0
- package/lib/core/interfaces/user-info.interface.d.ts +4 -0
- package/lib/core/interfaces/user-profile-data.d.ts +16 -0
- package/lib/core/services/auth.service.d.ts +19 -0
- package/lib/core/services/base-http-service/base-http-response.d.ts +14 -0
- package/lib/core/services/base-http-service/base-http-types.d.ts +37 -0
- package/lib/core/services/base-http-service/base-http-utils.d.ts +6 -0
- package/lib/core/services/base-http-service/base-http.service.d.ts +22 -0
- package/{src/lib/core/services/base-http-service/index.ts → lib/core/services/base-http-service/index.d.ts} +4 -4
- package/lib/core/services/base-pagination-service/base-pagination.service.d.ts +21 -0
- package/{src/lib/core/services/base-pagination-service/index.ts → lib/core/services/base-pagination-service/index.d.ts} +3 -3
- package/lib/core/services/base-pagination-service/list-options.interface.d.ts +8 -0
- package/lib/core/services/base-pagination-service/pagination.d.ts +6 -0
- package/lib/core/services/error-handler.service.d.ts +12 -0
- package/{src/lib/core/services/index.ts → lib/core/services/index.d.ts} +8 -8
- package/lib/core/services/jwt-decoder.service.d.ts +11 -0
- package/lib/core/services/loader.service.d.ts +13 -0
- package/lib/core/services/lov.service.d.ts +9 -0
- package/lib/core/services/permissions.service.d.ts +20 -0
- package/lib/core/services/toaster.service.d.ts +15 -0
- package/package.json +36 -20
- package/eslint.config.js +0 -48
- package/ng-package.json +0 -7
- package/project.json +0 -29
- package/src/lib/core/components/app-breadcrumb/app-breadcrumb.component.html +0 -7
- package/src/lib/core/components/app-breadcrumb/app-breadcrumb.component.scss +0 -8
- package/src/lib/core/components/app-breadcrumb/app-breadcrumb.component.ts +0 -125
- package/src/lib/core/components/app-breadcrumb/app-breadcrumb.interface.ts +0 -15
- package/src/lib/core/components/app-header/app-header.component.html +0 -26
- package/src/lib/core/components/app-header/app-header.component.scss +0 -0
- package/src/lib/core/components/app-header/app-header.component.ts +0 -48
- package/src/lib/core/components/app-side-menu/app-side-menu.component.html +0 -20
- package/src/lib/core/components/app-side-menu/app-side-menu.component.scss +0 -0
- package/src/lib/core/components/app-side-menu/app-side-menu.component.ts +0 -30
- package/src/lib/core/components/app-side-menu/routes-names.ts +0 -28
- package/src/lib/core/components/app-side-menu/side-menu-items.ts +0 -45
- package/src/lib/core/components/app-side-menu/side-menu.ts +0 -12
- package/src/lib/core/components/global-loader/global-loader.component.html +0 -18
- package/src/lib/core/components/global-loader/global-loader.component.scss +0 -0
- package/src/lib/core/components/global-loader/global-loader.component.spec.ts +0 -24
- package/src/lib/core/components/global-loader/global-loader.component.ts +0 -16
- package/src/lib/core/components/no-access/no-access.component.html +0 -10
- package/src/lib/core/components/no-access/no-access.component.scss +0 -0
- package/src/lib/core/components/no-access/no-access.component.ts +0 -19
- package/src/lib/core/core-config.ts +0 -11
- package/src/lib/core/directives/permissions.directive.ts +0 -114
- package/src/lib/core/enums/user-permissions.enum.ts +0 -36
- package/src/lib/core/guards/auth.guard.ts +0 -17
- package/src/lib/core/guards/permissions.guard.ts +0 -17
- package/src/lib/core/handlers/http-context-handler.ts +0 -9
- package/src/lib/core/handlers/storage-handler.ts +0 -37
- package/src/lib/core/handlers/stortage.ts +0 -7
- package/src/lib/core/interceptors/app-http-config.ts +0 -8
- package/src/lib/core/interceptors/base-http.interceptor.ts +0 -44
- package/src/lib/core/interceptors/global-http-error.interceptor.ts +0 -21
- package/src/lib/core/interfaces/index.ts +0 -3
- package/src/lib/core/interfaces/list-response.interface.ts +0 -5
- package/src/lib/core/interfaces/router-data.interface.ts +0 -20
- package/src/lib/core/interfaces/user-info.interface.ts +0 -4
- package/src/lib/core/interfaces/user-profile-data.ts +0 -19
- package/src/lib/core/services/auth.service.ts +0 -63
- package/src/lib/core/services/base-http-service/base-http-response.ts +0 -14
- package/src/lib/core/services/base-http-service/base-http-types.ts +0 -42
- package/src/lib/core/services/base-http-service/base-http-utils.ts +0 -48
- package/src/lib/core/services/base-http-service/base-http.service.ts +0 -106
- package/src/lib/core/services/base-http-service/http-context-handler.ts +0 -9
- package/src/lib/core/services/base-pagination-service/base-pagination.service.ts +0 -59
- package/src/lib/core/services/base-pagination-service/list-options.interface.ts +0 -8
- package/src/lib/core/services/base-pagination-service/pagination.ts +0 -6
- package/src/lib/core/services/enviroment.base.service.ts +0 -16
- package/src/lib/core/services/error-handler.service.ts +0 -74
- package/src/lib/core/services/jwt-decoder.service.ts +0 -23
- package/src/lib/core/services/loader.service.ts +0 -32
- package/src/lib/core/services/lov.service.ts +0 -22
- package/src/lib/core/services/permissions.service.ts +0 -66
- package/src/lib/core/services/toaster.service.ts +0 -65
- package/tsconfig.json +0 -26
- package/tsconfig.lib.json +0 -11
- package/tsconfig.lib.prod.json +0 -9
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycC1wcm9kdWN0cy1hcHAtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvY29ycC1wcm9kdWN0cy1hcHAtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./lib/core/services/base-pagination-service";
|
|
2
|
+
export * from "./lib/core/components";
|
|
3
|
+
export * from "./lib/core/services";
|
|
4
|
+
export * from "./lib/core/interfaces";
|
|
5
|
+
export * from "./lib/core/guards";
|
|
6
|
+
export * from "./lib/core/interceptors";
|
|
7
|
+
export * from "./lib/core/enums";
|
|
8
|
+
export * from "./lib/core/directives";
|
|
9
|
+
export * from "./lib/core/core-config";
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmUvc2VydmljZXMvYmFzZS1wYWdpbmF0aW9uLXNlcnZpY2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmUvY29tcG9uZW50c1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29yZS9zZXJ2aWNlc1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29yZS9pbnRlcmZhY2VzXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb3JlL2d1YXJkc1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29yZS9pbnRlcmNlcHRvcnNcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmUvZW51bXNcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcmUvZGlyZWN0aXZlc1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29yZS9jb3JlLWNvbmZpZ1wiO1xyXG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { ActivatedRoute, NavigationEnd, Router, RouterModule } from '@angular/router';
|
|
4
|
+
import { Breadcrumb } from 'primeng/breadcrumb';
|
|
5
|
+
import { filter } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
export class AppBreadcrumbComponent {
|
|
9
|
+
constructor(activatedRoute, router) {
|
|
10
|
+
this.activatedRoute = activatedRoute;
|
|
11
|
+
this.router = router;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.router.events
|
|
15
|
+
.pipe(filter(event => event instanceof NavigationEnd))
|
|
16
|
+
.subscribe((e) => {
|
|
17
|
+
// remove duplicates
|
|
18
|
+
this.items = this._createBreadcrumbs(this.activatedRoute.root).filter((item, index, self) => index === self.findIndex((t) => t.label === item.label && t.routerLink === item.routerLink));
|
|
19
|
+
this._checkHiddenBreadcrumb();
|
|
20
|
+
this._checkEmpty();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
_checkHiddenBreadcrumb() {
|
|
24
|
+
const activeBreadcrumb = this.items?.find((item) => {
|
|
25
|
+
return item.routerLink === this.router.url;
|
|
26
|
+
});
|
|
27
|
+
this.isShownBreadcrumb = !!activeBreadcrumb?.isShownBreadcrumb;
|
|
28
|
+
}
|
|
29
|
+
_createBreadcrumbs(activatedRoute, routerLink = '', breadcrumbs = []) {
|
|
30
|
+
const children = activatedRoute.children;
|
|
31
|
+
if (children.length === 0) {
|
|
32
|
+
return breadcrumbs;
|
|
33
|
+
}
|
|
34
|
+
for (const child of children) {
|
|
35
|
+
const routeURL = child.snapshot.url.map(segment => segment.path).join('/');
|
|
36
|
+
if (routeURL !== '') {
|
|
37
|
+
routerLink += `/${routeURL}`;
|
|
38
|
+
}
|
|
39
|
+
let label = child.snapshot.data["breadcrumb"];
|
|
40
|
+
const notClickableBreadcrumb = !!child.snapshot.data["notClickableBreadcrumb"];
|
|
41
|
+
const isShownBreadcrumb = !!child.snapshot.data["isShownBreadcrumb"];
|
|
42
|
+
const extraBreadcrumbs = child.snapshot.data["extraBreadcrumbs"] || [];
|
|
43
|
+
if (!(typeof label === 'undefined' || label === null)) {
|
|
44
|
+
const data = activatedRoute.snapshot.firstChild?.data || {};
|
|
45
|
+
// Resolve dynamic breadcrumb label
|
|
46
|
+
if (label && label.startsWith("[") && label.endsWith("]")) {
|
|
47
|
+
label = this._getRecursiveKey(data, label.slice(1, -1).split("."));
|
|
48
|
+
}
|
|
49
|
+
// Resolve dynamic URL parts
|
|
50
|
+
const resolveDynamicUrl = (route) => {
|
|
51
|
+
return route.replace(/\[([^\]]+)]/g, (_, key) => this._getRecursiveKey(data, key.split(".")) || '');
|
|
52
|
+
};
|
|
53
|
+
const mainBreadcrumb = { label, routerLink, data, notClickableBreadcrumb, isShownBreadcrumb };
|
|
54
|
+
// Process extra breadcrumbs
|
|
55
|
+
const beforeBreadcrumbs = [];
|
|
56
|
+
const afterBreadcrumbs = [];
|
|
57
|
+
extraBreadcrumbs.forEach(extra => {
|
|
58
|
+
let extraLabel = extra.label || '';
|
|
59
|
+
if (extraLabel.startsWith("[") && extraLabel.endsWith("]")) {
|
|
60
|
+
extraLabel = this._getRecursiveKey(data, extraLabel.slice(1, -1).split("."));
|
|
61
|
+
}
|
|
62
|
+
const extraUrl = resolveDynamicUrl(extra.routerLink || '');
|
|
63
|
+
const extraBreadcrumb = { ...extra, label: extraLabel, routerLink: extraUrl };
|
|
64
|
+
if (extra.position === "before") {
|
|
65
|
+
beforeBreadcrumbs.push(extraBreadcrumb);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
afterBreadcrumbs.push(extraBreadcrumb);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
// Merge breadcrumbs
|
|
72
|
+
breadcrumbs.push(...beforeBreadcrumbs, mainBreadcrumb, ...afterBreadcrumbs);
|
|
73
|
+
}
|
|
74
|
+
return this._createBreadcrumbs(child, routerLink, breadcrumbs);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
_checkEmpty() {
|
|
78
|
+
if (!this.items)
|
|
79
|
+
return;
|
|
80
|
+
const lastBreadcrumbVisibility = this.items[this.items.length - 1].isShownBreadcrumb;
|
|
81
|
+
this.items = this.items.filter(b => b.label !== '');
|
|
82
|
+
this.items[this.items.length - 1].isShownBreadcrumb = lastBreadcrumbVisibility;
|
|
83
|
+
}
|
|
84
|
+
_getRecursiveKey(obj, keys) {
|
|
85
|
+
if (keys.length === 0) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
const [currentKey, ...remainingKeys] = keys;
|
|
89
|
+
if (currentKey in obj) {
|
|
90
|
+
if (remainingKeys.length > 0) {
|
|
91
|
+
return this._getRecursiveKey(obj[currentKey], remainingKeys);
|
|
92
|
+
}
|
|
93
|
+
return obj[currentKey];
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
;
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppBreadcrumbComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppBreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", ngImport: i0, template: "@if(isShownBreadcrumb) {\r\n <nav class=\"flex gap-x-3 text-[12px] w-full items-center mb-5\">\r\n <div class=\"card flex justify-center\">\r\n <p-breadcrumb [model]=\"items\"></p-breadcrumb>\r\n </div>\r\n </nav>\r\n}\r\n", styles: [".p-breadcrumb-list li:first-child a{color:var(--secondary)}.p-breadcrumb-list .p-breadcrumb-separator{transform:scale(.7)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: RouterModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
100
|
+
}
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppBreadcrumbComponent, decorators: [{
|
|
102
|
+
type: Component,
|
|
103
|
+
args: [{ selector: 'app-breadcrumb', standalone: true, imports: [CommonModule, Breadcrumb, RouterModule], encapsulation: ViewEncapsulation.None, template: "@if(isShownBreadcrumb) {\r\n <nav class=\"flex gap-x-3 text-[12px] w-full items-center mb-5\">\r\n <div class=\"card flex justify-center\">\r\n <p-breadcrumb [model]=\"items\"></p-breadcrumb>\r\n </div>\r\n </nav>\r\n}\r\n", styles: [".p-breadcrumb-list li:first-child a{color:var(--secondary)}.p-breadcrumb-list .p-breadcrumb-separator{transform:scale(.7)}\n"] }]
|
|
104
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }] });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9jb21wb25lbnRzL2FwcC1icmVhZGNydW1iL2FwcC1icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50cy9hcHAtYnJlYWRjcnVtYi9hcHAtYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFNBQVMsRUFBVSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7OztBQVc1QixNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQW9CLGNBQThCLEVBQVUsTUFBYztRQUF0RCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQzFFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQzthQUNyRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLG9CQUFvQjtZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxD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Z0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQUEsQ0FBQzs4R0EzR1Msc0JBQXNCO2tHQUF0QixzQkFBc0IsMEVDaEJuQyw4T0FPQSxxTERNWSxZQUFZLCtCQUFFLFVBQVUscUpBQUUsWUFBWTs7MkZBR3JDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxpQkFDbEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge01lbnVJdGVtfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7QnJlYWRjcnVtYn0gZnJvbSAncHJpbWVuZy9icmVhZGNydW1iJztcclxuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0JyZWFkQ3J1bWJFeHRyYURhdGEsIEJyZWFkY3J1bWJJdGVtfSBmcm9tICcuL2FwcC1icmVhZGNydW1iLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1icmVhZGNydW1iJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hcHAtYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCcmVhZGNydW1iLCBSb3V0ZXJNb2R1bGVdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBpdGVtczogQnJlYWRjcnVtYkl0ZW1bXSB8IHVuZGVmaW5lZDtcclxuICBpc1Nob3duQnJlYWRjcnVtYjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgLy8gcmVtb3ZlIGR1cGxpY2F0ZXNcclxuICAgICAgICB0aGlzLml0ZW1zID0gKHRoaXMuX2NyZWF0ZUJyZWFkY3J1bWJzKHRoaXMuYWN0aXZhdGVkUm91dGUucm9vdCkgYXMgQnJlYWRjcnVtYkl0ZW1bXSkuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW0sIGluZGV4LCBzZWxmKSA9PlxyXG4gICAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQubGFiZWwgPT09IGl0ZW0ubGFiZWwgJiYgdC5yb3V0ZXJMaW5rID09PSBpdGVtLnJvdXRlckxpbmspXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9jaGVja0hpZGRlbkJyZWFkY3J1bWIoKTtcclxuICAgICAgICB0aGlzLl9jaGVja0VtcHR5KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tIaWRkZW5CcmVhZGNydW1iKCkge1xyXG4gICAgY29uc3QgYWN0aXZlQnJlYWRjcnVtYiA9IHRoaXMuaXRlbXM/LmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIGl0ZW0ucm91dGVyTGluayA9PT0gdGhpcy5yb3V0ZXIudXJsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaXNTaG93bkJyZWFkY3J1bWIgPSAhIWFjdGl2ZUJyZWFkY3J1bWI/LmlzU2hvd25CcmVhZGNydW1iXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVCcmVhZGNydW1icyhhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHJvdXRlckxpbmsgPSAnJywgYnJlYWRjcnVtYnM6IE1lbnVJdGVtW10gPSBbXSk6IGFueSB7XHJcbiAgICBjb25zdCBjaGlsZHJlbjogQWN0aXZhdGVkUm91dGVbXSA9IGFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuO1xyXG5cclxuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3Qgcm91dGVVUkw6IHN0cmluZyA9IGNoaWxkLnNuYXBzaG90LnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKTtcclxuICAgICAgaWYgKHJvdXRlVVJMICE9PSAnJykge1xyXG4gICAgICAgIHJvdXRlckxpbmsgKz0gYC8ke3JvdXRlVVJMfWA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBsYWJlbCA9IGNoaWxkLnNuYXBzaG90LmRhdGFbXCJicmVhZGNydW1iXCJdO1xyXG4gICAgICBjb25zdCBub3RDbGlja2FibGVCcmVhZGNydW1iID0gISFjaGlsZC5zbmFwc2hvdC5kYXRhW1wibm90Q2xpY2thYmxlQnJlYWRjcnVtYlwiXTtcclxuICAgICAgY29uc3QgaXNTaG93bkJyZWFkY3J1bWIgPSAhIWNoaWxkLnNuYXBzaG90LmRhdGFbXCJpc1Nob3duQnJlYWRjcnVtYlwiXTtcclxuICAgICAgY29uc3QgZXh0cmFCcmVhZGNydW1iczogQnJlYWRDcnVtYkV4dHJhRGF0YVtdID0gY2hpbGQuc25hcHNob3QuZGF0YVtcImV4dHJhQnJlYWRjcnVtYnNcIl0gfHwgW107XHJcbiAgICAgIGlmICghKHR5cGVvZiBsYWJlbCA9PT0gJ3VuZGVmaW5lZCcgfHwgbGFiZWwgPT09IG51bGwpKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmZpcnN0Q2hpbGQ/LmRhdGEgfHwge307XHJcbiAgICAgICAgLy8gUmVzb2x2ZSBkeW5hbWljIGJyZWFkY3J1bWIgbGFiZWxcclxuICAgICAgICBpZiAobGFiZWwgJiYgbGFiZWwuc3RhcnRzV2l0aChcIltcIikgJiYgbGFiZWwuZW5kc1dpdGgoXCJdXCIpKSB7XHJcbiAgICAgICAgICBsYWJlbCA9IHRoaXMuX2dldFJlY3Vyc2l2ZUtleShkYXRhLCBsYWJlbC5zbGljZSgxLCAtMSkuc3BsaXQoXCIuXCIpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlc29sdmUgZHluYW1pYyBVUkwgcGFydHNcclxuICAgICAgICBjb25zdCByZXNvbHZlRHluYW1pY1VybCA9IChyb3V0ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgICAgICAgIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXFsoW15cXF1dKyldL2csIChfLCBrZXkpID0+IHRoaXMuX2dldFJlY3Vyc2l2ZUtleShkYXRhLCBrZXkuc3BsaXQoXCIuXCIpKSB8fCAnJyk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgbWFpbkJyZWFkY3J1bWI6IE1lbnVJdGVtID0ge2xhYmVsLCByb3V0ZXJMaW5rLCBkYXRhLCBub3RDbGlja2FibGVCcmVhZGNydW1iLCBpc1Nob3duQnJlYWRjcnVtYn07XHJcblxyXG4gICAgICAgIC8vIFByb2Nlc3MgZXh0cmEgYnJlYWRjcnVtYnNcclxuICAgICAgICBjb25zdCBiZWZvcmVCcmVhZGNydW1iczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGFmdGVyQnJlYWRjcnVtYnM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgZXh0cmFCcmVhZGNydW1icy5mb3JFYWNoKGV4dHJhID0+IHtcclxuICAgICAgICAgIGxldCBleHRyYUxhYmVsID0gZXh0cmEubGFiZWwgfHwgJyc7XHJcbiAgICAgICAgICBpZiAoZXh0cmFMYWJlbC5zdGFydHNXaXRoKFwiW1wiKSAmJiBleHRyYUxhYmVsLmVuZHNXaXRoKFwiXVwiKSkge1xyXG4gICAgICAgICAgICBleHRyYUxhYmVsID0gdGhpcy5fZ2V0UmVjdXJzaXZlS2V5KGRhdGEsIGV4dHJhTGFiZWwuc2xpY2UoMSwgLTEpLnNwbGl0KFwiLlwiKSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgZXh0cmFVcmwgPSByZXNvbHZlRHluYW1pY1VybChleHRyYS5yb3V0ZXJMaW5rIHx8ICcnKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBleHRyYUJyZWFkY3J1bWI6IE1lbnVJdGVtID0gey4uLmV4dHJhLCBsYWJlbDogZXh0cmFMYWJlbCwgcm91dGVyTGluazogZXh0cmFVcmx9O1xyXG5cclxuICAgICAgICAgIGlmIChleHRyYS5wb3NpdGlvbiA9PT0gXCJiZWZvcmVcIikge1xyXG4gICAgICAgICAgICBiZWZvcmVCcmVhZGNydW1icy5wdXNoKGV4dHJhQnJlYWRjcnVtYik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhZnRlckJyZWFkY3J1bWJzLnB1c2goZXh0cmFCcmVhZGNydW1iKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gTWVyZ2UgYnJlYWRjcnVtYnNcclxuICAgICAgICBicmVhZGNydW1icy5wdXNoKC4uLmJlZm9yZUJyZWFkY3J1bWJzLCBtYWluQnJlYWRjcnVtYiwgLi4uYWZ0ZXJCcmVhZGNydW1icyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUJyZWFkY3J1bWJzKGNoaWxkLCByb3V0ZXJMaW5rLCBicmVhZGNydW1icyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0VtcHR5KCkge1xyXG4gICAgaWYgKCF0aGlzLml0ZW1zKSByZXR1cm5cclxuICAgIGNvbnN0IGxhc3RCcmVhZGNydW1iVmlzaWJpbGl0eSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5pc1Nob3duQnJlYWRjcnVtYjtcclxuICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihiID0+IGIubGFiZWwgIT09ICcnKTtcclxuICAgIHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5pc1Nob3duQnJlYWRjcnVtYiA9IGxhc3RCcmVhZGNydW1iVmlzaWJpbGl0eTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFJlY3Vyc2l2ZUtleShvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleXM6IHN0cmluZ1tdKTogYW55IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtjdXJyZW50S2V5LCAuLi5yZW1haW5pbmdLZXlzXSA9IGtleXM7XHJcbiAgICBpZiAoY3VycmVudEtleSBpbiBvYmopIHtcclxuICAgICAgaWYgKHJlbWFpbmluZ0tleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRSZWN1cnNpdmVLZXkob2JqW2N1cnJlbnRLZXldLCByZW1haW5pbmdLZXlzKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gb2JqW2N1cnJlbnRLZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9O1xyXG59XHJcbiIsIkBpZihpc1Nob3duQnJlYWRjcnVtYikge1xyXG4gIDxuYXYgY2xhc3M9XCJmbGV4IGdhcC14LTMgdGV4dC1bMTJweF0gIHctZnVsbCBpdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICA8cC1icmVhZGNydW1iIFttb2RlbF09XCJpdGVtc1wiPjwvcC1icmVhZGNydW1iPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uYXY+XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJyZWFkY3J1bWIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9jb21wb25lbnRzL2FwcC1icmVhZGNydW1iL2FwcC1icmVhZGNydW1iLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZW51SXRlbX0gZnJvbSBcInByaW1lbmcvYXBpXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFkY3J1bWJJdGVtIHtcclxuICBub3RDbGlja2FibGVCcmVhZGNydW1iOiBib29sZWFuO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgcm91dGVyTGluazogc3RyaW5nO1xyXG4gIGlzU2hvd25CcmVhZGNydW1iOiBib29sZWFuO1xyXG4gIGV4dHJhQnJlYWRjcnVtYnM/OiBCcmVhZENydW1iRXh0cmFEYXRhW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWRDcnVtYlBvc2l0aW9uIHtcclxuICBwb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEJyZWFkQ3J1bWJFeHRyYURhdGEgPSBNZW51SXRlbSAmIEJyZWFkQ3J1bWJQb3NpdGlvbjtcclxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { RouterModule } from "@angular/router";
|
|
3
|
+
import { AppButtonComponent } from "@corp-products/ui-components";
|
|
4
|
+
import { Menu } from "primeng/menu";
|
|
5
|
+
import { AuthService } from "../../services";
|
|
6
|
+
import { finalize } from "rxjs";
|
|
7
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
8
|
+
import { PermissionsActions, UserPermissionsEnum } from "../../enums";
|
|
9
|
+
import { HasPermissionsDirective } from "../../directives";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../../services";
|
|
12
|
+
export class AppHeaderComponent {
|
|
13
|
+
constructor(authService) {
|
|
14
|
+
this.authService = authService;
|
|
15
|
+
this.createButtonClicked = new EventEmitter();
|
|
16
|
+
this.toggleMenu = new EventEmitter();
|
|
17
|
+
this.items = [
|
|
18
|
+
{
|
|
19
|
+
items: [
|
|
20
|
+
{
|
|
21
|
+
label: "خــــروج",
|
|
22
|
+
command: () => this.logout()
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
this.UserPermissionsEnum = UserPermissionsEnum;
|
|
28
|
+
this.PermissionsActions = PermissionsActions;
|
|
29
|
+
}
|
|
30
|
+
logout() {
|
|
31
|
+
this.authService
|
|
32
|
+
.logoutFromSSO()
|
|
33
|
+
.pipe(finalize(() => {
|
|
34
|
+
this.authService.clearAuth();
|
|
35
|
+
}))
|
|
36
|
+
.subscribe();
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppHeaderComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppHeaderComponent, isStandalone: true, selector: "app-header", inputs: { userInfo: "userInfo" }, outputs: { createButtonClicked: "createButtonClicked", toggleMenu: "toggleMenu" }, ngImport: i0, template: "<div class=\"px-10 flex justify-between items-center bg-white shadow-md py-3 h-16\">\r\n <div class=\"d-flex md:hidden w-fit\">\r\n <!-- Burger Icon for Mobile -->\r\n <app-button icon=\"font-icon-burger-icon text-[25px]\" size=\"large\" variant=\"text\"\r\n (clickEmitter)=\"toggleMenu.emit()\"/>\r\n </div>\r\n <div class=\"d-flex items-center justify-content-between gap-1\">\r\n <app-button\r\n *hasPermissions=\"[PermissionsActions.CREATE];key: UserPermissionsEnum.BOD\"\r\n iconPos=\"right\" icon=\"font-icon-plus\" (clickEmitter)=\"createButtonClicked.emit()\"\r\n [title]=\"'actions.create' | translate\"/>\r\n </div>\r\n\r\n <div class=\"flex items-center gap-1\">\r\n @if (userInfo) {\r\n <div class=\"flex flex-col items-end justify-center\">\r\n <p class=\"text-sm\">{{ userInfo.userName }}</p>\r\n <p class=\"text-gray-500 mb-0 text-[10px]\">{{ userInfo.email }}</p>\r\n </div>\r\n\r\n <img src=\"assets/images/user-placeholder.jpg\" class=\"w-9 h-9 object-cover rounded-full\" alt=\"\"/>\r\n }\r\n <p-menu #menu [model]=\"items\" [popup]=\"true\"></p-menu>\r\n <button (click)=\"menu.toggle($event)\" class=\"mb-2\"><i class=\"font-icon-Vector text-[6px]\"></i></button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["title", "class", "icon", "size", "style", "iconPos", "variant", "disabled", "text", "rounded"], outputs: ["clickEmitter"] }, { kind: "component", type: Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: HasPermissionsDirective, selector: "[hasPermissions]", inputs: ["hasPermissions", "hasPermissionsKey", "hasPermissionsNewPermissions", "hasPermissionsIsDomain"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppHeaderComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: "app-header", standalone: true, imports: [RouterModule, AppButtonComponent, Menu, TranslatePipe, HasPermissionsDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"px-10 flex justify-between items-center bg-white shadow-md py-3 h-16\">\r\n <div class=\"d-flex md:hidden w-fit\">\r\n <!-- Burger Icon for Mobile -->\r\n <app-button icon=\"font-icon-burger-icon text-[25px]\" size=\"large\" variant=\"text\"\r\n (clickEmitter)=\"toggleMenu.emit()\"/>\r\n </div>\r\n <div class=\"d-flex items-center justify-content-between gap-1\">\r\n <app-button\r\n *hasPermissions=\"[PermissionsActions.CREATE];key: UserPermissionsEnum.BOD\"\r\n iconPos=\"right\" icon=\"font-icon-plus\" (clickEmitter)=\"createButtonClicked.emit()\"\r\n [title]=\"'actions.create' | translate\"/>\r\n </div>\r\n\r\n <div class=\"flex items-center gap-1\">\r\n @if (userInfo) {\r\n <div class=\"flex flex-col items-end justify-center\">\r\n <p class=\"text-sm\">{{ userInfo.userName }}</p>\r\n <p class=\"text-gray-500 mb-0 text-[10px]\">{{ userInfo.email }}</p>\r\n </div>\r\n\r\n <img src=\"assets/images/user-placeholder.jpg\" class=\"w-9 h-9 object-cover rounded-full\" alt=\"\"/>\r\n }\r\n <p-menu #menu [model]=\"items\" [popup]=\"true\"></p-menu>\r\n <button (click)=\"menu.toggle($event)\" class=\"mb-2\"><i class=\"font-icon-Vector text-[6px]\"></i></button>\r\n </div>\r\n</div>\r\n" }]
|
|
44
|
+
}], ctorParameters: () => [{ type: i1.AuthService }], propDecorators: { createButtonClicked: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}], toggleMenu: [{
|
|
47
|
+
type: Output
|
|
48
|
+
}], userInfo: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbXBvbmVudHMvYXBwLWhlYWRlci9hcHAtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50cy9hcHAtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFTM0QsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFmbEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVuRCxVQUFLLEdBQTJCO1lBQzlCO2dCQUNFLEtBQUssRUFBRTtvQkFDTDt3QkFDRSxLQUFLLEVBQUUsVUFBVTt3QkFDakIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7cUJBQzdCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBQ0Ysd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDTyxDQUFDO0lBRWhELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVzthQUNiLGFBQWEsRUFBRTthQUNmLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBM0JVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJMQ25CL0IsMnhDQTBCQSx5RERWWSxZQUFZLCtCQUFFLGtCQUFrQiw0TEFBRSxJQUFJLGdTQUFFLGFBQWEsa0RBQUUsdUJBQXVCOzsyRkFHN0Usa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxpQkFDMUUsaUJBQWlCLENBQUMsSUFBSTtnRkFHM0IsbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQXBwQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIkBjb3JwLXByb2R1Y3RzL3VpLWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcclxuaW1wb3J0IHsgTWVudSB9IGZyb20gXCJwcmltZW5nL21lbnVcIjtcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc0FjdGlvbnMsIFVzZXJQZXJtaXNzaW9uc0VudW0gfSBmcm9tIFwiLi4vLi4vZW51bXNcIjtcclxuaW1wb3J0IHsgSGFzUGVybWlzc2lvbnNEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlc1wiO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtaGVhZGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9hcHAtaGVhZGVyLmNvbXBvbmVudC5zY3NzXCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLCBBcHBCdXR0b25Db21wb25lbnQsIE1lbnUsIFRyYW5zbGF0ZVBpcGUsIEhhc1Blcm1pc3Npb25zRGlyZWN0aXZlXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBIZWFkZXJDb21wb25lbnQge1xyXG4gIEBPdXRwdXQoKSBjcmVhdGVCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB0b2dnbGVNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIHVzZXJJbmZvOiBVc2VySW5mbztcclxuICBpdGVtczogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCA9IFtcclxuICAgIHtcclxuICAgICAgaXRlbXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogXCLYrtmA2YDZgNmA2LHZiNisXCIsXHJcbiAgICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmxvZ291dCgpXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgXTtcclxuICBVc2VyUGVybWlzc2lvbnNFbnVtID0gVXNlclBlcm1pc3Npb25zRW51bTtcclxuICBQZXJtaXNzaW9uc0FjdGlvbnMgPSBQZXJtaXNzaW9uc0FjdGlvbnM7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHt9XHJcblxyXG4gIGxvZ291dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgLmxvZ291dEZyb21TU08oKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmNsZWFyQXV0aCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicHgtMTAgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGJnLXdoaXRlIHNoYWRvdy1tZCBweS0zIGgtMTZcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1kOmhpZGRlbiB3LWZpdFwiPlxyXG4gICAgPCEtLSBCdXJnZXIgSWNvbiBmb3IgTW9iaWxlIC0tPlxyXG4gICAgPGFwcC1idXR0b24gaWNvbj1cImZvbnQtaWNvbi1idXJnZXItaWNvbiB0ZXh0LVsyNXB4XVwiIHNpemU9XCJsYXJnZVwiIHZhcmlhbnQ9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIChjbGlja0VtaXR0ZXIpPVwidG9nZ2xlTWVudS5lbWl0KClcIi8+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTFcIj5cclxuICAgIDxhcHAtYnV0dG9uXHJcbiAgICAgICpoYXNQZXJtaXNzaW9ucz1cIltQZXJtaXNzaW9uc0FjdGlvbnMuQ1JFQVRFXTtrZXk6IFVzZXJQZXJtaXNzaW9uc0VudW0uQk9EXCJcclxuICAgICAgaWNvblBvcz1cInJpZ2h0XCIgaWNvbj1cImZvbnQtaWNvbi1wbHVzXCIgKGNsaWNrRW1pdHRlcik9XCJjcmVhdGVCdXR0b25DbGlja2VkLmVtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2FjdGlvbnMuY3JlYXRlJyB8IHRyYW5zbGF0ZVwiLz5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICBAaWYgKHVzZXJJbmZvKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiPnt7IHVzZXJJbmZvLnVzZXJOYW1lIH19PC9wPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi0wIHRleHQtWzEwcHhdXCI+e3sgdXNlckluZm8uZW1haWwgfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL3VzZXItcGxhY2Vob2xkZXIuanBnXCIgY2xhc3M9XCJ3LTkgaC05IG9iamVjdC1jb3ZlciByb3VuZGVkLWZ1bGxcIiBhbHQ9XCJcIi8+XHJcbiAgICB9XHJcbiAgICA8cC1tZW51ICNtZW51IFttb2RlbF09XCJpdGVtc1wiIFtwb3B1cF09XCJ0cnVlXCI+PC9wLW1lbnU+XHJcbiAgICA8YnV0dG9uIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCIgY2xhc3M9XCJtYi0yXCI+PGkgY2xhc3M9XCJmb250LWljb24tVmVjdG9yIHRleHQtWzZweF1cIj48L2k+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { BASE_SIDE_MENU_ITEMS } from './side-menu-items';
|
|
4
|
+
import { PermissionsService } from "../../services";
|
|
5
|
+
import { PermissionsActions } from "../../enums";
|
|
6
|
+
import { NgClass } from "@angular/common";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
export class AppSideMenuComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.menuItems = BASE_SIDE_MENU_ITEMS;
|
|
12
|
+
this.permissionsService = inject(PermissionsService);
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.filteredMenu = this.menuItems.filter((item) => {
|
|
16
|
+
if (!item.permissionKey) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return this.permissionsService.checkKeyHasPermission(item.permissionKey, PermissionsActions.VIEW);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppSideMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AppSideMenuComponent, isStandalone: true, selector: "app-side-menu", inputs: { isOpen: "isOpen" }, ngImport: i0, template: "<nav\r\n [ngClass]=\"{ 'max-w-0 md:max-w-[500px]': !isOpen, 'max-w-[500px]': isOpen }\"\r\n class=\"md:flex h-100 bg-primary flex text-white flex-col py-2 text-center gap-y-10 transition-all w-24 hover:md:w-48 duration-500\">\r\n <a [routerLink]=\"'/'\"><i class=\"font-icon-STC-Logo text-[20px] pt-4 block px-4\"></i></a>\r\n <ul class=\"flex flex-col flex-grow\">\r\n @for (item of filteredMenu; track $index) {\r\n <li>\r\n <a\r\n [routerLinkActive]=\"'bg-primary_dark border-secondary'\"\r\n [routerLink]=\"item.link\"\r\n class=\"flex flex-col py-3 px-4 border-r-2 border-primary transition-all hover:bg-primary_dark hover:border-secondary\">\r\n <i [class]=\"item.icon + ' text-[17px] mb-1'\"></i>\r\n <span class=\"text-[10px] truncate\">{{ item.label }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n\r\n <a href=\"#\"><i class=\"font-icon-setting text-[20px] pb-4 block px-4\"></i></a>\r\n</nav>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AppSideMenuComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: "app-side-menu", standalone: true, imports: [RouterModule, NgClass], encapsulation: ViewEncapsulation.None, template: "<nav\r\n [ngClass]=\"{ 'max-w-0 md:max-w-[500px]': !isOpen, 'max-w-[500px]': isOpen }\"\r\n class=\"md:flex h-100 bg-primary flex text-white flex-col py-2 text-center gap-y-10 transition-all w-24 hover:md:w-48 duration-500\">\r\n <a [routerLink]=\"'/'\"><i class=\"font-icon-STC-Logo text-[20px] pt-4 block px-4\"></i></a>\r\n <ul class=\"flex flex-col flex-grow\">\r\n @for (item of filteredMenu; track $index) {\r\n <li>\r\n <a\r\n [routerLinkActive]=\"'bg-primary_dark border-secondary'\"\r\n [routerLink]=\"item.link\"\r\n class=\"flex flex-col py-3 px-4 border-r-2 border-primary transition-all hover:bg-primary_dark hover:border-secondary\">\r\n <i [class]=\"item.icon + ' text-[17px] mb-1'\"></i>\r\n <span class=\"text-[10px] truncate\">{{ item.label }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n\r\n <a href=\"#\"><i class=\"font-icon-setting text-[20px] pb-4 block px-4\"></i></a>\r\n</nav>\r\n" }]
|
|
28
|
+
}], propDecorators: { isOpen: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}] } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNpZGUtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbXBvbmVudHMvYXBwLXNpZGUtbWVudS9hcHAtc2lkZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50cy9hcHAtc2lkZS1tZW51L2FwcC1zaWRlLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQXNCLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBU3hDLE1BQU0sT0FBTyxvQkFBb0I7SUFSakM7UUFVRSxjQUFTLEdBQW1CLG9CQUFvQixDQUFDO1FBQ2pELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBV2pEO0lBUkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBb0MsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBYlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsdUdDZmpDLCs5QkFvQkEseUREVlksWUFBWSxpZkFBRSxPQUFPOzsyRkFLcEIsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJOzhCQUc1QixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNpZGVNZW51SXRlbSB9IGZyb20gJy4vc2lkZS1tZW51JztcclxuaW1wb3J0IHsgQkFTRV9TSURFX01FTlVfSVRFTVMgfSBmcm9tICcuL3NpZGUtbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7UGVybWlzc2lvbnNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHtQZXJtaXNzaW9uc0FjdGlvbnMsIFVzZXJQZXJtaXNzaW9uc0VudW19IGZyb20gXCIuLi8uLi9lbnVtc1wiO1xyXG5pbXBvcnQge05nQ2xhc3N9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXNpZGUtbWVudVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZSwgTmdDbGFzc10sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hcHAtc2lkZS1tZW51LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9hcHAtc2lkZS1tZW51LmNvbXBvbmVudC5zY3NzXCIsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwU2lkZU1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGlzT3BlbiE6IGJvb2xlYW47XHJcbiAgbWVudUl0ZW1zOiBTaWRlTWVudUl0ZW1bXSA9IEJBU0VfU0lERV9NRU5VX0lURU1TO1xyXG4gIHBlcm1pc3Npb25zU2VydmljZSA9IGluamVjdChQZXJtaXNzaW9uc1NlcnZpY2UpO1xyXG4gIGZpbHRlcmVkTWVudTogU2lkZU1lbnVJdGVtW107XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJlZE1lbnUgPSB0aGlzLm1lbnVJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKCFpdGVtLnBlcm1pc3Npb25LZXkpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuY2hlY2tLZXlIYXNQZXJtaXNzaW9uKGl0ZW0ucGVybWlzc2lvbktleSBhcyBVc2VyUGVybWlzc2lvbnNFbnVtLCBQZXJtaXNzaW9uc0FjdGlvbnMuVklFVyk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5hdlxyXG4gIFtuZ0NsYXNzXT1cInsgJ21heC13LTAgbWQ6bWF4LXctWzUwMHB4XSc6ICFpc09wZW4sICdtYXgtdy1bNTAwcHhdJzogaXNPcGVuICB9XCJcclxuICBjbGFzcz1cIm1kOmZsZXggaC0xMDAgYmctcHJpbWFyeSBmbGV4IHRleHQtd2hpdGUgZmxleC1jb2wgcHktMiB0ZXh0LWNlbnRlciBnYXAteS0xMCB0cmFuc2l0aW9uLWFsbCB3LTI0IGhvdmVyOm1kOnctNDggZHVyYXRpb24tNTAwXCI+XHJcbiAgPGEgW3JvdXRlckxpbmtdPVwiJy8nXCI+PGkgY2xhc3M9XCJmb250LWljb24tU1RDLUxvZ28gdGV4dC1bMjBweF0gcHQtNCBibG9jayBweC00XCI+PC9pPjwvYT5cclxuICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtZ3Jvd1wiPlxyXG4gICAgQGZvciAoaXRlbSBvZiBmaWx0ZXJlZE1lbnU7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICA8bGk+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIidiZy1wcmltYXJ5X2RhcmsgYm9yZGVyLXNlY29uZGFyeSdcIlxyXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5saW5rXCJcclxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS0zIHB4LTQgYm9yZGVyLXItMiBib3JkZXItcHJpbWFyeSB0cmFuc2l0aW9uLWFsbCBob3ZlcjpiZy1wcmltYXJ5X2RhcmsgaG92ZXI6Ym9yZGVyLXNlY29uZGFyeVwiPlxyXG4gICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uaWNvbiArICcgdGV4dC1bMTdweF0gbWItMSdcIj48L2k+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtWzEwcHhdIHRydW5jYXRlXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvbGk+XHJcbiAgICB9XHJcbiAgPC91bD5cclxuXHJcbiAgPGEgaHJlZj1cIiNcIj48aSBjbGFzcz1cImZvbnQtaWNvbi1zZXR0aW5nIHRleHQtWzIwcHhdIHBiLTQgYmxvY2sgcHgtNFwiPjwvaT48L2E+XHJcbjwvbmF2PlxyXG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const ROUTES_NAME = {
|
|
2
|
+
board: {
|
|
3
|
+
name: '/board-page',
|
|
4
|
+
},
|
|
5
|
+
users: {
|
|
6
|
+
name: '/users',
|
|
7
|
+
},
|
|
8
|
+
// reports: {
|
|
9
|
+
// name: '/reports',
|
|
10
|
+
// },
|
|
11
|
+
meetings: {
|
|
12
|
+
name: '/meeting-page',
|
|
13
|
+
},
|
|
14
|
+
// tasks: {
|
|
15
|
+
// name: '/tasks',
|
|
16
|
+
// },
|
|
17
|
+
// imported: {
|
|
18
|
+
// name: '/imported',
|
|
19
|
+
// },
|
|
20
|
+
// exported: {
|
|
21
|
+
// name: '/exported',
|
|
22
|
+
// },
|
|
23
|
+
// board: {
|
|
24
|
+
// name: '/board',
|
|
25
|
+
// },
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLW5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9jb21wb25lbnRzL2FwcC1zaWRlLW1lbnUvcm91dGVzLW5hbWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBa0I7SUFDeEMsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLGFBQWE7S0FDcEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0QsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixLQUFLO0lBQ0wsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLGVBQWU7S0FDdEI7SUFDRCxXQUFXO0lBQ1gsb0JBQW9CO0lBQ3BCLEtBQUs7SUFDTCxjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLEtBQUs7SUFDTCxjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLEtBQUs7SUFDTCxXQUFXO0lBQ1gsb0JBQW9CO0lBQ3BCLEtBQUs7Q0FDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVOYW1lSXRlbSB9IGZyb20gXCIuL3NpZGUtbWVudVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJPVVRFU19OQU1FOiBSb3V0ZU5hbWVJdGVtID0ge1xyXG4gIGJvYXJkOiB7XHJcbiAgICBuYW1lOiAnL2JvYXJkLXBhZ2UnLFxyXG4gIH0sXHJcbiAgdXNlcnM6IHtcclxuICAgIG5hbWU6ICcvdXNlcnMnLFxyXG4gIH0sXHJcbiAgLy8gcmVwb3J0czoge1xyXG4gIC8vICAgbmFtZTogJy9yZXBvcnRzJyxcclxuICAvLyB9LFxyXG4gIG1lZXRpbmdzOiB7XHJcbiAgICBuYW1lOiAnL21lZXRpbmctcGFnZScsXHJcbiAgfSxcclxuICAvLyB0YXNrczoge1xyXG4gIC8vICAgbmFtZTogJy90YXNrcycsXHJcbiAgLy8gfSxcclxuICAvLyBpbXBvcnRlZDoge1xyXG4gIC8vICAgbmFtZTogJy9pbXBvcnRlZCcsXHJcbiAgLy8gfSxcclxuICAvLyBleHBvcnRlZDoge1xyXG4gIC8vICAgbmFtZTogJy9leHBvcnRlZCcsXHJcbiAgLy8gfSxcclxuICAvLyBib2FyZDoge1xyXG4gIC8vICAgbmFtZTogJy9ib2FyZCcsXHJcbiAgLy8gfSxcclxufTtcclxuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ROUTES_NAME } from './routes-names';
|
|
2
|
+
export const BASE_SIDE_MENU_ITEMS = [
|
|
3
|
+
{
|
|
4
|
+
label: 'الإجتماعات',
|
|
5
|
+
icon: 'font-icon-menu-board',
|
|
6
|
+
link: ROUTES_NAME['meetings'].name
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
label: 'اللجان و المجالس',
|
|
10
|
+
icon: 'font-icon-people',
|
|
11
|
+
link: ROUTES_NAME['board'].name
|
|
12
|
+
},
|
|
13
|
+
// {
|
|
14
|
+
// label: 'المستخدمين',
|
|
15
|
+
// icon: 'font-icon-profile-2user',
|
|
16
|
+
// link: ROUTES_NAME['users'].name,
|
|
17
|
+
// },
|
|
18
|
+
// {
|
|
19
|
+
// label: 'الإجتماعات',
|
|
20
|
+
// icon: 'font-icon-menu-board',
|
|
21
|
+
// link: ROUTES_NAME['meetings'].name,
|
|
22
|
+
// },
|
|
23
|
+
// {
|
|
24
|
+
// label: 'مهامي',
|
|
25
|
+
// icon: 'font-icon-task-square',
|
|
26
|
+
// link: ROUTES_NAME['tasks'].name,
|
|
27
|
+
// },
|
|
28
|
+
// {
|
|
29
|
+
// label: 'الوارد',
|
|
30
|
+
// icon: 'font-icon-directbox-receive',
|
|
31
|
+
// link: ROUTES_NAME['imported'].name,
|
|
32
|
+
// },
|
|
33
|
+
// {
|
|
34
|
+
// label: 'الصادر',
|
|
35
|
+
// icon: 'font-icon-directbox-send',
|
|
36
|
+
// link: ROUTES_NAME['exported'].name,
|
|
37
|
+
// },
|
|
38
|
+
// {
|
|
39
|
+
// label: 'التقارير',
|
|
40
|
+
// icon: 'font-icon-status-up',
|
|
41
|
+
// link: ROUTES_NAME['reports'].name,
|
|
42
|
+
// },
|
|
43
|
+
];
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9jb21wb25lbnRzL2FwcC1zaWRlLW1lbnUvc2lkZS1tZW51LWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBbUI7SUFDbEQ7UUFDRSxLQUFLLEVBQUUsWUFBWTtRQUNuQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSTtLQUNuQztJQUNEO1FBQ0UsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLElBQUksRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSTtLQUNoQztJQUNELElBQUk7SUFDSix5QkFBeUI7SUFDekIscUNBQXFDO0lBQ3JDLHFDQUFxQztJQUNyQyxLQUFLO0lBQ0wsSUFBSTtJQUNKLHlCQUF5QjtJQUN6QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0lBQ3hDLEtBQUs7SUFDTCxJQUFJO0lBQ0osb0JBQW9CO0lBQ3BCLG1DQUFtQztJQUNuQyxxQ0FBcUM7SUFDckMsS0FBSztJQUNMLElBQUk7SUFDSixxQkFBcUI7SUFDckIseUNBQXlDO0lBQ3pDLHdDQUF3QztJQUN4QyxLQUFLO0lBQ0wsSUFBSTtJQUNKLHFCQUFxQjtJQUNyQixzQ0FBc0M7SUFDdEMsd0NBQXdDO0lBQ3hDLEtBQUs7SUFDTCxJQUFJO0lBQ0osdUJBQXVCO0lBQ3ZCLGlDQUFpQztJQUNqQyx1Q0FBdUM7SUFDdkMsS0FBSztDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBST1VURVNfTkFNRSB9IGZyb20gJy4vcm91dGVzLW5hbWVzJztcclxuaW1wb3J0IHsgU2lkZU1lbnVJdGVtIH0gZnJvbSAnLi9zaWRlLW1lbnUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBU0VfU0lERV9NRU5VX0lURU1TOiBTaWRlTWVudUl0ZW1bXSA9IFtcclxuICB7XHJcbiAgICBsYWJlbDogJ9in2YTYpdis2KrZhdin2LnYp9iqJyxcclxuICAgIGljb246ICdmb250LWljb24tbWVudS1ib2FyZCcsXHJcbiAgICBsaW5rOiBST1VURVNfTkFNRVsnbWVldGluZ3MnXS5uYW1lXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogJ9in2YTZhNis2KfZhiDZiCDYp9mE2YXYrNin2YTYsycsXHJcbiAgICBpY29uOiAnZm9udC1pY29uLXBlb3BsZScsXHJcbiAgICBsaW5rOiBST1VURVNfTkFNRVsnYm9hcmQnXS5uYW1lXHJcbiAgfSxcclxuICAvLyB7XHJcbiAgLy8gICBsYWJlbDogJ9in2YTZhdiz2KrYrtiv2YXZitmGJyxcclxuICAvLyAgIGljb246ICdmb250LWljb24tcHJvZmlsZS0ydXNlcicsXHJcbiAgLy8gICBsaW5rOiBST1VURVNfTkFNRVsndXNlcnMnXS5uYW1lLFxyXG4gIC8vIH0sXHJcbiAgLy8ge1xyXG4gIC8vICAgbGFiZWw6ICfYp9mE2KXYrNiq2YXYp9i52KfYqicsXHJcbiAgLy8gICBpY29uOiAnZm9udC1pY29uLW1lbnUtYm9hcmQnLFxyXG4gIC8vICAgbGluazogUk9VVEVTX05BTUVbJ21lZXRpbmdzJ10ubmFtZSxcclxuICAvLyB9LFxyXG4gIC8vIHtcclxuICAvLyAgIGxhYmVsOiAn2YXZh9in2YXZiicsXHJcbiAgLy8gICBpY29uOiAnZm9udC1pY29uLXRhc2stc3F1YXJlJyxcclxuICAvLyAgIGxpbms6IFJPVVRFU19OQU1FWyd0YXNrcyddLm5hbWUsXHJcbiAgLy8gfSxcclxuICAvLyB7XHJcbiAgLy8gICBsYWJlbDogJ9in2YTZiNin2LHYrycsXHJcbiAgLy8gICBpY29uOiAnZm9udC1pY29uLWRpcmVjdGJveC1yZWNlaXZlJyxcclxuICAvLyAgIGxpbms6IFJPVVRFU19OQU1FWydpbXBvcnRlZCddLm5hbWUsXHJcbiAgLy8gfSxcclxuICAvLyB7XHJcbiAgLy8gICBsYWJlbDogJ9in2YTYtdin2K/YsScsXHJcbiAgLy8gICBpY29uOiAnZm9udC1pY29uLWRpcmVjdGJveC1zZW5kJyxcclxuICAvLyAgIGxpbms6IFJPVVRFU19OQU1FWydleHBvcnRlZCddLm5hbWUsXHJcbiAgLy8gfSxcclxuICAvLyB7XHJcbiAgLy8gICBsYWJlbDogJ9in2YTYqtmC2KfYsdmK2LEnLFxyXG4gIC8vICAgaWNvbjogJ2ZvbnQtaWNvbi1zdGF0dXMtdXAnLFxyXG4gIC8vICAgbGluazogUk9VVEVTX05BTUVbJ3JlcG9ydHMnXS5uYW1lLFxyXG4gIC8vIH0sXHJcbl07XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9jb21wb25lbnRzL2FwcC1zaWRlLW1lbnUvc2lkZS1tZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNpZGVNZW51SXRlbSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgbGluazogc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25LZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVOYW1lSXRlbSB7XHJcbiAgW2tleTogc3RyaW5nXToge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AsyncPipe, NgClass } from '@angular/common';
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
4
|
+
import { LoaderService } from "../../services";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services";
|
|
7
|
+
export class GlobalLoaderComponent {
|
|
8
|
+
constructor(loaderService) {
|
|
9
|
+
this.loaderService = loaderService;
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalLoaderComponent, deps: [{ token: i1.LoaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GlobalLoaderComponent, isStandalone: true, selector: "global-loader", inputs: { color: "color" }, ngImport: i0, template: "@if (loaderService.isLoading$ | async; as data) {\r\n @if (data.show) {\r\n <div\r\n class=\"fixed inset-0 z-[1111] flex justify-center items-center\"\r\n [ngClass]=\"{\r\n 'bg-white/75': data?.isSystemLoader,\r\n 'absolute': !data?.isSystemLoader\r\n }\"\r\n >\r\n <div class=\"text-center flex flex-col gap-5 items-center\">\r\n <div\r\n class=\"animate-spin inline-block w-12 h-12 border-[3px] border-current border-t-transparent text-gray-800 rounded-full\">\r\n </div>\r\n <span>{{ 'loading' | translate }}</span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GlobalLoaderComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: "global-loader", standalone: true, imports: [AsyncPipe, NgClass, TranslatePipe], template: "@if (loaderService.isLoading$ | async; as data) {\r\n @if (data.show) {\r\n <div\r\n class=\"fixed inset-0 z-[1111] flex justify-center items-center\"\r\n [ngClass]=\"{\r\n 'bg-white/75': data?.isSystemLoader,\r\n 'absolute': !data?.isSystemLoader\r\n }\"\r\n >\r\n <div class=\"text-center flex flex-col gap-5 items-center\">\r\n <div\r\n class=\"animate-spin inline-block w-12 h-12 border-[3px] border-current border-t-transparent text-gray-800 rounded-full\">\r\n </div>\r\n <span>{{ 'loading' | translate }}</span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n" }]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.LoaderService }], propDecorators: { color: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}] } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbXBvbmVudHMvZ2xvYmFsLWxvYWRlci9nbG9iYWwtbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50cy9nbG9iYWwtbG9hZGVyL2dsb2JhbC1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFTN0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUFtQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUFHLENBQUM7OEdBRnhDLHFCQUFxQjtrR0FBckIscUJBQXFCLHFHQ1psQyw0bkJBa0JBLHFERFJZLFNBQVMsOENBQUUsT0FBTywrRUFBRSxhQUFhOzsyRkFFaEMscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGVBQWUsY0FHYixJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQztrRkFHbkMsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7TG9hZGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJnbG9iYWwtbG9hZGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9nbG9iYWwtbG9hZGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2dsb2JhbC1sb2FkZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ0NsYXNzLCBUcmFuc2xhdGVQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsTG9hZGVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlKSB7fVxyXG59XHJcbiIsIkBpZiAobG9hZGVyU2VydmljZS5pc0xvYWRpbmckIHwgYXN5bmM7IGFzIGRhdGEpIHtcclxuICBAaWYgKGRhdGEuc2hvdykge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZpeGVkIGluc2V0LTAgei1bMTExMV0gZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAnYmctd2hpdGUvNzUnOiBkYXRhPy5pc1N5c3RlbUxvYWRlcixcclxuICAgICAgICdhYnNvbHV0ZSc6ICFkYXRhPy5pc1N5c3RlbUxvYWRlclxyXG4gICAgIH1cIlxyXG4gICAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmbGV4IGZsZXgtY29sIGdhcC01IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiYW5pbWF0ZS1zcGluIGlubGluZS1ibG9jayB3LTEyIGgtMTIgYm9yZGVyLVszcHhdIGJvcmRlci1jdXJyZW50IGJvcmRlci10LXRyYW5zcGFyZW50IHRleHQtZ3JheS04MDAgcm91bmRlZC1mdWxsXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4+e3sgJ2xvYWRpbmcnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './app-breadcrumb/app-breadcrumb.component';
|
|
2
|
+
export * from './app-header/app-header.component';
|
|
3
|
+
export * from './app-side-menu/app-side-menu.component';
|
|
4
|
+
export * from './global-loader/global-loader.component';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLWJyZWFkY3J1bWIvYXBwLWJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHAtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHAtc2lkZS1tZW51L2FwcC1zaWRlLW1lbnUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtbG9hZGVyL2dsb2JhbC1sb2FkZXIuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const CORE_CONFIG = new InjectionToken("CoreConfig");
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2NvcmUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVL0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFhLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb3JlQ29uZmlnIHtcclxuICBhcGlVcmw6IHN0cmluZztcclxuICBwcm9kdWN0aW9uOiBib29sZWFuO1xyXG4gIGdhdGV3YXlVcmw6IHN0cmluZztcclxuICBsb2dpblVybDogc3RyaW5nO1xyXG4gIGxvZ291dEVuZHBvaW50OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDT1JFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb3JlQ29uZmlnPihcIkNvcmVDb25maWdcIik7XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './permissions.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbnMuZGlyZWN0aXZlJztcclxuIl19
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Directive, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import { PermissionsService } from '../services';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../services";
|
|
5
|
+
export class HasPermissionsDirective {
|
|
6
|
+
constructor(permissionsService, viewContainer, templateRef) {
|
|
7
|
+
this.permissionsService = permissionsService;
|
|
8
|
+
this.viewContainer = viewContainer;
|
|
9
|
+
this.templateRef = templateRef;
|
|
10
|
+
this.isViewCreated = false;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* make sure that the key value looks like the UserPermissionsEnum enum
|
|
14
|
+
* usage: *permissions="[PermissionsActions.EDIT]; key: LOOKUPS
|
|
15
|
+
*/
|
|
16
|
+
set hasPermissions(actions) {
|
|
17
|
+
if (this.arraysChanged(this._actions, actions)) {
|
|
18
|
+
this._actions = actions;
|
|
19
|
+
this.updateView();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
set hasPermissionsKey(key) {
|
|
23
|
+
if (this._key !== key) {
|
|
24
|
+
this._key = key;
|
|
25
|
+
this.updateView();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
set hasPermissionsNewPermissions(newPermissions) {
|
|
29
|
+
if (this.arraysChanged(this._newPermissions, newPermissions)) {
|
|
30
|
+
this._newPermissions = newPermissions;
|
|
31
|
+
this.updateView();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
set hasPermissionsIsDomain(isDomain) {
|
|
35
|
+
if (this._isDomain !== isDomain) {
|
|
36
|
+
this._isDomain = isDomain;
|
|
37
|
+
this.updateView();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.subscription = this.permissionsService.domainPermissions$.subscribe(() => {
|
|
42
|
+
if (this._isDomain) {
|
|
43
|
+
this.updateView();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
this.subscription?.unsubscribe();
|
|
49
|
+
}
|
|
50
|
+
updateView() {
|
|
51
|
+
const canShow = this._actions.some(action => this.hasPermission(action));
|
|
52
|
+
if (canShow && !this.isViewCreated) {
|
|
53
|
+
this.viewContainer.createEmbeddedView(this.templateRef);
|
|
54
|
+
this.isViewCreated = true;
|
|
55
|
+
}
|
|
56
|
+
else if (!canShow && this.isViewCreated) {
|
|
57
|
+
this.clearView();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
hasPermission(action) {
|
|
61
|
+
if (this._isDomain) {
|
|
62
|
+
return this.permissionsService.checkDomainHasPermission(this._key, action);
|
|
63
|
+
}
|
|
64
|
+
return this.permissionsService.checkKeyHasPermission(this._key, action, this._newPermissions);
|
|
65
|
+
}
|
|
66
|
+
clearView() {
|
|
67
|
+
this.viewContainer.clear();
|
|
68
|
+
this.isViewCreated = false;
|
|
69
|
+
}
|
|
70
|
+
arraysChanged(a, b) {
|
|
71
|
+
if (a === b)
|
|
72
|
+
return false;
|
|
73
|
+
if (!a || !b)
|
|
74
|
+
return true;
|
|
75
|
+
if (a.length !== b.length)
|
|
76
|
+
return true;
|
|
77
|
+
return a.some((v, i) => v !== b[i]);
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HasPermissionsDirective, deps: [{ token: i1.PermissionsService }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
80
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: HasPermissionsDirective, isStandalone: true, selector: "[hasPermissions]", inputs: { hasPermissions: "hasPermissions", hasPermissionsKey: "hasPermissionsKey", hasPermissionsNewPermissions: "hasPermissionsNewPermissions", hasPermissionsIsDomain: "hasPermissionsIsDomain" }, ngImport: i0 }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HasPermissionsDirective, decorators: [{
|
|
83
|
+
type: Directive,
|
|
84
|
+
args: [{
|
|
85
|
+
selector: '[hasPermissions]',
|
|
86
|
+
standalone: true
|
|
87
|
+
}]
|
|
88
|
+
}], ctorParameters: () => [{ type: i1.PermissionsService }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }], propDecorators: { hasPermissions: [{
|
|
89
|
+
type: Input,
|
|
90
|
+
args: [{ required: true }]
|
|
91
|
+
}], hasPermissionsKey: [{
|
|
92
|
+
type: Input,
|
|
93
|
+
args: [{ required: true }]
|
|
94
|
+
}], hasPermissionsNewPermissions: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], hasPermissionsIsDomain: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9kaXJlY3RpdmVzL3Blcm1pc3Npb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBUWpELE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsWUFDVSxrQkFBc0MsRUFDdEMsYUFBK0IsRUFDL0IsV0FBaUM7UUFGakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBTm5DLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBTzNCLENBQUM7SUFFSjs7O09BR0c7SUFFSCxJQUErQixjQUFjLENBQUMsT0FBaUI7UUFDN0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUErQixpQkFBaUIsQ0FBQyxHQUFXO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFhLDRCQUE0QixDQUFDLGNBQXdCO1FBQ2hFLElBQUksSUFBSSxDQUFDLGFB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O3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPWiw0QkFBNEI7c0JBQXhDLEtBQUs7Z0JBT08sc0JBQXNCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25zQWN0aW9ucywgVXNlclBlcm1pc3Npb25zRW51bSB9IGZyb20gJy4uL2VudW1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1toYXNQZXJtaXNzaW9uc10nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEhhc1Blcm1pc3Npb25zRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2FjdGlvbnM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2tleTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX25ld1Blcm1pc3Npb25zOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9pc0RvbWFpbjogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBpc1ZpZXdDcmVhdGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogUGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj5cclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqICBtYWtlIHN1cmUgdGhhdCB0aGUga2V5IHZhbHVlIGxvb2tzIGxpa2UgdGhlIFVzZXJQZXJtaXNzaW9uc0VudW0gZW51bVxyXG4gICAqICB1c2FnZTogKnBlcm1pc3Npb25zPVwiW1Blcm1pc3Npb25zQWN0aW9ucy5FRElUXTsga2V5OiBMT09LVVBTXHJcbiAgICovXHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBoYXNQZXJtaXNzaW9ucyhhY3Rpb25zOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHRoaXMuYXJyYXlzQ2hhbmdlZCh0aGlzLl9hY3Rpb25zLCBhY3Rpb25zKSkge1xyXG4gICAgICB0aGlzLl9hY3Rpb25zID0gYWN0aW9ucztcclxuICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgaGFzUGVybWlzc2lvbnNLZXkoa2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLl9rZXkgIT09IGtleSkge1xyXG4gICAgICB0aGlzLl9rZXkgPSBrZXk7XHJcbiAgICAgIHRoaXMudXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGhhc1Blcm1pc3Npb25zTmV3UGVybWlzc2lvbnMobmV3UGVybWlzc2lvbnM6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAodGhpcy5hcnJheXNDaGFuZ2VkKHRoaXMuX25ld1Blcm1pc3Npb25zLCBuZXdQZXJtaXNzaW9ucykpIHtcclxuICAgICAgdGhpcy5fbmV3UGVybWlzc2lvbnMgPSBuZXdQZXJtaXNzaW9ucztcclxuICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgaGFzUGVybWlzc2lvbnNJc0RvbWFpbihpc0RvbWFpbjogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuX2lzRG9tYWluICE9PSBpc0RvbWFpbikge1xyXG4gICAgICB0aGlzLl9pc0RvbWFpbiA9IGlzRG9tYWluO1xyXG4gICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5kb21haW5QZXJtaXNzaW9ucyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuX2lzRG9tYWluKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmlldygpIHtcclxuICAgIGNvbnN0IGNhblNob3cgPSB0aGlzLl9hY3Rpb25zLnNvbWUoYWN0aW9uID0+IHRoaXMuaGFzUGVybWlzc2lvbihhY3Rpb24pKTtcclxuXHJcbiAgICBpZiAoY2FuU2hvdyAmJiAhdGhpcy5pc1ZpZXdDcmVhdGVkKSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICAgIHRoaXMuaXNWaWV3Q3JlYXRlZCA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKCFjYW5TaG93ICYmIHRoaXMuaXNWaWV3Q3JlYXRlZCkge1xyXG4gICAgICB0aGlzLmNsZWFyVmlldygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNQZXJtaXNzaW9uKGFjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5faXNEb21haW4pIHtcclxuICAgICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmNoZWNrRG9tYWluSGFzUGVybWlzc2lvbihcclxuICAgICAgICB0aGlzLl9rZXkgYXMgVXNlclBlcm1pc3Npb25zRW51bSxcclxuICAgICAgICBhY3Rpb24gYXMgUGVybWlzc2lvbnNBY3Rpb25zXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmNoZWNrS2V5SGFzUGVybWlzc2lvbihcclxuICAgICAgdGhpcy5fa2V5IGFzIFVzZXJQZXJtaXNzaW9uc0VudW0sXHJcbiAgICAgIGFjdGlvbiBhcyBQZXJtaXNzaW9uc0FjdGlvbnMsXHJcbiAgICAgIHRoaXMuX25ld1Blcm1pc3Npb25zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclZpZXcoKSB7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgIHRoaXMuaXNWaWV3Q3JlYXRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcnJheXNDaGFuZ2VkKGE/OiBzdHJpbmdbXSwgYj86IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKCFhIHx8ICFiKSByZXR1cm4gdHJ1ZTtcclxuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiB0cnVlO1xyXG4gICAgcmV0dXJuIGEuc29tZSgodiwgaSkgPT4gdiAhPT0gYltpXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './user-permissions.enum';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VzZXItcGVybWlzc2lvbnMuZW51bSc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export var UserPermissionsEnum;
|
|
2
|
+
(function (UserPermissionsEnum) {
|
|
3
|
+
UserPermissionsEnum["BOD"] = "BOD";
|
|
4
|
+
UserPermissionsEnum["BOARD_COMMITTEES"] = "BOARD_COMMITTEES";
|
|
5
|
+
UserPermissionsEnum["BOARD_MEETINGS"] = "BOARD_MEETINGS";
|
|
6
|
+
UserPermissionsEnum["MEETING_INSIDE_THE_BOD"] = "MEETING_INSIDE_THE_BOD";
|
|
7
|
+
UserPermissionsEnum["COMMITTEE"] = "COMMITTEE";
|
|
8
|
+
UserPermissionsEnum["MEETING_INSIDE_THE_COMMITTEE"] = "MEETING_INSIDE_THE_COMMITTEE";
|
|
9
|
+
UserPermissionsEnum["MEETING"] = "MEETING";
|
|
10
|
+
UserPermissionsEnum["DECISION"] = "DECISION";
|
|
11
|
+
UserPermissionsEnum["RECOMMENDATION"] = "RECOMMENDATION";
|
|
12
|
+
UserPermissionsEnum["TASK"] = "TASK";
|
|
13
|
+
UserPermissionsEnum["VOTING"] = "VOTING";
|
|
14
|
+
UserPermissionsEnum["VOTING_SECRETARY_RESULTS"] = "VOTING_SECRETARY_RESULTS";
|
|
15
|
+
UserPermissionsEnum["VOTING_RESULTS"] = "VOTING_RESULTS";
|
|
16
|
+
UserPermissionsEnum["DRAFT_MOM"] = "DRAFT_MOM";
|
|
17
|
+
UserPermissionsEnum["FINAL_MOM"] = "FINAL_MOM";
|
|
18
|
+
UserPermissionsEnum["MOM"] = "MOM";
|
|
19
|
+
UserPermissionsEnum["AGENDA"] = "AGENDA";
|
|
20
|
+
UserPermissionsEnum["ATTENDEES"] = "ATTENDEES";
|
|
21
|
+
UserPermissionsEnum["COMMENT"] = "COMMENT";
|
|
22
|
+
})(UserPermissionsEnum || (UserPermissionsEnum = {}));
|
|
23
|
+
export var PermissionsActions;
|
|
24
|
+
(function (PermissionsActions) {
|
|
25
|
+
PermissionsActions["VIEW"] = "VIEW";
|
|
26
|
+
PermissionsActions["CREATE"] = "CREATE";
|
|
27
|
+
PermissionsActions["EDIT"] = "EDIT";
|
|
28
|
+
PermissionsActions["DELETE"] = "DELETE";
|
|
29
|
+
PermissionsActions["REORDER"] = "REORDER";
|
|
30
|
+
PermissionsActions["DOWNLOAD"] = "DOWNLOAD";
|
|
31
|
+
PermissionsActions["MARK"] = "MARK";
|
|
32
|
+
PermissionsActions["GENERATE"] = "GENERATE";
|
|
33
|
+
PermissionsActions["TERMINATE"] = "TERMINATE";
|
|
34
|
+
PermissionsActions["START"] = "START";
|
|
35
|
+
PermissionsActions["END"] = "END";
|
|
36
|
+
PermissionsActions["ACTIVATE"] = "ACTIVATE";
|
|
37
|
+
})(PermissionsActions || (PermissionsActions = {}));
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJtaXNzaW9ucy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY29yZS9lbnVtcy91c2VyLXBlcm1pc3Npb25zLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBb0JYO0FBcEJELFdBQVksbUJBQW1CO0lBQzdCLGtDQUFXLENBQUE7SUFDWCw0REFBcUMsQ0FBQTtJQUNyQyx3REFBaUMsQ0FBQTtJQUNqQyx3RUFBaUQsQ0FBQTtJQUNqRCw4Q0FBdUIsQ0FBQTtJQUN2QixvRkFBNkQsQ0FBQTtJQUM3RCwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtJQUNyQix3REFBaUMsQ0FBQTtJQUNqQyxvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsNEVBQXFELENBQUE7SUFDckQsd0RBQWlDLENBQUE7SUFDakMsOENBQXVCLENBQUE7SUFDdkIsOENBQXVCLENBQUE7SUFDdkIsa0NBQVcsQ0FBQTtJQUNYLHdDQUFpQixDQUFBO0lBQ2pCLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFwQlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQW9COUI7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFhWDtBQWJELFdBQVksa0JBQWtCO0lBQzVCLG1DQUFhLENBQUE7SUFDYix1Q0FBaUIsQ0FBQTtJQUNqQixtQ0FBYSxDQUFBO0lBQ2IsdUNBQWlCLENBQUE7SUFDakIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsbUNBQWEsQ0FBQTtJQUNiLDJDQUFxQixDQUFBO0lBQ3JCLDZDQUF1QixDQUFBO0lBQ3ZCLHFDQUFlLENBQUE7SUFDZixpQ0FBVyxDQUFBO0lBQ1gsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQWJXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFhN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBVc2VyUGVybWlzc2lvbnNFbnVtIHtcclxuICBCT0QgPSBcIkJPRFwiLFxyXG4gIEJPQVJEX0NPTU1JVFRFRVMgPSBcIkJPQVJEX0NPTU1JVFRFRVNcIixcclxuICBCT0FSRF9NRUVUSU5HUyA9IFwiQk9BUkRfTUVFVElOR1NcIixcclxuICBNRUVUSU5HX0lOU0lERV9USEVfQk9EID0gXCJNRUVUSU5HX0lOU0lERV9USEVfQk9EXCIsXHJcbiAgQ09NTUlUVEVFID0gXCJDT01NSVRURUVcIixcclxuICBNRUVUSU5HX0lOU0lERV9USEVfQ09NTUlUVEVFID0gXCJNRUVUSU5HX0lOU0lERV9USEVfQ09NTUlUVEVFXCIsXHJcbiAgTUVFVElORyA9IFwiTUVFVElOR1wiLFxyXG4gIERFQ0lTSU9OID0gXCJERUNJU0lPTlwiLFxyXG4gIFJFQ09NTUVOREFUSU9OID0gXCJSRUNPTU1FTkRBVElPTlwiLFxyXG4gIFRBU0sgPSBcIlRBU0tcIixcclxuICBWT1RJTkcgPSBcIlZPVElOR1wiLFxyXG4gIFZPVElOR19TRUNSRVRBUllfUkVTVUxUUyA9IFwiVk9USU5HX1NFQ1JFVEFSWV9SRVNVTFRTXCIsXHJcbiAgVk9USU5HX1JFU1VMVFMgPSBcIlZPVElOR19SRVNVTFRTXCIsXHJcbiAgRFJBRlRfTU9NID0gXCJEUkFGVF9NT01cIixcclxuICBGSU5BTF9NT00gPSBcIkZJTkFMX01PTVwiLFxyXG4gIE1PTSA9IFwiTU9NXCIsXHJcbiAgQUdFTkRBID0gXCJBR0VOREFcIixcclxuICBBVFRFTkRFRVMgPSBcIkFUVEVOREVFU1wiLFxyXG4gIENPTU1FTlQgPSBcIkNPTU1FTlRcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uc0FjdGlvbnMge1xyXG4gIFZJRVcgPSBcIlZJRVdcIixcclxuICBDUkVBVEUgPSBcIkNSRUFURVwiLFxyXG4gIEVESVQgPSBcIkVESVRcIixcclxuICBERUxFVEUgPSBcIkRFTEVURVwiLFxyXG4gIFJFT1JERVIgPSBcIlJFT1JERVJcIixcclxuICBET1dOTE9BRCA9IFwiRE9XTkxPQURcIixcclxuICBNQVJLID0gXCJNQVJLXCIsXHJcbiAgR0VORVJBVEUgPSBcIkdFTkVSQVRFXCIsXHJcbiAgVEVSTUlOQVRFID0gXCJURVJNSU5BVEVcIixcclxuICBTVEFSVCA9IFwiU1RBUlRcIixcclxuICBFTkQgPSBcIkVORFwiLFxyXG4gIEFDVElWQVRFID0gXCJBQ1RJVkFURVwiXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { inject } from "@angular/core";
|
|
2
|
+
import { AuthService } from "../services";
|
|
3
|
+
import { CORE_CONFIG } from "../core-config";
|
|
4
|
+
export const authGuard = () => {
|
|
5
|
+
const appConfig = inject(CORE_CONFIG);
|
|
6
|
+
const authService = inject(AuthService);
|
|
7
|
+
const token = authService.getUserToken();
|
|
8
|
+
if (!token) {
|
|
9
|
+
window.location.href = appConfig.loginUrl;
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvcmUvZ3VhcmRzL2F1dGguZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWtCLEdBQUcsRUFBRTtJQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQWEsV0FBVyxDQUFDLENBQUM7SUFDbEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sS0FBSyxHQUFrQixXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFeEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUMxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4gfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7IENPUkVfQ09ORklHLCBDb3JlQ29uZmlnIH0gZnJvbSBcIi4uL2NvcmUtY29uZmlnXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXV0aEd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKCkgPT4ge1xyXG4gIGNvbnN0IGFwcENvbmZpZyA9IGluamVjdDxDb3JlQ29uZmlnPihDT1JFX0NPTkZJRyk7XHJcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG4gIGNvbnN0IHRva2VuOiBzdHJpbmcgfCBudWxsID0gYXV0aFNlcnZpY2UuZ2V0VXNlclRva2VuKCk7XHJcblxyXG4gIGlmICghdG9rZW4pIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXBwQ29uZmlnLmxvZ2luVXJsO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './auth.guard';
|
|
2
|
+
export * from './permissions.guard';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlL2d1YXJkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucy5ndWFyZCc7XHJcbiJdfQ==
|