@acorex-platform/module-auth-client 0.0.51 → 0.0.54
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-C1oSPf12.mjs → acorex-platform-module-auth-client-acorex-platform-module-auth-client-BpCPkKC9.mjs} +74 -315
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-BpCPkKC9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-CLKLwWW8.mjs → acorex-platform-module-auth-client-app-chooser.component-EKZpp1BW.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-CLKLwWW8.mjs.map → acorex-platform-module-auth-client-app-chooser.component-EKZpp1BW.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-change-password.command-CknYaMZD.mjs → acorex-platform-module-auth-client-change-password.command-CKeSpikK.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-change-password.command-CknYaMZD.mjs.map → acorex-platform-module-auth-client-change-password.command-CKeSpikK.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-CML784Lg.mjs → acorex-platform-module-auth-client-change-photo.command-Bv9ttDAn.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-CML784Lg.mjs.map → acorex-platform-module-auth-client-change-photo.command-Bv9ttDAn.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-CV9mdOBi.mjs → acorex-platform-module-auth-client-get-user-activity.query-C0tOES_Q.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-CV9mdOBi.mjs.map → acorex-platform-module-auth-client-get-user-activity.query-C0tOES_Q.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-BH3Q6lJE.mjs → acorex-platform-module-auth-client-lock-screen.command-TKTC-1hk.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-BH3Q6lJE.mjs.map → acorex-platform-module-auth-client-lock-screen.command-TKTC-1hk.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-login.module-DtvnPpBH.mjs → acorex-platform-module-auth-client-login.module-ewiwr6VL.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-login.module-DtvnPpBH.mjs.map → acorex-platform-module-auth-client-login.module-ewiwr6VL.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-manage-two-factor.command-BAg2W20W.mjs → acorex-platform-module-auth-client-manage-two-factor.command-DR8NUf_4.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-manage-two-factor.command-BAg2W20W.mjs.map → acorex-platform-module-auth-client-manage-two-factor.command-DR8NUf_4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-CEpu6c7D.mjs → acorex-platform-module-auth-client-open-sessions.command-ZMYyVU1K.mjs} +5 -5
- package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-CEpu6c7D.mjs.map → acorex-platform-module-auth-client-open-sessions.command-ZMYyVU1K.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-password.component-ddh-_0k3.mjs → acorex-platform-module-auth-client-password.component-C1Ic8qul.mjs} +8 -8
- package/fesm2022/{acorex-platform-module-auth-client-password.component-ddh-_0k3.mjs.map → acorex-platform-module-auth-client-password.component-C1Ic8qul.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-activity-chart.component-D4bqeKCd.mjs → acorex-platform-module-auth-client-profile-activity-chart.component-D4q4Cnl9.mjs} +5 -5
- package/fesm2022/{acorex-platform-module-auth-client-profile-activity-chart.component-D4bqeKCd.mjs.map → acorex-platform-module-auth-client-profile-activity-chart.component-D4q4Cnl9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-delete-account-danger-zone.component-DWNbDzDd.mjs → acorex-platform-module-auth-client-profile-delete-account-danger-zone.component-DTujROAP.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-auth-client-profile-delete-account-danger-zone.component-DWNbDzDd.mjs.map → acorex-platform-module-auth-client-profile-delete-account-danger-zone.component-DTujROAP.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-DLTbTEe6.mjs → acorex-platform-module-auth-client-profile-page-component.provider-D364KW58.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-DLTbTEe6.mjs.map → acorex-platform-module-auth-client-profile-page-component.provider-D364KW58.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-BhmMsO3g.mjs → acorex-platform-module-auth-client-profile-page.component-DtI-_Kng.mjs} +5 -5
- package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-BhmMsO3g.mjs.map → acorex-platform-module-auth-client-profile-page.component-DtI-_Kng.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-register-password.component-M-ayP7oO.mjs → acorex-platform-module-auth-client-register-password.component-BZj1bmwP.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-register-password.component-M-ayP7oO.mjs.map → acorex-platform-module-auth-client-register-password.component-BZj1bmwP.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-register.module-Qa3ovje0.mjs → acorex-platform-module-auth-client-register.module-jbBjiAHz.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-auth-client-register.module-Qa3ovje0.mjs.map → acorex-platform-module-auth-client-register.module-jbBjiAHz.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-BenNCyt6.mjs → acorex-platform-module-auth-client-remove-pin-code.command-BDN-ehow.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-BenNCyt6.mjs.map → acorex-platform-module-auth-client-remove-pin-code.command-BDN-ehow.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-result.component-PhPaEAgh.mjs → acorex-platform-module-auth-client-result.component-Bo1QkwMu.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-result.component-PhPaEAgh.mjs.map → acorex-platform-module-auth-client-result.component-Bo1QkwMu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-ChigSAI-.mjs → acorex-platform-module-auth-client-session-lock-overlay.component-DlLih00S.mjs} +6 -6
- package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-ChigSAI-.mjs.map → acorex-platform-module-auth-client-session-lock-overlay.component-DlLih00S.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-CefSbJz8.mjs → acorex-platform-module-auth-client-set-pin-code.command-ZzialSjs.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-CefSbJz8.mjs.map → acorex-platform-module-auth-client-set-pin-code.command-ZzialSjs.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-DqFW_4rM.mjs → acorex-platform-module-auth-client-set-pin-code.component-DTmtx45j.mjs} +5 -5
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-DqFW_4rM.mjs.map → acorex-platform-module-auth-client-set-pin-code.component-DTmtx45j.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-DCdRCf1m.mjs → acorex-platform-module-auth-client-tenant-chooser.component-BdOXSMVU.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-DCdRCf1m.mjs.map → acorex-platform-module-auth-client-tenant-chooser.component-BdOXSMVU.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-two-factor-code.component-CtSv3MQu.mjs → acorex-platform-module-auth-client-two-factor-code.component-CxBUushO.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-two-factor-code.component-CtSv3MQu.mjs.map → acorex-platform-module-auth-client-two-factor-code.component-CxBUushO.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-two-factor.module-B7tETPbq.mjs → acorex-platform-module-auth-client-two-factor.module-DIq7MnHw.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-two-factor.module-B7tETPbq.mjs.map → acorex-platform-module-auth-client-two-factor.module-DIq7MnHw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-CKPbyVWd.mjs → acorex-platform-module-auth-client-view-login-history.command-Bx61ZM1U.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-CKPbyVWd.mjs.map → acorex-platform-module-auth-client-view-login-history.command-Bx61ZM1U.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding-page.component-C2WYgv4l.mjs → acorex-platform-module-auth-client-welcome-onboarding-page.component-zGdD8pkX.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding-page.component-C2WYgv4l.mjs.map → acorex-platform-module-auth-client-welcome-onboarding-page.component-zGdD8pkX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding.command-Ck1A26BI.mjs → acorex-platform-module-auth-client-welcome-onboarding.command-B5NBzcTY.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-welcome-onboarding.command-Ck1A26BI.mjs.map → acorex-platform-module-auth-client-welcome-onboarding.command-B5NBzcTY.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-auth-client.mjs +1 -1
- package/package.json +2 -2
- package/types/acorex-platform-module-auth-client.d.ts +29 -2
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-C1oSPf12.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-auth-client-master.layout-B3krDskY.mjs +0 -39
- package/fesm2022/acorex-platform-module-auth-client-master.layout-B3krDskY.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-auth-client-pwa-install.component-BJOvT0hW.mjs +0 -84
- package/fesm2022/acorex-platform-module-auth-client-pwa-install.component-BJOvT0hW.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i1$4 from '@acorex-platform/framework-client/common';
|
|
2
|
-
import { AXPFileStorageService, AXPHomePageService, AXPPlatformSettingsLoadState, AXPSettingsService, AXPDataProvider, AXPCommonSettings, AXPSettingDefinitionProviderService, AXP_PROTECTED_ROUTE_GUARDS, AXPCommonModule, AXPPlatformSettingsOfflineBootstrapService, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';
|
|
2
|
+
import { AXPFileStorageService, AXPHomePageService, AXPPlatformSettingsLoadState, AXPSettingsService, AXPDataProvider, AXPCommonSettings, AXPSettingDefinitionProviderService, AXP_PROTECTED_ROUTE_GUARDS, AXPCommonModule, AXPPlatformSettingsOfflineBootstrapService, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXPPlatformBrandingService } from '@acorex-platform/framework-client/common';
|
|
3
3
|
import { AXPSessionService, AXPUnauthorizedError, AXPUnauthenticatedError, AXPAuthStrategyRegistryService, storeSessionLimitPendingTenant, isMaxActiveDeviceSessionsError, traceAuthGuard, AXPAuthGuard, AXPSessionStatus } from '@acorex-platform/framework-client/auth';
|
|
4
4
|
import { AXPUserAvatarService, AXPUserAvatarComponent, AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';
|
|
5
5
|
import { AXPFileStorageStatus, coerceUnknownToTrimmedString, AXPPlatformScope, AXPKeyboardShortcutPriority, AXPRegionalSetting, verifyPassword, runtimeCommandPayloadData } from '@acorex-platform/framework-shared/core';
|
|
@@ -16,7 +16,7 @@ import * as i1 from '@acorex/core/validation';
|
|
|
16
16
|
import { AXValidationModule } from '@acorex/core/validation';
|
|
17
17
|
import { isNil, isString, orderBy, isEmpty, get, defaultTo } from 'lodash';
|
|
18
18
|
import * as i1$3 from '@acorex-platform/framework-client/core';
|
|
19
|
-
import { axpApplicationLogoKey, AXPEntityLogoRegistrationService, AXPLogoComponent, axpTenantLogoKey, AXPHookService, AXPKeyboardShortcutRegistry, AXPDeviceService, chordToKbdItemKeys, getPrimaryKeyboardShortcutChord, normalizeKeyboardShortcuts, AXPComponentSlotModule, AXPAppStartUpService, AXP_APP_STARTUP_PRIORITY, AXP_HOOK_PROVIDER, provideAppStartUpTask, provideLazyProvider, AXPComponentSlotDirective } from '@acorex-platform/framework-client/core';
|
|
19
|
+
import { axpApplicationLogoKey, AXPEntityLogoRegistrationService, AXPLogoComponent, axpTenantLogoKey, AXPHookService, AXPKeyboardShortcutRegistry, AXPDeviceService, chordToKbdItemKeys, getPrimaryKeyboardShortcutChord, normalizeKeyboardShortcuts, AXPComponentSlotModule, AXPAppStartUpService, AXP_APP_STARTUP_PRIORITY, AXP_HOOK_PROVIDER, provideAppStartUpTask, provideLazyProvider, AXPComponentSlotDirective, AXPContextStore } from '@acorex-platform/framework-client/core';
|
|
20
20
|
import { AXPCommandService, provideQuerySetups, provideCommandSetups } from '@acorex-platform/framework-client/runtime';
|
|
21
21
|
import { AXPRootLayoutComponent } from '@acorex-platform/framework-client/themes/default';
|
|
22
22
|
import * as i3$1 from '@angular/common';
|
|
@@ -24,7 +24,7 @@ import { CommonModule, AsyncPipe, Location } from '@angular/common';
|
|
|
24
24
|
import { first, filter, firstValueFrom, take, combineLatest, distinctUntilChanged, switchMap, EMPTY, from, timeout } from 'rxjs';
|
|
25
25
|
import * as i1$1 from '@acorex/components/button';
|
|
26
26
|
import { AXButtonModule } from '@acorex/components/button';
|
|
27
|
-
import * as
|
|
27
|
+
import * as i3$2 from '@acorex/components/decorators';
|
|
28
28
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
29
29
|
import * as i2$1 from '@acorex/components/popover';
|
|
30
30
|
import { AXPopoverModule } from '@acorex/components/popover';
|
|
@@ -995,27 +995,17 @@ const routes = [
|
|
|
995
995
|
},
|
|
996
996
|
{
|
|
997
997
|
path: '',
|
|
998
|
-
loadComponent: () =>
|
|
999
|
-
|
|
1000
|
-
{
|
|
1001
|
-
path: 'install',
|
|
1002
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-pwa-install.component-BJOvT0hW.mjs').then((c) => c.AXMPwaInstallComponent),
|
|
1003
|
-
},
|
|
1004
|
-
],
|
|
998
|
+
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
999
|
+
loadChildren: () => import('./acorex-platform-module-auth-client-login.module-ewiwr6VL.mjs').then((c) => c.AXPSignInModule),
|
|
1005
1000
|
},
|
|
1006
1001
|
{
|
|
1007
1002
|
path: '',
|
|
1008
|
-
loadComponent: () =>
|
|
1009
|
-
loadChildren: () => import('./acorex-platform-module-auth-client-
|
|
1003
|
+
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
1004
|
+
loadChildren: () => import('./acorex-platform-module-auth-client-two-factor.module-DIq7MnHw.mjs').then((c) => c.AXPTwoFactorModule),
|
|
1010
1005
|
},
|
|
1011
1006
|
{
|
|
1012
1007
|
path: '',
|
|
1013
|
-
loadComponent: () =>
|
|
1014
|
-
loadChildren: () => import('./acorex-platform-module-auth-client-two-factor.module-B7tETPbq.mjs').then((c) => c.AXPTwoFactorModule),
|
|
1015
|
-
},
|
|
1016
|
-
{
|
|
1017
|
-
path: '',
|
|
1018
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-master.layout-B3krDskY.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
|
1008
|
+
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
1019
1009
|
loadChildren: () => import('./acorex-platform-module-auth-client-routes-90eFjxx8.mjs').then((c) => c),
|
|
1020
1010
|
},
|
|
1021
1011
|
{
|
|
@@ -1029,8 +1019,8 @@ const routes = [
|
|
|
1029
1019
|
},
|
|
1030
1020
|
{
|
|
1031
1021
|
path: '',
|
|
1032
|
-
loadComponent: () =>
|
|
1033
|
-
loadChildren: () => import('./acorex-platform-module-auth-client-register.module-
|
|
1022
|
+
loadComponent: () => Promise.resolve().then(function () { return master_layout; }).then((c) => c.AXPAuthMasterLayoutComponent),
|
|
1023
|
+
loadChildren: () => import('./acorex-platform-module-auth-client-register.module-jbBjiAHz.mjs').then((c) => c.AXPRegisterModule),
|
|
1034
1024
|
},
|
|
1035
1025
|
],
|
|
1036
1026
|
},
|
|
@@ -1242,7 +1232,7 @@ class AXMAppChooserSlotComponent {
|
|
|
1242
1232
|
this.appPopover()?.close();
|
|
1243
1233
|
}
|
|
1244
1234
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1245
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "appPopover", first: true, predicate: ["appPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (applications$ | async; as applications) {\n @if (applications.length > 1) {\n <ax-button [color]=\"themeStore.headerButtonColor()\" [look]=\"themeStore.headerButtonLook()\" #appChooser>\n <ax-icon class=\"fa-regular fa-grid-2\"> </ax-icon>\n </ax-button>\n <ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #appPopover>\n <div class=\"bg-lightest border overflow-hidden rounded-md shadow-md w-full min-w-64 p-1\">\n <axp-app-chooser-list [simple]=\"true\" (applicationChosen)=\"closePopover()\"></axp-app-chooser-list>\n </div>\n </ax-popover>\n }\n}\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: 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: AXDecoratorModule }, { kind: "component", type:
|
|
1235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "appPopover", first: true, predicate: ["appPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (applications$ | async; as applications) {\n @if (applications.length > 1) {\n <ax-button [color]=\"themeStore.headerButtonColor()\" [look]=\"themeStore.headerButtonLook()\" #appChooser>\n <ax-icon class=\"fa-regular fa-grid-2\"> </ax-icon>\n </ax-button>\n <ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #appPopover>\n <div class=\"bg-lightest border overflow-hidden rounded-md shadow-md w-full min-w-64 p-1\">\n <axp-app-chooser-list [simple]=\"true\" (applicationChosen)=\"closePopover()\"></axp-app-chooser-list>\n </div>\n </ax-popover>\n }\n}\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: 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: AXDecoratorModule }, { kind: "component", type: i3$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list", inputs: ["simple"], outputs: ["applicationChosen", "loadingChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
1246
1236
|
}
|
|
1247
1237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
|
|
1248
1238
|
type: Component,
|
|
@@ -1448,7 +1438,7 @@ class AXPTenantChooserListComponent {
|
|
|
1448
1438
|
}
|
|
1449
1439
|
}
|
|
1450
1440
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTenantChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1451
|
-
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: i2$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 }); }
|
|
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 }); }
|
|
1452
1442
|
}
|
|
1453
1443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTenantChooserListComponent, decorators: [{
|
|
1454
1444
|
type: Component,
|
|
@@ -1509,7 +1499,7 @@ class AXPTenantChooserDropdownComponent {
|
|
|
1509
1499
|
void this.router.navigate(['/auth/account/tenant-chooser']);
|
|
1510
1500
|
}
|
|
1511
1501
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1512
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", inputs: { inline: "inline" }, viewQueries: [{ propertyName: "tenantPopover", first: true, predicate: ["tenantPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (tenantsLoading()) {\n <ax-skeleton [animated]=\"true\" class=\"h-5 w-32 max-w-full\"></ax-skeleton>\n} @else if (tenants$ | async; as tenants) {\n @if (inline) {\n @if (tenants.length > 1) {\n <!-- ----- Inline dropdown for multi-tenant ----- -->\n <span\n class=\"text-xs font-medium px-3 cursor-pointer inline-flex items-center gap-1\"\n #inlineTenantTrigger\n >\n {{ ((tenant$ | async)?.title | translate | async) ?? '' }}\n <i class=\"fa-solid fa-caret-down text-2xs opacity-60\"></i>\n </span>\n <ax-popover\n [target]=\"inlineTenantTrigger\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n #tenantPopover\n >\n <div [class]=\"popupPanelClass\">\n <axp-tenant-chooser-list\n [simple]=\"true\"\n (tenantChosen)=\"closePopover()\"\n ></axp-tenant-chooser-list>\n </div>\n </ax-popover>\n } @else {\n <!-- ----- Plain text for single tenant ----- -->\n <span class=\"text-xs font-medium px-3\">\n {{ ((tenant$ | async)?.title | translate | async) ?? '' }}\n </span>\n }\n } @else {\n @if (tenants.length > 1) {\n <ax-button\n [text]=\"((tenant$ | async)?.title | translate | async) ?? ''\"\n look=\"blank\"\n #tenantChooser\n >\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n <ax-popover\n [target]=\"tenantChooser\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n #tenantPopover\n >\n <div [class]=\"popupPanelClass\">\n <axp-tenant-chooser-list\n [simple]=\"true\"\n (tenantChosen)=\"closePopover()\"\n ></axp-tenant-chooser-list>\n </div>\n </ax-popover>\n } @else {\n <ax-button\n [text]=\"((tenant$ | async)?.title | translate | async) ?? ''\"\n class=\"ax-sm\"\n look=\"blank\"\n ></ax-button>\n }\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: 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: AXDecoratorModule }, { kind: "component", type:
|
|
1502
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", inputs: { inline: "inline" }, viewQueries: [{ propertyName: "tenantPopover", first: true, predicate: ["tenantPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (tenantsLoading()) {\n <ax-skeleton [animated]=\"true\" class=\"h-5 w-32 max-w-full\"></ax-skeleton>\n} @else if (tenants$ | async; as tenants) {\n @if (inline) {\n @if (tenants.length > 1) {\n <!-- ----- Inline dropdown for multi-tenant ----- -->\n <span\n class=\"text-xs font-medium px-3 cursor-pointer inline-flex items-center gap-1\"\n #inlineTenantTrigger\n >\n {{ ((tenant$ | async)?.title | translate | async) ?? '' }}\n <i class=\"fa-solid fa-caret-down text-2xs opacity-60\"></i>\n </span>\n <ax-popover\n [target]=\"inlineTenantTrigger\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n #tenantPopover\n >\n <div [class]=\"popupPanelClass\">\n <axp-tenant-chooser-list\n [simple]=\"true\"\n (tenantChosen)=\"closePopover()\"\n ></axp-tenant-chooser-list>\n </div>\n </ax-popover>\n } @else {\n <!-- ----- Plain text for single tenant ----- -->\n <span class=\"text-xs font-medium px-3\">\n {{ ((tenant$ | async)?.title | translate | async) ?? '' }}\n </span>\n }\n } @else {\n @if (tenants.length > 1) {\n <ax-button\n [text]=\"((tenant$ | async)?.title | translate | async) ?? ''\"\n look=\"blank\"\n #tenantChooser\n >\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n <ax-popover\n [target]=\"tenantChooser\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n #tenantPopover\n >\n <div [class]=\"popupPanelClass\">\n <axp-tenant-chooser-list\n [simple]=\"true\"\n (tenantChosen)=\"closePopover()\"\n ></axp-tenant-chooser-list>\n </div>\n </ax-popover>\n } @else {\n <ax-button\n [text]=\"((tenant$ | async)?.title | translate | async) ?? ''\"\n class=\"ax-sm\"\n look=\"blank\"\n ></ax-button>\n }\n }\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: 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: AXDecoratorModule }, { kind: "component", type: i3$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXPTenantChooserListComponent, selector: "axp-tenant-chooser-list", inputs: ["simple"], outputs: ["tenantChosen", "loadingChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
1513
1503
|
}
|
|
1514
1504
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
|
|
1515
1505
|
type: Component,
|
|
@@ -1645,7 +1635,7 @@ class AXMAuthProfileSlotComponent {
|
|
|
1645
1635
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1646
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=\"Sign Up / Sign In\"\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:
|
|
1647
1637
|
//
|
|
1648
|
-
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:
|
|
1638
|
+
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:
|
|
1649
1639
|
// AXKBDComponent,
|
|
1650
1640
|
// AXKBDItemComponent,
|
|
1651
1641
|
AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId", "showPresence", "displayName", "displayAvatar"] }, { kind: "component", type:
|
|
@@ -1755,7 +1745,7 @@ class AXMUserProfileCardSlotComponent {
|
|
|
1755
1745
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMUserProfileCardSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1756
1746
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMUserProfileCardSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<div\n class=\"flex items-center gap-1 border-b\"\n [class.p-3]=\"!isCompactMode()\"\n [class.py-2]=\"isCompactMode()\"\n [class.px-0]=\"isCompactMode()\"\n [class.border-white/7]=\"isMenuDark()\"\n [class.border-black/7]=\"!isMenuDark()\"\n [class.justify-center]=\"isCompactMode()\"\n>\n <div #avatar>\n <axp-user-avatar\n [size]=\"avatarSize()\"\n [userId]=\"$safeNavigationMigration((user$ | async)?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n </div>\n @if (!isCompactMode()) {\n <div class=\"flex flex-col\">\n <ax-title class=\"text-sm font-medium px-3\">{{ (user$ | async)?.title }}</ax-title>\n <axp-tenant-chooser-dropdown [inline]=\"true\" />\n </div>\n }\n</div>\n}\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
|
1757
1747
|
//
|
|
1758
|
-
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type:
|
|
1748
|
+
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type:
|
|
1759
1749
|
//
|
|
1760
1750
|
AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown", inputs: ["inline"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId", "showPresence", "displayName", "displayAvatar"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
1761
1751
|
}
|
|
@@ -1781,180 +1771,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
1781
1771
|
args: ['profilePopover']
|
|
1782
1772
|
}] } });
|
|
1783
1773
|
|
|
1784
|
-
//#region ----- Imports -----
|
|
1785
|
-
//#endregion
|
|
1786
|
-
//#region ----- PWA install -----
|
|
1787
|
-
/**
|
|
1788
|
-
* Captures Chromium `beforeinstallprompt` as soon as startup runs, so the install
|
|
1789
|
-
* page still has a deferred prompt if the event fired before navigation.
|
|
1790
|
-
*/
|
|
1791
|
-
class AXPPwaInstallService {
|
|
1792
|
-
constructor() {
|
|
1793
|
-
//#region ----- Services & Dependencies -----
|
|
1794
|
-
this.destroyRef = inject(DestroyRef);
|
|
1795
|
-
//#endregion
|
|
1796
|
-
//#region ----- State Signals -----
|
|
1797
|
-
this.installedSignal = signal(false, /* @ts-ignore */
|
|
1798
|
-
...(ngDevMode ? [{ debugName: "installedSignal" }] : /* istanbul ignore next */ []));
|
|
1799
|
-
this.canPromptSignal = signal(false, /* @ts-ignore */
|
|
1800
|
-
...(ngDevMode ? [{ debugName: "canPromptSignal" }] : /* istanbul ignore next */ []));
|
|
1801
|
-
this.iosSignal = signal(false, /* @ts-ignore */
|
|
1802
|
-
...(ngDevMode ? [{ debugName: "iosSignal" }] : /* istanbul ignore next */ []));
|
|
1803
|
-
this.dismissedSignal = signal(readPromptDismissed(), /* @ts-ignore */
|
|
1804
|
-
...(ngDevMode ? [{ debugName: "dismissedSignal" }] : /* istanbul ignore next */ []));
|
|
1805
|
-
this.deferredPrompt = null;
|
|
1806
|
-
this.started = false;
|
|
1807
|
-
this.installed = this.installedSignal.asReadonly();
|
|
1808
|
-
this.canPrompt = this.canPromptSignal.asReadonly();
|
|
1809
|
-
this.ios = this.iosSignal.asReadonly();
|
|
1810
|
-
this.dismissed = this.dismissedSignal.asReadonly();
|
|
1811
|
-
this.showPrompt = computed(() => !this.installedSignal() && !this.dismissedSignal(), /* @ts-ignore */
|
|
1812
|
-
...(ngDevMode ? [{ debugName: "showPrompt" }] : /* istanbul ignore next */ []));
|
|
1813
|
-
this.offerInProfile = computed(() => !this.installedSignal(), /* @ts-ignore */
|
|
1814
|
-
...(ngDevMode ? [{ debugName: "offerInProfile" }] : /* istanbul ignore next */ []));
|
|
1815
|
-
this.promptHostClaimed = false;
|
|
1816
|
-
}
|
|
1817
|
-
//#endregion
|
|
1818
|
-
//#region ----- Public API -----
|
|
1819
|
-
start() {
|
|
1820
|
-
if (this.started || typeof window === 'undefined') {
|
|
1821
|
-
return;
|
|
1822
|
-
}
|
|
1823
|
-
this.started = true;
|
|
1824
|
-
this.installedSignal.set(isStandaloneDisplay());
|
|
1825
|
-
this.iosSignal.set(isIosSafari() && !isStandaloneDisplay());
|
|
1826
|
-
const onBeforeInstall = (event) => {
|
|
1827
|
-
event.preventDefault();
|
|
1828
|
-
this.deferredPrompt = event;
|
|
1829
|
-
this.canPromptSignal.set(true);
|
|
1830
|
-
};
|
|
1831
|
-
const onInstalled = () => {
|
|
1832
|
-
this.deferredPrompt = null;
|
|
1833
|
-
this.canPromptSignal.set(false);
|
|
1834
|
-
this.installedSignal.set(true);
|
|
1835
|
-
this.iosSignal.set(false);
|
|
1836
|
-
this.dismissPrompt();
|
|
1837
|
-
};
|
|
1838
|
-
const onDisplayMode = () => {
|
|
1839
|
-
const standalone = isStandaloneDisplay();
|
|
1840
|
-
this.installedSignal.set(standalone);
|
|
1841
|
-
if (standalone) {
|
|
1842
|
-
this.iosSignal.set(false);
|
|
1843
|
-
}
|
|
1844
|
-
};
|
|
1845
|
-
window.addEventListener('beforeinstallprompt', onBeforeInstall);
|
|
1846
|
-
window.addEventListener('appinstalled', onInstalled);
|
|
1847
|
-
const displayQuery = window.matchMedia('(display-mode: standalone)');
|
|
1848
|
-
displayQuery.addEventListener('change', onDisplayMode);
|
|
1849
|
-
this.destroyRef.onDestroy(() => {
|
|
1850
|
-
window.removeEventListener('beforeinstallprompt', onBeforeInstall);
|
|
1851
|
-
window.removeEventListener('appinstalled', onInstalled);
|
|
1852
|
-
displayQuery.removeEventListener('change', onDisplayMode);
|
|
1853
|
-
});
|
|
1854
|
-
}
|
|
1855
|
-
dismissPrompt() {
|
|
1856
|
-
this.dismissedSignal.set(true);
|
|
1857
|
-
persistPromptDismissed();
|
|
1858
|
-
}
|
|
1859
|
-
claimPromptHost() {
|
|
1860
|
-
if (this.promptHostClaimed) {
|
|
1861
|
-
return false;
|
|
1862
|
-
}
|
|
1863
|
-
this.promptHostClaimed = true;
|
|
1864
|
-
return true;
|
|
1865
|
-
}
|
|
1866
|
-
async promptInstall() {
|
|
1867
|
-
const promptEvent = this.deferredPrompt;
|
|
1868
|
-
if (!promptEvent) {
|
|
1869
|
-
return 'unavailable';
|
|
1870
|
-
}
|
|
1871
|
-
await promptEvent.prompt();
|
|
1872
|
-
const choice = await promptEvent.userChoice;
|
|
1873
|
-
this.deferredPrompt = null;
|
|
1874
|
-
this.canPromptSignal.set(false);
|
|
1875
|
-
if (choice.outcome === 'accepted') {
|
|
1876
|
-
this.installedSignal.set(true);
|
|
1877
|
-
}
|
|
1878
|
-
return choice.outcome;
|
|
1879
|
-
}
|
|
1880
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPwaInstallService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1881
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPwaInstallService, providedIn: 'root' }); }
|
|
1882
|
-
}
|
|
1883
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPwaInstallService, decorators: [{
|
|
1884
|
-
type: Injectable,
|
|
1885
|
-
args: [{ providedIn: 'root' }]
|
|
1886
|
-
}] });
|
|
1887
|
-
//#endregion
|
|
1888
|
-
//#region ----- Helpers -----
|
|
1889
|
-
function isStandaloneDisplay() {
|
|
1890
|
-
if (typeof window === 'undefined') {
|
|
1891
|
-
return false;
|
|
1892
|
-
}
|
|
1893
|
-
const navigatorStandalone = navigator.standalone === true;
|
|
1894
|
-
return (navigatorStandalone ||
|
|
1895
|
-
window.matchMedia('(display-mode: standalone)').matches ||
|
|
1896
|
-
window.matchMedia('(display-mode: window-controls-overlay)').matches);
|
|
1897
|
-
}
|
|
1898
|
-
const PWA_INSTALL_PROMPT_DISMISSED_KEY = 'axp:pwa-install-prompt-dismissed';
|
|
1899
|
-
function readPromptDismissed() {
|
|
1900
|
-
if (typeof window === 'undefined') {
|
|
1901
|
-
return false;
|
|
1902
|
-
}
|
|
1903
|
-
try {
|
|
1904
|
-
return window.localStorage.getItem(PWA_INSTALL_PROMPT_DISMISSED_KEY) === '1';
|
|
1905
|
-
}
|
|
1906
|
-
catch {
|
|
1907
|
-
return false;
|
|
1908
|
-
}
|
|
1909
|
-
}
|
|
1910
|
-
function persistPromptDismissed() {
|
|
1911
|
-
if (typeof window === 'undefined') {
|
|
1912
|
-
return;
|
|
1913
|
-
}
|
|
1914
|
-
try {
|
|
1915
|
-
window.localStorage.setItem(PWA_INSTALL_PROMPT_DISMISSED_KEY, '1');
|
|
1916
|
-
}
|
|
1917
|
-
catch {
|
|
1918
|
-
// Private mode or blocked storage; in-memory dismiss still applies for this session.
|
|
1919
|
-
}
|
|
1920
|
-
}
|
|
1921
|
-
function isIosSafari() {
|
|
1922
|
-
if (typeof navigator === 'undefined') {
|
|
1923
|
-
return false;
|
|
1924
|
-
}
|
|
1925
|
-
const ua = navigator.userAgent;
|
|
1926
|
-
const iPhone = /iPhone|iPad|iPod/i.test(ua);
|
|
1927
|
-
const iPadOs = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
|
|
1928
|
-
return iPhone || iPadOs;
|
|
1929
|
-
}
|
|
1930
|
-
|
|
1931
|
-
//#region ----- Imports -----
|
|
1932
|
-
//#endregion
|
|
1933
|
-
//#region ----- Component -----
|
|
1934
|
-
class AXMPwaInstallPromptComponent {
|
|
1935
|
-
constructor() {
|
|
1936
|
-
//#region ----- Services & Dependencies -----
|
|
1937
|
-
this.router = inject(Router);
|
|
1938
|
-
this.pwaInstall = inject(AXPPwaInstallService);
|
|
1939
|
-
this.isPromptHost = this.pwaInstall.claimPromptHost();
|
|
1940
|
-
}
|
|
1941
|
-
//#endregion
|
|
1942
|
-
//#region ----- Event Handlers -----
|
|
1943
|
-
handleOpenInstallPage() {
|
|
1944
|
-
this.pwaInstall.dismissPrompt();
|
|
1945
|
-
void this.router.navigateByUrl('/auth/install');
|
|
1946
|
-
}
|
|
1947
|
-
handleDismiss() {
|
|
1948
|
-
this.pwaInstall.dismissPrompt();
|
|
1949
|
-
}
|
|
1950
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPwaInstallPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1951
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMPwaInstallPromptComponent, isStandalone: true, selector: "axm-pwa-install-prompt", ngImport: i0, template: "@if (isPromptHost && pwaInstall.showPrompt()) {\n <!-- ----- Corner install suggestion while the app is not installed ----- -->\n <div\n class=\"axp-pwa-install-prompt\"\n role=\"region\"\n [attr.aria-label]=\"'@auth:pwa-install.prompt.title' | translate | async\"\n >\n <ax-button\n class=\"axp-pwa-install-prompt__dismiss\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [attr.aria-label]=\"'@auth:pwa-install.prompt.dismiss' | translate | async\"\n (onClick)=\"handleDismiss()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-xmark\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <div class=\"axp-pwa-install-prompt__copy\">\n <p class=\"font-semibold\">{{ '@auth:pwa-install.prompt.title' | translate | async }}</p>\n <p class=\"text-sm text-neutral-600\">{{ '@auth:pwa-install.prompt.hint' | translate | async }}</p>\n </div>\n <ax-button\n color=\"primary\"\n class=\"w-full\"\n [text]=\"'@auth:pwa-install.prompt.action' | translate | async\"\n (onClick)=\"handleOpenInstallPage()\"\n ></ax-button>\n </div>\n}\n", styles: ["@layer properties;:host{display:contents}.axp-pwa-install-prompt{position:fixed;z-index:40;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);background-color:rgba(var(--ax-sys-color-lightest-surface));padding:calc(var(--spacing, .25rem) * 4);--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);inset-inline-end:1.5rem;bottom:1.5rem;width:min(20rem,calc(100vw - 2rem))}.axp-pwa-install-prompt__dismiss{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 2);top:calc(var(--spacing, .25rem) * 2)}.axp-pwa-install-prompt__copy{padding-inline-end:calc(var(--spacing, .25rem) * 8);text-align:start}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@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;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ 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: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1952
|
-
}
|
|
1953
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPwaInstallPromptComponent, decorators: [{
|
|
1954
|
-
type: Component,
|
|
1955
|
-
args: [{ selector: 'axm-pwa-install-prompt', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXTranslationModule, AsyncPipe], template: "@if (isPromptHost && pwaInstall.showPrompt()) {\n <!-- ----- Corner install suggestion while the app is not installed ----- -->\n <div\n class=\"axp-pwa-install-prompt\"\n role=\"region\"\n [attr.aria-label]=\"'@auth:pwa-install.prompt.title' | translate | async\"\n >\n <ax-button\n class=\"axp-pwa-install-prompt__dismiss\"\n look=\"blank\"\n [iconOnly]=\"true\"\n [attr.aria-label]=\"'@auth:pwa-install.prompt.dismiss' | translate | async\"\n (onClick)=\"handleDismiss()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-xmark\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <div class=\"axp-pwa-install-prompt__copy\">\n <p class=\"font-semibold\">{{ '@auth:pwa-install.prompt.title' | translate | async }}</p>\n <p class=\"text-sm text-neutral-600\">{{ '@auth:pwa-install.prompt.hint' | translate | async }}</p>\n </div>\n <ax-button\n color=\"primary\"\n class=\"w-full\"\n [text]=\"'@auth:pwa-install.prompt.action' | translate | async\"\n (onClick)=\"handleOpenInstallPage()\"\n ></ax-button>\n </div>\n}\n", styles: ["@layer properties;:host{display:contents}.axp-pwa-install-prompt{position:fixed;z-index:40;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);background-color:rgba(var(--ax-sys-color-lightest-surface));padding:calc(var(--spacing, .25rem) * 4);--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);inset-inline-end:1.5rem;bottom:1.5rem;width:min(20rem,calc(100vw - 2rem))}.axp-pwa-install-prompt__dismiss{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 2);top:calc(var(--spacing, .25rem) * 2)}.axp-pwa-install-prompt__copy{padding-inline-end:calc(var(--spacing, .25rem) * 8);text-align:start}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@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;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1956
|
-
}] });
|
|
1957
|
-
|
|
1958
1774
|
class AXMUserDeviceSessionsService {
|
|
1959
1775
|
}
|
|
1960
1776
|
class AXMUserDeviceSessionsServiceImp extends AXMUserDeviceSessionsService {
|
|
@@ -2577,7 +2393,7 @@ function routesFacory() {
|
|
|
2577
2393
|
routes = [
|
|
2578
2394
|
{
|
|
2579
2395
|
path: 'tenant-chooser',
|
|
2580
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-tenant-chooser.component-
|
|
2396
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-tenant-chooser.component-BdOXSMVU.mjs').then((c) => c.AXPAuthTenantChooserComponent),
|
|
2581
2397
|
canActivate: [AXPAuthGuard, canActivateTenantChooser],
|
|
2582
2398
|
},
|
|
2583
2399
|
{
|
|
@@ -2592,12 +2408,12 @@ function routesFacory() {
|
|
|
2592
2408
|
},
|
|
2593
2409
|
{
|
|
2594
2410
|
path: 'app-chooser',
|
|
2595
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-app-chooser.component-
|
|
2411
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-app-chooser.component-EKZpp1BW.mjs').then((c) => c.AXPAuthAppChooserComponent),
|
|
2596
2412
|
canActivate: [AXPAuthGuard, canActivateAppChooser],
|
|
2597
2413
|
},
|
|
2598
2414
|
{
|
|
2599
2415
|
path: 'welcome-onboarding',
|
|
2600
|
-
loadComponent: () => import('./acorex-platform-module-auth-client-welcome-onboarding-page.component-
|
|
2416
|
+
loadComponent: () => import('./acorex-platform-module-auth-client-welcome-onboarding-page.component-zGdD8pkX.mjs').then((c) => c.AXPAuthWelcomeOnboardingPageComponent),
|
|
2601
2417
|
canActivate: [AXPAuthGuard, canActivateWelcomeOnboarding],
|
|
2602
2418
|
},
|
|
2603
2419
|
];
|
|
@@ -2624,20 +2440,6 @@ class AXPAccountModule {
|
|
|
2624
2440
|
component: AXMUserProfileCardSlotComponent,
|
|
2625
2441
|
},
|
|
2626
2442
|
],
|
|
2627
|
-
'root-footer-end': [
|
|
2628
|
-
{
|
|
2629
|
-
priority: 20,
|
|
2630
|
-
name: 'pwa-install-prompt',
|
|
2631
|
-
component: AXMPwaInstallPromptComponent,
|
|
2632
|
-
},
|
|
2633
|
-
],
|
|
2634
|
-
'root-layout-overlay': [
|
|
2635
|
-
{
|
|
2636
|
-
priority: 10,
|
|
2637
|
-
name: 'pwa-install-prompt',
|
|
2638
|
-
component: AXMPwaInstallPromptComponent,
|
|
2639
|
-
},
|
|
2640
|
-
],
|
|
2641
2443
|
'root-header-end': [
|
|
2642
2444
|
{
|
|
2643
2445
|
priority: 98,
|
|
@@ -2665,20 +2467,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2665
2467
|
component: AXMUserProfileCardSlotComponent,
|
|
2666
2468
|
},
|
|
2667
2469
|
],
|
|
2668
|
-
'root-footer-end': [
|
|
2669
|
-
{
|
|
2670
|
-
priority: 20,
|
|
2671
|
-
name: 'pwa-install-prompt',
|
|
2672
|
-
component: AXMPwaInstallPromptComponent,
|
|
2673
|
-
},
|
|
2674
|
-
],
|
|
2675
|
-
'root-layout-overlay': [
|
|
2676
|
-
{
|
|
2677
|
-
priority: 10,
|
|
2678
|
-
name: 'pwa-install-prompt',
|
|
2679
|
-
component: AXMPwaInstallPromptComponent,
|
|
2680
|
-
},
|
|
2681
|
-
],
|
|
2682
2470
|
'root-header-end': [
|
|
2683
2471
|
{
|
|
2684
2472
|
priority: 98,
|
|
@@ -3013,7 +2801,7 @@ class AXPIdleLockService {
|
|
|
3013
2801
|
this.overlayOpening = true;
|
|
3014
2802
|
this.locked.set(true);
|
|
3015
2803
|
try {
|
|
3016
|
-
const { AXMSessionLockOverlayComponent: overlayComponent } = await import('./acorex-platform-module-auth-client-session-lock-overlay.component-
|
|
2804
|
+
const { AXMSessionLockOverlayComponent: overlayComponent } = await import('./acorex-platform-module-auth-client-session-lock-overlay.component-DlLih00S.mjs');
|
|
3017
2805
|
const panelClasses = ['axm-session-lock-overlay-shell'];
|
|
3018
2806
|
if (this.platform.isDark()) {
|
|
3019
2807
|
panelClasses.push('ax-dark');
|
|
@@ -3904,35 +3692,6 @@ const ProfileSlotPresenceMenuHookProvider = {
|
|
|
3904
3692
|
};
|
|
3905
3693
|
//#endregion
|
|
3906
3694
|
|
|
3907
|
-
//#region ---- Profile slot install app menu hook ----
|
|
3908
|
-
/** Registers Install App in the profile dropdown while this device is not in standalone mode. */
|
|
3909
|
-
const ProfileSlotInstallAppMenuHookProvider = {
|
|
3910
|
-
key: PROFILE_SLOT_MENU_ITEMS_HOOK,
|
|
3911
|
-
priority: 5,
|
|
3912
|
-
execute: (payload) => {
|
|
3913
|
-
const pwaInstall = inject(AXPPwaInstallService);
|
|
3914
|
-
return {
|
|
3915
|
-
...payload,
|
|
3916
|
-
items: [
|
|
3917
|
-
...payload.items,
|
|
3918
|
-
{
|
|
3919
|
-
name: 'install-app',
|
|
3920
|
-
title: '@auth:pwa-install.link',
|
|
3921
|
-
icon: 'fa-light fa-download',
|
|
3922
|
-
visible: pwaInstall.offerInProfile(),
|
|
3923
|
-
command: {
|
|
3924
|
-
name: 'navigate',
|
|
3925
|
-
options: {
|
|
3926
|
-
path: '/auth/install',
|
|
3927
|
-
},
|
|
3928
|
-
},
|
|
3929
|
-
},
|
|
3930
|
-
],
|
|
3931
|
-
};
|
|
3932
|
-
},
|
|
3933
|
-
};
|
|
3934
|
-
//#endregion
|
|
3935
|
-
|
|
3936
3695
|
//#region ----- Welcome preference steps hook -----
|
|
3937
3696
|
/**
|
|
3938
3697
|
* Core welcome preference steps, ordered for first-run UX:
|
|
@@ -4274,7 +4033,7 @@ function provideAuthSecurityAlertRealtime() {
|
|
|
4274
4033
|
//#endregion
|
|
4275
4034
|
|
|
4276
4035
|
function profileRoutesFactory() {
|
|
4277
|
-
const loadProfilePage = () => import('./acorex-platform-module-auth-client-profile-page.component-
|
|
4036
|
+
const loadProfilePage = () => import('./acorex-platform-module-auth-client-profile-page.component-DtI-_Kng.mjs').then((c) => c.AXMUserProfilePageComponent);
|
|
4278
4037
|
return [
|
|
4279
4038
|
{
|
|
4280
4039
|
path: ':app/profile',
|
|
@@ -4307,16 +4066,6 @@ class AXMAuthModule {
|
|
|
4307
4066
|
AXMAuthValidationRulesModule] }); }
|
|
4308
4067
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAuthModule, providers: [
|
|
4309
4068
|
...provideAuthSecurityAlertRealtime(),
|
|
4310
|
-
provideAppStartUpTask(() => {
|
|
4311
|
-
const pwaInstall = inject(AXPPwaInstallService);
|
|
4312
|
-
return {
|
|
4313
|
-
name: 'pwa-install-prompt',
|
|
4314
|
-
priority: AXP_APP_STARTUP_PRIORITY.terms,
|
|
4315
|
-
run: async () => {
|
|
4316
|
-
pwaInstall.start();
|
|
4317
|
-
},
|
|
4318
|
-
};
|
|
4319
|
-
}),
|
|
4320
4069
|
provideAppStartUpTask(() => {
|
|
4321
4070
|
const sessionService = inject(AXPSessionService);
|
|
4322
4071
|
const idleLockService = inject(AXPIdleLockService);
|
|
@@ -4402,11 +4151,11 @@ class AXMAuthModule {
|
|
|
4402
4151
|
AXMAuthErrorHandler,
|
|
4403
4152
|
provideLazyProvider(AXP_MENU_PROVIDER, () => import('./acorex-platform-module-auth-client-menu.provider-Bz-kRip4.mjs').then(m => m.AXMSecurityManagementModuleMenuProvider)),
|
|
4404
4153
|
provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => import('./acorex-platform-module-auth-client-settings.provider-DsKsZrOC.mjs').then(m => m.AXMSettingProvider)),
|
|
4405
|
-
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-
|
|
4154
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-D364KW58.mjs').then((module) => module.AXMProfilePageComponentProvider)),
|
|
4406
4155
|
provideQuerySetups([
|
|
4407
4156
|
{
|
|
4408
4157
|
key: 'Auth:GetUserActivity',
|
|
4409
|
-
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-
|
|
4158
|
+
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-C0tOES_Q.mjs').then((c) => c.AXMGetUserActivityQuery),
|
|
4410
4159
|
},
|
|
4411
4160
|
]),
|
|
4412
4161
|
{
|
|
@@ -4430,15 +4179,15 @@ class AXMAuthModule {
|
|
|
4430
4179
|
},
|
|
4431
4180
|
{
|
|
4432
4181
|
key: AXMAuthCommandKeys.Session.OpenSessions,
|
|
4433
|
-
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-
|
|
4182
|
+
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-ZMYyVU1K.mjs').then((c) => c.AXPOpenSessionsCommand),
|
|
4434
4183
|
},
|
|
4435
4184
|
{
|
|
4436
4185
|
key: AXMAuthCommandKeys.Session.LockScreen,
|
|
4437
|
-
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-
|
|
4186
|
+
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-TKTC-1hk.mjs').then((c) => c.AXPLockScreenCommand),
|
|
4438
4187
|
},
|
|
4439
4188
|
{
|
|
4440
4189
|
key: AXMAuthCommandKeys.Profile.ChangePhoto,
|
|
4441
|
-
command: () => import('./acorex-platform-module-auth-client-change-photo.command-
|
|
4190
|
+
command: () => import('./acorex-platform-module-auth-client-change-photo.command-Bv9ttDAn.mjs').then((c) => c.AXPChangePhotoCommand),
|
|
4442
4191
|
},
|
|
4443
4192
|
{
|
|
4444
4193
|
key: AXMAuthCommandKeys.Profile.EditAccountInfo,
|
|
@@ -4446,23 +4195,23 @@ class AXMAuthModule {
|
|
|
4446
4195
|
},
|
|
4447
4196
|
{
|
|
4448
4197
|
key: AXMAuthCommandKeys.Security.ChangePassword,
|
|
4449
|
-
command: () => import('./acorex-platform-module-auth-client-change-password.command-
|
|
4198
|
+
command: () => import('./acorex-platform-module-auth-client-change-password.command-CKeSpikK.mjs').then((c) => c.AXPChangePasswordCommand),
|
|
4450
4199
|
},
|
|
4451
4200
|
{
|
|
4452
4201
|
key: AXMAuthCommandKeys.Security.ManageTwoFactor,
|
|
4453
|
-
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-
|
|
4202
|
+
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-DR8NUf_4.mjs').then((c) => c.AXPManageTwoFactorCommand),
|
|
4454
4203
|
},
|
|
4455
4204
|
{
|
|
4456
4205
|
key: AXMAuthCommandKeys.Security.SetPinCode,
|
|
4457
|
-
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-
|
|
4206
|
+
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-ZzialSjs.mjs').then((c) => c.AXPSetPinCodeCommand),
|
|
4458
4207
|
},
|
|
4459
4208
|
{
|
|
4460
4209
|
key: AXMAuthCommandKeys.Security.RemovePinCode,
|
|
4461
|
-
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-
|
|
4210
|
+
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-BDN-ehow.mjs').then((c) => c.AXPRemovePinCodeCommand),
|
|
4462
4211
|
},
|
|
4463
4212
|
{
|
|
4464
4213
|
key: AXMAuthCommandKeys.Security.ViewLoginHistory,
|
|
4465
|
-
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-
|
|
4214
|
+
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-Bx61ZM1U.mjs').then((c) => c.AXPViewLoginHistoryCommand),
|
|
4466
4215
|
},
|
|
4467
4216
|
{
|
|
4468
4217
|
key: AXMAuthCommandKeys.Security.EditSignature,
|
|
@@ -4474,7 +4223,7 @@ class AXMAuthModule {
|
|
|
4474
4223
|
},
|
|
4475
4224
|
{
|
|
4476
4225
|
key: AXMAuthCommandKeys.Onboarding.Welcome,
|
|
4477
|
-
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-
|
|
4226
|
+
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-B5NBzcTY.mjs').then((c) => c.AXPWelcomeOnboardingCommand),
|
|
4478
4227
|
},
|
|
4479
4228
|
{
|
|
4480
4229
|
key: AXMAuthCommandKeys.Account.OpenWaitingRoom,
|
|
@@ -4492,11 +4241,6 @@ class AXMAuthModule {
|
|
|
4492
4241
|
useValue: ProfileSlotMyProfileMenuHookProvider,
|
|
4493
4242
|
multi: true,
|
|
4494
4243
|
},
|
|
4495
|
-
{
|
|
4496
|
-
provide: AXP_HOOK_PROVIDER,
|
|
4497
|
-
useValue: ProfileSlotInstallAppMenuHookProvider,
|
|
4498
|
-
multi: true,
|
|
4499
|
-
},
|
|
4500
4244
|
{
|
|
4501
4245
|
provide: AXP_HOOK_PROVIDER,
|
|
4502
4246
|
useValue: ProfileSlotLockMenuHookProvider,
|
|
@@ -4560,16 +4304,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4560
4304
|
],
|
|
4561
4305
|
providers: [
|
|
4562
4306
|
...provideAuthSecurityAlertRealtime(),
|
|
4563
|
-
provideAppStartUpTask(() => {
|
|
4564
|
-
const pwaInstall = inject(AXPPwaInstallService);
|
|
4565
|
-
return {
|
|
4566
|
-
name: 'pwa-install-prompt',
|
|
4567
|
-
priority: AXP_APP_STARTUP_PRIORITY.terms,
|
|
4568
|
-
run: async () => {
|
|
4569
|
-
pwaInstall.start();
|
|
4570
|
-
},
|
|
4571
|
-
};
|
|
4572
|
-
}),
|
|
4573
4307
|
provideAppStartUpTask(() => {
|
|
4574
4308
|
const sessionService = inject(AXPSessionService);
|
|
4575
4309
|
const idleLockService = inject(AXPIdleLockService);
|
|
@@ -4655,11 +4389,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4655
4389
|
AXMAuthErrorHandler,
|
|
4656
4390
|
provideLazyProvider(AXP_MENU_PROVIDER, () => import('./acorex-platform-module-auth-client-menu.provider-Bz-kRip4.mjs').then(m => m.AXMSecurityManagementModuleMenuProvider)),
|
|
4657
4391
|
provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => import('./acorex-platform-module-auth-client-settings.provider-DsKsZrOC.mjs').then(m => m.AXMSettingProvider)),
|
|
4658
|
-
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-
|
|
4392
|
+
provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-auth-client-profile-page-component.provider-D364KW58.mjs').then((module) => module.AXMProfilePageComponentProvider)),
|
|
4659
4393
|
provideQuerySetups([
|
|
4660
4394
|
{
|
|
4661
4395
|
key: 'Auth:GetUserActivity',
|
|
4662
|
-
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-
|
|
4396
|
+
loader: () => import('./acorex-platform-module-auth-client-get-user-activity.query-C0tOES_Q.mjs').then((c) => c.AXMGetUserActivityQuery),
|
|
4663
4397
|
},
|
|
4664
4398
|
]),
|
|
4665
4399
|
{
|
|
@@ -4683,15 +4417,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4683
4417
|
},
|
|
4684
4418
|
{
|
|
4685
4419
|
key: AXMAuthCommandKeys.Session.OpenSessions,
|
|
4686
|
-
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-
|
|
4420
|
+
command: () => import('./acorex-platform-module-auth-client-open-sessions.command-ZMYyVU1K.mjs').then((c) => c.AXPOpenSessionsCommand),
|
|
4687
4421
|
},
|
|
4688
4422
|
{
|
|
4689
4423
|
key: AXMAuthCommandKeys.Session.LockScreen,
|
|
4690
|
-
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-
|
|
4424
|
+
command: () => import('./acorex-platform-module-auth-client-lock-screen.command-TKTC-1hk.mjs').then((c) => c.AXPLockScreenCommand),
|
|
4691
4425
|
},
|
|
4692
4426
|
{
|
|
4693
4427
|
key: AXMAuthCommandKeys.Profile.ChangePhoto,
|
|
4694
|
-
command: () => import('./acorex-platform-module-auth-client-change-photo.command-
|
|
4428
|
+
command: () => import('./acorex-platform-module-auth-client-change-photo.command-Bv9ttDAn.mjs').then((c) => c.AXPChangePhotoCommand),
|
|
4695
4429
|
},
|
|
4696
4430
|
{
|
|
4697
4431
|
key: AXMAuthCommandKeys.Profile.EditAccountInfo,
|
|
@@ -4699,23 +4433,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4699
4433
|
},
|
|
4700
4434
|
{
|
|
4701
4435
|
key: AXMAuthCommandKeys.Security.ChangePassword,
|
|
4702
|
-
command: () => import('./acorex-platform-module-auth-client-change-password.command-
|
|
4436
|
+
command: () => import('./acorex-platform-module-auth-client-change-password.command-CKeSpikK.mjs').then((c) => c.AXPChangePasswordCommand),
|
|
4703
4437
|
},
|
|
4704
4438
|
{
|
|
4705
4439
|
key: AXMAuthCommandKeys.Security.ManageTwoFactor,
|
|
4706
|
-
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-
|
|
4440
|
+
command: () => import('./acorex-platform-module-auth-client-manage-two-factor.command-DR8NUf_4.mjs').then((c) => c.AXPManageTwoFactorCommand),
|
|
4707
4441
|
},
|
|
4708
4442
|
{
|
|
4709
4443
|
key: AXMAuthCommandKeys.Security.SetPinCode,
|
|
4710
|
-
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-
|
|
4444
|
+
command: () => import('./acorex-platform-module-auth-client-set-pin-code.command-ZzialSjs.mjs').then((c) => c.AXPSetPinCodeCommand),
|
|
4711
4445
|
},
|
|
4712
4446
|
{
|
|
4713
4447
|
key: AXMAuthCommandKeys.Security.RemovePinCode,
|
|
4714
|
-
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-
|
|
4448
|
+
command: () => import('./acorex-platform-module-auth-client-remove-pin-code.command-BDN-ehow.mjs').then((c) => c.AXPRemovePinCodeCommand),
|
|
4715
4449
|
},
|
|
4716
4450
|
{
|
|
4717
4451
|
key: AXMAuthCommandKeys.Security.ViewLoginHistory,
|
|
4718
|
-
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-
|
|
4452
|
+
command: () => import('./acorex-platform-module-auth-client-view-login-history.command-Bx61ZM1U.mjs').then((c) => c.AXPViewLoginHistoryCommand),
|
|
4719
4453
|
},
|
|
4720
4454
|
{
|
|
4721
4455
|
key: AXMAuthCommandKeys.Security.EditSignature,
|
|
@@ -4727,7 +4461,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4727
4461
|
},
|
|
4728
4462
|
{
|
|
4729
4463
|
key: AXMAuthCommandKeys.Onboarding.Welcome,
|
|
4730
|
-
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-
|
|
4464
|
+
command: () => import('./acorex-platform-module-auth-client-welcome-onboarding.command-B5NBzcTY.mjs').then((c) => c.AXPWelcomeOnboardingCommand),
|
|
4731
4465
|
},
|
|
4732
4466
|
{
|
|
4733
4467
|
key: AXMAuthCommandKeys.Account.OpenWaitingRoom,
|
|
@@ -4745,11 +4479,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4745
4479
|
useValue: ProfileSlotMyProfileMenuHookProvider,
|
|
4746
4480
|
multi: true,
|
|
4747
4481
|
},
|
|
4748
|
-
{
|
|
4749
|
-
provide: AXP_HOOK_PROVIDER,
|
|
4750
|
-
useValue: ProfileSlotInstallAppMenuHookProvider,
|
|
4751
|
-
multi: true,
|
|
4752
|
-
},
|
|
4753
4482
|
{
|
|
4754
4483
|
provide: AXP_HOOK_PROVIDER,
|
|
4755
4484
|
useValue: ProfileSlotLockMenuHookProvider,
|
|
@@ -4863,9 +4592,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4863
4592
|
args: [{ providedIn: 'root' }]
|
|
4864
4593
|
}] });
|
|
4865
4594
|
|
|
4595
|
+
//#region ----- Auth master layout -----
|
|
4596
|
+
class AXPAuthMasterLayoutComponent {
|
|
4597
|
+
//#endregion
|
|
4598
|
+
//#region ----- Lifecycle -----
|
|
4599
|
+
constructor() {
|
|
4600
|
+
//#region ----- Services & Dependencies -----
|
|
4601
|
+
this.authPlatformSettings = inject(AXMAuthPlatformSettingsService);
|
|
4602
|
+
this.platformBranding = inject(AXPPlatformBrandingService);
|
|
4603
|
+
this.platformTitle = signal('', /* @ts-ignore */
|
|
4604
|
+
...(ngDevMode ? [{ debugName: "platformTitle" }] : /* istanbul ignore next */ []));
|
|
4605
|
+
//#endregion
|
|
4606
|
+
//#region ----- Computed Properties -----
|
|
4607
|
+
/** Plain string or MLS map — rendered via translate pipe. */
|
|
4608
|
+
this.slogan = this.authPlatformSettings.slogan();
|
|
4609
|
+
this.description = this.authPlatformSettings.description();
|
|
4610
|
+
void this.platformBranding.resolvePlatformTitle().then((title) => this.platformTitle.set(title));
|
|
4611
|
+
}
|
|
4612
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAuthMasterLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4613
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPAuthMasterLayoutComponent, isStandalone: true, selector: "ng-component", providers: [AXPContextStore], ngImport: i0, template: "<div class=\"w-full h-full flex overflow-hidden\">\n <div\n class=\"axp-auth-master__form-pane flex-1 min-h-0 lightest-surface dark:darker-surface overflow-y-auto px-6 sm:px-8 md:px-10 lg:px-0\"\n >\n <!-- ----- Stack: logo + form vertically centered; footer pinned below ----- -->\n <div\n class=\"axp-auth-master__stack w-full min-h-full flex flex-col items-center\"\n >\n <div\n class=\"axp-auth-master__main w-full grow flex flex-col items-center justify-center gap-5 pt-6 pb-4 sm:pt-8 lg:pt-0 lg:gap-0\"\n >\n <!-- ----- Platform branding on viewports without the side panel ----- -->\n <div class=\"axp-auth-master__brand lg:hidden shrink-0 w-full flex justify-center\">\n <axp-logo\n logoKey=\"platform\"\n appearance=\"onLight\"\n format=\"full\"\n [size]=\"240\"\n [attr.alt]=\"platformTitle()\"\n class=\"axp-auth-master__logo\"\n ></axp-logo>\n </div>\n <div class=\"axp-auth-master__form-body w-full flex flex-col items-center\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <div class=\"flex justify-between shrink-0 pt-2 pb-1\">\n <div class=\"auth-footer-links\">\n <axp-component-slot name=\"auth-footer-links\"></axp-component-slot>\n </div>\n </div>\n </div>\n </div>\n <div class=\"hidden lg:flex bg-primary-500 flex-1 axp-auth-bk text-white\">\n <div class=\"flex w-full flex-col justify-between px-48 py-20 text-center \">\n <div>\n <axp-logo\n logoKey=\"platform\"\n appearance=\"onDark\"\n format=\"full\"\n [size]=\"280\"\n [attr.alt]=\"platformTitle()\"\n class=\"w-[280px] max-w-full mx-auto\"\n ></axp-logo>\n </div>\n <div>\n <p class=\"font-black text-4xl mb-4\">{{ slogan | translate | async }}</p>\n <p>{{ description | translate | async }}</p>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;.axp-auth-master__form-pane{-webkit-overflow-scrolling:touch;padding-top:max(1.75rem,calc(env(safe-area-inset-top,0px) + 1.25rem));padding-bottom:max(1.5rem,env(safe-area-inset-bottom,0px))}@media(min-width:1024px){.axp-auth-master__form-pane{padding-top:3rem;padding-bottom:3rem}}.axp-auth-master__brand{padding-top:.5rem;margin-bottom:.25rem}.axp-auth-master__logo{width:min(15rem,85vw);max-width:100%}@media(min-width:640px){.axp-auth-master__logo{width:min(16.25rem,90vw)}}.axp-auth-master__form-body>*:not(router-outlet){display:block;width:100%}.auth-footer-links{gap:calc(var(--spacing, .25rem) * 5);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.auth-footer-links a{background-color:transparent;color:var(--ax-comp-ink, var(--ax-comp-bg, var(--color-on-surface)))}.auth-footer-links a.ax-state-selected{color:var(--ax-comp-ink-darker, var(--ax-comp-bg-darker, var(--color-on-surface)))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i6$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["logoKey", "appearance", "size", "format"] }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$3.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4614
|
+
}
|
|
4615
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAuthMasterLayoutComponent, decorators: [{
|
|
4616
|
+
type: Component,
|
|
4617
|
+
args: [{ imports: [RouterModule, AXPLogoComponent, AXPComponentSlotModule, AXTranslationModule, AsyncPipe], providers: [AXPContextStore], changeDetection: ChangeDetectionStrategy.Eager, encapsulation: ViewEncapsulation.None, template: "<div class=\"w-full h-full flex overflow-hidden\">\n <div\n class=\"axp-auth-master__form-pane flex-1 min-h-0 lightest-surface dark:darker-surface overflow-y-auto px-6 sm:px-8 md:px-10 lg:px-0\"\n >\n <!-- ----- Stack: logo + form vertically centered; footer pinned below ----- -->\n <div\n class=\"axp-auth-master__stack w-full min-h-full flex flex-col items-center\"\n >\n <div\n class=\"axp-auth-master__main w-full grow flex flex-col items-center justify-center gap-5 pt-6 pb-4 sm:pt-8 lg:pt-0 lg:gap-0\"\n >\n <!-- ----- Platform branding on viewports without the side panel ----- -->\n <div class=\"axp-auth-master__brand lg:hidden shrink-0 w-full flex justify-center\">\n <axp-logo\n logoKey=\"platform\"\n appearance=\"onLight\"\n format=\"full\"\n [size]=\"240\"\n [attr.alt]=\"platformTitle()\"\n class=\"axp-auth-master__logo\"\n ></axp-logo>\n </div>\n <div class=\"axp-auth-master__form-body w-full flex flex-col items-center\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <div class=\"flex justify-between shrink-0 pt-2 pb-1\">\n <div class=\"auth-footer-links\">\n <axp-component-slot name=\"auth-footer-links\"></axp-component-slot>\n </div>\n </div>\n </div>\n </div>\n <div class=\"hidden lg:flex bg-primary-500 flex-1 axp-auth-bk text-white\">\n <div class=\"flex w-full flex-col justify-between px-48 py-20 text-center \">\n <div>\n <axp-logo\n logoKey=\"platform\"\n appearance=\"onDark\"\n format=\"full\"\n [size]=\"280\"\n [attr.alt]=\"platformTitle()\"\n class=\"w-[280px] max-w-full mx-auto\"\n ></axp-logo>\n </div>\n <div>\n <p class=\"font-black text-4xl mb-4\">{{ slogan | translate | async }}</p>\n <p>{{ description | translate | async }}</p>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;.axp-auth-master__form-pane{-webkit-overflow-scrolling:touch;padding-top:max(1.75rem,calc(env(safe-area-inset-top,0px) + 1.25rem));padding-bottom:max(1.5rem,env(safe-area-inset-bottom,0px))}@media(min-width:1024px){.axp-auth-master__form-pane{padding-top:3rem;padding-bottom:3rem}}.axp-auth-master__brand{padding-top:.5rem;margin-bottom:.25rem}.axp-auth-master__logo{width:min(15rem,85vw);max-width:100%}@media(min-width:640px){.axp-auth-master__logo{width:min(16.25rem,90vw)}}.axp-auth-master__form-body>*:not(router-outlet){display:block;width:100%}.auth-footer-links{gap:calc(var(--spacing, .25rem) * 5);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.auth-footer-links a{background-color:transparent;color:var(--ax-comp-ink, var(--ax-comp-bg, var(--color-on-surface)))}.auth-footer-links a.ax-state-selected{color:var(--ax-comp-ink-darker, var(--ax-comp-bg-darker, var(--color-on-surface)))}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@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-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
4618
|
+
}], ctorParameters: () => [] });
|
|
4619
|
+
|
|
4620
|
+
var master_layout = /*#__PURE__*/Object.freeze({
|
|
4621
|
+
__proto__: null,
|
|
4622
|
+
AXPAuthMasterLayoutComponent: AXPAuthMasterLayoutComponent
|
|
4623
|
+
});
|
|
4624
|
+
|
|
4866
4625
|
/**
|
|
4867
4626
|
* Generated bundle index. Do not edit.
|
|
4868
4627
|
*/
|
|
4869
4628
|
|
|
4870
|
-
export {
|
|
4871
|
-
//# sourceMappingURL=acorex-platform-module-auth-client-acorex-platform-module-auth-client-
|
|
4629
|
+
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-BpCPkKC9.mjs.map
|