@cccteam/ccc-lib 0.0.10 → 0.0.11
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/cccteam-ccc-lib-0.0.10.tgz +0 -0
- package/cccteam-ccc-lib-0.0.11.tgz +0 -0
- package/fesm2022/cccteam-ccc-lib.mjs +31 -31
- package/fesm2022/cccteam-ccc-lib.mjs.map +1 -1
- package/package.json +4 -6
- package/esm2022/cccteam-ccc-lib.mjs +0 -5
- package/esm2022/lib/auth/directives/has-permission.directive.mjs +0 -44
- package/esm2022/lib/auth/forms/ccc-field/ccc-field.component.mjs +0 -77
- package/esm2022/lib/auth/forms/form-helpers.mjs +0 -34
- package/esm2022/lib/auth/guards/authentication.guard.mjs +0 -38
- package/esm2022/lib/auth/guards/authorization.guard.mjs +0 -17
- package/esm2022/lib/auth/services/auth.service.mjs +0 -49
- package/esm2022/lib/auth/services/request-options.mjs +0 -12
- package/esm2022/lib/auth/state/auth.actions.mjs +0 -64
- package/esm2022/lib/auth/state/auth.state.mjs +0 -105
- package/esm2022/lib/types/base/tokens.mjs +0 -7
- package/esm2022/lib/types/notification-message.mjs +0 -7
- package/esm2022/lib/types/permissions.mjs +0 -3
- package/esm2022/lib/types/session-info.mjs +0 -2
- package/esm2022/lib/ui/components/alert/alert.component.mjs +0 -41
- package/esm2022/lib/ui/components/sidenav/sidenav.component.mjs +0 -63
- package/esm2022/lib/ui/interceptor/api.interceptor.mjs +0 -43
- package/esm2022/lib/ui/services/notification.service.mjs +0 -50
- package/esm2022/lib/ui/state/core.actions.mjs +0 -49
- package/esm2022/lib/ui/state/core.state.mjs +0 -95
- package/esm2022/public-api.mjs +0 -34
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, DestroyRef, inject, Input } from '@angular/core';
|
|
3
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatExpansionModule } from '@angular/material/expansion';
|
|
6
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
8
|
-
import { RouterModule } from '@angular/router';
|
|
9
|
-
import { Store } from '@ngxs/store';
|
|
10
|
-
import { tap } from 'rxjs';
|
|
11
|
-
import { HasPermissionDirective } from '../../../auth/directives/has-permission.directive';
|
|
12
|
-
import { CoreState } from '../../state/core.state';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/material/icon";
|
|
15
|
-
import * as i2 from "@angular/router";
|
|
16
|
-
import * as i3 from "@angular/common";
|
|
17
|
-
export class SidenavComponent {
|
|
18
|
-
store = inject(Store);
|
|
19
|
-
destroyRef = inject(DestroyRef);
|
|
20
|
-
navGroups;
|
|
21
|
-
currentNav = [];
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
this.store
|
|
24
|
-
.select(CoreState.currentSidenavIdentifier)
|
|
25
|
-
.pipe(tap((identifier) => {
|
|
26
|
-
this.currentNav = this.updateNavItems(identifier);
|
|
27
|
-
}), takeUntilDestroyed(this.destroyRef))
|
|
28
|
-
.subscribe();
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Updates the currentNav based on the identifier
|
|
32
|
-
* @param identifier
|
|
33
|
-
* @returns NavItem[]
|
|
34
|
-
* @memberof SidenavComponent
|
|
35
|
-
*/
|
|
36
|
-
updateNavItems(identifier) {
|
|
37
|
-
if (!this.navGroups) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
if (!this.navGroups[identifier]) {
|
|
41
|
-
// pick the first one if the identifier is not found so we don't break the UI
|
|
42
|
-
identifier = Object.keys(this.navGroups)[0];
|
|
43
|
-
}
|
|
44
|
-
return this.navGroups[identifier];
|
|
45
|
-
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: SidenavComponent, isStandalone: true, selector: "ccc-sidenav", inputs: { navGroups: "navGroups" }, ngImport: i0, template: "<div class=\"nav-container\">\n <nav>\n @for (navItem of currentNav; track navItem.label) {\n <ng-container *ngTemplateOutlet=\"typeRendererTemplate; context: { navItem: navItem }\"></ng-container>\n }\n </nav>\n</div>\n<ng-template #typeRendererTemplate let-navItem=\"navItem\">\n @switch (navItem.type) {\n @case ('header') {\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ navItem: navItem }\"></ng-container>\n }\n @case ('link') {\n <ng-container [ngTemplateOutlet]=\"linkTemplate\" [ngTemplateOutletContext]=\"{ navItem: navItem }\"></ng-container>\n }\n @case ('expandable') {\n <ng-container\n [ngTemplateOutlet]=\"expandableTemplate\"\n [ngTemplateOutletContext]=\"{ navItem: navItem }\"></ng-container>\n }\n }\n</ng-template>\n<ng-template #headerTemplate let-navItem=\"navItem\">\n <div class=\"link-header\">{{ navItem.label }}</div>\n</ng-template>\n<ng-template #linkTemplate let-navItem=\"navItem\">\n <a [routerLink]=\"navItem.routerLink\" *cccHasPermission=\"navItem.permission\">\n <div class=\"nav-item\" routerLinkActive=\"active-link\">\n <div class=\"link-button\">\n <div class=\"icon\">\n <mat-icon class=\"material-icons-outlined\" [inline]=\"true\">\n {{ navItem.icon }}\n </mat-icon>\n </div>\n <div class=\"text\">\n {{ navItem.label | titlecase }}\n </div>\n </div>\n </div>\n </a>\n</ng-template>\n<ng-template #expandableTemplate let-navItem=\"navItem\">\n <div class=\"nav-item\" aria-hidden=\"true\" (click)=\"navItem.isExpanded = !navItem.isExpanded\">\n <div class=\"link-button\">\n <div class=\"icon\">\n <mat-icon class=\"material-icons-outlined\" [inline]=\"true\">\n {{ navItem.isExpanded ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n <div class=\"text\">{{ navItem.label }}</div>\n </div>\n </div>\n @if (navItem.isExpanded) {\n <div class=\"expandable-links\">\n @for (navItemChild of navItem.children; track navItemChild) {\n <ng-container *ngTemplateOutlet=\"typeRendererTemplate; context: { navItem: navItemChild }\"> </ng-container>\n }\n </div>\n }\n</ng-template>\n", styles: [".nav-container{padding:0;height:100%}nav{max-width:100%;margin:0 10px}.nav-item{width:100%;height:48px;font-size:18px;display:flex;flex-direction:column;justify-content:center;color:#003b49;padding:0 15px;position:relative}.nav-item:hover{background-color:#0000000a;transition:background-color .1s ease}.nav-item:active{background-color:#0000001a;transition:background-color .1s ease}.link-header{color:#003b49;text-transform:uppercase;font-weight:700;font-size:12px;margin:20px 0 0 5px}.link-button{display:flex;flex-direction:row;width:100%}.link-button .icon{min-width:20px;margin-right:10px;display:flex;flex-direction:column;justify-content:center}.link-button .text{margin-right:10px;text-align:left;display:flex;flex-direction:row;justify-content:left;text-decoration:capitalize}.expandable-links{display:flex;flex-direction:column;width:100%;padding-left:30px}a:active,a:link,a:visited{color:#003b49!important}a{text-decoration:none}.active-link:before{content:\"\";position:absolute;left:3px;width:5px;height:38px;background-color:#003b49}.active-link{background-color:#0000000a;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "directive", type: HasPermissionDirective, selector: "[cccHasPermission]", inputs: ["cccHasPermission"] }] });
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
50
|
-
type: Component,
|
|
51
|
-
args: [{ selector: 'ccc-sidenav', standalone: true, imports: [
|
|
52
|
-
MatIconModule,
|
|
53
|
-
RouterModule,
|
|
54
|
-
CommonModule,
|
|
55
|
-
MatExpansionModule,
|
|
56
|
-
MatButtonModule,
|
|
57
|
-
MatSidenavModule,
|
|
58
|
-
HasPermissionDirective,
|
|
59
|
-
], template: "<div class=\"nav-container\">\n <nav>\n @for (navItem of currentNav; track navItem.label) {\n <ng-container *ngTemplateOutlet=\"typeRendererTemplate; context: { navItem: navItem }\"></ng-container>\n }\n </nav>\n</div>\n<ng-template #typeRendererTemplate let-navItem=\"navItem\">\n @switch (navItem.type) {\n @case ('header') {\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ navItem: navItem }\"></ng-container>\n }\n @case ('link') {\n <ng-container [ngTemplateOutlet]=\"linkTemplate\" [ngTemplateOutletContext]=\"{ navItem: navItem }\"></ng-container>\n }\n @case ('expandable') {\n <ng-container\n [ngTemplateOutlet]=\"expandableTemplate\"\n [ngTemplateOutletContext]=\"{ navItem: navItem }\"></ng-container>\n }\n }\n</ng-template>\n<ng-template #headerTemplate let-navItem=\"navItem\">\n <div class=\"link-header\">{{ navItem.label }}</div>\n</ng-template>\n<ng-template #linkTemplate let-navItem=\"navItem\">\n <a [routerLink]=\"navItem.routerLink\" *cccHasPermission=\"navItem.permission\">\n <div class=\"nav-item\" routerLinkActive=\"active-link\">\n <div class=\"link-button\">\n <div class=\"icon\">\n <mat-icon class=\"material-icons-outlined\" [inline]=\"true\">\n {{ navItem.icon }}\n </mat-icon>\n </div>\n <div class=\"text\">\n {{ navItem.label | titlecase }}\n </div>\n </div>\n </div>\n </a>\n</ng-template>\n<ng-template #expandableTemplate let-navItem=\"navItem\">\n <div class=\"nav-item\" aria-hidden=\"true\" (click)=\"navItem.isExpanded = !navItem.isExpanded\">\n <div class=\"link-button\">\n <div class=\"icon\">\n <mat-icon class=\"material-icons-outlined\" [inline]=\"true\">\n {{ navItem.isExpanded ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </div>\n <div class=\"text\">{{ navItem.label }}</div>\n </div>\n </div>\n @if (navItem.isExpanded) {\n <div class=\"expandable-links\">\n @for (navItemChild of navItem.children; track navItemChild) {\n <ng-container *ngTemplateOutlet=\"typeRendererTemplate; context: { navItem: navItemChild }\"> </ng-container>\n }\n </div>\n }\n</ng-template>\n", styles: [".nav-container{padding:0;height:100%}nav{max-width:100%;margin:0 10px}.nav-item{width:100%;height:48px;font-size:18px;display:flex;flex-direction:column;justify-content:center;color:#003b49;padding:0 15px;position:relative}.nav-item:hover{background-color:#0000000a;transition:background-color .1s ease}.nav-item:active{background-color:#0000001a;transition:background-color .1s ease}.link-header{color:#003b49;text-transform:uppercase;font-weight:700;font-size:12px;margin:20px 0 0 5px}.link-button{display:flex;flex-direction:row;width:100%}.link-button .icon{min-width:20px;margin-right:10px;display:flex;flex-direction:column;justify-content:center}.link-button .text{margin-right:10px;text-align:left;display:flex;flex-direction:row;justify-content:left;text-decoration:capitalize}.expandable-links{display:flex;flex-direction:column;width:100%;padding-left:30px}a:active,a:link,a:visited{color:#003b49!important}a{text-decoration:none}.active-link:before{content:\"\";position:absolute;left:3px;width:5px;height:38px;background-color:#003b49}.active-link{background-color:#0000000a;position:relative}\n"] }]
|
|
60
|
-
}], propDecorators: { navGroups: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2MtbGliL3NyYy9saWIvdWkvY29tcG9uZW50cy9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3VpL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUzRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBOEJuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ25CLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUvQixTQUFTLENBQWE7SUFDL0IsVUFBVSxHQUFjLEVBQUUsQ0FBQztJQUUzQixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUs7YUFDUCxNQUFNLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDO2FBQzFDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLEVBQ0Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxVQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsNkVBQTZFO1lBQzdFLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7dUdBbENVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLDJHQzNDN0IsNHVFQTREQSw2b0NEMUJJLGFBQWEsbUxBQ2IsWUFBWSxnZkFDWixZQUFZLGtRQUNaLGtCQUFrQiw4QkFDbEIsZUFBZSw4QkFDZixnQkFBZ0IsK0JBQ2hCLHNCQUFzQjs7MkZBR2IsZ0JBQWdCO2tCQWY1QixTQUFTOytCQUNFLGFBQWEsY0FHWCxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3FCQUN2Qjs4QkFNUSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIYXNQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC9kaXJlY3RpdmVzL2hhcy1wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2NvcGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBDb3JlU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9jb3JlLnN0YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBOYXZJdGVtIHtcbiAgdHlwZTogJ2xpbmsnIHwgJ2hlYWRlcicgfCAnZXhwYW5kYWJsZSc7XG4gIHJvdXRlckxpbms/OiBzdHJpbmdbXTtcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgcGVybWlzc2lvbj86IFBlcm1pc3Npb25TY29wZTtcbiAgY2hpbGRyZW4/OiBOYXZJdGVtW107XG4gIGlzRXhwYW5kZWQ/OiBib29sZWFuO1xuICBhdHRlbnRpb25Db3VudD86IE9ic2VydmFibGU8bnVtYmVyPjtcbn1cblxuZXhwb3J0IHR5cGUgTmF2R3JvdXBzID0gUmVjb3JkPHN0cmluZywgTmF2SXRlbVtdPjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NjLXNpZGVuYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGVuYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgSGFzUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgc3RvcmUgPSBpbmplY3QoU3RvcmUpO1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgQElucHV0KCkgbmF2R3JvdXBzPzogTmF2R3JvdXBzO1xuICBjdXJyZW50TmF2OiBOYXZJdGVtW10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvcmVTdGF0ZS5jdXJyZW50U2lkZW5hdklkZW50aWZpZXIpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChpZGVudGlmaWVyKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50TmF2ID0gdGhpcy51cGRhdGVOYXZJdGVtcyhpZGVudGlmaWVyKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnROYXYgYmFzZWQgb24gdGhlIGlkZW50aWZpZXJcbiAgICogQHBhcmFtIGlkZW50aWZpZXJcbiAgICogQHJldHVybnMgTmF2SXRlbVtdXG4gICAqIEBtZW1iZXJvZiBTaWRlbmF2Q29tcG9uZW50XG4gICAqL1xuICB1cGRhdGVOYXZJdGVtcyhpZGVudGlmaWVyOiBzdHJpbmcpOiBOYXZJdGVtW10ge1xuICAgIGlmICghdGhpcy5uYXZHcm91cHMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLm5hdkdyb3Vwc1tpZGVudGlmaWVyXSkge1xuICAgICAgLy8gcGljayB0aGUgZmlyc3Qgb25lIGlmIHRoZSBpZGVudGlmaWVyIGlzIG5vdCBmb3VuZCBzbyB3ZSBkb24ndCBicmVhayB0aGUgVUlcbiAgICAgIGlkZW50aWZpZXIgPSBPYmplY3Qua2V5cyh0aGlzLm5hdkdyb3VwcylbMF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hdkdyb3Vwc1tpZGVudGlmaWVyXTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm5hdi1jb250YWluZXJcIj5cbiAgPG5hdj5cbiAgICBAZm9yIChuYXZJdGVtIG9mIGN1cnJlbnROYXY7IHRyYWNrIG5hdkl0ZW0ubGFiZWwpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0eXBlUmVuZGVyZXJUZW1wbGF0ZTsgY29udGV4dDogeyBuYXZJdGVtOiBuYXZJdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwvbmF2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3R5cGVSZW5kZXJlclRlbXBsYXRlIGxldC1uYXZJdGVtPVwibmF2SXRlbVwiPlxuICBAc3dpdGNoIChuYXZJdGVtLnR5cGUpIHtcbiAgICBAY2FzZSAoJ2hlYWRlcicpIHtcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBuYXZJdGVtOiBuYXZJdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGNhc2UgKCdsaW5rJykge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaW5rVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBuYXZJdGVtOiBuYXZJdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGNhc2UgKCdleHBhbmRhYmxlJykge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJleHBhbmRhYmxlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBuYXZJdGVtOiBuYXZJdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlIGxldC1uYXZJdGVtPVwibmF2SXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwibGluay1oZWFkZXJcIj57eyBuYXZJdGVtLmxhYmVsIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNsaW5rVGVtcGxhdGUgbGV0LW5hdkl0ZW09XCJuYXZJdGVtXCI+XG4gIDxhIFtyb3V0ZXJMaW5rXT1cIm5hdkl0ZW0ucm91dGVyTGlua1wiICpjY2NIYXNQZXJtaXNzaW9uPVwibmF2SXRlbS5wZXJtaXNzaW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1saW5rXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGluay1idXR0b25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiIFtpbmxpbmVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAge3sgbmF2SXRlbS5pY29uIH19XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgICAge3sgbmF2SXRlbS5sYWJlbCB8IHRpdGxlY2FzZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNleHBhbmRhYmxlVGVtcGxhdGUgbGV0LW5hdkl0ZW09XCJuYXZJdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJuYXYtaXRlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIChjbGljayk9XCJuYXZJdGVtLmlzRXhwYW5kZWQgPSAhbmF2SXRlbS5pc0V4cGFuZGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cImxpbmstYnV0dG9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiIFtpbmxpbmVdPVwidHJ1ZVwiPlxuICAgICAgICAgIHt7IG5hdkl0ZW0uaXNFeHBhbmRlZCA/ICdleHBhbmRfbGVzcycgOiAnZXhwYW5kX21vcmUnIH19XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+e3sgbmF2SXRlbS5sYWJlbCB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChuYXZJdGVtLmlzRXhwYW5kZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXhwYW5kYWJsZS1saW5rc1wiPlxuICAgICAgQGZvciAobmF2SXRlbUNoaWxkIG9mIG5hdkl0ZW0uY2hpbGRyZW47IHRyYWNrIG5hdkl0ZW1DaGlsZCkge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHlwZVJlbmRlcmVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbmF2SXRlbTogbmF2SXRlbUNoaWxkIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, NgZone } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { Store } from '@ngxs/store';
|
|
4
|
-
import { catchError, finalize, throwError } from 'rxjs';
|
|
5
|
-
import { CUSTOM_HTTP_REQUEST_OPTIONS } from '../../auth/services/request-options';
|
|
6
|
-
import { BASE_URL } from '../../types/base/tokens';
|
|
7
|
-
import { AlertLevel } from '../../types/notification-message';
|
|
8
|
-
import { ApiInterceptorAction } from '../state/core.actions';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class ApiInterceptor {
|
|
11
|
-
store = inject(Store);
|
|
12
|
-
router = inject(Router);
|
|
13
|
-
ngZone = inject(NgZone);
|
|
14
|
-
baseUrl = inject(BASE_URL);
|
|
15
|
-
intercept(request, next) {
|
|
16
|
-
this.store.dispatch(new ApiInterceptorAction.BeginActivity(request.method + ' ' + request.url));
|
|
17
|
-
return next.handle(request).pipe(catchError((error) => {
|
|
18
|
-
if (error.status === 401) {
|
|
19
|
-
this.ngZone.run(() => {
|
|
20
|
-
this.store.dispatch(new ApiInterceptorAction.SetRedirectUrl(this.baseUrl + this.router.url));
|
|
21
|
-
this.router.navigate(['/login']);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
if (!request.context.get(CUSTOM_HTTP_REQUEST_OPTIONS).suppressGlobalError) {
|
|
25
|
-
const message = error.error?.message ?? error.message ?? error.error;
|
|
26
|
-
this.store.dispatch(new ApiInterceptorAction.PublishError({
|
|
27
|
-
message: message,
|
|
28
|
-
level: AlertLevel.ERROR,
|
|
29
|
-
link: '',
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
return throwError(() => error);
|
|
33
|
-
}), finalize(() => {
|
|
34
|
-
this.store.dispatch(new ApiInterceptorAction.EndActivity(request.method + ' ' + request.url));
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiInterceptor });
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiInterceptor, decorators: [{
|
|
41
|
-
type: Injectable
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3VpL2ludGVyY2VwdG9yL2FwaS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzdELE1BQU0sT0FBTyxjQUFjO0lBQ2pCLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbkMsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUIsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBa0MsRUFBRTtZQUN0RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzdGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDMUUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxPQUFPO29CQUNoQixLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7b0JBQ3ZCLElBQUksRUFBRSxFQUFFO2lCQUNULENBQUMsQ0FDSCxDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt1R0FsQ1UsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENVU1RPTV9IVFRQX1JFUVVFU1RfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2F1dGgvc2VydmljZXMvcmVxdWVzdC1vcHRpb25zJztcbmltcG9ydCB7IEJBU0VfVVJMIH0gZnJvbSAnLi4vLi4vdHlwZXMvYmFzZS90b2tlbnMnO1xuaW1wb3J0IHsgQWxlcnRMZXZlbCB9IGZyb20gJy4uLy4uL3R5cGVzL25vdGlmaWNhdGlvbi1tZXNzYWdlJztcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yQWN0aW9uIH0gZnJvbSAnLi4vc3RhdGUvY29yZS5hY3Rpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwaUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSBzdG9yZSA9IGluamVjdChTdG9yZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgYmFzZVVybCA9IGluamVjdChCQVNFX1VSTCk7XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQXBpSW50ZXJjZXB0b3JBY3Rpb24uQmVnaW5BY3Rpdml0eShyZXF1ZXN0Lm1ldGhvZCArICcgJyArIHJlcXVlc3QudXJsKSk7XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBBcGlJbnRlcmNlcHRvckFjdGlvbi5TZXRSZWRpcmVjdFVybCh0aGlzLmJhc2VVcmwgKyB0aGlzLnJvdXRlci51cmwpKTtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVxdWVzdC5jb250ZXh0LmdldChDVVNUT01fSFRUUF9SRVFVRVNUX09QVElPTlMpLnN1cHByZXNzR2xvYmFsRXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgPz8gZXJyb3IubWVzc2FnZSA/PyBlcnJvci5lcnJvcjtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwaUludGVyY2VwdG9yQWN0aW9uLlB1Ymxpc2hFcnJvcih7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgIGxldmVsOiBBbGVydExldmVsLkVSUk9SLFxuICAgICAgICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQXBpSW50ZXJjZXB0b3JBY3Rpb24uRW5kQWN0aXZpdHkocmVxdWVzdC5tZXRob2QgKyAnICcgKyByZXF1ZXN0LnVybCkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Injectable, signal } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NotificationService {
|
|
4
|
-
notificationId = 0;
|
|
5
|
-
_notifications = signal([]);
|
|
6
|
-
notifications = this._notifications.asReadonly();
|
|
7
|
-
/**
|
|
8
|
-
* Adds a new global notification.
|
|
9
|
-
* @param notification The notification message to add.
|
|
10
|
-
* @returns The unique ID assigned to the notification.
|
|
11
|
-
*/
|
|
12
|
-
addGlobalNotification(notification) {
|
|
13
|
-
const newNotification = {
|
|
14
|
-
...notification,
|
|
15
|
-
id: this.notificationId++,
|
|
16
|
-
};
|
|
17
|
-
this._notifications.update((current) => [...current, newNotification]);
|
|
18
|
-
return newNotification.id;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Dismisses a global notification by its ID.
|
|
22
|
-
* @param notificationId The ID of the notification to dismiss.
|
|
23
|
-
*/
|
|
24
|
-
dismissGlobalNotificationById(notificationId) {
|
|
25
|
-
this._notifications.update((current) => current.filter((notification) => notification.id !== notificationId));
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Dismisses a specific global notification.
|
|
29
|
-
* @param notification The notification to dismiss.
|
|
30
|
-
*/
|
|
31
|
-
dismissGlobalNotification(notification) {
|
|
32
|
-
this.dismissGlobalNotificationById(notification.id);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Updates an existing notification.
|
|
36
|
-
* @param updatedNotification The notification with updated information.
|
|
37
|
-
*/
|
|
38
|
-
updateNotification(updatedNotification) {
|
|
39
|
-
this._notifications.update((current) => current.map((notification) => notification.id === updatedNotification.id ? { ...notification, ...updatedNotification } : notification));
|
|
40
|
-
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NotificationService, providedIn: 'root' });
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NotificationService, decorators: [{
|
|
45
|
-
type: Injectable,
|
|
46
|
-
args: [{
|
|
47
|
-
providedIn: 'root',
|
|
48
|
-
}]
|
|
49
|
-
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2MtbGliL3NyYy9saWIvdWkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQixjQUFjLEdBQUcsTUFBTSxDQUF3QixFQUFFLENBQUMsQ0FBQztJQUMzRCxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVqRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsWUFBdUM7UUFDM0QsTUFBTSxlQUFlLEdBQXdCO1lBQzNDLEdBQUcsWUFBWTtZQUNmLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1NBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sZUFBZSxDQUFDLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsNkJBQTZCLENBQUMsY0FBc0I7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQXlCLENBQUMsWUFBaUM7UUFDekQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCLENBQUMsbUJBQXdDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQzNCLFlBQVksQ0FBQyxFQUFFLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUN4RyxDQUNGLENBQUM7SUFDSixDQUFDO3VHQTdDVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDcmVhdGVOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uSWQgPSAwO1xuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gc2lnbmFsPE5vdGlmaWNhdGlvbk1lc3NhZ2VbXT4oW10pO1xuICBub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucy5hc1JlYWRvbmx5KCk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgZ2xvYmFsIG5vdGlmaWNhdGlvbi5cbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvbiBUaGUgbm90aWZpY2F0aW9uIG1lc3NhZ2UgdG8gYWRkLlxuICAgKiBAcmV0dXJucyBUaGUgdW5pcXVlIElEIGFzc2lnbmVkIHRvIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICBhZGRHbG9iYWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBDcmVhdGVOb3RpZmljYXRpb25NZXNzYWdlKTogbnVtYmVyIHtcbiAgICBjb25zdCBuZXdOb3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSB7XG4gICAgICAuLi5ub3RpZmljYXRpb24sXG4gICAgICBpZDogdGhpcy5ub3RpZmljYXRpb25JZCsrLFxuICAgIH07XG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucy51cGRhdGUoKGN1cnJlbnQpID0+IFsuLi5jdXJyZW50LCBuZXdOb3RpZmljYXRpb25dKTtcbiAgICByZXR1cm4gbmV3Tm90aWZpY2F0aW9uLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3NlcyBhIGdsb2JhbCBub3RpZmljYXRpb24gYnkgaXRzIElELlxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uSWQgVGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gZGlzbWlzcy5cbiAgICovXG4gIGRpc21pc3NHbG9iYWxOb3RpZmljYXRpb25CeUlkKG5vdGlmaWNhdGlvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zLnVwZGF0ZSgoY3VycmVudCkgPT4gY3VycmVudC5maWx0ZXIoKG5vdGlmaWNhdGlvbikgPT4gbm90aWZpY2F0aW9uLmlkICE9PSBub3RpZmljYXRpb25JZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3NlcyBhIHNwZWNpZmljIGdsb2JhbCBub3RpZmljYXRpb24uXG4gICAqIEBwYXJhbSBub3RpZmljYXRpb24gVGhlIG5vdGlmaWNhdGlvbiB0byBkaXNtaXNzLlxuICAgKi9cbiAgZGlzbWlzc0dsb2JhbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3NHbG9iYWxOb3RpZmljYXRpb25CeUlkKG5vdGlmaWNhdGlvbi5pZCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBub3RpZmljYXRpb24uXG4gICAqIEBwYXJhbSB1cGRhdGVkTm90aWZpY2F0aW9uIFRoZSBub3RpZmljYXRpb24gd2l0aCB1cGRhdGVkIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgdXBkYXRlTm90aWZpY2F0aW9uKHVwZGF0ZWROb3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zLnVwZGF0ZSgoY3VycmVudCkgPT5cbiAgICAgIGN1cnJlbnQubWFwKChub3RpZmljYXRpb24pID0+XG4gICAgICAgIG5vdGlmaWNhdGlvbi5pZCA9PT0gdXBkYXRlZE5vdGlmaWNhdGlvbi5pZCA/IHsgLi4ubm90aWZpY2F0aW9uLCAuLi51cGRhdGVkTm90aWZpY2F0aW9uIH0gOiBub3RpZmljYXRpb24sXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-namespace */
|
|
2
|
-
// no-namespace rule is disabled because action hygiene prevents import pollution
|
|
3
|
-
export var ApiInterceptorAction;
|
|
4
|
-
(function (ApiInterceptorAction) {
|
|
5
|
-
class BeginActivity {
|
|
6
|
-
process;
|
|
7
|
-
static type = '[ApiInterceptor] Add Loading Activity';
|
|
8
|
-
constructor(process) {
|
|
9
|
-
this.process = process;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
ApiInterceptorAction.BeginActivity = BeginActivity;
|
|
13
|
-
class EndActivity {
|
|
14
|
-
process;
|
|
15
|
-
static type = '[ApiInterceptor] Remove Loading Activity';
|
|
16
|
-
constructor(process) {
|
|
17
|
-
this.process = process;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
ApiInterceptorAction.EndActivity = EndActivity;
|
|
21
|
-
class PublishError {
|
|
22
|
-
message;
|
|
23
|
-
static type = '[ApiInterceptor] Publish Error';
|
|
24
|
-
constructor(message) {
|
|
25
|
-
this.message = message;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
ApiInterceptorAction.PublishError = PublishError;
|
|
29
|
-
class SetRedirectUrl {
|
|
30
|
-
redirectUrl;
|
|
31
|
-
static type = '[ApiInterceptor] Set Redirect Url';
|
|
32
|
-
constructor(redirectUrl) {
|
|
33
|
-
this.redirectUrl = redirectUrl;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
ApiInterceptorAction.SetRedirectUrl = SetRedirectUrl;
|
|
37
|
-
})(ApiInterceptorAction || (ApiInterceptorAction = {}));
|
|
38
|
-
export var HeaderAction;
|
|
39
|
-
(function (HeaderAction) {
|
|
40
|
-
class ToggleSidenav {
|
|
41
|
-
static type = '[Header] Toggle Sidenav';
|
|
42
|
-
}
|
|
43
|
-
HeaderAction.ToggleSidenav = ToggleSidenav;
|
|
44
|
-
class Logout {
|
|
45
|
-
static type = '[Header] User Logout';
|
|
46
|
-
}
|
|
47
|
-
HeaderAction.Logout = Logout;
|
|
48
|
-
})(HeaderAction || (HeaderAction = {}));
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3VpL3N0YXRlL2NvcmUuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsaUZBQWlGO0FBSWpGLE1BQU0sS0FBVyxvQkFBb0IsQ0FpQnBDO0FBakJELFdBQWlCLG9CQUFvQjtJQUNuQyxNQUFhLGFBQWE7UUFFTDtRQURuQixNQUFNLENBQVUsSUFBSSxHQUFHLHVDQUF1QyxDQUFDO1FBQy9ELFlBQW1CLE9BQWU7WUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQUcsQ0FBQzs7SUFGM0Isa0NBQWEsZ0JBR3pCLENBQUE7SUFDRCxNQUFhLFdBQVc7UUFFSDtRQURuQixNQUFNLENBQVUsSUFBSSxHQUFHLDBDQUEwQyxDQUFDO1FBQ2xFLFlBQW1CLE9BQWU7WUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQUcsQ0FBQzs7SUFGM0IsZ0NBQVcsY0FHdkIsQ0FBQTtJQUNELE1BQWEsWUFBWTtRQUVKO1FBRG5CLE1BQU0sQ0FBVSxJQUFJLEdBQUcsZ0NBQWdDLENBQUM7UUFDeEQsWUFBbUIsT0FBa0M7WUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFBRyxDQUFDOztJQUY5QyxpQ0FBWSxlQUd4QixDQUFBO0lBQ0QsTUFBYSxjQUFjO1FBRU47UUFEbkIsTUFBTSxDQUFVLElBQUksR0FBRyxtQ0FBbUMsQ0FBQztRQUMzRCxZQUFtQixXQUFtQjtZQUFuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFHLENBQUM7O0lBRi9CLG1DQUFjLGlCQUcxQixDQUFBO0FBQ0gsQ0FBQyxFQWpCZ0Isb0JBQW9CLEtBQXBCLG9CQUFvQixRQWlCcEM7QUFFRCxNQUFNLEtBQVcsWUFBWSxDQVE1QjtBQVJELFdBQWlCLFlBQVk7SUFDM0IsTUFBYSxhQUFhO1FBQ3hCLE1BQU0sQ0FBVSxJQUFJLEdBQUcseUJBQXlCLENBQUM7O0lBRHRDLDBCQUFhLGdCQUV6QixDQUFBO0lBRUQsTUFBYSxNQUFNO1FBQ2pCLE1BQU0sQ0FBVSxJQUFJLEdBQUcsc0JBQXNCLENBQUM7O0lBRG5DLG1CQUFNLFNBRWxCLENBQUE7QUFDSCxDQUFDLEVBUmdCLFlBQVksS0FBWixZQUFZLFFBUTVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuLy8gbm8tbmFtZXNwYWNlIHJ1bGUgaXMgZGlzYWJsZWQgYmVjYXVzZSBhY3Rpb24gaHlnaWVuZSBwcmV2ZW50cyBpbXBvcnQgcG9sbHV0aW9uXG5cbmltcG9ydCB7IENyZWF0ZU5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9ub3RpZmljYXRpb24tbWVzc2FnZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQXBpSW50ZXJjZXB0b3JBY3Rpb24ge1xuICBleHBvcnQgY2xhc3MgQmVnaW5BY3Rpdml0eSB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0FwaUludGVyY2VwdG9yXSBBZGQgTG9hZGluZyBBY3Rpdml0eSc7XG4gICAgY29uc3RydWN0b3IocHVibGljIHByb2Nlc3M6IHN0cmluZykge31cbiAgfVxuICBleHBvcnQgY2xhc3MgRW5kQWN0aXZpdHkge1xuICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tBcGlJbnRlcmNlcHRvcl0gUmVtb3ZlIExvYWRpbmcgQWN0aXZpdHknO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9jZXNzOiBzdHJpbmcpIHt9XG4gIH1cbiAgZXhwb3J0IGNsYXNzIFB1Ymxpc2hFcnJvciB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0FwaUludGVyY2VwdG9yXSBQdWJsaXNoIEVycm9yJztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVzc2FnZTogQ3JlYXRlTm90aWZpY2F0aW9uTWVzc2FnZSkge31cbiAgfVxuICBleHBvcnQgY2xhc3MgU2V0UmVkaXJlY3RVcmwge1xuICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tBcGlJbnRlcmNlcHRvcl0gU2V0IFJlZGlyZWN0IFVybCc7XG4gICAgY29uc3RydWN0b3IocHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmcpIHt9XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBIZWFkZXJBY3Rpb24ge1xuICBleHBvcnQgY2xhc3MgVG9nZ2xlU2lkZW5hdiB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0hlYWRlcl0gVG9nZ2xlIFNpZGVuYXYnO1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIExvZ291dCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0hlYWRlcl0gVXNlciBMb2dvdXQnO1xuICB9XG59XG4iXX0=
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable, inject } from '@angular/core';
|
|
3
|
-
import { Action, Selector, State } from '@ngxs/store';
|
|
4
|
-
import { patch } from '@ngxs/store/operators';
|
|
5
|
-
import { AppAction, LoginAction } from '../../auth/state/auth.actions';
|
|
6
|
-
import { NotificationService } from '../services/notification.service';
|
|
7
|
-
import { ApiInterceptorAction, HeaderAction } from './core.actions';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
const initState = {
|
|
10
|
-
loading: [],
|
|
11
|
-
sidenavOpened: true,
|
|
12
|
-
currentSidenavIdentifier: '',
|
|
13
|
-
};
|
|
14
|
-
let CoreState = class CoreState {
|
|
15
|
-
notifications = inject(NotificationService);
|
|
16
|
-
static sidenavOpened(state) {
|
|
17
|
-
return state?.sidenavOpened;
|
|
18
|
-
}
|
|
19
|
-
static isLoading(state) {
|
|
20
|
-
return state.loading.length > 0;
|
|
21
|
-
}
|
|
22
|
-
static currentSidenavIdentifier(state) {
|
|
23
|
-
return state.currentSidenavIdentifier;
|
|
24
|
-
}
|
|
25
|
-
setNavIdentifier(ctx, action) {
|
|
26
|
-
ctx.setState(patch({
|
|
27
|
-
currentSidenavIdentifier: action.identifier,
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
30
|
-
publishError(ctx, action) {
|
|
31
|
-
this.notifications.addGlobalNotification(action.message);
|
|
32
|
-
}
|
|
33
|
-
beginActivity(ctx, action) {
|
|
34
|
-
const state = ctx.getState();
|
|
35
|
-
ctx.patchState({
|
|
36
|
-
loading: [action.process, ...state.loading],
|
|
37
|
-
});
|
|
38
|
-
return ctx.getState();
|
|
39
|
-
}
|
|
40
|
-
endActivity(ctx, action) {
|
|
41
|
-
const loading = ctx.getState().loading;
|
|
42
|
-
// There can be multiple activities running with the same process signature
|
|
43
|
-
const index = loading.findIndex((activity) => activity === action.process);
|
|
44
|
-
if (index !== -1) {
|
|
45
|
-
const newLoading = [...loading.slice(0, index), ...loading.slice(index + 1)];
|
|
46
|
-
ctx.patchState({
|
|
47
|
-
loading: newLoading,
|
|
48
|
-
});
|
|
49
|
-
return ctx.getState();
|
|
50
|
-
}
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
toggleSidenav(ctx) {
|
|
54
|
-
ctx.setState(patch({
|
|
55
|
-
sidenavOpened: !ctx.getState().sidenavOpened,
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CoreState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CoreState });
|
|
60
|
-
};
|
|
61
|
-
__decorate([
|
|
62
|
-
Action([AppAction.SetNavIdentifier])
|
|
63
|
-
], CoreState.prototype, "setNavIdentifier", null);
|
|
64
|
-
__decorate([
|
|
65
|
-
Action([ApiInterceptorAction.PublishError, LoginAction.PublishError])
|
|
66
|
-
], CoreState.prototype, "publishError", null);
|
|
67
|
-
__decorate([
|
|
68
|
-
Action([ApiInterceptorAction.BeginActivity])
|
|
69
|
-
], CoreState.prototype, "beginActivity", null);
|
|
70
|
-
__decorate([
|
|
71
|
-
Action([ApiInterceptorAction.EndActivity])
|
|
72
|
-
], CoreState.prototype, "endActivity", null);
|
|
73
|
-
__decorate([
|
|
74
|
-
Action([HeaderAction.ToggleSidenav])
|
|
75
|
-
], CoreState.prototype, "toggleSidenav", null);
|
|
76
|
-
__decorate([
|
|
77
|
-
Selector()
|
|
78
|
-
], CoreState, "sidenavOpened", null);
|
|
79
|
-
__decorate([
|
|
80
|
-
Selector()
|
|
81
|
-
], CoreState, "isLoading", null);
|
|
82
|
-
__decorate([
|
|
83
|
-
Selector()
|
|
84
|
-
], CoreState, "currentSidenavIdentifier", null);
|
|
85
|
-
CoreState = __decorate([
|
|
86
|
-
State({
|
|
87
|
-
name: 'coreState',
|
|
88
|
-
defaults: initState,
|
|
89
|
-
})
|
|
90
|
-
], CoreState);
|
|
91
|
-
export { CoreState };
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CoreState, decorators: [{
|
|
93
|
-
type: Injectable
|
|
94
|
-
}], propDecorators: { setNavIdentifier: [], publishError: [], beginActivity: [], endActivity: [], toggleSidenav: [] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjYy1saWIvc3JjL2xpYi91aS9zdGF0ZS9jb3JlLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFRcEUsTUFBTSxTQUFTLEdBQW1CO0lBQ2hDLE9BQU8sRUFBRSxFQUFFO0lBQ1gsYUFBYSxFQUFFLElBQUk7SUFDbkIsd0JBQXdCLEVBQUUsRUFBRTtDQUM3QixDQUFDO0FBT0ssSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBQ1osYUFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRzdDLEFBQVAsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFxQjtRQUN4QyxPQUFPLEtBQUssRUFBRSxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUdNLEFBQVAsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFxQjtRQUNwQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR00sQUFBUCxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBcUI7UUFDbkQsT0FBTyxLQUFLLENBQUMsd0JBQXdCLENBQUM7SUFDeEMsQ0FBQztJQUdELGdCQUFnQixDQUFDLEdBQWlDLEVBQUUsTUFBa0M7UUFDcEYsR0FBRyxDQUFDLFFBQVEsQ0FDVixLQUFLLENBQUM7WUFDSix3QkFBd0IsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUM1QyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFHRCxZQUFZLENBQUMsR0FBaUMsRUFBRSxNQUE4QztRQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR0QsYUFBYSxDQUFDLEdBQWlDLEVBQUUsTUFBMkI7UUFDMUUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUM1QyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QsV0FBVyxDQUFDLEdBQWlDLEVBQUUsTUFBMkI7UUFDeEUsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUN2QywyRUFBMkU7UUFDM0UsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDYixPQUFPLEVBQUUsVUFBVTthQUNwQixDQUFDLENBQUM7WUFDSCxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsYUFBYSxDQUFDLEdBQWlDO1FBQzdDLEdBQUcsQ0FBQyxRQUFRLENBQ1YsS0FBSyxDQUFDO1lBQ0osYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWE7U0FDN0MsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3VHQS9EVSxTQUFTOzJHQUFULFNBQVM7O0FBbUJwQjtJQURDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2lEQU9wQztBQUdEO0lBREMsTUFBTSxDQUFDLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQzs2Q0FHckU7QUFHRDtJQURDLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDOzhDQU81QztBQUdEO0lBREMsTUFBTSxDQUFDLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7NENBYTFDO0FBR0Q7SUFEQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7OENBT3BDO0FBM0RNO0lBRE4sUUFBUSxFQUFFO29DQUdWO0FBR007SUFETixRQUFRLEVBQUU7Z0NBR1Y7QUFHTTtJQUROLFFBQVEsRUFBRTsrQ0FHVjtBQWhCVSxTQUFTO0lBTHJCLEtBQUssQ0FBaUI7UUFDckIsSUFBSSxFQUFFLFdBQVc7UUFDakIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQztHQUVXLFNBQVMsQ0FnRXJCOzsyRkFoRVksU0FBUztrQkFEckIsVUFBVTs4QkFvQlQsZ0JBQWdCLE1BU2hCLFlBQVksTUFLWixhQUFhLE1BU2IsV0FBVyxNQWVYLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBwYXRjaCB9IGZyb20gJ0BuZ3hzL3N0b3JlL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBBY3Rpb24sIExvZ2luQWN0aW9uIH0gZnJvbSAnLi4vLi4vYXV0aC9zdGF0ZS9hdXRoLmFjdGlvbnMnO1xuaW1wb3J0IHsgQ3JlYXRlTm90aWZpY2F0aW9uTWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL25vdGlmaWNhdGlvbi1tZXNzYWdlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcGlJbnRlcmNlcHRvckFjdGlvbiwgSGVhZGVyQWN0aW9uIH0gZnJvbSAnLi9jb3JlLmFjdGlvbnMnO1xuXG5pbnRlcmZhY2UgQ29yZVN0YXRlTW9kZWwge1xuICBsb2FkaW5nOiBzdHJpbmdbXTtcbiAgc2lkZW5hdk9wZW5lZDogYm9vbGVhbjtcbiAgY3VycmVudFNpZGVuYXZJZGVudGlmaWVyOiBzdHJpbmc7XG59XG5cbmNvbnN0IGluaXRTdGF0ZTogQ29yZVN0YXRlTW9kZWwgPSB7XG4gIGxvYWRpbmc6IFtdLFxuICBzaWRlbmF2T3BlbmVkOiB0cnVlLFxuICBjdXJyZW50U2lkZW5hdklkZW50aWZpZXI6ICcnLFxufTtcblxuQFN0YXRlPENvcmVTdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdjb3JlU3RhdGUnLFxuICBkZWZhdWx0czogaW5pdFN0YXRlLFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb3JlU3RhdGUge1xuICBwcml2YXRlIG5vdGlmaWNhdGlvbnMgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIHNpZGVuYXZPcGVuZWQoc3RhdGU6IENvcmVTdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlPy5zaWRlbmF2T3BlbmVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGlzTG9hZGluZyhzdGF0ZTogQ29yZVN0YXRlTW9kZWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RhdGUubG9hZGluZy5sZW5ndGggPiAwO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGN1cnJlbnRTaWRlbmF2SWRlbnRpZmllcihzdGF0ZTogQ29yZVN0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZS5jdXJyZW50U2lkZW5hdklkZW50aWZpZXI7XG4gIH1cblxuICBAQWN0aW9uKFtBcHBBY3Rpb24uU2V0TmF2SWRlbnRpZmllcl0pXG4gIHNldE5hdklkZW50aWZpZXIoY3R4OiBTdGF0ZUNvbnRleHQ8Q29yZVN0YXRlTW9kZWw+LCBhY3Rpb246IEFwcEFjdGlvbi5TZXROYXZJZGVudGlmaWVyKTogdm9pZCB7XG4gICAgY3R4LnNldFN0YXRlKFxuICAgICAgcGF0Y2goe1xuICAgICAgICBjdXJyZW50U2lkZW5hdklkZW50aWZpZXI6IGFjdGlvbi5pZGVudGlmaWVyLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oW0FwaUludGVyY2VwdG9yQWN0aW9uLlB1Ymxpc2hFcnJvciwgTG9naW5BY3Rpb24uUHVibGlzaEVycm9yXSlcbiAgcHVibGlzaEVycm9yKGN0eDogU3RhdGVDb250ZXh0PENvcmVTdGF0ZU1vZGVsPiwgYWN0aW9uOiB7IG1lc3NhZ2U6IENyZWF0ZU5vdGlmaWNhdGlvbk1lc3NhZ2UgfSk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9ucy5hZGRHbG9iYWxOb3RpZmljYXRpb24oYWN0aW9uLm1lc3NhZ2UpO1xuICB9XG5cbiAgQEFjdGlvbihbQXBpSW50ZXJjZXB0b3JBY3Rpb24uQmVnaW5BY3Rpdml0eV0pXG4gIGJlZ2luQWN0aXZpdHkoY3R4OiBTdGF0ZUNvbnRleHQ8Q29yZVN0YXRlTW9kZWw+LCBhY3Rpb246IHsgcHJvY2Vzczogc3RyaW5nIH0pOiBDb3JlU3RhdGVNb2RlbCB7XG4gICAgY29uc3Qgc3RhdGUgPSBjdHguZ2V0U3RhdGUoKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBsb2FkaW5nOiBbYWN0aW9uLnByb2Nlc3MsIC4uLnN0YXRlLmxvYWRpbmddLFxuICAgIH0pO1xuICAgIHJldHVybiBjdHguZ2V0U3RhdGUoKTtcbiAgfVxuXG4gIEBBY3Rpb24oW0FwaUludGVyY2VwdG9yQWN0aW9uLkVuZEFjdGl2aXR5XSlcbiAgZW5kQWN0aXZpdHkoY3R4OiBTdGF0ZUNvbnRleHQ8Q29yZVN0YXRlTW9kZWw+LCBhY3Rpb246IHsgcHJvY2Vzczogc3RyaW5nIH0pOiBDb3JlU3RhdGVNb2RlbCB8IG51bGwge1xuICAgIGNvbnN0IGxvYWRpbmcgPSBjdHguZ2V0U3RhdGUoKS5sb2FkaW5nO1xuICAgIC8vIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBhY3Rpdml0aWVzIHJ1bm5pbmcgd2l0aCB0aGUgc2FtZSBwcm9jZXNzIHNpZ25hdHVyZVxuICAgIGNvbnN0IGluZGV4ID0gbG9hZGluZy5maW5kSW5kZXgoKGFjdGl2aXR5KSA9PiBhY3Rpdml0eSA9PT0gYWN0aW9uLnByb2Nlc3MpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIGNvbnN0IG5ld0xvYWRpbmcgPSBbLi4ubG9hZGluZy5zbGljZSgwLCBpbmRleCksIC4uLmxvYWRpbmcuc2xpY2UoaW5kZXggKyAxKV07XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGxvYWRpbmc6IG5ld0xvYWRpbmcsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjdHguZ2V0U3RhdGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBAQWN0aW9uKFtIZWFkZXJBY3Rpb24uVG9nZ2xlU2lkZW5hdl0pXG4gIHRvZ2dsZVNpZGVuYXYoY3R4OiBTdGF0ZUNvbnRleHQ8Q29yZVN0YXRlTW9kZWw+KTogdm9pZCB7XG4gICAgY3R4LnNldFN0YXRlKFxuICAgICAgcGF0Y2goe1xuICAgICAgICBzaWRlbmF2T3BlbmVkOiAhY3R4LmdldFN0YXRlKCkuc2lkZW5hdk9wZW5lZCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ccc-lib
|
|
3
|
-
*/
|
|
4
|
-
// Auth directives
|
|
5
|
-
export * from './lib/auth/directives/has-permission.directive';
|
|
6
|
-
// Auth forms
|
|
7
|
-
export * from './lib/auth/forms/ccc-field/ccc-field.component';
|
|
8
|
-
export * from './lib/auth/forms/form-helpers';
|
|
9
|
-
// Auth guards
|
|
10
|
-
export * from './lib/auth/guards/authentication.guard';
|
|
11
|
-
export * from './lib/auth/guards/authorization.guard';
|
|
12
|
-
// Auth services
|
|
13
|
-
export * from './lib/auth/services/auth.service';
|
|
14
|
-
export * from './lib/auth/services/request-options';
|
|
15
|
-
// Auth state
|
|
16
|
-
export * from './lib/auth/state/auth.actions';
|
|
17
|
-
export * from './lib/auth/state/auth.state';
|
|
18
|
-
// Types tokens
|
|
19
|
-
export * from './lib/types/base/tokens';
|
|
20
|
-
// Types
|
|
21
|
-
export * from './lib/types/notification-message';
|
|
22
|
-
export * from './lib/types/permissions';
|
|
23
|
-
export * from './lib/types/session-info';
|
|
24
|
-
// Ui components
|
|
25
|
-
export * from './lib/ui/components/alert/alert.component';
|
|
26
|
-
export * from './lib/ui/components/sidenav/sidenav.component';
|
|
27
|
-
// Ui interceptor
|
|
28
|
-
export * from './lib/ui/interceptor/api.interceptor';
|
|
29
|
-
// Ui services
|
|
30
|
-
export * from './lib/ui/services/notification.service';
|
|
31
|
-
// Ui state
|
|
32
|
-
export * from './lib/ui/state/core.actions';
|
|
33
|
-
export * from './lib/ui/state/core.state';
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NjYy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxrQkFBa0I7QUFDbEIsY0FBYyxnREFBZ0QsQ0FBQztBQUUvRCxhQUFhO0FBQ2IsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWM7QUFDZCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsZ0JBQWdCO0FBQ2hCLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGVBQWU7QUFDZixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLFFBQVE7QUFDUixjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxnQkFBZ0I7QUFDaEIsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtDQUErQyxDQUFDO0FBRTlELGlCQUFpQjtBQUNqQixjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWM7QUFDZCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELFdBQVc7QUFDWCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNjYy1saWJcbiAqL1xuXG4vLyBBdXRoIGRpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvZGlyZWN0aXZlcy9oYXMtcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuXG4vLyBBdXRoIGZvcm1zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL2Zvcm1zL2NjYy1maWVsZC9jY2MtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvZm9ybXMvZm9ybS1oZWxwZXJzJztcblxuLy8gQXV0aCBndWFyZHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvZ3VhcmRzL2F1dGhlbnRpY2F0aW9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvZ3VhcmRzL2F1dGhvcml6YXRpb24uZ3VhcmQnO1xuXG4vLyBBdXRoIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL3NlcnZpY2VzL3JlcXVlc3Qtb3B0aW9ucyc7XG5cbi8vIEF1dGggc3RhdGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvc3RhdGUvYXV0aC5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgvc3RhdGUvYXV0aC5zdGF0ZSc7XG5cbi8vIFR5cGVzIHRva2Vuc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMvYmFzZS90b2tlbnMnO1xuXG4vLyBUeXBlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMvbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMvcGVybWlzc2lvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMvc2Vzc2lvbi1pbmZvJztcblxuLy8gVWkgY29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvY29tcG9uZW50cy9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50JztcblxuLy8gVWkgaW50ZXJjZXB0b3JcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpL2ludGVyY2VwdG9yL2FwaS5pbnRlcmNlcHRvcic7XG5cbi8vIFVpIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbi8vIFVpIHN0YXRlXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS9zdGF0ZS9jb3JlLmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWkvc3RhdGUvY29yZS5zdGF0ZSc7XG4iXX0=
|