@acorex/modules 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/index.d.ts +1 -0
- package/auth/lib/account/account.module.d.ts +1 -1
- package/auth/lib/account/app-chooser/app-chooser-slot.component.d.ts +1 -1
- package/auth/lib/account/app-chooser/app-chooser.component.d.ts +1 -1
- package/auth/lib/account/profile/profile-slot.component.d.ts +6 -1
- package/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.d.ts +1 -1
- package/auth/lib/auth.config.d.ts +5 -5
- package/auth/lib/error-handler.d.ts +1 -1
- package/auth/lib/login/password/password.component.d.ts +1 -1
- package/backend/index.d.ts +2 -0
- package/backend/lib/auth/oidc/application.loader.d.ts +2 -2
- package/backend/lib/auth/oidc/configuration.service.d.ts +60 -0
- package/backend/lib/auth/oidc/feature.loader.d.ts +1 -0
- package/backend/lib/auth/oidc/index.d.ts +3 -0
- package/backend/lib/auth/oidc/oidc.strategy.d.ts +5 -3
- package/backend/lib/auth/oidc/permission.loader.d.ts +11 -2
- package/backend/lib/auth/oidc/signincallback.component.d.ts +1 -0
- package/backend/lib/auth/oidc/tenant.loader.d.ts +2 -2
- package/backend/lib/auth/oidc/usermanager.service.d.ts +4 -1
- package/backend/lib/backend.configs.d.ts +0 -5
- package/backend/lib/data/api/data-provider.d.ts +4 -0
- package/backend/lib/data/index.d.ts +3 -0
- package/backend/lib/data/local/data-Conditioner.d.ts +6 -0
- package/backend/lib/data/local/local-data-provider.d.ts +23 -0
- package/esm2022/auth/index.mjs +2 -1
- package/esm2022/auth/lib/account/account.module.mjs +12 -12
- package/esm2022/auth/lib/account/app-chooser/app-chooser-list.component.mjs +6 -6
- package/esm2022/auth/lib/account/app-chooser/app-chooser-slot.component.mjs +7 -6
- package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +7 -6
- package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +45 -18
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.mjs +6 -5
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +7 -7
- package/esm2022/auth/lib/auth.config.mjs +7 -6
- package/esm2022/auth/lib/auth.module.mjs +4 -4
- package/esm2022/auth/lib/auth.routes.mjs +7 -6
- package/esm2022/auth/lib/error-handler.mjs +14 -7
- package/esm2022/auth/lib/forgot/password/password.component.mjs +4 -4
- package/esm2022/auth/lib/login/login.module.mjs +5 -6
- package/esm2022/auth/lib/login/password/password.component.mjs +26 -11
- package/esm2022/auth/lib/shared/layouts/blank/blank.layout.mjs +3 -3
- package/esm2022/auth/lib/shared/layouts/master/master.layout.mjs +8 -7
- package/esm2022/auth/lib/shared/services/idle.service.mjs +3 -3
- package/esm2022/auth/lib/store/auth.effects.mjs +3 -3
- package/esm2022/auth/lib/two-factor/two-factor-code/two-factor-code.component.mjs +4 -4
- package/esm2022/auth/lib/two-factor/two-factor.module.mjs +4 -4
- package/esm2022/backend/index.mjs +3 -1
- package/esm2022/backend/lib/auth/oidc/application.loader.mjs +15 -13
- package/esm2022/backend/lib/auth/oidc/configuration.service.mjs +53 -0
- package/esm2022/backend/lib/auth/oidc/feature.loader.mjs +16 -2
- package/esm2022/backend/lib/auth/oidc/index.mjs +4 -1
- package/esm2022/backend/lib/auth/oidc/oidc.strategy.mjs +59 -39
- package/esm2022/backend/lib/auth/oidc/permission.loader.mjs +31 -4
- package/esm2022/backend/lib/auth/oidc/signincallback.component.mjs +27 -7
- package/esm2022/backend/lib/auth/oidc/tenant.loader.mjs +16 -14
- package/esm2022/backend/lib/auth/oidc/usermanager.service.mjs +8 -6
- package/esm2022/backend/lib/backend.configs.mjs +2 -3
- package/esm2022/backend/lib/backend.module.mjs +9 -23
- package/esm2022/backend/lib/data/api/data-provider.mjs +49 -13
- package/esm2022/backend/lib/data/index.mjs +4 -0
- package/esm2022/backend/lib/data/local/data-Conditioner.mjs +76 -0
- package/esm2022/backend/lib/data/local/local-data-provider.mjs +84 -0
- package/esm2022/log-management/acorex-modules-log-management.mjs +5 -0
- package/esm2022/log-management/index.mjs +3 -0
- package/esm2022/log-management/lib/audit-logs.entity.mjs +392 -0
- package/esm2022/log-management/lib/log-management.module.mjs +16 -0
- package/esm2022/notification/index.mjs +3 -1
- package/esm2022/notification/lib/notification.module.mjs +4 -4
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-3tiGzryz.mjs → acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs} +143 -109
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs +72 -0
- package/fesm2022/acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-blank.layout-0xNRyD5z.mjs → acorex-modules-auth-blank.layout-BOdRxDNv.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-blank.layout-0xNRyD5z.mjs.map → acorex-modules-auth-blank.layout-BOdRxDNv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-lGs54nBU.mjs → acorex-modules-auth-login.module-Drm4fC1I.mjs} +13 -12
- package/fesm2022/acorex-modules-auth-login.module-Drm4fC1I.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-master.layout-ytopPv2z.mjs → acorex-modules-auth-master.layout-cAm6TYeA.mjs} +12 -10
- package/fesm2022/acorex-modules-auth-master.layout-cAm6TYeA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-Q9Me4kkK.mjs → acorex-modules-auth-password.component-Ch2Wqi2W.mjs} +12 -10
- package/fesm2022/{acorex-modules-auth-password.component-Q9Me4kkK.mjs.map → acorex-modules-auth-password.component-Ch2Wqi2W.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-D4CkGaq0.mjs +127 -0
- package/fesm2022/acorex-modules-auth-password.component-D4CkGaq0.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-jgo2XGe0.mjs → acorex-modules-auth-routes-DyjibH6l.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-jgo2XGe0.mjs.map → acorex-modules-auth-routes-DyjibH6l.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs +84 -0
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-fP6CLq9T.mjs → acorex-modules-auth-two-factor-code.component-B41iXHoT.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-fP6CLq9T.mjs.map → acorex-modules-auth-two-factor-code.component-B41iXHoT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module--fcoNW-s.mjs → acorex-modules-auth-two-factor.module-A0hevYO2.mjs} +12 -10
- package/fesm2022/acorex-modules-auth-two-factor.module-A0hevYO2.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth.mjs +7 -5
- package/fesm2022/acorex-modules-auth.mjs.map +1 -1
- package/fesm2022/acorex-modules-backend.mjs +432 -227
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +415 -0
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification.mjs +7 -4
- package/fesm2022/acorex-modules-notification.mjs.map +1 -1
- package/log-management/README.md +4 -0
- package/log-management/index.d.ts +2 -0
- package/log-management/lib/audit-logs.entity.d.ts +3 -0
- package/log-management/lib/log-management.module.d.ts +6 -0
- package/package.json +9 -3
- package/auth/lib/register/email/email.component.d.ts +0 -5
- package/auth/lib/register/register.module.d.ts +0 -7
- package/auth/lib/register/result/result.component.d.ts +0 -5
- package/backend/lib/auth/userpass/application.loader.d.ts +0 -6
- package/backend/lib/auth/userpass/index.d.ts +0 -4
- package/backend/lib/auth/userpass/permission.loader.d.ts +0 -5
- package/backend/lib/auth/userpass/tenant.loader.d.ts +0 -6
- package/backend/lib/auth/userpass/userpass.strategy.d.ts +0 -12
- package/esm2022/auth/lib/register/email/email.component.mjs +0 -42
- package/esm2022/auth/lib/register/register.module.mjs +0 -59
- package/esm2022/auth/lib/register/result/result.component.mjs +0 -33
- package/esm2022/backend/lib/auth/userpass/application.loader.mjs +0 -30
- package/esm2022/backend/lib/auth/userpass/index.mjs +0 -5
- package/esm2022/backend/lib/auth/userpass/permission.loader.mjs +0 -12
- package/esm2022/backend/lib/auth/userpass/tenant.loader.mjs +0 -26
- package/esm2022/backend/lib/auth/userpass/userpass.strategy.mjs +0 -40
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-3tiGzryz.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-Hh2T5orM.mjs +0 -70
- package/fesm2022/acorex-modules-auth-app-chooser.component-Hh2T5orM.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-email.component-ZbTwT8iu.mjs +0 -45
- package/fesm2022/acorex-modules-auth-email.component-ZbTwT8iu.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-login.module-lGs54nBU.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-master.layout-ytopPv2z.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-p1Ks9S5q.mjs +0 -110
- package/fesm2022/acorex-modules-auth-password.component-p1Ks9S5q.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-register.module-ckbVm-yf.mjs +0 -77
- package/fesm2022/acorex-modules-auth-register.module-ckbVm-yf.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-result.component-ORUU7lkV.mjs +0 -36
- package/fesm2022/acorex-modules-auth-result.component-ORUU7lkV.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-PeGg21Im.mjs +0 -84
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-PeGg21Im.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-two-factor.module--fcoNW-s.mjs.map +0 -1
@@ -1,39 +1,85 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import {
|
3
|
-
import * as i1$2 from '@acorex/platform/common';
|
4
|
-
import { AXPSignOutAction, AXPSignInAction, AXPComponentSlotModule, AXPCommonModule } from '@acorex/platform/common';
|
5
|
-
import * as i1$1 from '@angular/common';
|
6
|
-
import { CommonModule } from '@angular/common';
|
7
|
-
import { HttpErrorResponse, HttpClientModule } from '@angular/common/http';
|
2
|
+
import { inject, NgZone, isDevMode, Injectable, InjectionToken, Component, ViewChild, NgModule } from '@angular/core';
|
8
3
|
import * as i2 from '@angular/router';
|
9
4
|
import { Router, RouterModule, ROUTES } from '@angular/router';
|
5
|
+
import { AXPUnauthorizedError, AXPUnauthenticatedError, AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
|
6
|
+
import { HttpErrorResponse, HttpClientModule } from '@angular/common/http';
|
7
|
+
import { AXPLayoutService, AXPLogoComponent } from '@acorex/platform/layouts';
|
8
|
+
import * as i1$3 from '@acorex/platform/common';
|
9
|
+
import { AXPSignOutAction, AXPSignInAction, AXPDataProvider, AXPCommonModule } from '@acorex/platform/common';
|
10
|
+
import * as i1$1 from '@angular/common';
|
11
|
+
import { CommonModule } from '@angular/common';
|
10
12
|
import * as i1 from '@ngrx/effects';
|
11
13
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
12
|
-
import { AXPUnauthorizedError, AXPUnauthenticatedError, AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
|
13
14
|
import { AXDialogService } from '@acorex/components/dialog';
|
14
15
|
import { Subject, timer, switchMap as switchMap$1, of, tap as tap$1, firstValueFrom } from 'rxjs';
|
15
16
|
import { startWith, switchMap, tap } from 'rxjs/operators';
|
16
|
-
import * as
|
17
|
+
import * as i2$2 from '@acorex/components/button';
|
17
18
|
import { AXButtonModule } from '@acorex/components/button';
|
18
|
-
import * as
|
19
|
+
import * as i2$1 from '@acorex/components/decorators';
|
19
20
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
20
21
|
import * as i3$1 from '@acorex/components/popover';
|
21
22
|
import { AXPopoverModule } from '@acorex/components/popover';
|
22
|
-
import { AXPLogoComponent } from '@acorex/platform/layouts';
|
23
23
|
import * as i3 from '@acorex/components/loading';
|
24
24
|
import { AXLoadingModule } from '@acorex/components/loading';
|
25
25
|
import * as i3$2 from '@acorex/components/avatar';
|
26
26
|
import { AXAvatarModule } from '@acorex/components/avatar';
|
27
|
-
import * as i2$
|
27
|
+
import * as i2$3 from '@acorex/components/image';
|
28
28
|
import { AXImageModule } from '@acorex/components/image';
|
29
|
+
import { MockDataService } from '@acorex/platform/mocks';
|
30
|
+
import * as i1$2 from '@acorex/platform/layout';
|
31
|
+
import { AXPComponentSlotModule } from '@acorex/platform/layout';
|
32
|
+
|
33
|
+
class AXMAuthErrorHandler {
|
34
|
+
constructor() {
|
35
|
+
this.router = inject(Router);
|
36
|
+
this.layoutService = inject(AXPLayoutService);
|
37
|
+
this.zone = inject(NgZone);
|
38
|
+
}
|
39
|
+
handleError(error, next) {
|
40
|
+
if (error instanceof HttpErrorResponse) {
|
41
|
+
if (error.status == 401) {
|
42
|
+
this.router.navigate(['/auth/login']);
|
43
|
+
}
|
44
|
+
else if (error.status == 404) {
|
45
|
+
this.router.navigate(['/404']);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
else if (error instanceof AXPUnauthorizedError) {
|
49
|
+
const redirectUrl = error.data?.redirectUrl;
|
50
|
+
console.error(error.message);
|
51
|
+
this.router.navigate(['/401'], { queryParams: redirectUrl ? { redirectUrl: redirectUrl } : null });
|
52
|
+
}
|
53
|
+
else if (error instanceof AXPUnauthenticatedError) {
|
54
|
+
console.error(error.message);
|
55
|
+
const redirectUrl = error.data?.redirectUrl;
|
56
|
+
this.router.navigate(['/auth/login'], { queryParams: redirectUrl ? { redirectUrl: redirectUrl } : null });
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
if (isDevMode()) {
|
60
|
+
next(error); // Pass the error to the next handler
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
next(error); // maybe we need a error page
|
64
|
+
}
|
65
|
+
}
|
66
|
+
this.layoutService.setNavigationLoading(false);
|
67
|
+
}
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
69
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthErrorHandler }); }
|
70
|
+
}
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthErrorHandler, decorators: [{
|
72
|
+
type: Injectable
|
73
|
+
}] });
|
29
74
|
|
30
75
|
var AXMAuthenticationTypes;
|
31
76
|
(function (AXMAuthenticationTypes) {
|
32
77
|
AXMAuthenticationTypes[AXMAuthenticationTypes["UsernamePassword"] = 0] = "UsernamePassword";
|
33
|
-
AXMAuthenticationTypes[AXMAuthenticationTypes["
|
34
|
-
AXMAuthenticationTypes[AXMAuthenticationTypes["
|
35
|
-
AXMAuthenticationTypes[AXMAuthenticationTypes["
|
36
|
-
AXMAuthenticationTypes[AXMAuthenticationTypes["
|
78
|
+
AXMAuthenticationTypes[AXMAuthenticationTypes["UsernameEmailPassword"] = 1] = "UsernameEmailPassword";
|
79
|
+
AXMAuthenticationTypes[AXMAuthenticationTypes["EmailPassword"] = 2] = "EmailPassword";
|
80
|
+
AXMAuthenticationTypes[AXMAuthenticationTypes["MobilePassword"] = 3] = "MobilePassword";
|
81
|
+
AXMAuthenticationTypes[AXMAuthenticationTypes["EmailCode"] = 4] = "EmailCode";
|
82
|
+
AXMAuthenticationTypes[AXMAuthenticationTypes["MobileCode"] = 5] = "MobileCode";
|
37
83
|
})(AXMAuthenticationTypes || (AXMAuthenticationTypes = {}));
|
38
84
|
const AXM_AUTH_CONFIG_TOKEN = new InjectionToken('app-module-auth-config', {
|
39
85
|
providedIn: 'root',
|
@@ -42,7 +88,7 @@ const AXM_AUTH_CONFIG_TOKEN = new InjectionToken('app-module-auth-config', {
|
|
42
88
|
},
|
43
89
|
});
|
44
90
|
const AXMDefaultAuthConfigs = {
|
45
|
-
type: AXMAuthenticationTypes.
|
91
|
+
type: AXMAuthenticationTypes.UsernamePassword,
|
46
92
|
};
|
47
93
|
function configAuthModule(config = AXMDefaultAuthConfigs) {
|
48
94
|
return { ...AXMDefaultAuthConfigs, ...config };
|
@@ -59,69 +105,34 @@ const routes = [
|
|
59
105
|
},
|
60
106
|
{
|
61
107
|
path: '',
|
62
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
63
|
-
loadChildren: () => import('./acorex-modules-auth-login.module-
|
108
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-cAm6TYeA.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
109
|
+
loadChildren: () => import('./acorex-modules-auth-login.module-Drm4fC1I.mjs').then((c) => c.AXPSignInModule),
|
64
110
|
},
|
65
111
|
{
|
66
112
|
path: '',
|
67
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
68
|
-
loadChildren: () => import('./acorex-modules-auth-two-factor.module
|
113
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-cAm6TYeA.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
114
|
+
loadChildren: () => import('./acorex-modules-auth-two-factor.module-A0hevYO2.mjs').then((c) => c.AXPTwoFactorModule),
|
69
115
|
},
|
70
116
|
{
|
71
117
|
path: '',
|
72
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
73
|
-
loadChildren: () => import('./acorex-modules-auth-routes-
|
118
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-cAm6TYeA.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
119
|
+
loadChildren: () => import('./acorex-modules-auth-routes-DyjibH6l.mjs').then((c) => c),
|
74
120
|
},
|
75
121
|
{
|
76
122
|
path: 'account',
|
77
|
-
loadComponent: () => import('./acorex-modules-auth-blank.layout-
|
123
|
+
loadComponent: () => import('./acorex-modules-auth-blank.layout-BOdRxDNv.mjs').then((c) => c.AXPAuthBlankLayoutComponent),
|
78
124
|
loadChildren: () => Promise.resolve().then(function () { return account_module; }).then((c) => c.AXPAccountModule),
|
79
125
|
},
|
80
|
-
{
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
126
|
+
// {
|
127
|
+
// path: '',
|
128
|
+
// loadComponent: () =>
|
129
|
+
// import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),
|
130
|
+
// loadChildren: () => import('./register/register.module').then((c) => c.AXPRegisterModule),
|
131
|
+
// },
|
85
132
|
],
|
86
133
|
},
|
87
134
|
];
|
88
135
|
|
89
|
-
class AXMAuthErrorHandler {
|
90
|
-
constructor() {
|
91
|
-
this.router = inject(Router);
|
92
|
-
this.zone = inject(NgZone);
|
93
|
-
}
|
94
|
-
handleError(error, next) {
|
95
|
-
if (error instanceof HttpErrorResponse) {
|
96
|
-
if (error.status == 401) {
|
97
|
-
this.router.navigate(['/auth/login']);
|
98
|
-
}
|
99
|
-
else if (error.status == 404) {
|
100
|
-
this.router.navigate(['/404']);
|
101
|
-
}
|
102
|
-
}
|
103
|
-
else if (error instanceof AXPUnauthorizedError) {
|
104
|
-
this.router.navigate(['/401']);
|
105
|
-
}
|
106
|
-
else if (error instanceof AXPUnauthenticatedError) {
|
107
|
-
this.router.navigate(['/auth/login']);
|
108
|
-
}
|
109
|
-
else {
|
110
|
-
if (isDevMode()) {
|
111
|
-
next(error); // Pass the error to the next handler
|
112
|
-
}
|
113
|
-
else {
|
114
|
-
next(error); // maybe we need a error page
|
115
|
-
}
|
116
|
-
}
|
117
|
-
}
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXMAuthErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
119
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXMAuthErrorHandler }); }
|
120
|
-
}
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXMAuthErrorHandler, decorators: [{
|
122
|
-
type: Injectable
|
123
|
-
}], ctorParameters: () => [] });
|
124
|
-
|
125
136
|
class AXPIdleService {
|
126
137
|
constructor() {
|
127
138
|
this.configs = inject(AXM_AUTH_CONFIG_TOKEN);
|
@@ -151,10 +162,10 @@ class AXPIdleService {
|
|
151
162
|
this.idleSubscription = null;
|
152
163
|
}
|
153
164
|
}
|
154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
155
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPIdleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
166
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPIdleService, providedIn: 'root' }); }
|
156
167
|
}
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPIdleService, decorators: [{
|
158
169
|
type: Injectable,
|
159
170
|
args: [{ providedIn: 'root' }]
|
160
171
|
}], ctorParameters: () => [] });
|
@@ -230,10 +241,10 @@ class AXPAuthEffects {
|
|
230
241
|
}
|
231
242
|
})), { dispatch: false });
|
232
243
|
}
|
233
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
234
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
244
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthEffects, deps: [{ token: i1.Actions }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
245
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthEffects }); }
|
235
246
|
}
|
236
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthEffects, decorators: [{
|
237
248
|
type: Injectable
|
238
249
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Router }] });
|
239
250
|
|
@@ -248,15 +259,15 @@ class AXPAppChooserListComponent {
|
|
248
259
|
}
|
249
260
|
async chooseApplication(item) {
|
250
261
|
this.selectedApplication = item;
|
251
|
-
await this.sessionService.
|
262
|
+
await this.sessionService.setApplication(item);
|
252
263
|
this.router.navigate([`/${item.name}/home`]);
|
253
264
|
}
|
254
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
255
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
265
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
266
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", ngImport: i0, template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }] }); }
|
256
267
|
}
|
257
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
|
258
269
|
type: Component,
|
259
|
-
args: [{ selector: 'axp-app-chooser-list', standalone: true, imports: [CommonModule, AXDecoratorModule, AXPLogoComponent, AXLoadingModule], template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div
|
270
|
+
args: [{ selector: 'axp-app-chooser-list', standalone: true, imports: [CommonModule, AXDecoratorModule, AXPLogoComponent, AXLoadingModule], template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>" }]
|
260
271
|
}] });
|
261
272
|
|
262
273
|
class AXMAppChooserSlotComponent {
|
@@ -264,17 +275,17 @@ class AXMAppChooserSlotComponent {
|
|
264
275
|
this.sessionService = inject(AXPSessionService);
|
265
276
|
this.tenant$ = this.sessionService.tenant$;
|
266
277
|
this.application$ = this.sessionService.application$;
|
267
|
-
this.applications$ =
|
278
|
+
this.applications$ = of([]);
|
268
279
|
this.router = inject(Router);
|
269
280
|
}
|
270
281
|
async chooseApplication(item) {
|
271
|
-
await this.sessionService.selectApplication(item.name);
|
282
|
+
//await this.sessionService.selectApplication(item.name);
|
272
283
|
this.router.navigate([`/${item.name}/home`]);
|
273
284
|
}
|
274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
275
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
285
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
286
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if(((applications$ | async)?.length ?? 0) > 1)\n{\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list" }] }); }
|
276
287
|
}
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
288
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
|
278
289
|
type: Component,
|
279
290
|
args: [{ standalone: true, imports: [
|
280
291
|
CommonModule,
|
@@ -290,16 +301,16 @@ class AXPTenantChooserDropdownComponent {
|
|
290
301
|
constructor() {
|
291
302
|
this.router = inject(Router);
|
292
303
|
this.sessionService = inject(AXPSessionService);
|
293
|
-
this.tenants$ = this.sessionService.tenants$;
|
304
|
+
this.tenants$ = of([]); // this.sessionService.tenants$;
|
294
305
|
this.tenant = this.sessionService.tenant;
|
295
306
|
}
|
296
307
|
tenantChooser() {
|
297
308
|
this.router.navigate(['/auth/account/tenant-chooser']);
|
298
309
|
}
|
299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
300
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
310
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
311
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", ngImport: i0, template: "<ng-container *ngIf=\"tenants$ | async as tenants\">\n @if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n }\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
|
301
312
|
}
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
|
303
314
|
type: Component,
|
304
315
|
args: [{ selector: 'axp-tenant-chooser-dropdown', standalone: true, imports: [CommonModule, AXDecoratorModule], template: "<ng-container *ngIf=\"tenants$ | async as tenants\">\n @if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n }\n</ng-container>" }]
|
305
316
|
}] });
|
@@ -308,12 +319,15 @@ class AXMAuthProfileSlotComponent {
|
|
308
319
|
constructor() {
|
309
320
|
this.router = inject(Router);
|
310
321
|
this.sessionService = inject(AXPSessionService);
|
322
|
+
this.dataService = inject(AXPDataProvider, { optional: true });
|
323
|
+
this.mockerService = inject(MockDataService);
|
311
324
|
this.user$ = this.sessionService.user$;
|
312
325
|
this.tenant$ = this.sessionService.tenant$;
|
313
326
|
this.isAuthenticated$ = this.sessionService.isAuthenticated$;
|
327
|
+
this.loadImage();
|
314
328
|
}
|
315
329
|
editProfile() {
|
316
|
-
this.router.navigate(['/asc/
|
330
|
+
this.router.navigate(['/asc/identity/e/user-info/0/view']);
|
317
331
|
}
|
318
332
|
async logOut() {
|
319
333
|
await this.sessionService.signout();
|
@@ -322,12 +336,31 @@ class AXMAuthProfileSlotComponent {
|
|
322
336
|
this.profilePopover.open();
|
323
337
|
}
|
324
338
|
handleSignIn() {
|
325
|
-
this.router.navigate([
|
339
|
+
this.router.navigate(['/auth/login']);
|
340
|
+
}
|
341
|
+
async loadImage() {
|
342
|
+
try {
|
343
|
+
const url = this.sessionService.user?.avatar;
|
344
|
+
if (url?.toLowerCase().startsWith("http")) {
|
345
|
+
this.src = url;
|
346
|
+
}
|
347
|
+
else if (this.sessionService.user?.avatar != 'null' && this.dataService) {
|
348
|
+
//TODO: Remove dataService and mockService
|
349
|
+
const blob = await this.dataService.viewFile(url, '');
|
350
|
+
this.src = URL.createObjectURL(blob);
|
351
|
+
}
|
352
|
+
else {
|
353
|
+
this.src = this.mockerService.avatar();
|
354
|
+
}
|
355
|
+
}
|
356
|
+
catch (error) {
|
357
|
+
console.error('Failed to load image by ID:', error);
|
358
|
+
}
|
326
359
|
}
|
327
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
328
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
360
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
361
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\n <ax-image [src]=\"src\"></ax-image>\n</ax-avatar>\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <ax-avatar [size]=\"60\">\n <ax-image [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n </ax-avatar>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"profile-menus ax-text-slate-500\">\n <!-- <ul>\n <li>\n <i class=\"fa-solid fa-folder-open\"></i>\n <span> Project Management </span>\n </li>\n <li>\n <i class=\"fa-solid fa-envelope-open-text\"></i>\n <span>Email Config</span>\n </li>\n <li>\n <i class=\"fa-solid fa-gear\"></i>\n <span>Setting</span>\n </li>\n </ul> -->\n <ul>\n <!-- <li>\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\n <span> Upgrade account </span>\n </li> -->\n <li (click)=\"editProfile()\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Edit profile</span>\n </li>\n </ul>\n <ul>\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\n <span>Logout</span>\n </li>\n </ul>\n </div>\n </div>\n</ax-popover>\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2$3.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i3$2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }] }); }
|
329
362
|
}
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthProfileSlotComponent, decorators: [{
|
331
364
|
type: Component,
|
332
365
|
args: [{ standalone: true, imports: [
|
333
366
|
CommonModule,
|
@@ -336,9 +369,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
336
369
|
AXPopoverModule,
|
337
370
|
AXButtonModule,
|
338
371
|
AXDecoratorModule,
|
339
|
-
AXPTenantChooserDropdownComponent
|
340
|
-
|
341
|
-
|
372
|
+
AXPTenantChooserDropdownComponent,
|
373
|
+
AXLoadingModule,
|
374
|
+
], template: "@if((isAuthenticated$ | async)) {\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\n <ax-image [src]=\"src\"></ax-image>\n</ax-avatar>\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <ax-avatar [size]=\"60\">\n <ax-image [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n </ax-avatar>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"profile-menus ax-text-slate-500\">\n <!-- <ul>\n <li>\n <i class=\"fa-solid fa-folder-open\"></i>\n <span> Project Management </span>\n </li>\n <li>\n <i class=\"fa-solid fa-envelope-open-text\"></i>\n <span>Email Config</span>\n </li>\n <li>\n <i class=\"fa-solid fa-gear\"></i>\n <span>Setting</span>\n </li>\n </ul> -->\n <ul>\n <!-- <li>\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\n <span> Upgrade account </span>\n </li> -->\n <li (click)=\"editProfile()\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Edit profile</span>\n </li>\n </ul>\n <ul>\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\n <span>Logout</span>\n </li>\n </ul>\n </div>\n </div>\n</ax-popover>\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}" }]
|
375
|
+
}], ctorParameters: () => [], propDecorators: { profilePopover: [{
|
342
376
|
type: ViewChild,
|
343
377
|
args: ['profilePopover']
|
344
378
|
}] } });
|
@@ -346,12 +380,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
346
380
|
const canActivateTenantChooser = async (route, state) => {
|
347
381
|
const sessionService = inject(AXPSessionService);
|
348
382
|
const router = inject(Router);
|
349
|
-
const
|
350
|
-
if (
|
383
|
+
const tenants = await firstValueFrom(sessionService.tenants$);
|
384
|
+
if (tenants.length == 0) {
|
351
385
|
return router.createUrlTree(['/auth/login']);
|
352
386
|
}
|
353
|
-
if (
|
354
|
-
await sessionService.
|
387
|
+
if (tenants.length == 1) {
|
388
|
+
await sessionService.setTenant(tenants[0]);
|
355
389
|
return router.createUrlTree(['/auth/account/app-chooser']);
|
356
390
|
}
|
357
391
|
return true;
|
@@ -364,7 +398,7 @@ const canActivateAppChooser = async (route, state) => {
|
|
364
398
|
return router.createUrlTree(['/auth/login']);
|
365
399
|
}
|
366
400
|
if (apps.length == 1) {
|
367
|
-
await sessionService.
|
401
|
+
await sessionService.setApplication(apps[0]);
|
368
402
|
return router.createUrlTree([`/${apps[0].name}/home`]);
|
369
403
|
}
|
370
404
|
return true;
|
@@ -374,21 +408,21 @@ function routesFacory() {
|
|
374
408
|
routes = [
|
375
409
|
{
|
376
410
|
path: 'tenant-chooser',
|
377
|
-
loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-
|
411
|
+
loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs').then((c) => c.AXPAuthTenantChooserComponent),
|
378
412
|
canActivate: [AXPAuthGuard, canActivateTenantChooser]
|
379
413
|
},
|
380
414
|
{
|
381
415
|
path: 'app-chooser',
|
382
|
-
loadComponent: () => import('./acorex-modules-auth-app-chooser.component-
|
416
|
+
loadComponent: () => import('./acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs').then((c) => c.AXPAuthAppChooserComponent),
|
383
417
|
canActivate: [AXPAuthGuard, canActivateAppChooser]
|
384
418
|
},
|
385
419
|
];
|
386
420
|
return routes;
|
387
421
|
}
|
388
422
|
class AXPAccountModule {
|
389
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
390
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
391
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
423
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAccountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
424
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPAccountModule, imports: [RouterModule, i1$2.AXPComponentSlotModule] }); }
|
425
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAccountModule, providers: [
|
392
426
|
{
|
393
427
|
provide: ROUTES,
|
394
428
|
multi: true,
|
@@ -409,7 +443,7 @@ class AXPAccountModule {
|
|
409
443
|
]
|
410
444
|
})] }); }
|
411
445
|
}
|
412
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAccountModule, decorators: [{
|
413
447
|
type: NgModule,
|
414
448
|
args: [{
|
415
449
|
declarations: [],
|
@@ -452,16 +486,16 @@ class AXMAuthModule {
|
|
452
486
|
providers: [],
|
453
487
|
};
|
454
488
|
}
|
455
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
456
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
457
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
489
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
490
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, imports: [CommonModule, i1$3.AXPCommonModule, HttpClientModule, i2.RouterModule, i1.EffectsFeatureModule, AXPAccountModule] }); }
|
491
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, providers: [AXMAuthErrorHandler], imports: [CommonModule,
|
458
492
|
AXPCommonModule.forChild({ errorHandlers: [AXMAuthErrorHandler] }),
|
459
493
|
HttpClientModule,
|
460
494
|
RouterModule.forChild(routes),
|
461
495
|
EffectsModule.forFeature([AXPAuthEffects]),
|
462
496
|
AXPAccountModule] }); }
|
463
497
|
}
|
464
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
498
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, decorators: [{
|
465
499
|
type: NgModule,
|
466
500
|
args: [{
|
467
501
|
imports: [
|
@@ -480,5 +514,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
480
514
|
* Generated bundle index. Do not edit.
|
481
515
|
*/
|
482
516
|
|
483
|
-
export { AXM_AUTH_CONFIG_TOKEN as A, AXMAuthenticationTypes as a, AXPTenantChooserDropdownComponent as b, AXPAppChooserListComponent as c,
|
484
|
-
//# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-
|
517
|
+
export { AXM_AUTH_CONFIG_TOKEN as A, AXMAuthenticationTypes as a, AXPTenantChooserDropdownComponent as b, AXPAppChooserListComponent as c, AXMAuthErrorHandler as d, AXMDefaultAuthConfigs as e, configAuthModule as f, AXMAuthModule as g, AXPIdleService as h };
|
518
|
+
//# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs.map
|