@cccteam/ccc-lib 0.0.10 → 0.0.12

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.
Files changed (96) hide show
  1. package/fesm2022/cccteam-ccc-lib-src-auth-authentication-guard.mjs +44 -0
  2. package/fesm2022/cccteam-ccc-lib-src-auth-authentication-guard.mjs.map +1 -0
  3. package/fesm2022/cccteam-ccc-lib-src-auth-authorization-guard.mjs +24 -0
  4. package/fesm2022/cccteam-ccc-lib-src-auth-authorization-guard.mjs.map +1 -0
  5. package/fesm2022/cccteam-ccc-lib-src-auth-forms.mjs +118 -0
  6. package/fesm2022/cccteam-ccc-lib-src-auth-forms.mjs.map +1 -0
  7. package/fesm2022/cccteam-ccc-lib-src-auth-has-permission.mjs +51 -0
  8. package/fesm2022/cccteam-ccc-lib-src-auth-has-permission.mjs.map +1 -0
  9. package/fesm2022/cccteam-ccc-lib-src-auth-service.mjs +56 -0
  10. package/fesm2022/cccteam-ccc-lib-src-auth-service.mjs.map +1 -0
  11. package/fesm2022/cccteam-ccc-lib-src-auth-state.mjs +109 -0
  12. package/fesm2022/cccteam-ccc-lib-src-auth-state.mjs.map +1 -0
  13. package/fesm2022/cccteam-ccc-lib-src-types.mjs +137 -0
  14. package/fesm2022/cccteam-ccc-lib-src-types.mjs.map +1 -0
  15. package/fesm2022/cccteam-ccc-lib-src-ui-alert.mjs +48 -0
  16. package/fesm2022/cccteam-ccc-lib-src-ui-alert.mjs.map +1 -0
  17. package/fesm2022/cccteam-ccc-lib-src-ui-core-state.mjs +100 -0
  18. package/fesm2022/cccteam-ccc-lib-src-ui-core-state.mjs.map +1 -0
  19. package/fesm2022/cccteam-ccc-lib-src-ui-interceptor.mjs +48 -0
  20. package/fesm2022/cccteam-ccc-lib-src-ui-interceptor.mjs.map +1 -0
  21. package/fesm2022/cccteam-ccc-lib-src-ui-notification-service.mjs +57 -0
  22. package/fesm2022/cccteam-ccc-lib-src-ui-notification-service.mjs.map +1 -0
  23. package/{esm2022/lib/ui/components/sidenav/sidenav.component.mjs → fesm2022/cccteam-ccc-lib-src-ui-sidenav.mjs} +20 -13
  24. package/fesm2022/cccteam-ccc-lib-src-ui-sidenav.mjs.map +1 -0
  25. package/fesm2022/cccteam-ccc-lib-src-util-request-options.mjs +19 -0
  26. package/fesm2022/cccteam-ccc-lib-src-util-request-options.mjs.map +1 -0
  27. package/fesm2022/cccteam-ccc-lib.mjs +13 -729
  28. package/fesm2022/cccteam-ccc-lib.mjs.map +1 -1
  29. package/package.json +55 -5
  30. package/public-api.d.ts +13 -19
  31. package/src/auth-authentication-guard/index.d.ts +5 -0
  32. package/src/auth-authentication-guard/public-api.d.ts +1 -0
  33. package/src/auth-authorization-guard/index.d.ts +5 -0
  34. package/src/auth-authorization-guard/public-api.d.ts +1 -0
  35. package/{lib/auth/forms → src/auth-forms}/ccc-field/ccc-field.component.d.ts +1 -1
  36. package/src/auth-forms/index.d.ts +5 -0
  37. package/src/auth-forms/public-api.d.ts +2 -0
  38. package/{lib/auth/directives → src/auth-has-permission}/has-permission.directive.d.ts +1 -1
  39. package/src/auth-has-permission/index.d.ts +5 -0
  40. package/src/auth-has-permission/public-api.d.ts +1 -0
  41. package/{lib/auth/services → src/auth-service}/auth.service.d.ts +1 -1
  42. package/src/auth-service/index.d.ts +5 -0
  43. package/src/auth-service/public-api.d.ts +1 -0
  44. package/{lib/auth/state → src/auth-state}/auth.state.d.ts +1 -2
  45. package/src/auth-state/index.d.ts +5 -0
  46. package/src/auth-state/public-api.d.ts +1 -0
  47. package/{lib/auth/state → src/types}/auth.actions.d.ts +1 -1
  48. package/{lib/ui/state → src/types}/core.actions.d.ts +1 -1
  49. package/src/types/index.d.ts +5 -0
  50. package/src/types/public-api.d.ts +6 -0
  51. package/{lib/types/base → src/types}/tokens.d.ts +1 -1
  52. package/{lib/ui/components/alert → src/ui-alert}/alert.component.d.ts +2 -2
  53. package/src/ui-alert/index.d.ts +5 -0
  54. package/src/ui-alert/public-api.d.ts +1 -0
  55. package/{lib/ui/state → src/ui-core-state}/core.state.d.ts +1 -2
  56. package/src/ui-core-state/index.d.ts +5 -0
  57. package/src/ui-core-state/public-api.d.ts +1 -0
  58. package/src/ui-interceptor/index.d.ts +5 -0
  59. package/src/ui-interceptor/public-api.d.ts +1 -0
  60. package/src/ui-notification-service/index.d.ts +5 -0
  61. package/{lib/ui/services → src/ui-notification-service}/notification.service.d.ts +1 -1
  62. package/src/ui-notification-service/public-api.d.ts +1 -0
  63. package/src/ui-sidenav/index.d.ts +5 -0
  64. package/src/ui-sidenav/public-api.d.ts +1 -0
  65. package/{lib/ui/components/sidenav → src/ui-sidenav}/sidenav.component.d.ts +1 -1
  66. package/src/util-request-options/index.d.ts +5 -0
  67. package/src/util-request-options/public-api.d.ts +1 -0
  68. package/cccteam-ccc-lib-0.0.10.tgz +0 -0
  69. package/esm2022/cccteam-ccc-lib.mjs +0 -5
  70. package/esm2022/lib/auth/directives/has-permission.directive.mjs +0 -44
  71. package/esm2022/lib/auth/forms/ccc-field/ccc-field.component.mjs +0 -77
  72. package/esm2022/lib/auth/forms/form-helpers.mjs +0 -34
  73. package/esm2022/lib/auth/guards/authentication.guard.mjs +0 -38
  74. package/esm2022/lib/auth/guards/authorization.guard.mjs +0 -17
  75. package/esm2022/lib/auth/services/auth.service.mjs +0 -49
  76. package/esm2022/lib/auth/services/request-options.mjs +0 -12
  77. package/esm2022/lib/auth/state/auth.actions.mjs +0 -64
  78. package/esm2022/lib/auth/state/auth.state.mjs +0 -105
  79. package/esm2022/lib/types/base/tokens.mjs +0 -7
  80. package/esm2022/lib/types/notification-message.mjs +0 -7
  81. package/esm2022/lib/types/permissions.mjs +0 -3
  82. package/esm2022/lib/types/session-info.mjs +0 -2
  83. package/esm2022/lib/ui/components/alert/alert.component.mjs +0 -41
  84. package/esm2022/lib/ui/interceptor/api.interceptor.mjs +0 -43
  85. package/esm2022/lib/ui/services/notification.service.mjs +0 -50
  86. package/esm2022/lib/ui/state/core.actions.mjs +0 -49
  87. package/esm2022/lib/ui/state/core.state.mjs +0 -95
  88. package/esm2022/public-api.mjs +0 -34
  89. /package/{lib/auth/guards → src/auth-authentication-guard}/authentication.guard.d.ts +0 -0
  90. /package/{lib/auth/guards → src/auth-authorization-guard}/authorization.guard.d.ts +0 -0
  91. /package/{lib/auth/forms → src/auth-forms}/form-helpers.d.ts +0 -0
  92. /package/{lib → src}/types/notification-message.d.ts +0 -0
  93. /package/{lib → src}/types/permissions.d.ts +0 -0
  94. /package/{lib → src}/types/session-info.d.ts +0 -0
  95. /package/{lib/ui/interceptor → src/ui-interceptor}/api.interceptor.d.ts +0 -0
  96. /package/{lib/auth/services → src/util-request-options}/request-options.d.ts +0 -0
