@acorex/modules 18.0.9 → 18.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/application-management/README.md +4 -0
- package/application-management/index.d.ts +1 -0
- package/application-management/lib/application-management.module.d.ts +6 -0
- package/auth/lib/account/profile/profile-slot.component.d.ts +5 -0
- package/auth/lib/auth.config.d.ts +2 -2
- package/backend/lib/auth/oidc/index.d.ts +0 -2
- package/backend/lib/auth/oidc/oidc.strategy.d.ts +41 -9
- package/backend/lib/auth/oidc/signincallback.component.d.ts +1 -3
- package/backend/lib/backend.module.d.ts +4 -3
- package/backend/lib/data/api/file.service.d.ts +16 -0
- package/backend/lib/data/index.d.ts +1 -0
- package/esm2022/application-management/acorex-modules-application-management.mjs +5 -0
- package/esm2022/application-management/index.mjs +2 -0
- package/esm2022/application-management/lib/application-management.module.mjs +16 -0
- package/esm2022/auth/lib/account/account.module.mjs +24 -19
- package/esm2022/auth/lib/account/app-chooser/app-chooser-list.component.mjs +3 -3
- package/esm2022/auth/lib/account/app-chooser/app-chooser-slot.component.mjs +4 -4
- package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +3 -3
- package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +26 -8
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.mjs +3 -3
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +5 -5
- package/esm2022/auth/lib/auth.config.mjs +1 -1
- package/esm2022/auth/lib/auth.module.mjs +4 -4
- package/esm2022/auth/lib/error-handler.mjs +3 -3
- package/esm2022/auth/lib/forgot/password/password.component.mjs +4 -4
- package/esm2022/auth/lib/login/login.module.mjs +4 -4
- package/esm2022/auth/lib/login/password/password.component.mjs +8 -7
- package/esm2022/auth/lib/shared/layouts/blank/blank.layout.mjs +3 -3
- package/esm2022/auth/lib/shared/layouts/master/master.layout.mjs +3 -3
- 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/lib/auth/oidc/application.loader.mjs +3 -3
- package/esm2022/backend/lib/auth/oidc/configuration.service.mjs +3 -3
- package/esm2022/backend/lib/auth/oidc/index.mjs +1 -3
- package/esm2022/backend/lib/auth/oidc/oidc.strategy.mjs +195 -56
- package/esm2022/backend/lib/auth/oidc/permission.loader.mjs +3 -3
- package/esm2022/backend/lib/auth/oidc/signincallback.component.mjs +8 -11
- package/esm2022/backend/lib/auth/oidc/tenant.loader.mjs +3 -3
- package/esm2022/backend/lib/backend.module.mjs +23 -9
- package/esm2022/backend/lib/data/api/data-provider.mjs +3 -3
- package/esm2022/backend/lib/data/api/file.service.mjs +101 -0
- package/esm2022/backend/lib/data/index.mjs +2 -1
- package/esm2022/backend/lib/data/local/local-data-provider.mjs +3 -3
- package/esm2022/log-management/lib/log-management.module.mjs +4 -4
- package/esm2022/notification/lib/notification.module.mjs +4 -4
- package/fesm2022/acorex-modules-application-management.mjs +23 -0
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BjhfeQT8.mjs → acorex-modules-auth-acorex-modules-auth-B8LgaiHl.mjs} +78 -56
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-B8LgaiHl.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-B-wfsJob.mjs → acorex-modules-auth-app-chooser.component-DYP5fP8W.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-app-chooser.component-B-wfsJob.mjs.map → acorex-modules-auth-app-chooser.component-DYP5fP8W.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-blank.layout-BOdRxDNv.mjs → acorex-modules-auth-blank.layout-Bq822Iz4.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-blank.layout-BOdRxDNv.mjs.map → acorex-modules-auth-blank.layout-Bq822Iz4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-CcNDUqEl.mjs → acorex-modules-auth-login.module-B3xEQTTg.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-login.module-CcNDUqEl.mjs.map → acorex-modules-auth-login.module-B3xEQTTg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-BGy5Vo5H.mjs → acorex-modules-auth-master.layout-DczZtXmF.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-master.layout-BGy5Vo5H.mjs.map → acorex-modules-auth-master.layout-DczZtXmF.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BZfvv8yV.mjs → acorex-modules-auth-password.component-BaeFOot_.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-password.component-BZfvv8yV.mjs.map → acorex-modules-auth-password.component-BaeFOot_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-IzjzV-ia.mjs → acorex-modules-auth-password.component-CJMstlMr.mjs} +10 -9
- package/fesm2022/acorex-modules-auth-password.component-CJMstlMr.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-JW0JYsnX.mjs → acorex-modules-auth-routes-DScu3qYW.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-JW0JYsnX.mjs.map → acorex-modules-auth-routes-DScu3qYW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Bkyqj03k.mjs → acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Bkyqj03k.mjs.map → acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-ChMhFBJL.mjs → acorex-modules-auth-two-factor-code.component-B_7l39pX.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-ChMhFBJL.mjs.map → acorex-modules-auth-two-factor-code.component-B_7l39pX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-Biz85Ffl.mjs → acorex-modules-auth-two-factor.module-BzdjoEGS.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-two-factor.module-Biz85Ffl.mjs.map → acorex-modules-auth-two-factor.module-BzdjoEGS.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-backend.mjs +579 -370
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +4 -4
- package/fesm2022/acorex-modules-notification.mjs +4 -4
- package/package.json +13 -7
- package/backend/lib/auth/oidc/usermanager.service.d.ts +0 -15
- package/esm2022/backend/lib/auth/oidc/usermanager.service.mjs +0 -37
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-BjhfeQT8.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-IzjzV-ia.mjs.map +0 -1
@@ -0,0 +1,101 @@
|
|
1
|
+
import { AXDownloadStatus, AXNetworkService, AXUploadStatus } from '@acorex/core/network';
|
2
|
+
import { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
4
|
+
import { Injectable, inject } from '@angular/core';
|
5
|
+
import { Observable } from 'rxjs';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
export class AXMFileManagementService {
|
8
|
+
constructor() {
|
9
|
+
this.configs = inject(AXP_ROOT_CONFIG_TOKEN);
|
10
|
+
this.mainUrl = this.configs.baseUrl;
|
11
|
+
this.http = inject(HttpClient);
|
12
|
+
this.networkService = inject(AXNetworkService);
|
13
|
+
}
|
14
|
+
upload(requests) {
|
15
|
+
const url = `${this.mainUrl}/common/files`;
|
16
|
+
const tasks = requests.map((r) => {
|
17
|
+
const formData = new FormData();
|
18
|
+
formData.append('File', r.file);
|
19
|
+
const task = this.networkService.upload(url, formData);
|
20
|
+
return new Promise((resolve, reject) => {
|
21
|
+
task.events.subscribe({
|
22
|
+
next: (event) => {
|
23
|
+
if (event.status == AXUploadStatus.UploadFailed) {
|
24
|
+
r.error(event.message || '');
|
25
|
+
reject(event.result);
|
26
|
+
}
|
27
|
+
if (event.status == AXUploadStatus.UploadComplete) {
|
28
|
+
r.finish();
|
29
|
+
resolve(event.result);
|
30
|
+
}
|
31
|
+
else {
|
32
|
+
r.setTransferredBytes(event.bytesTransferred);
|
33
|
+
}
|
34
|
+
},
|
35
|
+
});
|
36
|
+
r.onStart.subscribe(() => {
|
37
|
+
task.start();
|
38
|
+
});
|
39
|
+
r.onCancel.subscribe(() => {
|
40
|
+
task.cancel();
|
41
|
+
reject({ status: 'cancelled', request: r });
|
42
|
+
});
|
43
|
+
r.upload();
|
44
|
+
});
|
45
|
+
});
|
46
|
+
return Promise.allSettled(tasks);
|
47
|
+
}
|
48
|
+
delete(fileId) {
|
49
|
+
return new Promise((resolve, reject) => {
|
50
|
+
setTimeout(() => resolve({ success: true, fileId }), 1000);
|
51
|
+
});
|
52
|
+
}
|
53
|
+
get(fileId, name) {
|
54
|
+
return new Observable((observer) => {
|
55
|
+
const url = `${this.mainUrl}/common/files/${fileId}/Download/${name}`;
|
56
|
+
const downloadTask = this.networkService.download(url);
|
57
|
+
downloadTask.events.subscribe((event) => {
|
58
|
+
// Emit progress events
|
59
|
+
observer.next({
|
60
|
+
status: event.status,
|
61
|
+
progress: event.progress,
|
62
|
+
fileId,
|
63
|
+
data: event.data || null, // Assuming `event.data` contains the downloaded file's data when completed
|
64
|
+
});
|
65
|
+
// Complete the observable if download is finished
|
66
|
+
if (event.status === AXDownloadStatus.DownloadComplete) {
|
67
|
+
observer.complete();
|
68
|
+
}
|
69
|
+
}, (error) => {
|
70
|
+
console.error('Download failed:', error);
|
71
|
+
observer.error({
|
72
|
+
status: 'failed',
|
73
|
+
fileId,
|
74
|
+
error,
|
75
|
+
});
|
76
|
+
});
|
77
|
+
return () => {
|
78
|
+
downloadTask.cancel();
|
79
|
+
};
|
80
|
+
});
|
81
|
+
}
|
82
|
+
list() {
|
83
|
+
return new Promise((resolve, reject) => {
|
84
|
+
setTimeout(() => resolve([{ fileId: '1', data: 'fileData' }]), 1000);
|
85
|
+
});
|
86
|
+
}
|
87
|
+
setMetadata(fileId, metadata) {
|
88
|
+
return new Promise((resolve, reject) => {
|
89
|
+
setTimeout(() => resolve({ fileId, metadata }), 1000);
|
90
|
+
});
|
91
|
+
}
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMFileManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
93
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMFileManagementService, providedIn: 'root' }); }
|
94
|
+
}
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMFileManagementService, decorators: [{
|
96
|
+
type: Injectable,
|
97
|
+
args: [{
|
98
|
+
providedIn: 'root',
|
99
|
+
}]
|
100
|
+
}] });
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2JhY2tlbmQvc3JjL2xpYi9kYXRhL2FwaS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtsQyxNQUFNLE9BQU8sd0JBQXdCO0lBSHJDO1FBSVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hDLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0E0Rm5EO0lBMUZDLE1BQU0sQ0FBQyxRQUEyQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLGVBQWUsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXZELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO29CQUNwQixJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDOzRCQUNoRCxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3ZCLENBQUM7d0JBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzs0QkFDbEQsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3hCLENBQUM7NkJBQU0sQ0FBQzs0QkFDTixDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBQ2hELENBQUM7b0JBQ0gsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBRUgsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2QsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDbkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEdBQUcsQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUM5QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxpQkFBaUIsTUFBTSxhQUFhLElBQUksRUFBRSxDQUFDO1lBQ3RFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXZELFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUMzQixDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNSLHVCQUF1QjtnQkFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQ3BCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtvQkFDeEIsTUFBTTtvQkFDTixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsMkVBQTJFO2lCQUN0RyxDQUFDLENBQUM7Z0JBRUgsa0RBQWtEO2dCQUNsRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdkQsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDO1lBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDekMsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDYixNQUFNLEVBQUUsUUFBUTtvQkFDaEIsTUFBTTtvQkFDTixLQUFLO2lCQUNOLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FDRixDQUFDO1lBQ0YsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLFFBQWE7UUFDdkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQS9GVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhVcGxvYWRSZXF1ZXN0IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3VwbG9hZGVyJztcbmltcG9ydCB7IEFYRG93bmxvYWRTdGF0dXMsIEFYTmV0d29ya1NlcnZpY2UsIEFYVXBsb2FkU3RhdHVzIH0gZnJvbSAnQGFjb3JleC9jb3JlL25ldHdvcmsnO1xuaW1wb3J0IHsgQVhQX1JPT1RfQ09ORklHX1RPS0VOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhNRmlsZU1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWdzID0gaW5qZWN0KEFYUF9ST09UX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgbWFpblVybCA9IHRoaXMuY29uZmlncy5iYXNlVXJsO1xuICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgbmV0d29ya1NlcnZpY2UgPSBpbmplY3QoQVhOZXR3b3JrU2VydmljZSk7XG5cbiAgdXBsb2FkKHJlcXVlc3RzOiBBWFVwbG9hZFJlcXVlc3RbXSk6IFByb21pc2U8UHJvbWlzZVNldHRsZWRSZXN1bHQ8dW5rbm93bj5bXT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWFpblVybH0vY29tbW9uL2ZpbGVzYDtcbiAgICBjb25zdCB0YXNrcyA9IHJlcXVlc3RzLm1hcCgocikgPT4ge1xuICAgICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ0ZpbGUnLCByLmZpbGUpO1xuICAgICAgY29uc3QgdGFzayA9IHRoaXMubmV0d29ya1NlcnZpY2UudXBsb2FkKHVybCwgZm9ybURhdGEpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0YXNrLmV2ZW50cy5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXR1cyA9PSBBWFVwbG9hZFN0YXR1cy5VcGxvYWRGYWlsZWQpIHtcbiAgICAgICAgICAgICAgci5lcnJvcihldmVudC5tZXNzYWdlIHx8ICcnKTtcbiAgICAgICAgICAgICAgcmVqZWN0KGV2ZW50LnJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXZlbnQuc3RhdHVzID09IEFYVXBsb2FkU3RhdHVzLlVwbG9hZENvbXBsZXRlKSB7XG4gICAgICAgICAgICAgIHIuZmluaXNoKCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQucmVzdWx0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHIuc2V0VHJhbnNmZXJyZWRCeXRlcyhldmVudC5ieXRlc1RyYW5zZmVycmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByLm9uU3RhcnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0YXNrLnN0YXJ0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHIub25DYW5jZWwuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0YXNrLmNhbmNlbCgpO1xuICAgICAgICAgIHJlamVjdCh7IHN0YXR1czogJ2NhbmNlbGxlZCcsIHJlcXVlc3Q6IHIgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHIudXBsb2FkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbFNldHRsZWQodGFza3MpO1xuICB9XG5cbiAgZGVsZXRlKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKHsgc3VjY2VzczogdHJ1ZSwgZmlsZUlkIH0pLCAxMDAwKTtcbiAgICB9KTtcbiAgfVxuICBnZXQoZmlsZUlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfS9jb21tb24vZmlsZXMvJHtmaWxlSWR9L0Rvd25sb2FkLyR7bmFtZX1gO1xuICAgICAgY29uc3QgZG93bmxvYWRUYXNrID0gdGhpcy5uZXR3b3JrU2VydmljZS5kb3dubG9hZCh1cmwpO1xuXG4gICAgICBkb3dubG9hZFRhc2suZXZlbnRzLnN1YnNjcmliZShcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gRW1pdCBwcm9ncmVzcyBldmVudHNcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHtcbiAgICAgICAgICAgIHN0YXR1czogZXZlbnQuc3RhdHVzLFxuICAgICAgICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnByb2dyZXNzLFxuICAgICAgICAgICAgZmlsZUlkLFxuICAgICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSB8fCBudWxsLCAvLyBBc3N1bWluZyBgZXZlbnQuZGF0YWAgY29udGFpbnMgdGhlIGRvd25sb2FkZWQgZmlsZSdzIGRhdGEgd2hlbiBjb21wbGV0ZWRcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIENvbXBsZXRlIHRoZSBvYnNlcnZhYmxlIGlmIGRvd25sb2FkIGlzIGZpbmlzaGVkXG4gICAgICAgICAgaWYgKGV2ZW50LnN0YXR1cyA9PT0gQVhEb3dubG9hZFN0YXR1cy5Eb3dubG9hZENvbXBsZXRlKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRG93bmxvYWQgZmFpbGVkOicsIGVycm9yKTtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcih7XG4gICAgICAgICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgICAgICAgICAgZmlsZUlkLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb3dubG9hZFRhc2suY2FuY2VsKCk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgbGlzdCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUoW3sgZmlsZUlkOiAnMScsIGRhdGE6ICdmaWxlRGF0YScgfV0pLCAxMDAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1ldGFkYXRhKGZpbGVJZDogc3RyaW5nLCBtZXRhZGF0YTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKHsgZmlsZUlkLCBtZXRhZGF0YSB9KSwgMTAwMCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,4 +1,5 @@
|
|
1
1
|
export * from './api/data-provider';
|
2
|
+
export * from './api/file.service';
|
2
3
|
export * from './local/data-Conditioner';
|
3
4
|
export * from './local/local-data-provider';
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYmFja2VuZC9zcmMvbGliL2RhdGEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBpL2RhdGEtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvZmlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwvZGF0YS1Db25kaXRpb25lcic7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsL2xvY2FsLWRhdGEtcHJvdmlkZXInO1xuIl19
|
@@ -72,10 +72,10 @@ export class AXMLocalDataProvider {
|
|
72
72
|
downloadFile(id, name) {
|
73
73
|
return this.viewFile(id, name);
|
74
74
|
}
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
76
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMLocalDataProvider, deps: [{ token: i1.AXPStorageMockService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
76
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMLocalDataProvider, providedIn: 'root' }); }
|
77
77
|
}
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMLocalDataProvider, decorators: [{
|
79
79
|
type: Injectable,
|
80
80
|
args: [{
|
81
81
|
providedIn: 'root',
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { NgModule } from "@angular/core";
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class AXMLogManagementModule {
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
5
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
6
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMLogManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
5
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMLogManagementModule }); }
|
6
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMLogManagementModule }); }
|
7
7
|
}
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMLogManagementModule, decorators: [{
|
9
9
|
type: NgModule,
|
10
10
|
args: [{
|
11
11
|
imports: [],
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { NgModule } from "@angular/core";
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class AXMNotificationModule {
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
5
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
6
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
5
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMNotificationModule }); }
|
6
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMNotificationModule }); }
|
7
7
|
}
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMNotificationModule, decorators: [{
|
9
9
|
type: NgModule,
|
10
10
|
args: [{
|
11
11
|
imports: [],
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
|
4
|
+
class AXMApplicationManagementModule {
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMApplicationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMApplicationManagementModule }); }
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMApplicationManagementModule }); }
|
8
|
+
}
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMApplicationManagementModule, decorators: [{
|
10
|
+
type: NgModule,
|
11
|
+
args: [{
|
12
|
+
imports: [],
|
13
|
+
exports: [],
|
14
|
+
declarations: [],
|
15
|
+
}]
|
16
|
+
}] });
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Generated bundle index. Do not edit.
|
20
|
+
*/
|
21
|
+
|
22
|
+
export { AXMApplicationManagementModule };
|
23
|
+
//# sourceMappingURL=acorex-modules-application-management.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-modules-application-management.mjs","sources":["../../../../libs/modules/application-management/src/lib/application-management.module.ts","../../../../libs/modules/application-management/src/acorex-modules-application-management.ts"],"sourcesContent":["import { NgModule } from \"@angular/core\";\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n})\nexport class AXMApplicationManagementModule {\n}\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,8BAA8B,CAAA;8GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA9B,8BAA8B,EAAA,CAAA,CAAA,EAAA;+GAA9B,8BAA8B,EAAA,CAAA,CAAA,EAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,YAAY,EAAE,EAAE;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { inject, NgZone, isDevMode, Injectable, InjectionToken, Component, ViewChild, NgModule } from '@angular/core';
|
2
|
+
import { inject, NgZone, isDevMode, Injectable, InjectionToken, Component, signal, ViewChild, NgModule } from '@angular/core';
|
3
3
|
import * as i1$2 from '@acorex/platform/common';
|
4
4
|
import { AXPLayoutService, AXPSignOutAction, AXPSignInAction, AXPLogoComponent, AXPDataProvider, AXPComponentSlotModule, AXPCommonModule } from '@acorex/platform/common';
|
5
5
|
import * as i2 from '@angular/router';
|
@@ -11,7 +11,7 @@ import { CommonModule } from '@angular/common';
|
|
11
11
|
import * as i1 from '@ngrx/effects';
|
12
12
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
13
13
|
import { AXDialogService } from '@acorex/components/dialog';
|
14
|
-
import { Subject, timer, switchMap as switchMap$1, of, tap as tap$1, firstValueFrom } from 'rxjs';
|
14
|
+
import { Subject, timer, switchMap as switchMap$1, of, tap as tap$1, first, firstValueFrom } from 'rxjs';
|
15
15
|
import { startWith, switchMap, tap } from 'rxjs/operators';
|
16
16
|
import * as i2$2 from '@acorex/components/button';
|
17
17
|
import { AXButtonModule } from '@acorex/components/button';
|
@@ -25,7 +25,7 @@ import * as i3$2 from '@acorex/components/avatar';
|
|
25
25
|
import { AXAvatarModule } from '@acorex/components/avatar';
|
26
26
|
import * as i2$3 from '@acorex/components/image';
|
27
27
|
import { AXImageModule } from '@acorex/components/image';
|
28
|
-
import * as
|
28
|
+
import * as i9 from '@acorex/core/translation';
|
29
29
|
import { AXTranslationModule } from '@acorex/core/translation';
|
30
30
|
import { MockDataService } from '@acorex/platform/mocks';
|
31
31
|
|
@@ -64,10 +64,10 @@ class AXMAuthErrorHandler {
|
|
64
64
|
}
|
65
65
|
this.layoutService.setNavigationLoading(false);
|
66
66
|
}
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
68
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
68
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthErrorHandler }); }
|
69
69
|
}
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthErrorHandler, decorators: [{
|
71
71
|
type: Injectable
|
72
72
|
}] });
|
73
73
|
|
@@ -104,22 +104,22 @@ const routes = [
|
|
104
104
|
},
|
105
105
|
{
|
106
106
|
path: '',
|
107
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
108
|
-
loadChildren: () => import('./acorex-modules-auth-login.module-
|
107
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-DczZtXmF.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
108
|
+
loadChildren: () => import('./acorex-modules-auth-login.module-B3xEQTTg.mjs').then((c) => c.AXPSignInModule),
|
109
109
|
},
|
110
110
|
{
|
111
111
|
path: '',
|
112
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
113
|
-
loadChildren: () => import('./acorex-modules-auth-two-factor.module-
|
112
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-DczZtXmF.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
113
|
+
loadChildren: () => import('./acorex-modules-auth-two-factor.module-BzdjoEGS.mjs').then((c) => c.AXPTwoFactorModule),
|
114
114
|
},
|
115
115
|
{
|
116
116
|
path: '',
|
117
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
118
|
-
loadChildren: () => import('./acorex-modules-auth-routes-
|
117
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-DczZtXmF.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
118
|
+
loadChildren: () => import('./acorex-modules-auth-routes-DScu3qYW.mjs').then((c) => c),
|
119
119
|
},
|
120
120
|
{
|
121
121
|
path: 'account',
|
122
|
-
loadComponent: () => import('./acorex-modules-auth-blank.layout-
|
122
|
+
loadComponent: () => import('./acorex-modules-auth-blank.layout-Bq822Iz4.mjs').then((c) => c.AXPAuthBlankLayoutComponent),
|
123
123
|
loadChildren: () => Promise.resolve().then(function () { return account_module; }).then((c) => c.AXPAccountModule),
|
124
124
|
},
|
125
125
|
// {
|
@@ -161,10 +161,10 @@ class AXPIdleService {
|
|
161
161
|
this.idleSubscription = null;
|
162
162
|
}
|
163
163
|
}
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
165
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPIdleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
165
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPIdleService, providedIn: 'root' }); }
|
166
166
|
}
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPIdleService, decorators: [{
|
168
168
|
type: Injectable,
|
169
169
|
args: [{ providedIn: 'root' }]
|
170
170
|
}], ctorParameters: () => [] });
|
@@ -240,10 +240,10 @@ class AXPAuthEffects {
|
|
240
240
|
}
|
241
241
|
})), { dispatch: false });
|
242
242
|
}
|
243
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
244
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0
|
243
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAuthEffects, deps: [{ token: i1.Actions }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
244
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAuthEffects }); }
|
245
245
|
}
|
246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAuthEffects, decorators: [{
|
247
247
|
type: Injectable
|
248
248
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Router }] });
|
249
249
|
|
@@ -261,10 +261,10 @@ class AXPAppChooserListComponent {
|
|
261
261
|
await this.sessionService.setApplication(item);
|
262
262
|
this.router.navigate([`/${item.name}/home`]);
|
263
263
|
}
|
264
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
265
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
264
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
265
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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"] }] }); }
|
266
266
|
}
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
|
268
268
|
type: Component,
|
269
269
|
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>" }]
|
270
270
|
}] });
|
@@ -281,10 +281,10 @@ class AXMAppChooserSlotComponent {
|
|
281
281
|
//await this.sessionService.selectApplication(item.name);
|
282
282
|
this.router.navigate([`/${item.name}/home`]);
|
283
283
|
}
|
284
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
285
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
284
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
285
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { 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" }] }); }
|
286
286
|
}
|
287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
|
288
288
|
type: Component,
|
289
289
|
args: [{ standalone: true, imports: [
|
290
290
|
CommonModule,
|
@@ -306,10 +306,10 @@ class AXPTenantChooserDropdownComponent {
|
|
306
306
|
tenantChooser() {
|
307
307
|
this.router.navigate(['/auth/account/tenant-chooser']);
|
308
308
|
}
|
309
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
310
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
309
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
310
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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"] }] }); }
|
311
311
|
}
|
312
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
|
313
313
|
type: Component,
|
314
314
|
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>" }]
|
315
315
|
}] });
|
@@ -320,10 +320,23 @@ class AXMAuthProfileSlotComponent {
|
|
320
320
|
this.sessionService = inject(AXPSessionService);
|
321
321
|
this.dataService = inject(AXPDataProvider, { optional: true });
|
322
322
|
this.mockerService = inject(MockDataService);
|
323
|
+
this.hasPicture = signal(true);
|
324
|
+
this.avatarText = signal('');
|
323
325
|
this.user$ = this.sessionService.user$;
|
324
326
|
this.tenant$ = this.sessionService.tenant$;
|
325
327
|
this.isAuthenticated$ = this.sessionService.isAuthenticated$;
|
328
|
+
this.getAvatarText = () => {
|
329
|
+
this.user$.pipe(first()).subscribe((user) => {
|
330
|
+
const names = user?.title.split(' ');
|
331
|
+
if (names?.length && names?.length > 1) {
|
332
|
+
this.avatarText.set(`${names[0][0].toUpperCase()}${names[names.length - 1][0].toUpperCase()}`);
|
333
|
+
}
|
334
|
+
else
|
335
|
+
return this.avatarText.set('AC');
|
336
|
+
});
|
337
|
+
};
|
326
338
|
this.loadImage();
|
339
|
+
this.getAvatarText();
|
327
340
|
}
|
328
341
|
editProfile() {
|
329
342
|
const appName = this.sessionService.application?.name;
|
@@ -348,6 +361,9 @@ class AXMAuthProfileSlotComponent {
|
|
348
361
|
handleSignIn() {
|
349
362
|
this.router.navigate(['/auth/login']);
|
350
363
|
}
|
364
|
+
onImageError(event) {
|
365
|
+
this.hasPicture.set(false);
|
366
|
+
}
|
351
367
|
async loadImage() {
|
352
368
|
try {
|
353
369
|
const url = this.sessionService.user?.avatar;
|
@@ -355,7 +371,6 @@ class AXMAuthProfileSlotComponent {
|
|
355
371
|
this.src = url;
|
356
372
|
}
|
357
373
|
else if (this.sessionService.user?.avatar != 'null' && this.dataService) {
|
358
|
-
//TODO: Remove dataService and mockService
|
359
374
|
const blob = await this.dataService.viewFile(url, '');
|
360
375
|
this.src = URL.createObjectURL(blob);
|
361
376
|
}
|
@@ -364,13 +379,15 @@ class AXMAuthProfileSlotComponent {
|
|
364
379
|
}
|
365
380
|
}
|
366
381
|
catch (error) {
|
382
|
+
this.hasPicture.set(false);
|
367
383
|
console.error('Failed to load image by ID:', error);
|
384
|
+
this.src = '';
|
368
385
|
}
|
369
386
|
}
|
370
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
371
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0
|
387
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
388
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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\" (error)=\"this.src = 'path/to/default-image.jpg'\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\n @if(hasPicture()){\n <ax-image (onError)=\"onImageError($event)\" [src]=\"src\"></ax-image>\n }@else{\n <ax-text>\n <small class=\"ax-text-xs ax-font-semibold\">{{ avatarText() }}</small>\n </ax-text>\n }\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 @if(hasPicture()){\n <ax-image (onError)=\"onImageError($event)\" [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"\">{{ avatarText() }}</span>\n </ax-text>\n }\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>{{ 'profile.edit' | translate | async }}</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>{{ 'profile.logout' | translate | async }}</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}\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"], outputs: ["sizeChange"] }, { 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", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { 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"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i9.AXTranslatorPipe, name: "translate" }] }); }
|
372
389
|
}
|
373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
390
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthProfileSlotComponent, decorators: [{
|
374
391
|
type: Component,
|
375
392
|
args: [{ standalone: true, imports: [
|
376
393
|
CommonModule,
|
@@ -381,8 +398,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
381
398
|
AXDecoratorModule,
|
382
399
|
AXPTenantChooserDropdownComponent,
|
383
400
|
AXLoadingModule,
|
384
|
-
AXTranslationModule
|
385
|
-
], 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>{{ 'profile.edit' | translate | async }}</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>{{ 'profile.logout' | translate | async }}</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}" }]
|
401
|
+
AXTranslationModule,
|
402
|
+
], template: "@if((isAuthenticated$ | async)) {\n<ax-avatar #avatar color=\"secondary\" (error)=\"this.src = 'path/to/default-image.jpg'\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\n @if(hasPicture()){\n <ax-image (onError)=\"onImageError($event)\" [src]=\"src\"></ax-image>\n }@else{\n <ax-text>\n <small class=\"ax-text-xs ax-font-semibold\">{{ avatarText() }}</small>\n </ax-text>\n }\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 @if(hasPicture()){\n <ax-image (onError)=\"onImageError($event)\" [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"\">{{ avatarText() }}</span>\n </ax-text>\n }\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>{{ 'profile.edit' | translate | async }}</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>{{ 'profile.logout' | translate | async }}</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}\n" }]
|
386
403
|
}], ctorParameters: () => [], propDecorators: { profilePopover: [{
|
387
404
|
type: ViewChild,
|
388
405
|
args: ['profilePopover']
|
@@ -391,6 +408,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
391
408
|
const canActivateTenantChooser = async (route, state) => {
|
392
409
|
const sessionService = inject(AXPSessionService);
|
393
410
|
const router = inject(Router);
|
411
|
+
const sessionDate = await sessionService.getSessionData();
|
412
|
+
// if tenantn exist in session skip choose tenant
|
413
|
+
if (sessionDate?.tenant && sessionDate.tenant.id) {
|
414
|
+
return router.createUrlTree(['/auth/account/app-chooser']);
|
415
|
+
}
|
394
416
|
const tenants = await firstValueFrom(sessionService.tenants$);
|
395
417
|
if (tenants.length == 0) {
|
396
418
|
return router.createUrlTree(['/auth/login']);
|
@@ -419,21 +441,21 @@ function routesFacory() {
|
|
419
441
|
routes = [
|
420
442
|
{
|
421
443
|
path: 'tenant-chooser',
|
422
|
-
loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-
|
423
|
-
canActivate: [AXPAuthGuard, canActivateTenantChooser]
|
444
|
+
loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-CHr5_kh7.mjs').then((c) => c.AXPAuthTenantChooserComponent),
|
445
|
+
canActivate: [AXPAuthGuard, canActivateTenantChooser],
|
424
446
|
},
|
425
447
|
{
|
426
448
|
path: 'app-chooser',
|
427
|
-
loadComponent: () => import('./acorex-modules-auth-app-chooser.component-
|
428
|
-
canActivate: [AXPAuthGuard, canActivateAppChooser]
|
449
|
+
loadComponent: () => import('./acorex-modules-auth-app-chooser.component-DYP5fP8W.mjs').then((c) => c.AXPAuthAppChooserComponent),
|
450
|
+
canActivate: [AXPAuthGuard, canActivateAppChooser],
|
429
451
|
},
|
430
452
|
];
|
431
453
|
return routes;
|
432
454
|
}
|
433
455
|
class AXPAccountModule {
|
434
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
435
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
436
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
456
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAccountModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
457
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPAccountModule, imports: [RouterModule, i1$2.AXPComponentSlotModule] }); }
|
458
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAccountModule, providers: [
|
437
459
|
{
|
438
460
|
provide: ROUTES,
|
439
461
|
multi: true,
|
@@ -442,19 +464,19 @@ class AXPAccountModule {
|
|
442
464
|
], imports: [RouterModule,
|
443
465
|
//
|
444
466
|
AXPComponentSlotModule.forChild({
|
445
|
-
|
467
|
+
'header-end': [
|
446
468
|
{
|
447
|
-
name:
|
469
|
+
name: 'app-choser',
|
448
470
|
component: AXMAppChooserSlotComponent,
|
449
471
|
},
|
450
472
|
{
|
451
|
-
name:
|
473
|
+
name: 'profile',
|
452
474
|
component: AXMAuthProfileSlotComponent,
|
453
475
|
},
|
454
|
-
]
|
476
|
+
],
|
455
477
|
})] }); }
|
456
478
|
}
|
457
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
479
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPAccountModule, decorators: [{
|
458
480
|
type: NgModule,
|
459
481
|
args: [{
|
460
482
|
declarations: [],
|
@@ -462,17 +484,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
462
484
|
RouterModule,
|
463
485
|
//
|
464
486
|
AXPComponentSlotModule.forChild({
|
465
|
-
|
487
|
+
'header-end': [
|
466
488
|
{
|
467
|
-
name:
|
489
|
+
name: 'app-choser',
|
468
490
|
component: AXMAppChooserSlotComponent,
|
469
491
|
},
|
470
492
|
{
|
471
|
-
name:
|
493
|
+
name: 'profile',
|
472
494
|
component: AXMAuthProfileSlotComponent,
|
473
495
|
},
|
474
|
-
]
|
475
|
-
})
|
496
|
+
],
|
497
|
+
}),
|
476
498
|
],
|
477
499
|
exports: [],
|
478
500
|
providers: [
|
@@ -497,16 +519,16 @@ class AXMAuthModule {
|
|
497
519
|
providers: [],
|
498
520
|
};
|
499
521
|
}
|
500
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0
|
501
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0
|
502
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0
|
522
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
523
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthModule, imports: [CommonModule, i1$2.AXPCommonModule, HttpClientModule, i2.RouterModule, i1.EffectsFeatureModule, AXPAccountModule] }); }
|
524
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthModule, providers: [AXMAuthErrorHandler], imports: [CommonModule,
|
503
525
|
AXPCommonModule.forChild({ errorHandlers: [AXMAuthErrorHandler] }),
|
504
526
|
HttpClientModule,
|
505
527
|
RouterModule.forChild(routes),
|
506
528
|
EffectsModule.forFeature([AXPAuthEffects]),
|
507
529
|
AXPAccountModule] }); }
|
508
530
|
}
|
509
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0
|
531
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAuthModule, decorators: [{
|
510
532
|
type: NgModule,
|
511
533
|
args: [{
|
512
534
|
imports: [
|
@@ -526,4 +548,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
526
548
|
*/
|
527
549
|
|
528
550
|
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 };
|
529
|
-
//# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-
|
551
|
+
//# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-B8LgaiHl.mjs.map
|