@acorex-platform/module-auth-client 0.0.54 → 0.0.56
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/fesm2022/{acorex-platform-module-auth-client-acorex-platform-module-auth-client-BpCPkKC9.mjs → acorex-platform-module-auth-client-acorex-platform-module-auth-client-DuplzyV7.mjs} +73 -49
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-DuplzyV7.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-EKZpp1BW.mjs → acorex-platform-module-auth-client-app-chooser.component-DtqWiAUz.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-EKZpp1BW.mjs.map → acorex-platform-module-auth-client-app-chooser.component-DtqWiAUz.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-change-password.command-CKeSpikK.mjs → acorex-platform-module-auth-client-change-password.command-Bmhag8Ec.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-change-password.command-CKeSpikK.mjs.map → acorex-platform-module-auth-client-change-password.command-Bmhag8Ec.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-Bv9ttDAn.mjs → acorex-platform-module-auth-client-change-photo.command-nUXhaunq.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-Bv9ttDAn.mjs.map → acorex-platform-module-auth-client-change-photo.command-nUXhaunq.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-C0tOES_Q.mjs → acorex-platform-module-auth-client-get-user-activity.query-WQ2Cddje.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-C0tOES_Q.mjs.map → acorex-platform-module-auth-client-get-user-activity.query-WQ2Cddje.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-TKTC-1hk.mjs → acorex-platform-module-auth-client-lock-screen.command-BNfSDphl.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-TKTC-1hk.mjs.map → acorex-platform-module-auth-client-lock-screen.command-BNfSDphl.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-login.module-ewiwr6VL.mjs → acorex-platform-module-auth-client-login.module-Vnp_yqik.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-login.module-ewiwr6VL.mjs.map → acorex-platform-module-auth-client-login.module-Vnp_yqik.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-manage-two-factor.command-DR8NUf_4.mjs → acorex-platform-module-auth-client-manage-two-factor.command-DUKXmbTm.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-manage-two-factor.command-DR8NUf_4.mjs.map → acorex-platform-module-auth-client-manage-two-factor.command-DUKXmbTm.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-oauth-callback.component-DWnljN18.mjs → acorex-platform-module-auth-client-oauth-callback.component-BgUSFibH.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-oauth-callback.component-DWnljN18.mjs.map → acorex-platform-module-auth-client-oauth-callback.component-BgUSFibH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-ZMYyVU1K.mjs → acorex-platform-module-auth-client-open-sessions.command-QA8Qy-QK.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-ZMYyVU1K.mjs.map → acorex-platform-module-auth-client-open-sessions.command-QA8Qy-QK.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-password.component-C1Ic8qul.mjs → acorex-platform-module-auth-client-password.component-DV_st1dO.mjs} +3 -3
- package/fesm2022/acorex-platform-module-auth-client-password.component-DV_st1dO.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-profile-activity-chart.component-D4q4Cnl9.mjs → acorex-platform-module-auth-client-profile-activity-chart.component-ChfLmf-G.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-profile-activity-chart.component-D4q4Cnl9.mjs.map → acorex-platform-module-auth-client-profile-activity-chart.component-ChfLmf-G.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-D364KW58.mjs → acorex-platform-module-auth-client-profile-page-component.provider-DFR0YCzn.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-D364KW58.mjs.map → acorex-platform-module-auth-client-profile-page-component.provider-DFR0YCzn.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-DtI-_Kng.mjs → acorex-platform-module-auth-client-profile-page.component-CTUIGiwl.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-DtI-_Kng.mjs.map → acorex-platform-module-auth-client-profile-page.component-CTUIGiwl.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-register-password.component-BZj1bmwP.mjs → acorex-platform-module-auth-client-register-password.component-Dxnh1oWk.mjs} +9 -8
- package/fesm2022/acorex-platform-module-auth-client-register-password.component-Dxnh1oWk.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-register.module-jbBjiAHz.mjs → acorex-platform-module-auth-client-register.module-5_AvLXe5.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-auth-client-register.module-jbBjiAHz.mjs.map → acorex-platform-module-auth-client-register.module-5_AvLXe5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-BDN-ehow.mjs → acorex-platform-module-auth-client-remove-pin-code.command-CHs-Ulo9.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-BDN-ehow.mjs.map → acorex-platform-module-auth-client-remove-pin-code.command-CHs-Ulo9.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-auth-client-result.component-DuMch6Ge.mjs +38 -0
- package/fesm2022/acorex-platform-module-auth-client-result.component-DuMch6Ge.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-DlLih00S.mjs → acorex-platform-module-auth-client-session-lock-overlay.component-BG_kRZlx.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-DlLih00S.mjs.map → acorex-platform-module-auth-client-session-lock-overlay.component-BG_kRZlx.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-ZzialSjs.mjs → acorex-platform-module-auth-client-set-pin-code.command-Dr-Ca07P.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-ZzialSjs.mjs.map → acorex-platform-module-auth-client-set-pin-code.command-Dr-Ca07P.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-DTmtx45j.mjs → acorex-platform-module-auth-client-set-pin-code.component-BJDxhfaN.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-DTmtx45j.mjs.map → acorex-platform-module-auth-client-set-pin-code.component-BJDxhfaN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-BdOXSMVU.mjs → acorex-platform-module-auth-client-tenant-chooser.component-BuDF5_BQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-BdOXSMVU.mjs.map → acorex-platform-module-auth-client-tenant-chooser.component-BuDF5_BQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-two-factor-code.component-CxBUushO.mjs → acorex-platform-module-auth-client-two-factor-code.component-C7mUgPF3.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-two-factor-code.component-CxBUushO.mjs.map → acorex-platform-module-auth-client-two-factor-code.component-C7mUgPF3.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-two-factor.module-DIq7MnHw.mjs → acorex-platform-module-auth-client-two-factor.module-DfBc55hu.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-two-factor.module-DIq7MnHw.mjs.map → acorex-platform-module-auth-client-two-factor.module-DfBc55hu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-Bx61ZM1U.mjs → acorex-platform-module-auth-client-view-login-history.command-BDWELxmi.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-Bx61ZM1U.mjs.map → acorex-platform-module-auth-client-view-login-history.command-BDWELxmi.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding-page.component-zGdD8pkX.mjs → acorex-platform-module-auth-client-welcome-onboarding-page.component-DcYCayqN.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding-page.component-zGdD8pkX.mjs.map → acorex-platform-module-auth-client-welcome-onboarding-page.component-DcYCayqN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding.command-B5NBzcTY.mjs → acorex-platform-module-auth-client-welcome-onboarding.command-BKMo5xN9.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding.command-B5NBzcTY.mjs.map → acorex-platform-module-auth-client-welcome-onboarding.command-BKMo5xN9.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-auth-client.mjs +1 -1
- package/i18n/en-AU/auth.json +1196 -0
- package/i18n/en-US/auth.json +1196 -0
- package/i18n/fa-IR/auth.json +1196 -0
- package/package.json +2 -2
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-BpCPkKC9.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-auth-client-password.component-C1Ic8qul.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-auth-client-register-password.component-BZj1bmwP.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-auth-client-result.component-Bo1QkwMu.mjs +0 -36
- package/fesm2022/acorex-platform-module-auth-client-result.component-Bo1QkwMu.mjs.map +0 -1
|
@@ -38,9 +38,9 @@ import * as i3 from '@acorex/components/skeleton';
|
|
|
38
38
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
39
39
|
import * as i5 from '@acorex/core/translation';
|
|
40
40
|
import { AXTranslationModule, AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';
|
|
41
|
+
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
41
42
|
import { AXAvatarModule } from '@acorex/components/avatar';
|
|
42
43
|
import { AXImageModule } from '@acorex/components/image';
|
|
43
|
-
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
44
44
|
import * as i6 from '@acorex/components/search-box';
|
|
45
45
|
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
46
46
|
import * as i1$2 from '@angular/forms';
|
|
@@ -996,12 +996,12 @@ const routes = [
|
|
|
996
996
|
{
|
|
997
997
|
path: '',
|
|
998
998
|
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
999
|
-
loadChildren: () => import('./acorex-platform-module-auth-client-login.module-
|
|
999
|
+
loadChildren: () => import('./acorex-platform-module-auth-client-login.module-Vnp_yqik.mjs').then((c) => c.AXPSignInModule),
|
|
1000
1000
|
},
|
|
1001
1001
|
{
|
|
1002
1002
|
path: '',
|
|
1003
1003
|
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
1004
|
-
loadChildren: () => import('./acorex-platform-module-auth-client-two-factor.module-
|
|
1004
|
+
loadChildren: () => import('./acorex-platform-module-auth-client-two-factor.module-DfBc55hu.mjs').then((c) => c.AXPTwoFactorModule),
|
|
1005
1005
|
},
|
|
1006
1006
|
{
|
|
1007
1007
|
path: '',
|
|
@@ -1010,7 +1010,7 @@ const routes = [
|
|
|
1010
1010
|
},
|
|
1011
1011
|
{
|
|
1012
1012
|
path: 'oauth-callback',
|
|
1013
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-oauth-callback.component-
|
|
1013
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-oauth-callback.component-BgUSFibH.mjs').then((c) => c.AXPOAuthCallbackComponent),
|
|
1014
1014
|
},
|
|
1015
1015
|
{
|
|
1016
1016
|
path: 'account',
|
|
@@ -1020,7 +1020,7 @@ const routes = [
|
|
|
1020
1020
|
{
|
|
1021
1021
|
path: '',
|
|
1022
1022
|
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
1023
|
-
loadChildren: () => import('./acorex-platform-module-auth-client-register.module-
|
|
1023
|
+
loadChildren: () => import('./acorex-platform-module-auth-client-register.module-5_AvLXe5.mjs').then((c) => c.AXPRegisterModule),
|
|
1024
1024
|
},
|
|
1025
1025
|
],
|
|
1026
1026
|
},
|
|
@@ -1030,7 +1030,7 @@ class AXPAppChooserListComponent {
|
|
|
1030
1030
|
//#endregion
|
|
1031
1031
|
//#region ---- Computed Properties ----
|
|
1032
1032
|
isApplicationSelected(application) {
|
|
1033
|
-
return application.id === this.
|
|
1033
|
+
return application.id === this.sessionApplicationId;
|
|
1034
1034
|
}
|
|
1035
1035
|
applicationLogoKey(application) {
|
|
1036
1036
|
return axpApplicationLogoKey(application.id);
|
|
@@ -1075,9 +1075,14 @@ class AXPAppChooserListComponent {
|
|
|
1075
1075
|
...(ngDevMode ? [{ debugName: "selectedApplication" }] : /* istanbul ignore next */ []));
|
|
1076
1076
|
this.isSelectBoxOpen = signal(false, /* @ts-ignore */
|
|
1077
1077
|
...(ngDevMode ? [{ debugName: "isSelectBoxOpen" }] : /* istanbul ignore next */ []));
|
|
1078
|
+
/** Current session application id. Kept off the session getter so template checks do not emit session subjects. */
|
|
1079
|
+
this.sessionApplicationId = null;
|
|
1078
1080
|
this.canApply = computed(() => !!this.selectedApplication(), /* @ts-ignore */
|
|
1079
1081
|
...(ngDevMode ? [{ debugName: "canApply" }] : /* istanbul ignore next */ []));
|
|
1080
1082
|
this.skeletonItems = [1, 2, 3];
|
|
1083
|
+
this.sessionService.application$.pipe(takeUntilDestroyed()).subscribe((application) => {
|
|
1084
|
+
this.sessionApplicationId = application?.id ?? null;
|
|
1085
|
+
});
|
|
1081
1086
|
effect(() => {
|
|
1082
1087
|
this.loadingChange.emit(this.isLoading());
|
|
1083
1088
|
});
|
|
@@ -1093,16 +1098,23 @@ class AXPAppChooserListComponent {
|
|
|
1093
1098
|
this.sessionService.applications$.pipe(first()).subscribe((applications) => {
|
|
1094
1099
|
this.logoRegistration.registerApplications(applications);
|
|
1095
1100
|
this.allApplications.set(applications);
|
|
1096
|
-
if (applications.length > 0) {
|
|
1097
|
-
this.selectedApplication.set(applications[0]);
|
|
1098
|
-
}
|
|
1099
1101
|
this.isLoading.set(false);
|
|
1100
1102
|
});
|
|
1101
1103
|
}
|
|
1102
1104
|
//#endregion
|
|
1103
1105
|
//#region ---- UI Handlers ----
|
|
1104
1106
|
handleApplicationSelectionChanged(event) {
|
|
1105
|
-
|
|
1107
|
+
if (!event.isUserInteraction) {
|
|
1108
|
+
return;
|
|
1109
|
+
}
|
|
1110
|
+
const application = event.items?.[0] ?? null;
|
|
1111
|
+
queueMicrotask(() => this.selectedApplication.set(application));
|
|
1112
|
+
}
|
|
1113
|
+
handleSelectBoxOpened() {
|
|
1114
|
+
queueMicrotask(() => this.isSelectBoxOpen.set(true));
|
|
1115
|
+
}
|
|
1116
|
+
handleSelectBoxClosed() {
|
|
1117
|
+
queueMicrotask(() => this.isSelectBoxOpen.set(false));
|
|
1106
1118
|
}
|
|
1107
1119
|
handleApplicationSelect(event) {
|
|
1108
1120
|
if (!event.isUserInteraction) {
|
|
@@ -1203,7 +1215,7 @@ class AXPAppChooserListComponent {
|
|
|
1203
1215
|
}
|
|
1204
1216
|
}
|
|
1205
1217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", inputs: { simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { applicationChosen: "applicationChosen", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "listNav", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isLoading()) {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-10 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"w-16 h-4 rounded-md shrink-0\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allApplications()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedApplication()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:application-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"applicationItemTemplate\"\n [selectedTemplate]=\"applicationItemTemplate\"\n (onOpened)=\"
|
|
1218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", inputs: { simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { applicationChosen: "applicationChosen", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "listNav", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isLoading()) {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-10 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"w-16 h-4 rounded-md shrink-0\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allApplications()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedApplication()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:application-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"applicationItemTemplate\"\n [selectedTemplate]=\"applicationItemTemplate\"\n (onOpened)=\"handleSelectBoxOpened()\"\n (onClosed)=\"handleSelectBoxClosed()\"\n (onValueChanged)=\"handleApplicationSelect($event)\"\n (onSelectionChanged)=\"handleApplicationSelectionChanged($event)\"\n >\n </ax-lookup>\n <ax-button\n class=\"w-full\"\n color=\"primary\"\n [disabled]=\"!canApply() || isChoosing()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n >\n @if (isChoosing()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n} @else {\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"w-full overflow-auto max-h-[300px] flex flex-col divide-y divide-neutral-100 dark:divide-neutral-800\"\n role=\"listbox\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (application of allApplications(); track application.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isApplicationSelected(application)\"\n [attr.aria-busy]=\"choosingId() === application.id\"\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors outline-none hover:bg-primary-lightest hover:dark:bg-primary-dark focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary\"\n [class.bg-primary-lighter]=\"isApplicationSelected(application)\"\n [class.dark:bg-primary-darker]=\"isApplicationSelected(application)\"\n [class.text-primary-on-lighter]=\"isApplicationSelected(application)\"\n [class.dark:text-primary-on-darker]=\"isApplicationSelected(application)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== application.id\"\n [class.cursor-wait]=\"isChoosing()\"\n (click)=\"chooseApplication(application)\"\n (keydown)=\"handleListItemKeyDown($event, application)\"\n >\n <div class=\"flex flex-1 gap-3 items-center min-w-0\">\n <div class=\"shrink-0 size-12 overflow-hidden rounded-lg\">\n <axp-logo\n [logoKey]=\"applicationLogoKey(application)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(application.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 min-w-0 text-start md:text-base text-sm break-words md:truncate\">{{\n application.title | translate | async\n }}</span>\n @if (application.edition?.title) {\n <span class=\"text-muted text-xs shrink-0\">{{\n application.edition?.title | translate | async\n }}</span>\n }\n </div>\n @if (choosingId() === application.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n}\n\n<ng-template #applicationItemTemplate let-item>\n <div class=\"flex gap-3 items-center p-2\">\n <div class=\"size-12 overflow-hidden rounded-lg shrink-0\">\n <axp-logo\n [logoKey]=\"applicationLogoKey(item)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(item.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 text-start md:text-base text-sm\">{{ item.title | translate | async }}</span>\n @if (item.edition?.title) {\n <span class=\"text-muted text-xs\">{{ item.edition.title | translate | async }}</span>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXListNavigationModule }, { kind: "directive", type: i4.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged", "onKeypress"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i4.AXListNavigationItemDirective, selector: "[axListNavigationItem]", outputs: ["onKeypress"], exportAs: ["axListNavigationItem"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["logoKey", "appearance", "size", "format"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1207
1219
|
}
|
|
1208
1220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
|
|
1209
1221
|
type: Component,
|
|
@@ -1217,7 +1229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
1217
1229
|
AXListNavigationModule,
|
|
1218
1230
|
AXTranslationModule,
|
|
1219
1231
|
AXPLogoComponent,
|
|
1220
|
-
], template: "@if (isLoading()) {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-10 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"w-16 h-4 rounded-md shrink-0\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allApplications()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedApplication()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:application-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"applicationItemTemplate\"\n [selectedTemplate]=\"applicationItemTemplate\"\n (onOpened)=\"
|
|
1232
|
+
], template: "@if (isLoading()) {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-10 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"w-16 h-4 rounded-md shrink-0\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allApplications()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedApplication()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:application-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"applicationItemTemplate\"\n [selectedTemplate]=\"applicationItemTemplate\"\n (onOpened)=\"handleSelectBoxOpened()\"\n (onClosed)=\"handleSelectBoxClosed()\"\n (onValueChanged)=\"handleApplicationSelect($event)\"\n (onSelectionChanged)=\"handleApplicationSelectionChanged($event)\"\n >\n </ax-lookup>\n <ax-button\n class=\"w-full\"\n color=\"primary\"\n [disabled]=\"!canApply() || isChoosing()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n >\n @if (isChoosing()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n} @else {\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"w-full overflow-auto max-h-[300px] flex flex-col divide-y divide-neutral-100 dark:divide-neutral-800\"\n role=\"listbox\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (application of allApplications(); track application.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isApplicationSelected(application)\"\n [attr.aria-busy]=\"choosingId() === application.id\"\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors outline-none hover:bg-primary-lightest hover:dark:bg-primary-dark focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary\"\n [class.bg-primary-lighter]=\"isApplicationSelected(application)\"\n [class.dark:bg-primary-darker]=\"isApplicationSelected(application)\"\n [class.text-primary-on-lighter]=\"isApplicationSelected(application)\"\n [class.dark:text-primary-on-darker]=\"isApplicationSelected(application)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== application.id\"\n [class.cursor-wait]=\"isChoosing()\"\n (click)=\"chooseApplication(application)\"\n (keydown)=\"handleListItemKeyDown($event, application)\"\n >\n <div class=\"flex flex-1 gap-3 items-center min-w-0\">\n <div class=\"shrink-0 size-12 overflow-hidden rounded-lg\">\n <axp-logo\n [logoKey]=\"applicationLogoKey(application)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(application.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 min-w-0 text-start md:text-base text-sm break-words md:truncate\">{{\n application.title | translate | async\n }}</span>\n @if (application.edition?.title) {\n <span class=\"text-muted text-xs shrink-0\">{{\n application.edition?.title | translate | async\n }}</span>\n }\n </div>\n @if (choosingId() === application.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n}\n\n<ng-template #applicationItemTemplate let-item>\n <div class=\"flex gap-3 items-center p-2\">\n <div class=\"size-12 overflow-hidden rounded-lg shrink-0\">\n <axp-logo\n [logoKey]=\"applicationLogoKey(item)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(item.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 text-start md:text-base text-sm\">{{ item.title | translate | async }}</span>\n @if (item.edition?.title) {\n <span class=\"text-muted text-xs\">{{ item.edition.title | translate | async }}</span>\n }\n </div>\n</ng-template>\n" }]
|
|
1221
1233
|
}], ctorParameters: () => [], propDecorators: { simple: [{ type: i0.Input, args: [{ isSignal: true, alias: "simple", required: false }] }], applicationChosen: [{ type: i0.Output, args: ["applicationChosen"] }], loadingChange: [{ type: i0.Output, args: ["loadingChange"] }], listNav: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXListNavigationDirective), { isSignal: true }] }], listItems: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXListNavigationItemDirective), { isSignal: true }] }] } });
|
|
1222
1234
|
|
|
1223
1235
|
class AXMAppChooserSlotComponent {
|
|
@@ -1258,7 +1270,7 @@ class AXPTenantChooserListComponent {
|
|
|
1258
1270
|
//#endregion
|
|
1259
1271
|
//#region ---- Computed Properties ----
|
|
1260
1272
|
isTenantSelected(tenant) {
|
|
1261
|
-
return tenant.id === this.
|
|
1273
|
+
return tenant.id === this.sessionTenantId;
|
|
1262
1274
|
}
|
|
1263
1275
|
//#endregion
|
|
1264
1276
|
//#region ---- Constructor ----
|
|
@@ -1303,6 +1315,8 @@ class AXPTenantChooserListComponent {
|
|
|
1303
1315
|
...(ngDevMode ? [{ debugName: "selectedTenant" }] : /* istanbul ignore next */ []));
|
|
1304
1316
|
this.isSelectBoxOpen = signal(false, /* @ts-ignore */
|
|
1305
1317
|
...(ngDevMode ? [{ debugName: "isSelectBoxOpen" }] : /* istanbul ignore next */ []));
|
|
1318
|
+
/** Current session tenant id. Kept off the session getter so template checks do not emit `tenant$`. */
|
|
1319
|
+
this.sessionTenantId = null;
|
|
1306
1320
|
this.canApply = computed(() => !!this.selectedTenant(), /* @ts-ignore */
|
|
1307
1321
|
...(ngDevMode ? [{ debugName: "canApply" }] : /* istanbul ignore next */ []));
|
|
1308
1322
|
this.skeletonItems = [1, 2, 3];
|
|
@@ -1317,6 +1331,9 @@ class AXPTenantChooserListComponent {
|
|
|
1317
1331
|
...(ngDevMode ? [{ debugName: "displayedTenants" }] : /* istanbul ignore next */ []));
|
|
1318
1332
|
this.showSearchAndViewAll = computed(() => this.allTenants().length > 4, /* @ts-ignore */
|
|
1319
1333
|
...(ngDevMode ? [{ debugName: "showSearchAndViewAll" }] : /* istanbul ignore next */ []));
|
|
1334
|
+
this.sessionService.tenant$.pipe(takeUntilDestroyed()).subscribe((tenant) => {
|
|
1335
|
+
this.sessionTenantId = tenant?.id ?? null;
|
|
1336
|
+
});
|
|
1320
1337
|
effect(() => {
|
|
1321
1338
|
this.loadingChange.emit(this.isLoading());
|
|
1322
1339
|
});
|
|
@@ -1332,9 +1349,6 @@ class AXPTenantChooserListComponent {
|
|
|
1332
1349
|
this.sessionService.tenants$.pipe(first()).subscribe((tenants) => {
|
|
1333
1350
|
this.logoRegistration.registerTenants(tenants);
|
|
1334
1351
|
this.allTenants.set(tenants);
|
|
1335
|
-
if (tenants.length > 0) {
|
|
1336
|
-
this.selectedTenant.set(tenants[0]);
|
|
1337
|
-
}
|
|
1338
1352
|
this.isLoading.set(false);
|
|
1339
1353
|
});
|
|
1340
1354
|
}
|
|
@@ -1357,7 +1371,17 @@ class AXPTenantChooserListComponent {
|
|
|
1357
1371
|
this.showAll.update((value) => !value);
|
|
1358
1372
|
}
|
|
1359
1373
|
handleTenantSelectionChanged(event) {
|
|
1360
|
-
|
|
1374
|
+
if (!event.isUserInteraction) {
|
|
1375
|
+
return;
|
|
1376
|
+
}
|
|
1377
|
+
const tenant = event.items?.[0] ?? null;
|
|
1378
|
+
queueMicrotask(() => this.selectedTenant.set(tenant));
|
|
1379
|
+
}
|
|
1380
|
+
handleSelectBoxOpened() {
|
|
1381
|
+
queueMicrotask(() => this.isSelectBoxOpen.set(true));
|
|
1382
|
+
}
|
|
1383
|
+
handleSelectBoxClosed() {
|
|
1384
|
+
queueMicrotask(() => this.isSelectBoxOpen.set(false));
|
|
1361
1385
|
}
|
|
1362
1386
|
handleTenantSelect(event) {
|
|
1363
1387
|
if (!event.isUserInteraction) {
|
|
@@ -1438,7 +1462,7 @@ class AXPTenantChooserListComponent {
|
|
|
1438
1462
|
}
|
|
1439
1463
|
}
|
|
1440
1464
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTenantChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1441
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPTenantChooserListComponent, isStandalone: true, selector: "axp-tenant-chooser-list", inputs: { simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tenantChosen: "tenantChosen", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "listNav", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isLoading()) {\n <!--->\n <!-- ----- Compact dropdown skeleton ----- -->\n @if (simple()) {\n <div class=\"w-full flex flex-col gap-1\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-2 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-6 rounded-md shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-4 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n <!-- ----- Full chooser skeleton ----- -->\n @else {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-12 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n}\n<!-- ----- Compact list for header/sidebar dropdowns ----- -->\n@else if (simple()) {\n <div\n class=\"w-full overflow-auto max-h-[300px] flex flex-col gap-1\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of allTenants(); track tenant.id) {\n <div\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors hover:bg-primary-lightest hover:dark:bg-primary-dark\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n (click)=\"chooseTenant(tenant)\"\n >\n <div class=\"flex flex-1 gap-2 items-center min-w-0\">\n <div class=\"shrink-0 size-6 overflow-hidden rounded-md grid place-items-center\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"24\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-6 overflow-hidden\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n <!--->\n <!-- ----- Choosing indicator for this tenant ----- -->\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n}\n<!-- ----- Lookup when the catalog is long ----- -->\n@else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allTenants()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedTenant()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:tenant-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"tenantItemTemplate\"\n [selectedTemplate]=\"tenantItemTemplate\"\n (onOpened)=\"isSelectBoxOpen.set(true)\"\n (onClosed)=\"isSelectBoxOpen.set(false)\"\n (onValueChanged)=\"handleTenantSelect($event)\"\n (onSelectionChanged)=\"handleTenantSelectionChanged($event)\"\n >\n </ax-lookup>\n <ax-button\n class=\"w-full\"\n color=\"primary\"\n [disabled]=\"!canApply() || isChoosing()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n >\n @if (isChoosing()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n}\n<!-- ----- Full list on the login tenant chooser ----- -->\n@else {\n @if (showSearchAndViewAll()) {\n <ax-search-box\n [placeholder]=\"'@general:search.title' | translate | async\"\n [ngModel]=\"searchValue()\"\n (ngModelChange)=\"handleSearch($event)\"\n class=\"w-full\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"w-full overflow-auto max-h-[300px] flex flex-col divide-y divide-neutral-100 dark:divide-neutral-800\"\n role=\"listbox\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of displayedTenants(); track tenant.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isTenantSelected(tenant)\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors outline-none hover:bg-primary-lightest hover:dark:bg-primary-dark focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.text-primary-on-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:text-primary-on-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n (click)=\"chooseTenant(tenant)\"\n (keydown)=\"handleListItemKeyDown($event, tenant)\"\n >\n <div class=\"flex flex-1 gap-3 items-center min-w-0\">\n <div class=\"shrink-0 size-12 overflow-hidden rounded-lg\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start md:text-base text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n @if (showSearchAndViewAll()) {\n <div class=\"mt-6 w-full flex justify-center\">\n <ax-button\n (onClick)=\"showAllTenants()\"\n class=\"w-full\"\n look=\"outline\"\n [disabled]=\"isChoosing()\"\n [text]=\"\n showAll()\n ? ('@general:actions.view-less.title' | translate | async)\n : ('@general:actions.view-all.title' | translate | async)\n \"\n ></ax-button>\n </div>\n }\n}\n\n<ng-template #tenantItemTemplate let-item>\n <div class=\"flex gap-3 items-center p-2\">\n <div class=\"size-12 overflow-hidden rounded-lg shrink-0\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(item)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(item.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"text-start md:text-base text-sm\">{{ item.title | translate | async }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXListNavigationModule }, { kind: "directive", type: i4.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged", "onKeypress"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i4.AXListNavigationItemDirective, selector: "[axListNavigationItem]", outputs: ["onKeypress"], exportAs: ["axListNavigationItem"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["logoKey", "appearance", "size", "format"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPTenantChooserListComponent, isStandalone: true, selector: "axp-tenant-chooser-list", inputs: { simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tenantChosen: "tenantChosen", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "listNav", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isLoading()) {\n <!--->\n <!-- ----- Compact dropdown skeleton ----- -->\n @if (simple()) {\n <div class=\"w-full flex flex-col gap-1\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-2 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-6 rounded-md shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-4 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n <!-- ----- Full chooser skeleton ----- -->\n @else {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-12 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n}\n<!-- ----- Compact list for header/sidebar dropdowns ----- -->\n@else if (simple()) {\n <div\n class=\"w-full overflow-auto max-h-[300px] flex flex-col gap-1\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of allTenants(); track tenant.id) {\n <div\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors hover:bg-primary-lightest hover:dark:bg-primary-dark\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n (click)=\"chooseTenant(tenant)\"\n >\n <div class=\"flex flex-1 gap-2 items-center min-w-0\">\n <div class=\"shrink-0 size-6 overflow-hidden rounded-md grid place-items-center\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"24\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-6 overflow-hidden\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n <!--->\n <!-- ----- Choosing indicator for this tenant ----- -->\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n}\n<!-- ----- Lookup when the catalog is long ----- -->\n@else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allTenants()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedTenant()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:tenant-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"tenantItemTemplate\"\n [selectedTemplate]=\"tenantItemTemplate\"\n (onOpened)=\"handleSelectBoxOpened()\"\n (onClosed)=\"handleSelectBoxClosed()\"\n (onValueChanged)=\"handleTenantSelect($event)\"\n (onSelectionChanged)=\"handleTenantSelectionChanged($event)\"\n >\n </ax-lookup>\n <ax-button\n class=\"w-full\"\n color=\"primary\"\n [disabled]=\"!canApply() || isChoosing()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n >\n @if (isChoosing()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n}\n<!-- ----- Full list on the login tenant chooser ----- -->\n@else {\n @if (showSearchAndViewAll()) {\n <ax-search-box\n [placeholder]=\"'@general:search.title' | translate | async\"\n [ngModel]=\"searchValue()\"\n (ngModelChange)=\"handleSearch($event)\"\n class=\"w-full\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"w-full overflow-auto max-h-[300px] flex flex-col divide-y divide-neutral-100 dark:divide-neutral-800\"\n role=\"listbox\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of displayedTenants(); track tenant.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isTenantSelected(tenant)\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors outline-none hover:bg-primary-lightest hover:dark:bg-primary-dark focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.text-primary-on-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:text-primary-on-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n (click)=\"chooseTenant(tenant)\"\n (keydown)=\"handleListItemKeyDown($event, tenant)\"\n >\n <div class=\"flex flex-1 gap-3 items-center min-w-0\">\n <div class=\"shrink-0 size-12 overflow-hidden rounded-lg\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start md:text-base text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n @if (showSearchAndViewAll()) {\n <div class=\"mt-6 w-full flex justify-center\">\n <ax-button\n (onClick)=\"showAllTenants()\"\n class=\"w-full\"\n look=\"outline\"\n [disabled]=\"isChoosing()\"\n [text]=\"\n showAll()\n ? ('@general:actions.view-less.title' | translate | async)\n : ('@general:actions.view-all.title' | translate | async)\n \"\n ></ax-button>\n </div>\n }\n}\n\n<ng-template #tenantItemTemplate let-item>\n <div class=\"flex gap-3 items-center p-2\">\n <div class=\"size-12 overflow-hidden rounded-lg shrink-0\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(item)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(item.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"text-start md:text-base text-sm\">{{ item.title | translate | async }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXListNavigationModule }, { kind: "directive", type: i4.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged", "onKeypress"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i4.AXListNavigationItemDirective, selector: "[axListNavigationItem]", outputs: ["onKeypress"], exportAs: ["axListNavigationItem"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["logoKey", "appearance", "size", "format"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1442
1466
|
}
|
|
1443
1467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTenantChooserListComponent, decorators: [{
|
|
1444
1468
|
type: Component,
|
|
@@ -1454,7 +1478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
1454
1478
|
AXSearchBoxModule,
|
|
1455
1479
|
AXListNavigationModule,
|
|
1456
1480
|
AXPLogoComponent,
|
|
1457
|
-
], template: "@if (isLoading()) {\n <!--->\n <!-- ----- Compact dropdown skeleton ----- -->\n @if (simple()) {\n <div class=\"w-full flex flex-col gap-1\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-2 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-6 rounded-md shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-4 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n <!-- ----- Full chooser skeleton ----- -->\n @else {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-12 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n}\n<!-- ----- Compact list for header/sidebar dropdowns ----- -->\n@else if (simple()) {\n <div\n class=\"w-full overflow-auto max-h-[300px] flex flex-col gap-1\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of allTenants(); track tenant.id) {\n <div\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors hover:bg-primary-lightest hover:dark:bg-primary-dark\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n (click)=\"chooseTenant(tenant)\"\n >\n <div class=\"flex flex-1 gap-2 items-center min-w-0\">\n <div class=\"shrink-0 size-6 overflow-hidden rounded-md grid place-items-center\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"24\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-6 overflow-hidden\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n <!--->\n <!-- ----- Choosing indicator for this tenant ----- -->\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n}\n<!-- ----- Lookup when the catalog is long ----- -->\n@else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allTenants()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedTenant()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:tenant-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"tenantItemTemplate\"\n [selectedTemplate]=\"tenantItemTemplate\"\n (onOpened)=\"
|
|
1481
|
+
], template: "@if (isLoading()) {\n <!--->\n <!-- ----- Compact dropdown skeleton ----- -->\n @if (simple()) {\n <div class=\"w-full flex flex-col gap-1\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-2 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-6 rounded-md shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-4 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n <!-- ----- Full chooser skeleton ----- -->\n @else {\n <div class=\"w-full flex flex-col gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"flex gap-3 items-center p-2\">\n <ax-skeleton [animated]=\"true\" class=\"size-12 rounded-lg shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"flex-1 h-5 rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n }\n}\n<!-- ----- Compact list for header/sidebar dropdowns ----- -->\n@else if (simple()) {\n <div\n class=\"w-full overflow-auto max-h-[300px] flex flex-col gap-1\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of allTenants(); track tenant.id) {\n <div\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors hover:bg-primary-lightest hover:dark:bg-primary-dark\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n (click)=\"chooseTenant(tenant)\"\n >\n <div class=\"flex flex-1 gap-2 items-center min-w-0\">\n <div class=\"shrink-0 size-6 overflow-hidden rounded-md grid place-items-center\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"24\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-6 overflow-hidden\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n <!--->\n <!-- ----- Choosing indicator for this tenant ----- -->\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n}\n<!-- ----- Lookup when the catalog is long ----- -->\n@else if (useSelectBox()) {\n <div\n class=\"w-full flex flex-col gap-4\"\n [class.pointer-events-none]=\"isChoosing()\"\n [class.opacity-60]=\"isChoosing()\"\n (keydown.capture)=\"handleSelectBoxKeyDown($event)\"\n >\n <ax-lookup\n class=\"w-full\"\n mode=\"drop-down-list\"\n [dataSource]=\"allTenants()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedTenant()?.id\"\n [itemHeight]=\"56\"\n [searchable]=\"true\"\n [placeholder]=\"('@auth:tenant-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"tenantItemTemplate\"\n [selectedTemplate]=\"tenantItemTemplate\"\n (onOpened)=\"handleSelectBoxOpened()\"\n (onClosed)=\"handleSelectBoxClosed()\"\n (onValueChanged)=\"handleTenantSelect($event)\"\n (onSelectionChanged)=\"handleTenantSelectionChanged($event)\"\n >\n </ax-lookup>\n <ax-button\n class=\"w-full\"\n color=\"primary\"\n [disabled]=\"!canApply() || isChoosing()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n >\n @if (isChoosing()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n}\n<!-- ----- Full list on the login tenant chooser ----- -->\n@else {\n @if (showSearchAndViewAll()) {\n <ax-search-box\n [placeholder]=\"'@general:search.title' | translate | async\"\n [ngModel]=\"searchValue()\"\n (ngModelChange)=\"handleSearch($event)\"\n class=\"w-full\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"w-full overflow-auto max-h-[300px] flex flex-col divide-y divide-neutral-100 dark:divide-neutral-800\"\n role=\"listbox\"\n [class.pointer-events-none]=\"isChoosing()\"\n >\n @for (tenant of displayedTenants(); track tenant.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isTenantSelected(tenant)\"\n [attr.aria-busy]=\"choosingId() === tenant.id\"\n class=\"flex gap-2 items-center p-2 cursor-pointer rounded-md transition-colors outline-none hover:bg-primary-lightest hover:dark:bg-primary-dark focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary\"\n [class.bg-primary-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:bg-primary-darker]=\"isTenantSelected(tenant)\"\n [class.text-primary-on-lighter]=\"isTenantSelected(tenant)\"\n [class.dark:text-primary-on-darker]=\"isTenantSelected(tenant)\"\n [class.opacity-50]=\"isChoosing() && choosingId() !== tenant.id\"\n [class.cursor-wait]=\"isChoosing()\"\n (click)=\"chooseTenant(tenant)\"\n (keydown)=\"handleListItemKeyDown($event, tenant)\"\n >\n <div class=\"flex flex-1 gap-3 items-center min-w-0\">\n <div class=\"shrink-0 size-12 overflow-hidden rounded-lg\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(tenant)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(tenant.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"flex-1 truncate text-start md:text-base text-sm\">{{\n tenant.title | translate | async\n }}</span>\n </div>\n @if (choosingId() === tenant.id) {\n <ax-loading class=\"shrink-0\"></ax-loading>\n }\n </div>\n }\n </div>\n @if (showSearchAndViewAll()) {\n <div class=\"mt-6 w-full flex justify-center\">\n <ax-button\n (onClick)=\"showAllTenants()\"\n class=\"w-full\"\n look=\"outline\"\n [disabled]=\"isChoosing()\"\n [text]=\"\n showAll()\n ? ('@general:actions.view-less.title' | translate | async)\n : ('@general:actions.view-all.title' | translate | async)\n \"\n ></ax-button>\n </div>\n }\n}\n\n<ng-template #tenantItemTemplate let-item>\n <div class=\"flex gap-3 items-center p-2\">\n <div class=\"size-12 overflow-hidden rounded-lg shrink-0\">\n <axp-logo\n [logoKey]=\"tenantLogoKey(item)\"\n appearance=\"colored\"\n [size]=\"42\"\n [attr.alt]=\"(item.title | translate | async) ?? ''\"\n class=\"size-12 overflow-hidden rounded-lg\"\n ></axp-logo>\n </div>\n <span class=\"text-start md:text-base text-sm\">{{ item.title | translate | async }}</span>\n </div>\n</ng-template>\n" }]
|
|
1458
1482
|
}], ctorParameters: () => [], propDecorators: { simple: [{ type: i0.Input, args: [{ isSignal: true, alias: "simple", required: false }] }], tenantChosen: [{ type: i0.Output, args: ["tenantChosen"] }], loadingChange: [{ type: i0.Output, args: ["loadingChange"] }], listNav: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXListNavigationDirective), { isSignal: true }] }], listItems: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXListNavigationItemDirective), { isSignal: true }] }] } });
|
|
1459
1483
|
|
|
1460
1484
|
class AXPTenantChooserDropdownComponent {
|
|
@@ -1633,7 +1657,7 @@ class AXMAuthProfileSlotComponent {
|
|
|
1633
1657
|
}
|
|
1634
1658
|
}
|
|
1635
1659
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1636
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (isAuthenticated$ | async) {\n <div class=\"size-fit\">\n <div #avatar>\n <axp-user-avatar\n [size]=\"36\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"true\"\n ></axp-user-avatar>\n </div>\n\n <ax-popover\n [target]=\"avatar\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"false\"\n #p\n >\n <div\n class=\"bg-lightest border border-lightest rounded-md shadow-md w-80\"\n >\n <div class=\"flex flex-col items-center p-4 border-b\">\n <axp-user-avatar\n [size]=\"64\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n\n <div class=\"flex flex-col items-center justify-center mt-2\">\n <div class=\"text-base font-bold \">{{ (user$ | async)?.title }}</div>\n @if (!deviceService.isSmall()) {\n <axp-tenant-chooser-dropdown class=\"mt-1\"></axp-tenant-chooser-dropdown>\n }\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n @for (item of menuItems(); track item.name ?? item.title) {\n @if (item.visible != false) {\n @if (hasProfileSlotMenuBreakBefore(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n <li [class]=\"menuItemClass(item)\">\n <a (click)=\"handleMenuItemClick(item, p)\">\n <i [class]=\"item.icon\"></i>\n <span class=\"flex-1\">{{\n item.title | translate | async\n }}</span>\n </a>\n </li>\n @if (hasProfileSlotMenuBreakAfter(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button\n color=\"default\"\n look=\"blank\"\n text=\"
|
|
1660
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (isAuthenticated$ | async) {\n <div class=\"size-fit\">\n <div #avatar>\n <axp-user-avatar\n [size]=\"36\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"true\"\n ></axp-user-avatar>\n </div>\n\n <ax-popover\n [target]=\"avatar\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"false\"\n #p\n >\n <div\n class=\"bg-lightest border border-lightest rounded-md shadow-md w-80\"\n >\n <div class=\"flex flex-col items-center p-4 border-b\">\n <axp-user-avatar\n [size]=\"64\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n\n <div class=\"flex flex-col items-center justify-center mt-2\">\n <div class=\"text-base font-bold \">{{ (user$ | async)?.title }}</div>\n @if (!deviceService.isSmall()) {\n <axp-tenant-chooser-dropdown class=\"mt-1\"></axp-tenant-chooser-dropdown>\n }\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n @for (item of menuItems(); track item.name ?? item.title) {\n @if (item.visible != false) {\n @if (hasProfileSlotMenuBreakBefore(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n <li [class]=\"menuItemClass(item)\">\n <a (click)=\"handleMenuItemClick(item, p)\">\n <i [class]=\"item.icon\"></i>\n <span class=\"flex-1\">{{\n item.title | translate | async\n }}</span>\n </a>\n </li>\n @if (hasProfileSlotMenuBreakAfter(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button\n color=\"default\"\n look=\"blank\"\n [text]=\"('@auth:profile-page.profile-slot.sign-up-sign-in' | translate | async) ?? ''\"\n (click)=\"handleSignIn()\"\n >\n <ax-icon>\n <i class=\"fa-solid fa-user text-slate-400 dark:text-slate-200\"></i>\n </ax-icon>\n </ax-button>\n}\n", styles: ["@layer properties;.axp-profile-slot-menus ul{margin-top:calc(var(--spacing, .25rem) * 2);display:flex;flex-direction:column;gap:var(--spacing, .25rem);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2)}.axp-profile-slot-menus ul:last-child{border-style:var(--tw-border-style);border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:var(--radius-md, .375rem)}.axp-profile-slot-menus ul li:last-child{margin-bottom:calc(var(--spacing, .25rem) * 2)}.axp-profile-slot-menus ul li:hover{background-color:rgba(var(--ax-sys-color-dark-surface))}.axp-profile-slot-menus ul li.axp-profile-slot-menu-break{pointer-events:none;margin-inline:calc(var(--spacing, .25rem) * 2);margin-block:var(--spacing, .25rem);height:0px;min-height:0px;cursor:default;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-default);padding:0}.axp-profile-slot-menus ul li.axp-profile-slot-menu-break:hover{background-color:transparent}.axp-profile-slot-menus ul li i{margin-inline-end:calc(var(--spacing, .25rem) * 3);display:grid;height:calc(var(--spacing, .25rem) * 6);width:calc(var(--spacing, .25rem) * 6);place-items:center;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding:calc(var(--spacing, .25rem) * 2)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
|
1637
1661
|
//
|
|
1638
1662
|
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i2$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "closeOnNavigation", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type:
|
|
1639
1663
|
// AXKBDComponent,
|
|
@@ -1660,7 +1684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
1660
1684
|
AXPUserAvatarComponent,
|
|
1661
1685
|
//
|
|
1662
1686
|
AXPTenantChooserDropdownComponent,
|
|
1663
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (isAuthenticated$ | async) {\n <div class=\"size-fit\">\n <div #avatar>\n <axp-user-avatar\n [size]=\"36\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"true\"\n ></axp-user-avatar>\n </div>\n\n <ax-popover\n [target]=\"avatar\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"false\"\n #p\n >\n <div\n class=\"bg-lightest border border-lightest rounded-md shadow-md w-80\"\n >\n <div class=\"flex flex-col items-center p-4 border-b\">\n <axp-user-avatar\n [size]=\"64\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n\n <div class=\"flex flex-col items-center justify-center mt-2\">\n <div class=\"text-base font-bold \">{{ (user$ | async)?.title }}</div>\n @if (!deviceService.isSmall()) {\n <axp-tenant-chooser-dropdown class=\"mt-1\"></axp-tenant-chooser-dropdown>\n }\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n @for (item of menuItems(); track item.name ?? item.title) {\n @if (item.visible != false) {\n @if (hasProfileSlotMenuBreakBefore(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n <li [class]=\"menuItemClass(item)\">\n <a (click)=\"handleMenuItemClick(item, p)\">\n <i [class]=\"item.icon\"></i>\n <span class=\"flex-1\">{{\n item.title | translate | async\n }}</span>\n </a>\n </li>\n @if (hasProfileSlotMenuBreakAfter(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button\n color=\"default\"\n look=\"blank\"\n text=\"
|
|
1687
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (isAuthenticated$ | async) {\n <div class=\"size-fit\">\n <div #avatar>\n <axp-user-avatar\n [size]=\"36\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"true\"\n ></axp-user-avatar>\n </div>\n\n <ax-popover\n [target]=\"avatar\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"false\"\n #p\n >\n <div\n class=\"bg-lightest border border-lightest rounded-md shadow-md w-80\"\n >\n <div class=\"flex flex-col items-center p-4 border-b\">\n <axp-user-avatar\n [size]=\"64\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n\n <div class=\"flex flex-col items-center justify-center mt-2\">\n <div class=\"text-base font-bold \">{{ (user$ | async)?.title }}</div>\n @if (!deviceService.isSmall()) {\n <axp-tenant-chooser-dropdown class=\"mt-1\"></axp-tenant-chooser-dropdown>\n }\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n @for (item of menuItems(); track item.name ?? item.title) {\n @if (item.visible != false) {\n @if (hasProfileSlotMenuBreakBefore(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n <li [class]=\"menuItemClass(item)\">\n <a (click)=\"handleMenuItemClick(item, p)\">\n <i [class]=\"item.icon\"></i>\n <span class=\"flex-1\">{{\n item.title | translate | async\n }}</span>\n </a>\n </li>\n @if (hasProfileSlotMenuBreakAfter(item.break)) {\n <li class=\"axp-profile-slot-menu-break\" role=\"separator\"></li>\n }\n }\n }\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button\n color=\"default\"\n look=\"blank\"\n [text]=\"('@auth:profile-page.profile-slot.sign-up-sign-in' | translate | async) ?? ''\"\n (click)=\"handleSignIn()\"\n >\n <ax-icon>\n <i class=\"fa-solid fa-user text-slate-400 dark:text-slate-200\"></i>\n </ax-icon>\n </ax-button>\n}\n", styles: ["@layer properties;.axp-profile-slot-menus ul{margin-top:calc(var(--spacing, .25rem) * 2);display:flex;flex-direction:column;gap:var(--spacing, .25rem);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2)}.axp-profile-slot-menus ul:last-child{border-style:var(--tw-border-style);border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:var(--radius-md, .375rem)}.axp-profile-slot-menus ul li:last-child{margin-bottom:calc(var(--spacing, .25rem) * 2)}.axp-profile-slot-menus ul li:hover{background-color:rgba(var(--ax-sys-color-dark-surface))}.axp-profile-slot-menus ul li.axp-profile-slot-menu-break{pointer-events:none;margin-inline:calc(var(--spacing, .25rem) * 2);margin-block:var(--spacing, .25rem);height:0px;min-height:0px;cursor:default;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border-default);padding:0}.axp-profile-slot-menus ul li.axp-profile-slot-menu-break:hover{background-color:transparent}.axp-profile-slot-menus ul li i{margin-inline-end:calc(var(--spacing, .25rem) * 3);display:grid;height:calc(var(--spacing, .25rem) * 6);width:calc(var(--spacing, .25rem) * 6);place-items:center;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding:calc(var(--spacing, .25rem) * 2)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1664
1688
|
}] });
|
|
1665
1689
|
|
|
1666
1690
|
class AXMUserProfileCardSlotComponent {
|
|
@@ -2393,7 +2417,7 @@ function routesFacory() {
|
|
|
2393
2417
|
routes = [
|
|
2394
2418
|
{
|
|
2395
2419
|
path: 'tenant-chooser',
|
|
2396
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-tenant-chooser.component-
|
|
2420
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-tenant-chooser.component-BuDF5_BQ.mjs').then((c) => c.AXPAuthTenantChooserComponent),
|
|
2397
2421
|
canActivate: [AXPAuthGuard, canActivateTenantChooser],
|
|
2398
2422
|
},
|
|
2399
2423
|
{
|
|
@@ -2408,12 +2432,12 @@ function routesFacory() {
|
|
|
2408
2432
|
},
|
|
2409
2433
|
{
|
|
2410
2434
|
path: 'app-chooser',
|
|
2411
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-app-chooser.component-
|
|
2435
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-app-chooser.component-DtqWiAUz.mjs').then((c) => c.AXPAuthAppChooserComponent),
|
|
2412
2436
|
canActivate: [AXPAuthGuard, canActivateAppChooser],
|
|
2413
2437
|
},
|
|
2414
2438
|
{
|
|
2415
2439
|
path: 'welcome-onboarding',
|
|
2416
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-welcome-onboarding-page.component-
|
|
2440
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-welcome-onboarding-page.component-DcYCayqN.mjs').then((c) => c.AXPAuthWelcomeOnboardingPageComponent),
|
|
2417
2441
|
canActivate: [AXPAuthGuard, canActivateWelcomeOnboarding],
|
|
2418
2442
|
},
|
|
2419
2443
|
];
|
|
@@ -2801,7 +2825,7 @@ class AXPIdleLockService {
|
|
|
2801
2825
|
this.overlayOpening = true;
|
|
2802
2826
|
this.locked.set(true);
|
|
2803
2827
|
try {
|
|
2804
|
-
const { AXMSessionLockOverlayComponent: overlayComponent } = await import('./acorex-platform-module-auth-client-session-lock-overlay.component-
|
|
2828
|
+
const { AXMSessionLockOverlayComponent: overlayComponent } = await import('./acorex-platform-module-auth-client-session-lock-overlay.component-BG_kRZlx.mjs');
|
|
2805
2829
|
const panelClasses = ['axm-session-lock-overlay-shell'];
|
|
2806
2830
|
if (this.platform.isDark()) {
|
|
2807
2831
|
panelClasses.push('ax-dark');
|
|
@@ -4033,7 +4057,7 @@ function provideAuthSecurityAlertRealtime() {
|
|
|
4033
4057
|
//#endregion
|
|
4034
4058
|
|
|
4035
4059
|
function profileRoutesFactory() {
|
|
4036
|
-
const loadProfilePage = () => import('./acorex-platform-module-auth-client-profile-page.component-
|
|
4060
|
+
const loadProfilePage = () => import('./acorex-platform-module-auth-client-profile-page.component-CTUIGiwl.mjs').then((c) => c.AXMUserProfilePageComponent);
|
|
4037
4061
|
return [
|
|
4038
4062
|
{
|
|
4039
4063
|
path: ':app/profile',
|
|
@@ -4151,11 +4175,11 @@ class AXMAuthModule {
|
|
|
4151
4175
|
AXMAuthErrorHandler,
|
|
4152
4176
|
provideLazyProvider(AXP_MENU_PROVIDER, () => import('./acorex-platform-module-auth-client-menu.provider-Bz-kRip4.mjs').then(m => m.AXMSecurityManagementModuleMenuProvider)),
|
|
4153
4177
|
provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => import('./acorex-platform-module-auth-client-settings.provider-DsKsZrOC.mjs').then(m => m.AXMSettingProvider)),
|
|
4154
|
-
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-
|
|
4178
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-DFR0YCzn.mjs').then((module) => module.AXMProfilePageComponentProvider)),
|
|
4155
4179
|
provideQuerySetups([
|
|
4156
4180
|
{
|
|
4157
4181
|
key: 'Auth:GetUserActivity',
|
|
4158
|
-
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-
|
|
4182
|
+
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-WQ2Cddje.mjs').then((c) => c.AXMGetUserActivityQuery),
|
|
4159
4183
|
},
|
|
4160
4184
|
]),
|
|
4161
4185
|
{
|
|
@@ -4179,15 +4203,15 @@ class AXMAuthModule {
|
|
|
4179
4203
|
},
|
|
4180
4204
|
{
|
|
4181
4205
|
key: AXMAuthCommandKeys.Session.OpenSessions,
|
|
4182
|
-
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-
|
|
4206
|
+
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-QA8Qy-QK.mjs').then((c) => c.AXPOpenSessionsCommand),
|
|
4183
4207
|
},
|
|
4184
4208
|
{
|
|
4185
4209
|
key: AXMAuthCommandKeys.Session.LockScreen,
|
|
4186
|
-
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-
|
|
4210
|
+
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-BNfSDphl.mjs').then((c) => c.AXPLockScreenCommand),
|
|
4187
4211
|
},
|
|
4188
4212
|
{
|
|
4189
4213
|
key: AXMAuthCommandKeys.Profile.ChangePhoto,
|
|
4190
|
-
command: () => import('./acorex-platform-module-auth-client-change-photo.command-
|
|
4214
|
+
command: () => import('./acorex-platform-module-auth-client-change-photo.command-nUXhaunq.mjs').then((c) => c.AXPChangePhotoCommand),
|
|
4191
4215
|
},
|
|
4192
4216
|
{
|
|
4193
4217
|
key: AXMAuthCommandKeys.Profile.EditAccountInfo,
|
|
@@ -4195,23 +4219,23 @@ class AXMAuthModule {
|
|
|
4195
4219
|
},
|
|
4196
4220
|
{
|
|
4197
4221
|
key: AXMAuthCommandKeys.Security.ChangePassword,
|
|
4198
|
-
command: () => import('./acorex-platform-module-auth-client-change-password.command-
|
|
4222
|
+
command: () => import('./acorex-platform-module-auth-client-change-password.command-Bmhag8Ec.mjs').then((c) => c.AXPChangePasswordCommand),
|
|
4199
4223
|
},
|
|
4200
4224
|
{
|
|
4201
4225
|
key: AXMAuthCommandKeys.Security.ManageTwoFactor,
|
|
4202
|
-
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-
|
|
4226
|
+
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-DUKXmbTm.mjs').then((c) => c.AXPManageTwoFactorCommand),
|
|
4203
4227
|
},
|
|
4204
4228
|
{
|
|
4205
4229
|
key: AXMAuthCommandKeys.Security.SetPinCode,
|
|
4206
|
-
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-
|
|
4230
|
+
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-Dr-Ca07P.mjs').then((c) => c.AXPSetPinCodeCommand),
|
|
4207
4231
|
},
|
|
4208
4232
|
{
|
|
4209
4233
|
key: AXMAuthCommandKeys.Security.RemovePinCode,
|
|
4210
|
-
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-
|
|
4234
|
+
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-CHs-Ulo9.mjs').then((c) => c.AXPRemovePinCodeCommand),
|
|
4211
4235
|
},
|
|
4212
4236
|
{
|
|
4213
4237
|
key: AXMAuthCommandKeys.Security.ViewLoginHistory,
|
|
4214
|
-
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-
|
|
4238
|
+
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-BDWELxmi.mjs').then((c) => c.AXPViewLoginHistoryCommand),
|
|
4215
4239
|
},
|
|
4216
4240
|
{
|
|
4217
4241
|
key: AXMAuthCommandKeys.Security.EditSignature,
|
|
@@ -4223,7 +4247,7 @@ class AXMAuthModule {
|
|
|
4223
4247
|
},
|
|
4224
4248
|
{
|
|
4225
4249
|
key: AXMAuthCommandKeys.Onboarding.Welcome,
|
|
4226
|
-
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-
|
|
4250
|
+
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-BKMo5xN9.mjs').then((c) => c.AXPWelcomeOnboardingCommand),
|
|
4227
4251
|
},
|
|
4228
4252
|
{
|
|
4229
4253
|
key: AXMAuthCommandKeys.Account.OpenWaitingRoom,
|
|
@@ -4389,11 +4413,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4389
4413
|
AXMAuthErrorHandler,
|
|
4390
4414
|
provideLazyProvider(AXP_MENU_PROVIDER, () => import('./acorex-platform-module-auth-client-menu.provider-Bz-kRip4.mjs').then(m => m.AXMSecurityManagementModuleMenuProvider)),
|
|
4391
4415
|
provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => import('./acorex-platform-module-auth-client-settings.provider-DsKsZrOC.mjs').then(m => m.AXMSettingProvider)),
|
|
4392
|
-
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-
|
|
4416
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-DFR0YCzn.mjs').then((module) => module.AXMProfilePageComponentProvider)),
|
|
4393
4417
|
provideQuerySetups([
|
|
4394
4418
|
{
|
|
4395
4419
|
key: 'Auth:GetUserActivity',
|
|
4396
|
-
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-
|
|
4420
|
+
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-WQ2Cddje.mjs').then((c) => c.AXMGetUserActivityQuery),
|
|
4397
4421
|
},
|
|
4398
4422
|
]),
|
|
4399
4423
|
{
|
|
@@ -4417,15 +4441,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4417
4441
|
},
|
|
4418
4442
|
{
|
|
4419
4443
|
key: AXMAuthCommandKeys.Session.OpenSessions,
|
|
4420
|
-
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-
|
|
4444
|
+
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-QA8Qy-QK.mjs').then((c) => c.AXPOpenSessionsCommand),
|
|
4421
4445
|
},
|
|
4422
4446
|
{
|
|
4423
4447
|
key: AXMAuthCommandKeys.Session.LockScreen,
|
|
4424
|
-
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-
|
|
4448
|
+
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-BNfSDphl.mjs').then((c) => c.AXPLockScreenCommand),
|
|
4425
4449
|
},
|
|
4426
4450
|
{
|
|
4427
4451
|
key: AXMAuthCommandKeys.Profile.ChangePhoto,
|
|
4428
|
-
command: () => import('./acorex-platform-module-auth-client-change-photo.command-
|
|
4452
|
+
command: () => import('./acorex-platform-module-auth-client-change-photo.command-nUXhaunq.mjs').then((c) => c.AXPChangePhotoCommand),
|
|
4429
4453
|
},
|
|
4430
4454
|
{
|
|
4431
4455
|
key: AXMAuthCommandKeys.Profile.EditAccountInfo,
|
|
@@ -4433,23 +4457,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4433
4457
|
},
|
|
4434
4458
|
{
|
|
4435
4459
|
key: AXMAuthCommandKeys.Security.ChangePassword,
|
|
4436
|
-
command: () => import('./acorex-platform-module-auth-client-change-password.command-
|
|
4460
|
+
command: () => import('./acorex-platform-module-auth-client-change-password.command-Bmhag8Ec.mjs').then((c) => c.AXPChangePasswordCommand),
|
|
4437
4461
|
},
|
|
4438
4462
|
{
|
|
4439
4463
|
key: AXMAuthCommandKeys.Security.ManageTwoFactor,
|
|
4440
|
-
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-
|
|
4464
|
+
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-DUKXmbTm.mjs').then((c) => c.AXPManageTwoFactorCommand),
|
|
4441
4465
|
},
|
|
4442
4466
|
{
|
|
4443
4467
|
key: AXMAuthCommandKeys.Security.SetPinCode,
|
|
4444
|
-
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-
|
|
4468
|
+
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-Dr-Ca07P.mjs').then((c) => c.AXPSetPinCodeCommand),
|
|
4445
4469
|
},
|
|
4446
4470
|
{
|
|
4447
4471
|
key: AXMAuthCommandKeys.Security.RemovePinCode,
|
|
4448
|
-
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-
|
|
4472
|
+
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-CHs-Ulo9.mjs').then((c) => c.AXPRemovePinCodeCommand),
|
|
4449
4473
|
},
|
|
4450
4474
|
{
|
|
4451
4475
|
key: AXMAuthCommandKeys.Security.ViewLoginHistory,
|
|
4452
|
-
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-
|
|
4476
|
+
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-BDWELxmi.mjs').then((c) => c.AXPViewLoginHistoryCommand),
|
|
4453
4477
|
},
|
|
4454
4478
|
{
|
|
4455
4479
|
key: AXMAuthCommandKeys.Security.EditSignature,
|
|
@@ -4461,7 +4485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4461
4485
|
},
|
|
4462
4486
|
{
|
|
4463
4487
|
key: AXMAuthCommandKeys.Onboarding.Welcome,
|
|
4464
|
-
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-
|
|
4488
|
+
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-BKMo5xN9.mjs').then((c) => c.AXPWelcomeOnboardingCommand),
|
|
4465
4489
|
},
|
|
4466
4490
|
{
|
|
4467
4491
|
key: AXMAuthCommandKeys.Account.OpenWaitingRoom,
|
|
@@ -4627,4 +4651,4 @@ var master_layout = /*#__PURE__*/Object.freeze({
|
|
|
4627
4651
|
*/
|
|
4628
4652
|
|
|
4629
4653
|
export { configAuthModule as $, AXMUserDeviceSessionsService as A, AXPAppChooserListComponent as B, CHANGE_PASSWORD_SECTION_ID as C, AXPOnboardingProgressService as D, formatCompactActivityCount as E, AXPLoginExternalProvidersComponent as F, AXMAuthenticationTypes as G, AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT as H, AUTH_USER_ACTIVITY_CLUSTER_GAP_DAYS as I, AUTH_USER_ACTIVITY_DEFAULT_WEEKS as J, AUTH_USER_ACTIVITY_WEEK_PRESETS as K, AXMAuthErrorHandler as L, AXMAuthModule as M, AXMDefaultAuthConfigs as N, AXM_AUTH_CONFIG_TOKEN as O, PROFILE_PAGE_GROUPS_HOOK as P, AXPAuthMasterLayoutComponent as Q, ONBOARDING_STEPS_HOOK as R, ONBOARDING_WELCOME_SETTING_KEY as S, TWO_FACTOR_SECTION_ID$1 as T, PROFILE_SLOT_MENU_ITEMS_HOOK as U, aggregateDailySessionCounts as V, aggregateHourlySessionCounts as W, buildUserActivityHours as X, buildUserActivityWeeks as Y, canActivateLogin as Z, computeUserActivityStats as _, PROFILE_PAGE_SECTIONS_HOOK as a, countToActivityLevel as a0, extractUserActivityEndDate as a1, extractUserActivityStartDate as a2, extractUserActivityUserId as a3, hasProfileSlotMenuBreakAfter as a4, hasProfileSlotMenuBreakBefore as a5, isUserProfileGroupComponent as a6, isUserProfileSectionsGroupRequested as a7, parseAuthCredentialType as a8, resolveDayDateRange as a9, resolveUserActivityHeatmapLayout as aa, PROFILE_PAGE_HEADER_META_HOOK as b, resolveUserProfileSectionContent as c, PROFILE_SECTION_INSIGHTS_PATCH_METADATA_KEY as d, PROFILE_ACTIVITY_CHART_COMPONENT_KEY as e, PROFILE_DELETE_ACCOUNT_DANGER_ZONE_COMPONENT_KEY as f, resolveDefaultUserActivityDateRange as g, resolveSmartUserActivityDateRange as h, buildUserActivityDataSourceItem as i, AXPIdleLockService as j, AXPUserAvatarSyncService as k, AXPAuthPasswordComplexityService as l, AXPAuthPasswordChangeTrackingService as m, getPasswordComplexityHintKey as n, getPasswordComplexityValidationMessageKey as o, validatePasswordAgainstComplexity as p, buildPasswordLastChangedInsights as q, resolveDefaultUserProfileSectionAction as r, buildTwoFactorStatusInsights as s, AXPLoginHistoryService as t, AXPWelcomeOnboardingFlowService as u, visibleUserProfileSectionActions as v, AXM_LOGIN_GUARD_TOKEN as w, AXMAuthPlatformSettingsService as x, AXPTenantChooserListComponent as y, AXPTenantChooserDropdownComponent as z };
|
|
4630
|
-
//# sourceMappingURL=acorex-platform-module-auth-client-acorex-platform-module-auth-client-
|
|
4654
|
+
//# sourceMappingURL=acorex-platform-module-auth-client-acorex-platform-module-auth-client-DuplzyV7.mjs.map
|