@@ -1,77 +0,0 @@
1
- import { Component, computed, inject, input, signal } from '@angular/core';
2
- import { MatFormFieldModule } from '@angular/material/form-field';
3
- import { MatInputModule } from '@angular/material/input';
4
- import { Store } from '@ngxs/store';
5
- import { ReadPermission, UpdatePermission } from '../../../types/permissions';
6
- import { AuthState } from '../../state/auth.state';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/form-field";
9
- import * as i2 from "@angular/material/input";
10
- export var InputMode;
11
- (function (InputMode) {
12
- InputMode["Read"] = "read";
13
- InputMode["Edit"] = "edit";
14
- })(InputMode || (InputMode = {}));
15
- export class CccInputFieldComponent {
16
- store = inject(Store);
17
- className = input();
18
- mode = input.required();
19
- resource = input.required();
20
- domain = input.required();
21
- value = input.required();
22
- name = input.required();
23
- inputMode = InputMode;
24
- canEdit = signal(false);
25
- canEditSelector = false;
26
- canRead = signal(false);
27
- canReadSelector = false;
28
- ngOnInit() {
29
- this.canEditSelector = this.store.selectSnapshot(AuthState.hasPermission)({
30
- resource: this.resource(),
31
- permission: ReadPermission,
32
- domain: this.domain(),
33
- });
34
- this.canReadSelector = this.store.selectSnapshot(AuthState.hasPermission)({
35
- resource: this.resource(),
36
- permission: UpdatePermission,
37
- domain: this.domain(),
38
- });
39
- this.canRead = computed(() => {
40
- const res = this.resource();
41
- if (!res) {
42
- return false;
43
- }
44
- if (AuthState.requiresPermission(this.resource(), ReadPermission)) {
45
- return this.canReadSelector;
46
- }
47
- return false;
48
- });
49
- this.canEdit = computed(() => {
50
- const res = this.resource();
51
- if (!res) {
52
- return false;
53
- }
54
- if (AuthState.requiresPermission(this.resource(), UpdatePermission)) {
55
- return this.canEditSelector;
56
- }
57
- return false;
58
- });
59
- }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CccInputFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.7", type: CccInputFieldComponent, isStandalone: true, selector: "ccc-input-field", inputs: { className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, resource: { classPropertyName: "resource", publicName: "resource", isSignal: true, isRequired: true, transformFunction: null }, domain: { classPropertyName: "domain", publicName: "domain", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
62
- <mat-form-field [class]="className()">
63
- <mat-label>{{ name() }}</mat-label>
64
- <input matInput [disabled]="mode() === inputMode.Edit && canEdit()" [value]="value()" />
65
- </mat-form-field>
66
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CccInputFieldComponent, decorators: [{
69
- type: Component,
70
- args: [{ selector: 'ccc-input-field', standalone: true, imports: [MatFormFieldModule, MatInputModule], template: `
71
- <mat-form-field [class]="className()">
72
- <mat-label>{{ name() }}</mat-label>
73
- <input matInput [disabled]="mode() === inputMode.Edit && canEdit()" [value]="value()" />
74
- </mat-form-field>
75
- ` }]
76
- }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NjLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjYy1saWIvc3JjL2xpYi9hdXRoL2Zvcm1zL2NjYy1maWVsZC9jY2MtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBVSxjQUFjLEVBQVksZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFbkQsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQiwwQkFBYSxDQUFBO0lBQ2IsMEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQWNELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDcEIsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztJQUNuQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO0lBQ3RDLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDbEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRWhDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFFdEIsT0FBTyxHQUFvQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUV4QixPQUFPLEdBQW9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixVQUFVLEVBQUUsY0FBYztZQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixVQUFVLEVBQUUsZ0JBQWdCO1lBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1NBQ3RCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDOUIsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDOUIsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWxEVSxzQkFBc0I7MkZBQXRCLHNCQUFzQixvekJBUnZCOzs7OztHQUtULHlFQU5TLGtCQUFrQiwwU0FBRSxjQUFjOzsyRkFTakMsc0JBQXNCO2tCQVpsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxZQUNuQzs7Ozs7R0FLVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IERvbWFpbiwgUmVhZFBlcm1pc3Npb24sIFJlc291cmNlLCBVcGRhdGVQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgQXV0aFN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXV0aC5zdGF0ZSc7XG5cbmV4cG9ydCBlbnVtIElucHV0TW9kZSB7XG4gIFJlYWQgPSAncmVhZCcsXG4gIEVkaXQgPSAnZWRpdCcsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjYy1pbnB1dC1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWZvcm0tZmllbGQgW2NsYXNzXT1cImNsYXNzTmFtZSgpXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7IG5hbWUoKSB9fTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IFtkaXNhYmxlZF09XCJtb2RlKCkgPT09IGlucHV0TW9kZS5FZGl0ICYmIGNhbkVkaXQoKVwiIFt2YWx1ZV09XCJ2YWx1ZSgpXCIgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICBgLFxuICBzdHlsZVVybDogJy4vY2NjLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2NjSW5wdXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcbiAgY2xhc3NOYW1lID0gaW5wdXQoKTtcbiAgbW9kZSA9IGlucHV0LnJlcXVpcmVkPElucHV0TW9kZT4oKTtcbiAgcmVzb3VyY2UgPSBpbnB1dC5yZXF1aXJlZDxSZXNvdXJjZT4oKTtcbiAgZG9tYWluID0gaW5wdXQucmVxdWlyZWQ8RG9tYWluPigpO1xuICB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkKCk7XG4gIG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgaW5wdXRNb2RlID0gSW5wdXRNb2RlO1xuXG4gIGNhbkVkaXQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gIGNhbkVkaXRTZWxlY3RvciA9IGZhbHNlO1xuXG4gIGNhblJlYWQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gIGNhblJlYWRTZWxlY3RvciA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FuRWRpdFNlbGVjdG9yID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChBdXRoU3RhdGUuaGFzUGVybWlzc2lvbikoe1xuICAgICAgcmVzb3VyY2U6IHRoaXMucmVzb3VyY2UoKSxcbiAgICAgIHBlcm1pc3Npb246IFJlYWRQZXJtaXNzaW9uLFxuICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbigpLFxuICAgIH0pO1xuICAgIHRoaXMuY2FuUmVhZFNlbGVjdG9yID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChBdXRoU3RhdGUuaGFzUGVybWlzc2lvbikoe1xuICAgICAgcmVzb3VyY2U6IHRoaXMucmVzb3VyY2UoKSxcbiAgICAgIHBlcm1pc3Npb246IFVwZGF0ZVBlcm1pc3Npb24sXG4gICAgICBkb21haW46IHRoaXMuZG9tYWluKCksXG4gICAgfSk7XG5cbiAgICB0aGlzLmNhblJlYWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSB0aGlzLnJlc291cmNlKCk7XG4gICAgICBpZiAoIXJlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoQXV0aFN0YXRlLnJlcXVpcmVzUGVybWlzc2lvbih0aGlzLnJlc291cmNlKCksIFJlYWRQZXJtaXNzaW9uKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5SZWFkU2VsZWN0b3I7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNhbkVkaXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSB0aGlzLnJlc291cmNlKCk7XG4gICAgICBpZiAoIXJlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoQXV0aFN0YXRlLnJlcXVpcmVzUGVybWlzc2lvbih0aGlzLnJlc291cmNlKCksIFVwZGF0ZVBlcm1pc3Npb24pKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkVkaXRTZWxlY3RvcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,34 +0,0 @@
1
- import { isEqual } from 'lodash-es';
2
- /**
3
- * Accepts a FormGroup and compares it to an object to return the dirty form values
4
- * as a sparse object
5
- * @param form - FormGroup
6
- * @param compareData - object to compare form values against
7
- * @returns Partial<T>
8
- * @example sparseFormData<UserCreate>(this.userForm, initUser)
9
- */
10
- export function sparseFormData(form, compareData) {
11
- const sparseFormData = {};
12
- for (const [key, control] of Object.entries(form.controls)) {
13
- const controlValue = control.value;
14
- const compareValue = compareData[key];
15
- if (!isEqual(controlValue, compareValue)) {
16
- sparseFormData[key] = controlValue;
17
- }
18
- }
19
- return sparseFormData;
20
- }
21
- /**
22
- * Accepts a FormArray and removes empty strings
23
- * @param formArray - FormArray
24
- * @returns FormArray
25
- */
26
- export function cleanStringFormArray(formArray) {
27
- for (let i = formArray.controls.length - 1; i >= 0; i--) {
28
- if (formArray.at(i).value === '') {
29
- formArray.removeAt(i);
30
- }
31
- }
32
- return formArray;
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL2F1dGgvZm9ybXMvZm9ybS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUksSUFBZSxFQUFFLFdBQWM7SUFDL0QsTUFBTSxjQUFjLEdBQU0sRUFBTyxDQUFDO0lBRWxDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbkMsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQWMsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDekMsY0FBYyxDQUFDLEdBQWMsQ0FBQyxHQUFHLFlBQTBCLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxTQUFvQjtJQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEQsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8qKlxuICogQWNjZXB0cyBhIEZvcm1Hcm91cCBhbmQgY29tcGFyZXMgaXQgdG8gYW4gb2JqZWN0IHRvIHJldHVybiB0aGUgZGlydHkgZm9ybSB2YWx1ZXNcbiAqIGFzIGEgc3BhcnNlIG9iamVjdFxuICogQHBhcmFtIGZvcm0gLSBGb3JtR3JvdXBcbiAqIEBwYXJhbSBjb21wYXJlRGF0YSAtIG9iamVjdCB0byBjb21wYXJlIGZvcm0gdmFsdWVzIGFnYWluc3RcbiAqIEByZXR1cm5zIFBhcnRpYWw8VD5cbiAqIEBleGFtcGxlIHNwYXJzZUZvcm1EYXRhPFVzZXJDcmVhdGU+KHRoaXMudXNlckZvcm0sIGluaXRVc2VyKVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BhcnNlRm9ybURhdGE8VD4oZm9ybTogRm9ybUdyb3VwLCBjb21wYXJlRGF0YTogVCk6IFQge1xuICBjb25zdCBzcGFyc2VGb3JtRGF0YTogVCA9IHt9IGFzIFQ7XG5cbiAgZm9yIChjb25zdCBba2V5LCBjb250cm9sXSBvZiBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKSkge1xuICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgY29tcGFyZVZhbHVlID0gY29tcGFyZURhdGFba2V5IGFzIGtleW9mIFRdO1xuXG4gICAgaWYgKCFpc0VxdWFsKGNvbnRyb2xWYWx1ZSwgY29tcGFyZVZhbHVlKSkge1xuICAgICAgc3BhcnNlRm9ybURhdGFba2V5IGFzIGtleW9mIFRdID0gY29udHJvbFZhbHVlIGFzIFRba2V5b2YgVF07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNwYXJzZUZvcm1EYXRhO1xufVxuXG4vKipcbiAqIEFjY2VwdHMgYSBGb3JtQXJyYXkgYW5kIHJlbW92ZXMgZW1wdHkgc3RyaW5nc1xuICogQHBhcmFtIGZvcm1BcnJheSAtIEZvcm1BcnJheVxuICogQHJldHVybnMgRm9ybUFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblN0cmluZ0Zvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSk6IEZvcm1BcnJheSB7XG4gIGZvciAobGV0IGkgPSBmb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoZm9ybUFycmF5LmF0KGkpLnZhbHVlID09PSAnJykge1xuICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZm9ybUFycmF5O1xufVxuIl19
@@ -1,38 +0,0 @@
1
- import { inject } from '@angular/core';
2
- import { Store } from '@ngxs/store';
3
- import { of } from 'rxjs';
4
- import { catchError, map, switchMap } from 'rxjs/operators';
5
- import { BASE_URL } from '../../types/base/tokens';
6
- import { AuthService } from '../services/auth.service';
7
- import { AuthenticationGuardAction } from '../state/auth.actions';
8
- import { AuthState } from '../state/auth.state';
9
- export const AuthenticationGuard = (route, routerState) => {
10
- const store = inject(Store);
11
- const authService = inject(AuthService);
12
- const baseUrl = inject(BASE_URL);
13
- const authenticate = () => {
14
- const url = routerState.url;
15
- const absoluteUrl = baseUrl + (!url.toString().startsWith('/') ? '/' + url : url);
16
- const encodedUrl = encodeURIComponent(absoluteUrl);
17
- window.location.href = `${authService.loginRoute()}?returnUrl=${encodedUrl}`;
18
- };
19
- return store.select(AuthState.isAuthenticated).pipe(switchMap((authenticated) => {
20
- if (authenticated) {
21
- return of(authenticated);
22
- }
23
- // Handle uninitialized state (ie Browser reload)
24
- return store.dispatch(AuthenticationGuardAction.CheckUserSession).pipe(switchMap(() => {
25
- return store.select(AuthState.isAuthenticated);
26
- }));
27
- }), map((authenticated) => {
28
- if (authenticated) {
29
- return true;
30
- }
31
- authenticate();
32
- return false;
33
- }), catchError(() => {
34
- authenticate();
35
- return of(false);
36
- }));
37
- };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2MtbGliL3NyYy9saWIvYXV0aC9ndWFyZHMvYXV0aGVudGljYXRpb24uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsS0FBNkIsRUFDN0IsV0FBZ0MsRUFDWCxFQUFFO0lBQ3ZCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sWUFBWSxHQUFHLEdBQVMsRUFBRTtRQUM5QixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEYsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFFLGNBQWMsVUFBVSxFQUFFLENBQUM7SUFDL0UsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ2pELFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1FBQzFCLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELGlEQUFpRDtRQUNqRCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQ3BFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtRQUNwQixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELFlBQVksRUFBRSxDQUFDO1FBRWYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsWUFBWSxFQUFFLENBQUM7UUFFZixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQkFTRV9VUkwgfSBmcm9tICcuLi8uLi90eXBlcy9iYXNlL3Rva2Vucyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkd1YXJkQWN0aW9uIH0gZnJvbSAnLi4vc3RhdGUvYXV0aC5hY3Rpb25zJztcbmltcG9ydCB7IEF1dGhTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL2F1dGguc3RhdGUnO1xuXG5leHBvcnQgY29uc3QgQXV0aGVudGljYXRpb25HdWFyZCA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIHJvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuKTogT2JzZXJ2YWJsZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuXG4gIGNvbnN0IGJhc2VVcmwgPSBpbmplY3QoQkFTRV9VUkwpO1xuXG4gIGNvbnN0IGF1dGhlbnRpY2F0ZSA9ICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCB1cmwgPSByb3V0ZXJTdGF0ZS51cmw7XG4gICAgY29uc3QgYWJzb2x1dGVVcmwgPSBiYXNlVXJsICsgKCF1cmwudG9TdHJpbmcoKS5zdGFydHNXaXRoKCcvJykgPyAnLycgKyB1cmwgOiB1cmwpO1xuICAgIGNvbnN0IGVuY29kZWRVcmwgPSBlbmNvZGVVUklDb21wb25lbnQoYWJzb2x1dGVVcmwpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7YXV0aFNlcnZpY2UubG9naW5Sb3V0ZSgpfT9yZXR1cm5Vcmw9JHtlbmNvZGVkVXJsfWA7XG4gIH07XG5cbiAgcmV0dXJuIHN0b3JlLnNlbGVjdChBdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoYXV0aGVudGljYXRlZCkgPT4ge1xuICAgICAgaWYgKGF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgcmV0dXJuIG9mKGF1dGhlbnRpY2F0ZWQpO1xuICAgICAgfVxuICAgICAgLy8gSGFuZGxlIHVuaW5pdGlhbGl6ZWQgc3RhdGUgKGllIEJyb3dzZXIgcmVsb2FkKVxuICAgICAgcmV0dXJuIHN0b3JlLmRpc3BhdGNoKEF1dGhlbnRpY2F0aW9uR3VhcmRBY3Rpb24uQ2hlY2tVc2VyU2Vzc2lvbikucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gc3RvcmUuc2VsZWN0KEF1dGhTdGF0ZS5pc0F1dGhlbnRpY2F0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSksXG4gICAgbWFwKChhdXRoZW50aWNhdGVkKSA9PiB7XG4gICAgICBpZiAoYXV0aGVudGljYXRlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgYXV0aGVudGljYXRlKCk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KSxcbiAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgIGF1dGhlbnRpY2F0ZSgpO1xuXG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH0pLFxuICApO1xufTtcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { inject } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { Store } from '@ngxs/store';
4
- import { map } from 'rxjs';
5
- import { AuthState } from '../state/auth.state';
6
- export const AuthorizationGuard = (route) => {
7
- const store = inject(Store);
8
- const router = inject(Router);
9
- return store.select(AuthState.hasPermission).pipe(map((permissionFn) => permissionFn(route.data['scope'])), map((hasPermission) => {
10
- if (hasPermission) {
11
- return true;
12
- }
13
- router.navigate(['/']);
14
- return false;
15
- }));
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjYy1saWIvc3JjL2xpYi9hdXRoL2d1YXJkcy9hdXRob3JpemF0aW9uLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUEwQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBNkIsRUFBdUIsRUFBRTtJQUN2RixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDeEQsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvYXV0aC5zdGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBBdXRob3JpemF0aW9uR3VhcmQgPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3Qgc3RvcmUgPSBpbmplY3QoU3RvcmUpO1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcmV0dXJuIHN0b3JlLnNlbGVjdChBdXRoU3RhdGUuaGFzUGVybWlzc2lvbikucGlwZShcbiAgICBtYXAoKHBlcm1pc3Npb25GbikgPT4gcGVybWlzc2lvbkZuKHJvdXRlLmRhdGFbJ3Njb3BlJ10pKSxcbiAgICBtYXAoKGhhc1Blcm1pc3Npb24pID0+IHtcbiAgICAgIGlmIChoYXNQZXJtaXNzaW9uKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KSxcbiAgKTtcbn07XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { map } from 'rxjs';
3
- import { API_URL } from '../../types/base/tokens';
4
- import { errorOptions } from './request-options';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- const routes = {
8
- login: (rootUrl) => `${rootUrl}/user/login`,
9
- session: (rootUrl) => `${rootUrl}/user/session`,
10
- };
11
- export class AuthService {
12
- http;
13
- apiUrl;
14
- constructor(http, apiUrl) {
15
- this.http = http;
16
- this.apiUrl = apiUrl;
17
- }
18
- /**
19
- * Logs a user out.
20
- *
21
- * @returns Observable with a boolean indicating whether they were logged out.
22
- */
23
- logout() {
24
- return this.http.delete(routes.session(this.apiUrl), errorOptions(false)).pipe(map(() => true));
25
- }
26
- /**
27
- * Checks a user's session with the server.
28
- *
29
- * @returns Observable with the user session info
30
- */
31
- checkUserSession() {
32
- return this.http.get(routes.session(this.apiUrl), errorOptions(false));
33
- }
34
- loginRoute() {
35
- return routes.login(this.apiUrl);
36
- }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: API_URL }], target: i0.ɵɵFactoryTarget.Injectable });
38
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthService, providedIn: 'root' });
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthService, decorators: [{
41
- type: Injectable,
42
- args: [{
43
- providedIn: 'root',
44
- }]
45
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
46
- type: Inject,
47
- args: [API_URL]
48
- }] }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL2F1dGgvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRWpELE1BQU0sTUFBTSxHQUFHO0lBQ2IsS0FBSyxFQUFFLENBQUMsT0FBZSxFQUFVLEVBQUUsQ0FBQyxHQUFHLE9BQU8sYUFBYTtJQUMzRCxPQUFPLEVBQUUsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUFDLEdBQUcsT0FBTyxlQUFlO0NBQ2hFLENBQUM7QUFLRixNQUFNLE9BQU8sV0FBVztJQUVaO0lBQ2lCO0lBRjNCLFlBQ1UsSUFBZ0IsRUFDQyxNQUFjO1FBRC9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3RDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBYyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQzt1R0ExQlUsV0FBVyw0Q0FHWixPQUFPOzJHQUhOLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksTUFBTTsyQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUElfVVJMIH0gZnJvbSAnLi4vLi4vdHlwZXMvYmFzZS90b2tlbnMnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi8uLi90eXBlcy9zZXNzaW9uLWluZm8nO1xuaW1wb3J0IHsgZXJyb3JPcHRpb25zIH0gZnJvbSAnLi9yZXF1ZXN0LW9wdGlvbnMnO1xuXG5jb25zdCByb3V0ZXMgPSB7XG4gIGxvZ2luOiAocm9vdFVybDogc3RyaW5nKTogc3RyaW5nID0+IGAke3Jvb3RVcmx9L3VzZXIvbG9naW5gLFxuICBzZXNzaW9uOiAocm9vdFVybDogc3RyaW5nKTogc3RyaW5nID0+IGAke3Jvb3RVcmx9L3VzZXIvc2Vzc2lvbmAsXG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdChBUElfVVJMKSBwcml2YXRlIGFwaVVybDogc3RyaW5nLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSB1c2VyIG91dC5cbiAgICpcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB3aXRoIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhleSB3ZXJlIGxvZ2dlZCBvdXQuXG4gICAqL1xuICBsb2dvdXQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUocm91dGVzLnNlc3Npb24odGhpcy5hcGlVcmwpLCBlcnJvck9wdGlvbnMoZmFsc2UpKS5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGEgdXNlcidzIHNlc3Npb24gd2l0aCB0aGUgc2VydmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHdpdGggdGhlIHVzZXIgc2Vzc2lvbiBpbmZvXG4gICAqL1xuICBjaGVja1VzZXJTZXNzaW9uKCk6IE9ic2VydmFibGU8U2Vzc2lvbkluZm8gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2Vzc2lvbkluZm8+KHJvdXRlcy5zZXNzaW9uKHRoaXMuYXBpVXJsKSwgZXJyb3JPcHRpb25zKGZhbHNlKSk7XG4gIH1cblxuICBsb2dpblJvdXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdXRlcy5sb2dpbih0aGlzLmFwaVVybCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { HttpContext, HttpContextToken } from '@angular/common/http';
2
- export const CUSTOM_HTTP_REQUEST_OPTIONS = new HttpContextToken(() => ({
3
- suppressGlobalError: false,
4
- }));
5
- export function errorOptions(suppressGlobalError) {
6
- return {
7
- context: new HttpContext().set(CUSTOM_HTTP_REQUEST_OPTIONS, {
8
- suppressGlobalError: suppressGlobalError ?? false,
9
- }),
10
- };
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL2F1dGgvc2VydmljZXMvcmVxdWVzdC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU1yRSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGdCQUFnQixDQUEyQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLG1CQUFtQixFQUFFLEtBQUs7Q0FDM0IsQ0FBQyxDQUFDLENBQUM7QUFFSixNQUFNLFVBQVUsWUFBWSxDQUFDLG1CQUF3QztJQUNuRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFO1lBQzFELG1CQUFtQixFQUFFLG1CQUFtQixJQUFJLEtBQUs7U0FDbEQsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENvbnRleHQsIEh0dHBDb250ZXh0VG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tSHR0cFJlcXVlc3RPcHRpb25zIHtcbiAgc3VwcHJlc3NHbG9iYWxFcnJvcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IENVU1RPTV9IVFRQX1JFUVVFU1RfT1BUSU9OUyA9IG5ldyBIdHRwQ29udGV4dFRva2VuPEN1c3RvbUh0dHBSZXF1ZXN0T3B0aW9ucz4oKCkgPT4gKHtcbiAgc3VwcHJlc3NHbG9iYWxFcnJvcjogZmFsc2UsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvck9wdGlvbnMoc3VwcHJlc3NHbG9iYWxFcnJvcjogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IHsgY29udGV4dDogSHR0cENvbnRleHQgfSB7XG4gIHJldHVybiB7XG4gICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KENVU1RPTV9IVFRQX1JFUVVFU1RfT1BUSU9OUywge1xuICAgICAgc3VwcHJlc3NHbG9iYWxFcnJvcjogc3VwcHJlc3NHbG9iYWxFcnJvciA/PyBmYWxzZSxcbiAgICB9KSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,64 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-namespace */
2
- // no-namespace rule is disabled because action hygiene prevents import pollution
3
- export var AuthenticationGuardAction;
4
- (function (AuthenticationGuardAction) {
5
- class SetRedirectUrl {
6
- redirectUrl;
7
- static type = '[AuthenticationGuard] Set Redirect Url And Navigate To Login Page';
8
- constructor(redirectUrl) {
9
- this.redirectUrl = redirectUrl;
10
- }
11
- }
12
- AuthenticationGuardAction.SetRedirectUrl = SetRedirectUrl;
13
- class CheckUserSession {
14
- static type = '[AuthenticationGuard] Check User Session';
15
- }
16
- AuthenticationGuardAction.CheckUserSession = CheckUserSession;
17
- })(AuthenticationGuardAction || (AuthenticationGuardAction = {}));
18
- export var LoginAction;
19
- (function (LoginAction) {
20
- class Logout {
21
- static type = '[Login] Auto Logout';
22
- }
23
- LoginAction.Logout = Logout;
24
- class SetRedirectUrl {
25
- redirectUrl;
26
- static type = '[Login] Set Redirect Url';
27
- constructor(redirectUrl) {
28
- this.redirectUrl = redirectUrl;
29
- }
30
- }
31
- LoginAction.SetRedirectUrl = SetRedirectUrl;
32
- class PublishError {
33
- message;
34
- static type = '[Login] Publish Error';
35
- constructor(message) {
36
- this.message = message;
37
- }
38
- }
39
- LoginAction.PublishError = PublishError;
40
- })(LoginAction || (LoginAction = {}));
41
- export var AppAction;
42
- (function (AppAction) {
43
- class CheckUserSession {
44
- static type = '[App] Check User Session';
45
- }
46
- AppAction.CheckUserSession = CheckUserSession;
47
- class SetRedirectUrl {
48
- redirectUrl;
49
- static type = '[App] Set Redirect Url';
50
- constructor(redirectUrl) {
51
- this.redirectUrl = redirectUrl;
52
- }
53
- }
54
- AppAction.SetRedirectUrl = SetRedirectUrl;
55
- class SetNavIdentifier {
56
- identifier;
57
- static type = '[App] Set Nav Identifier';
58
- constructor(identifier) {
59
- this.identifier = identifier;
60
- }
61
- }
62
- AppAction.SetNavIdentifier = SetNavIdentifier;
63
- })(AppAction || (AppAction = {}));
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL2F1dGgvc3RhdGUvYXV0aC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxpRkFBaUY7QUFJakYsTUFBTSxLQUFXLHlCQUF5QixDQVN6QztBQVRELFdBQWlCLHlCQUF5QjtJQUN4QyxNQUFhLGNBQWM7UUFFTjtRQURuQixNQUFNLENBQVUsSUFBSSxHQUFHLG1FQUFtRSxDQUFDO1FBQzNGLFlBQW1CLFdBQW1CO1lBQW5CLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQUcsQ0FBQzs7SUFGL0Isd0NBQWMsaUJBRzFCLENBQUE7SUFFRCxNQUFhLGdCQUFnQjtRQUMzQixNQUFNLENBQVUsSUFBSSxHQUFHLDBDQUEwQyxDQUFDOztJQUR2RCwwQ0FBZ0IsbUJBRTVCLENBQUE7QUFDSCxDQUFDLEVBVGdCLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFTekM7QUFFRCxNQUFNLEtBQVcsV0FBVyxDQWMzQjtBQWRELFdBQWlCLFdBQVc7SUFDMUIsTUFBYSxNQUFNO1FBQ2pCLE1BQU0sQ0FBVSxJQUFJLEdBQUcscUJBQXFCLENBQUM7O0lBRGxDLGtCQUFNLFNBRWxCLENBQUE7SUFFRCxNQUFhLGNBQWM7UUFFTjtRQURuQixNQUFNLENBQVUsSUFBSSxHQUFHLDBCQUEwQixDQUFDO1FBQ2xELFlBQW1CLFdBQW1CO1lBQW5CLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQUcsQ0FBQzs7SUFGL0IsMEJBQWMsaUJBRzFCLENBQUE7SUFFRCxNQUFhLFlBQVk7UUFFSjtRQURuQixNQUFNLENBQVUsSUFBSSxHQUFHLHVCQUF1QixDQUFDO1FBQy9DLFlBQW1CLE9BQWtDO1lBQWxDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQUcsQ0FBQzs7SUFGOUMsd0JBQVksZUFHeEIsQ0FBQTtBQUNILENBQUMsRUFkZ0IsV0FBVyxLQUFYLFdBQVcsUUFjM0I7QUFFRCxNQUFNLEtBQVcsU0FBUyxDQWN6QjtBQWRELFdBQWlCLFNBQVM7SUFDeEIsTUFBYSxnQkFBZ0I7UUFDM0IsTUFBTSxDQUFVLElBQUksR0FBRywwQkFBMEIsQ0FBQzs7SUFEdkMsMEJBQWdCLG1CQUU1QixDQUFBO0lBRUQsTUFBYSxjQUFjO1FBRU47UUFEbkIsTUFBTSxDQUFVLElBQUksR0FBRyx3QkFBd0IsQ0FBQztRQUNoRCxZQUFtQixXQUFtQjtZQUFuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFHLENBQUM7O0lBRi9CLHdCQUFjLGlCQUcxQixDQUFBO0lBRUQsTUFBYSxnQkFBZ0I7UUFFUjtRQURuQixNQUFNLENBQVUsSUFBSSxHQUFHLDBCQUEwQixDQUFDO1FBQ2xELFlBQW1CLFVBQWtCO1lBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBRyxDQUFDOztJQUY5QiwwQkFBZ0IsbUJBRzVCLENBQUE7QUFDSCxDQUFDLEVBZGdCLFNBQVMsS0FBVCxTQUFTLFFBY3pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuLy8gbm8tbmFtZXNwYWNlIHJ1bGUgaXMgZGlzYWJsZWQgYmVjYXVzZSBhY3Rpb24gaHlnaWVuZSBwcmV2ZW50cyBpbXBvcnQgcG9sbHV0aW9uXG5cbmltcG9ydCB7IENyZWF0ZU5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9ub3RpZmljYXRpb24tbWVzc2FnZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQXV0aGVudGljYXRpb25HdWFyZEFjdGlvbiB7XG4gIGV4cG9ydCBjbGFzcyBTZXRSZWRpcmVjdFVybCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0F1dGhlbnRpY2F0aW9uR3VhcmRdIFNldCBSZWRpcmVjdCBVcmwgQW5kIE5hdmlnYXRlIFRvIExvZ2luIFBhZ2UnO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWRpcmVjdFVybDogc3RyaW5nKSB7fVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIENoZWNrVXNlclNlc3Npb24ge1xuICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tBdXRoZW50aWNhdGlvbkd1YXJkXSBDaGVjayBVc2VyIFNlc3Npb24nO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTG9naW5BY3Rpb24ge1xuICBleHBvcnQgY2xhc3MgTG9nb3V0IHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbTG9naW5dIEF1dG8gTG9nb3V0JztcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBTZXRSZWRpcmVjdFVybCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0xvZ2luXSBTZXQgUmVkaXJlY3QgVXJsJztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVkaXJlY3RVcmw6IHN0cmluZykge31cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBQdWJsaXNoRXJyb3Ige1xuICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tMb2dpbl0gUHVibGlzaCBFcnJvcic7XG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2U6IENyZWF0ZU5vdGlmaWNhdGlvbk1lc3NhZ2UpIHt9XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBcHBBY3Rpb24ge1xuICBleHBvcnQgY2xhc3MgQ2hlY2tVc2VyU2Vzc2lvbiB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0FwcF0gQ2hlY2sgVXNlciBTZXNzaW9uJztcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBTZXRSZWRpcmVjdFVybCB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0FwcF0gU2V0IFJlZGlyZWN0IFVybCc7XG4gICAgY29uc3RydWN0b3IocHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmcpIHt9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgU2V0TmF2SWRlbnRpZmllciB7XG4gICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0FwcF0gU2V0IE5hdiBJZGVudGlmaWVyJztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nKSB7fVxuICB9XG59XG4iXX0=
@@ -1,105 +0,0 @@
1
- var AuthState_1;
2
- import { __decorate } from "tslib";
3
- import { inject, Injectable } from '@angular/core';
4
- import { Action, Selector, State } from '@ngxs/store';
5
- import { patch } from '@ngxs/store/operators';
6
- import { cloneDeep } from 'lodash-es';
7
- import { tap } from 'rxjs';
8
- import { PERMISSION_REQUIRED } from '../../types/base/tokens';
9
- import { ApiInterceptorAction } from '../../ui/state/core.actions';
10
- import { AuthService } from '../services/auth.service';
11
- import { AppAction, AuthenticationGuardAction, LoginAction } from './auth.actions';
12
- import * as i0 from "@angular/core";
13
- export const initState = {
14
- authenticated: false,
15
- redirectUrl: '',
16
- sessionInfo: null,
17
- };
18
- let AuthState = class AuthState {
19
- static { AuthState_1 = this; }
20
- authService = inject(AuthService);
21
- static permissionFn;
22
- constructor() {
23
- AuthState_1.initializePermissionFn();
24
- }
25
- static initializePermissionFn() {
26
- if (!AuthState_1.permissionFn) {
27
- AuthState_1.permissionFn = inject(PERMISSION_REQUIRED);
28
- }
29
- }
30
- static hasPermission(state) {
31
- return (scope) => {
32
- if (!scope)
33
- return true;
34
- const resourcePermissions = state?.sessionInfo?.permissions?.[scope.domain]?.[scope.resource];
35
- return Array.isArray(resourcePermissions) && resourcePermissions.includes(scope.permission);
36
- };
37
- }
38
- static requiresPermission(resource, permission) {
39
- if (!AuthState_1.permissionFn) {
40
- throw new Error(`AuthState has not been initialized. Ensure AuthState is provided in your module or instantiated at least once.`);
41
- }
42
- return AuthState_1.permissionFn(resource, permission);
43
- }
44
- static isAuthenticated(state) {
45
- return state?.authenticated;
46
- }
47
- static redirectUrl(state) {
48
- return state?.redirectUrl;
49
- }
50
- checkUserSession(ctx) {
51
- return this.authService.checkUserSession().pipe(tap((result) => ctx.setState(patch({
52
- authenticated: !!result?.authenticated,
53
- sessionInfo: result,
54
- }))));
55
- }
56
- logout(ctx) {
57
- const localStateCopy = cloneDeep(initState);
58
- localStateCopy.redirectUrl = ctx.getState().redirectUrl;
59
- return this.authService.logout().pipe(tap(() => {
60
- ctx.setState(localStateCopy);
61
- }));
62
- }
63
- setRedirectUrl(ctx, action) {
64
- ctx.setState(patch({
65
- redirectUrl: action.redirectUrl,
66
- }));
67
- return ctx.getState();
68
- }
69
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
70
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthState });
71
- };
72
- __decorate([
73
- Action([AppAction.CheckUserSession, AuthenticationGuardAction.CheckUserSession])
74
- ], AuthState.prototype, "checkUserSession", null);
75
- __decorate([
76
- Action([LoginAction.Logout])
77
- ], AuthState.prototype, "logout", null);
78
- __decorate([
79
- Action([
80
- AppAction.SetRedirectUrl,
81
- LoginAction.SetRedirectUrl,
82
- AuthenticationGuardAction.SetRedirectUrl,
83
- ApiInterceptorAction.SetRedirectUrl,
84
- ])
85
- ], AuthState.prototype, "setRedirectUrl", null);
86
- __decorate([
87
- Selector()
88
- ], AuthState, "hasPermission", null);
89
- __decorate([
90
- Selector()
91
- ], AuthState, "isAuthenticated", null);
92
- __decorate([
93
- Selector()
94
- ], AuthState, "redirectUrl", null);
95
- AuthState = AuthState_1 = __decorate([
96
- State({
97
- name: 'authState',
98
- defaults: initState,
99
- })
100
- ], AuthState);
101
- export { AuthState };
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthState, decorators: [{
103
- type: Injectable
104
- }], ctorParameters: () => [], propDecorators: { checkUserSession: [], logout: [], setRedirectUrl: [] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjYy1saWIvc3JjL2xpYi9hdXRoL3N0YXRlL2F1dGguc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUW5GLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBbUI7SUFDdkMsYUFBYSxFQUFFLEtBQUs7SUFDcEIsV0FBVyxFQUFFLEVBQUU7SUFDZixXQUFXLEVBQUUsSUFBSTtDQUNsQixDQUFDO0FBT0ssSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTOztJQUNaLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsTUFBTSxDQUFDLFlBQVksQ0FBMEQ7SUFFckY7UUFDRSxXQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sTUFBTSxDQUFDLHNCQUFzQjtRQUNuQyxJQUFJLENBQUMsV0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLFdBQVMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFHTSxBQUFQLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBcUI7UUFDeEMsT0FBTyxDQUFDLEtBQXVCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN4QixNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFrQixFQUFFLFVBQXNCO1FBQ2xFLElBQUksQ0FBQyxXQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FDYixnSEFBZ0gsQ0FDakgsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFdBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFHTSxBQUFQLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBcUI7UUFDMUMsT0FBTyxLQUFLLEVBQUUsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFHTSxBQUFQLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBcUI7UUFDdEMsT0FBTyxLQUFLLEVBQUUsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxHQUFpQztRQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2IsR0FBRyxDQUFDLFFBQVEsQ0FDVixLQUFLLENBQUM7WUFDSixhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhO1lBQ3RDLFdBQVcsRUFBRSxNQUFNO1NBQ3BCLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFHRCxNQUFNLENBQUMsR0FBaUM7UUFDdEMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQVFELGNBQWMsQ0FBQyxHQUFpQyxFQUFFLE1BQStCO1FBQy9FLEdBQUcsQ0FBQyxRQUFRLENBQ1YsS0FBSyxDQUFDO1lBQ0osV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1NBQ2hDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQzt1R0FoRlUsU0FBUzsyR0FBVCxTQUFTOztBQTJDcEI7SUFEQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUseUJBQXlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpREFZaEY7QUFHRDtJQURDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzt1Q0FTNUI7QUFRRDtJQU5DLE1BQU0sQ0FBQztRQUNOLFNBQVMsQ0FBQyxjQUFjO1FBQ3hCLFdBQVcsQ0FBQyxjQUFjO1FBQzFCLHlCQUF5QixDQUFDLGNBQWM7UUFDeEMsb0JBQW9CLENBQUMsY0FBYztLQUNwQyxDQUFDOytDQVFEO0FBakVNO0lBRE4sUUFBUSxFQUFFO29DQU9WO0FBWU07SUFETixRQUFRLEVBQUU7c0NBR1Y7QUFHTTtJQUROLFFBQVEsRUFBRTtrQ0FHVjtBQXhDVSxTQUFTO0lBTHJCLEtBQUssQ0FBaUI7UUFDckIsSUFBSSxFQUFFLFdBQVc7UUFDakIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQztHQUVXLFNBQVMsQ0FpRnJCOzsyRkFqRlksU0FBUztrQkFEckIsVUFBVTt3REE0Q1QsZ0JBQWdCLE1BY2hCLE1BQU0sTUFnQk4sY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IHBhdGNoIH0gZnJvbSAnQG5neHMvc3RvcmUvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBFUk1JU1NJT05fUkVRVUlSRUQgfSBmcm9tICcuLi8uLi90eXBlcy9iYXNlL3Rva2Vucyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uLCBQZXJtaXNzaW9uU2NvcGUsIFJlc291cmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi8uLi90eXBlcy9zZXNzaW9uLWluZm8nO1xuaW1wb3J0IHsgQXBpSW50ZXJjZXB0b3JBY3Rpb24gfSBmcm9tICcuLi8uLi91aS9zdGF0ZS9jb3JlLmFjdGlvbnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwQWN0aW9uLCBBdXRoZW50aWNhdGlvbkd1YXJkQWN0aW9uLCBMb2dpbkFjdGlvbiB9IGZyb20gJy4vYXV0aC5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoU3RhdGVNb2RlbCB7XG4gIGF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gIHJlZGlyZWN0VXJsOiBzdHJpbmc7XG4gIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbyB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBpbml0U3RhdGU6IEF1dGhTdGF0ZU1vZGVsID0ge1xuICBhdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgcmVkaXJlY3RVcmw6ICcnLFxuICBzZXNzaW9uSW5mbzogbnVsbCxcbn07XG5cbkBTdGF0ZTxBdXRoU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAnYXV0aFN0YXRlJyxcbiAgZGVmYXVsdHM6IGluaXRTdGF0ZSxcbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFN0YXRlIHtcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgc3RhdGljIHBlcm1pc3Npb25GbjogKHJlc291cmNlOiBSZXNvdXJjZSwgcGVybWlzc2lvbjogUGVybWlzc2lvbikgPT4gYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBBdXRoU3RhdGUuaW5pdGlhbGl6ZVBlcm1pc3Npb25GbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdGlhbGl6ZVBlcm1pc3Npb25GbigpOiB2b2lkIHtcbiAgICBpZiAoIUF1dGhTdGF0ZS5wZXJtaXNzaW9uRm4pIHtcbiAgICAgIEF1dGhTdGF0ZS5wZXJtaXNzaW9uRm4gPSBpbmplY3QoUEVSTUlTU0lPTl9SRVFVSVJFRCk7XG4gICAgfVxuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGhhc1Blcm1pc3Npb24oc3RhdGU6IEF1dGhTdGF0ZU1vZGVsKTogKHNjb3BlPzogUGVybWlzc2lvblNjb3BlKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKHNjb3BlPzogUGVybWlzc2lvblNjb3BlKSA9PiB7XG4gICAgICBpZiAoIXNjb3BlKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGNvbnN0IHJlc291cmNlUGVybWlzc2lvbnMgPSBzdGF0ZT8uc2Vzc2lvbkluZm8/LnBlcm1pc3Npb25zPy5bc2NvcGUuZG9tYWluXT8uW3Njb3BlLnJlc291cmNlXTtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHJlc291cmNlUGVybWlzc2lvbnMpICYmIHJlc291cmNlUGVybWlzc2lvbnMuaW5jbHVkZXMoc2NvcGUucGVybWlzc2lvbik7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlc1Blcm1pc3Npb24ocmVzb3VyY2U6IFJlc291cmNlLCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBdXRoU3RhdGUucGVybWlzc2lvbkZuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdXRoU3RhdGUgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkLiBFbnN1cmUgQXV0aFN0YXRlIGlzIHByb3ZpZGVkIGluIHlvdXIgbW9kdWxlIG9yIGluc3RhbnRpYXRlZCBhdCBsZWFzdCBvbmNlLmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gQXV0aFN0YXRlLnBlcm1pc3Npb25GbihyZXNvdXJjZSwgcGVybWlzc2lvbik7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBzdGF0aWMgaXNBdXRoZW50aWNhdGVkKHN0YXRlOiBBdXRoU3RhdGVNb2RlbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0ZT8uYXV0aGVudGljYXRlZDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyByZWRpcmVjdFVybChzdGF0ZTogQXV0aFN0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZT8ucmVkaXJlY3RVcmw7XG4gIH1cblxuICBAQWN0aW9uKFtBcHBBY3Rpb24uQ2hlY2tVc2VyU2Vzc2lvbiwgQXV0aGVudGljYXRpb25HdWFyZEFjdGlvbi5DaGVja1VzZXJTZXNzaW9uXSlcbiAgY2hlY2tVc2VyU2Vzc2lvbihjdHg6IFN0YXRlQ29udGV4dDxBdXRoU3RhdGVNb2RlbD4pOiBPYnNlcnZhYmxlPFNlc3Npb25JbmZvIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmNoZWNrVXNlclNlc3Npb24oKS5waXBlKFxuICAgICAgdGFwKChyZXN1bHQpID0+XG4gICAgICAgIGN0eC5zZXRTdGF0ZShcbiAgICAgICAgICBwYXRjaCh7XG4gICAgICAgICAgICBhdXRoZW50aWNhdGVkOiAhIXJlc3VsdD8uYXV0aGVudGljYXRlZCxcbiAgICAgICAgICAgIHNlc3Npb25JbmZvOiByZXN1bHQsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFtMb2dpbkFjdGlvbi5Mb2dvdXRdKVxuICBsb2dvdXQoY3R4OiBTdGF0ZUNvbnRleHQ8QXV0aFN0YXRlTW9kZWw+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgbG9jYWxTdGF0ZUNvcHkgPSBjbG9uZURlZXAoaW5pdFN0YXRlKTtcbiAgICBsb2NhbFN0YXRlQ29weS5yZWRpcmVjdFVybCA9IGN0eC5nZXRTdGF0ZSgpLnJlZGlyZWN0VXJsO1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBjdHguc2V0U3RhdGUobG9jYWxTdGF0ZUNvcHkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oW1xuICAgIEFwcEFjdGlvbi5TZXRSZWRpcmVjdFVybCxcbiAgICBMb2dpbkFjdGlvbi5TZXRSZWRpcmVjdFVybCxcbiAgICBBdXRoZW50aWNhdGlvbkd1YXJkQWN0aW9uLlNldFJlZGlyZWN0VXJsLFxuICAgIEFwaUludGVyY2VwdG9yQWN0aW9uLlNldFJlZGlyZWN0VXJsLFxuICBdKVxuICBzZXRSZWRpcmVjdFVybChjdHg6IFN0YXRlQ29udGV4dDxBdXRoU3RhdGVNb2RlbD4sIGFjdGlvbjogeyByZWRpcmVjdFVybDogc3RyaW5nIH0pOiBBdXRoU3RhdGVNb2RlbCB7XG4gICAgY3R4LnNldFN0YXRlKFxuICAgICAgcGF0Y2goe1xuICAgICAgICByZWRpcmVjdFVybDogYWN0aW9uLnJlZGlyZWN0VXJsLFxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4gY3R4LmdldFN0YXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const BASE_URL = new InjectionToken('BASE_URL');
3
- export const API_URL = new InjectionToken('API_URL');
4
- export const PERMISSION_REQUIRED = new InjectionToken('PERMISSION_REQUIRED');
5
- export const AVAILABLE_PERMISSIONS = new InjectionToken('AVAILABLE_PERMISSIONS');
6
- export const AVAILABLE_DOMAINS = new InjectionToken('AVAILABLE_DOMAINS');
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3R5cGVzL2Jhc2UvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBUyxTQUFTLENBQUMsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQscUJBQXFCLENBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FNcEQsdUJBQXVCLENBQUMsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21haW4sIFBlcm1pc3Npb24sIFJlc291cmNlIH0gZnJvbSAnLi4vcGVybWlzc2lvbnMnO1xuXG5leHBvcnQgY29uc3QgQkFTRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQkFTRV9VUkwnKTtcbmV4cG9ydCBjb25zdCBBUElfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FQSV9VUkwnKTtcbmV4cG9ydCBjb25zdCBQRVJNSVNTSU9OX1JFUVVJUkVEID0gbmV3IEluamVjdGlvblRva2VuPChyZXNvdXJjZTogUmVzb3VyY2UsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pID0+IGJvb2xlYW4+KFxuICAnUEVSTUlTU0lPTl9SRVFVSVJFRCcsXG4pO1xuXG5leHBvcnQgY29uc3QgQVZBSUxBQkxFX1BFUk1JU1NJT05TID0gbmV3IEluamVjdGlvblRva2VuPHtcbiAgQ3JlYXRlOiBQZXJtaXNzaW9uO1xuICBEZWxldGU6IFBlcm1pc3Npb247XG4gIExpc3Q6IFBlcm1pc3Npb247XG4gIFJlYWQ6IFBlcm1pc3Npb247XG4gIFVwZGF0ZTogUGVybWlzc2lvbjtcbn0+KCdBVkFJTEFCTEVfUEVSTUlTU0lPTlMnKTtcbmV4cG9ydCBjb25zdCBBVkFJTEFCTEVfRE9NQUlOUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBEb21haW4+W10+KCdBVkFJTEFCTEVfRE9NQUlOUycpO1xuIl19
@@ -1,7 +0,0 @@
1
- export var AlertLevel;
2
- (function (AlertLevel) {
3
- AlertLevel["ERROR"] = "warn";
4
- AlertLevel["INFO"] = "accent";
5
- AlertLevel["SUCCESS"] = "success";
6
- })(AlertLevel || (AlertLevel = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLW1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2MtbGliL3NyYy9saWIvdHlwZXMvbm90aWZpY2F0aW9uLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNwQiw0QkFBYyxDQUFBO0lBQ2QsNkJBQWUsQ0FBQTtJQUNmLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxVQUFVLEtBQVYsVUFBVSxRQUlyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFsZXJ0TGV2ZWwge1xuICBFUlJPUiA9ICd3YXJuJyxcbiAgSU5GTyA9ICdhY2NlbnQnLFxuICBTVUNDRVNTID0gJ3N1Y2Nlc3MnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBsaW5rOiBzdHJpbmc7XG4gIGxldmVsOiBBbGVydExldmVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xuICBpZDogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBsaW5rOiBzdHJpbmc7XG4gIGxldmVsOiBBbGVydExldmVsO1xufVxuIl19
@@ -1,3 +0,0 @@
1
- export const ReadPermission = 'Read';
2
- export const UpdatePermission = 'Update';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2MtbGliL3NyYy9saWIvdHlwZXMvcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQW9CLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgQnJhbmQ8SywgVD4gPSBLICYgeyBfX2JyYW5kOiBUIH07XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb24gPSBCcmFuZDxzdHJpbmcsICdQZXJtaXNzaW9uJz47XG5leHBvcnQgdHlwZSBSZXNvdXJjZSA9IEJyYW5kPHN0cmluZywgJ1Jlc291cmNlJz47XG5leHBvcnQgdHlwZSBEb21haW4gPSBCcmFuZDxzdHJpbmcsICdEb21haW4nPjtcbmV4cG9ydCB0eXBlIERvbWFpblBlcm1pc3Npb25zID0gUmVjb3JkPERvbWFpbiwgUmVjb3JkPFJlc291cmNlLCBSZWNvcmQ8UGVybWlzc2lvbiwgUGVybWlzc2lvbnM+Pj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvblNjb3BlIHtcbiAgcmVzb3VyY2U6IFJlc291cmNlO1xuICBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uO1xuICBkb21haW46IERvbWFpbjtcbn1cblxuZXhwb3J0IGNvbnN0IFJlYWRQZXJtaXNzaW9uID0gJ1JlYWQnIGFzIFBlcm1pc3Npb247XG5leHBvcnQgY29uc3QgVXBkYXRlUGVybWlzc2lvbiA9ICdVcGRhdGUnIGFzIFBlcm1pc3Npb247XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3R5cGVzL3Nlc3Npb24taW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tYWluUGVybWlzc2lvbnMgfSBmcm9tICcuL3Blcm1pc3Npb25zJztcblxuLyoqXG4gKiBTZXNzaW9uIEluZm9ybWF0aW9uIGZvciBhIGxvZ2dlZCBpbiB1c2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvbkluZm8ge1xuICBhdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogRG9tYWluUGVybWlzc2lvbnM7XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { RouterModule } from '@angular/router';
6
- import { NotificationService } from '../../services/notification.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/icon";
9
- import * as i2 from "@angular/material/button";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/router";
12
- export class AlertComponent {
13
- error;
14
- dismiss = new EventEmitter();
15
- errors = inject(NotificationService);
16
- ngOnInit() {
17
- if (this.error.duration === undefined) {
18
- this.error.duration = 30000;
19
- }
20
- setTimeout(() => {
21
- this.dismissAlert();
22
- }, this.error.duration);
23
- }
24
- dismissAlert() {
25
- if (this.error.id !== undefined) {
26
- this.errors.dismissGlobalNotification(this.error);
27
- }
28
- }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: AlertComponent, isStandalone: true, selector: "ccc-alert", inputs: { error: "error" }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<div class=\"alert\" [ngClass]=\"error.level\">\n <div class=\"message\">\n <span>{{ error.message }}</span>\n </div>\n <div class=\"alert-end\">\n @if (error.link) {\n <span [routerLink]=\"error.link\" class=\"link\">View</span>\n }\n <button (click)=\"dismissAlert()\" mat-icon-button aria-label=\"Close Alert\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".alert{margin:auto;border:1px solid;max-width:450px;border-radius:5px;background-color:#d3d3d3;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.message{padding-left:15px;max-width:400px;display:flex;justify-content:space-between}.alert-end{display:flex;flex-direction:row;align-items:center;gap:5px}.link{cursor:pointer}.link:hover{text-decoration:underline}.warn{border-color:red;background-color:#fff5f4}.accent{border-color:#dfb51d;background-color:#fff8e0}.success{border-color:#4caf50;background-color:#f0fff0}\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: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AlertComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'ccc-alert', standalone: true, imports: [MatIconModule, MatButtonModule, CommonModule, RouterModule], template: "<div class=\"alert\" [ngClass]=\"error.level\">\n <div class=\"message\">\n <span>{{ error.message }}</span>\n </div>\n <div class=\"alert-end\">\n @if (error.link) {\n <span [routerLink]=\"error.link\" class=\"link\">View</span>\n }\n <button (click)=\"dismissAlert()\" mat-icon-button aria-label=\"Close Alert\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".alert{margin:auto;border:1px solid;max-width:450px;border-radius:5px;background-color:#d3d3d3;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.message{padding-left:15px;max-width:400px;display:flex;justify-content:space-between}.alert-end{display:flex;flex-direction:row;align-items:center;gap:5px}.link{cursor:pointer}.link:hover{text-decoration:underline}.warn{border-color:red;background-color:#fff5f4}.accent{border-color:#dfb51d;background-color:#fff8e0}.success{border-color:#4caf50;background-color:#f0fff0}\n"] }]
35
- }], propDecorators: { error: [{
36
- type: Input,
37
- args: [{ required: true }]
38
- }], dismiss: [{
39
- type: Output
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3VpL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NjLWxpYi9zcmMvbGliL3VpL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7QUFTMUUsTUFBTSxPQUFPLGNBQWM7SUFDRSxLQUFLLENBQXVCO0lBQzdDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXZDLE1BQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNyQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO3VHQW5CVSxjQUFjOzJGQUFkLGNBQWMsa0lDZjNCLG1aQWFBLCtsQkRBWSxhQUFhLG1MQUFFLGVBQWUsMklBQUUsWUFBWSw0SEFBRSxZQUFZOzsyRkFFekQsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDOzhCQUcxQyxLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDZixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NjLWFsZXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGVycm9yITogTm90aWZpY2F0aW9uTWVzc2FnZTtcbiAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZXJyb3JzID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lcnJvci5kdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmVycm9yLmR1cmF0aW9uID0gMzAwMDA7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRpc21pc3NBbGVydCgpO1xuICAgIH0sIHRoaXMuZXJyb3IuZHVyYXRpb24pO1xuICB9XG5cbiAgZGlzbWlzc0FsZXJ0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVycm9yLmlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmRpc21pc3NHbG9iYWxOb3RpZmljYXRpb24odGhpcy5lcnJvcik7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWxlcnRcIiBbbmdDbGFzc109XCJlcnJvci5sZXZlbFwiPlxuICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPlxuICAgIDxzcGFuPnt7IGVycm9yLm1lc3NhZ2UgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWxlcnQtZW5kXCI+XG4gICAgQGlmIChlcnJvci5saW5rKSB7XG4gICAgPHNwYW4gW3JvdXRlckxpbmtdPVwiZXJyb3IubGlua1wiIGNsYXNzPVwibGlua1wiPlZpZXc8L3NwYW4+XG4gICAgfVxuICAgIDxidXR0b24gKGNsaWNrKT1cImRpc21pc3NBbGVydCgpXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbG9zZSBBbGVydFwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -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