@acorex/modules 20.8.18 → 20.8.21
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-modules-assessment-management-acorex-modules-assessment-management-W8hHssaa.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-BQxvz9qz.mjs} +23 -23
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-W8hHssaa.mjs.map → acorex-modules-assessment-management-acorex-modules-assessment-management-BQxvz9qz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-C9occE-a.mjs → acorex-modules-assessment-management-answers-viewer-widget-column.component-BHaTemlm.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-C9occE-a.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-column.component-BHaTemlm.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-qTjj8B-L.mjs → acorex-modules-assessment-management-answers-viewer-widget-edit.component-CyCK9uPT.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-qTjj8B-L.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-edit.component-CyCK9uPT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-Dx1v9ySF.mjs → acorex-modules-assessment-management-answers-viewer-widget-view.component-CV4P5gBS.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-Dx1v9ySF.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-view.component-CV4P5gBS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-D7ceKbbc.mjs → acorex-modules-assessment-management-assessment-case.entity-BtAkQq_o.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-D7ceKbbc.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BtAkQq_o.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-Bohm1F0Z.mjs → acorex-modules-assessment-management-assessment-session.entity-BQHipLrW.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-Bohm1F0Z.mjs.map → acorex-modules-assessment-management-assessment-session.entity-BQHipLrW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CaDLclxt.mjs → acorex-modules-assessment-management-fill-assessment-session.command-DebAvDbX.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CaDLclxt.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-DebAvDbX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-a6iOcFCi.mjs → acorex-modules-assessment-management-preview-questionnaire.command-CG4j1NOB.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-a6iOcFCi.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-CG4j1NOB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-bELSO0yJ.mjs → acorex-modules-assessment-management-question-bank-item.entity-DAf7QYtV.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-bELSO0yJ.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-DAf7QYtV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-DSOv1eQv.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-qS6AkdAY.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-DSOv1eQv.mjs.map → acorex-modules-assessment-management-questionnaire-builder-edit.component-qS6AkdAY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-Dzs8wQDL.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-CUGD63Ig.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-Dzs8wQDL.mjs.map → acorex-modules-assessment-management-questionnaire-builder-view.component-CUGD63Ig.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-DHGcsvkT.mjs → acorex-modules-assessment-management-questionnaire-builder.component-BH0LHKoT.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-DHGcsvkT.mjs.map → acorex-modules-assessment-management-questionnaire-builder.component-BH0LHKoT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-B9pP4j23.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-DfWlHRnf.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-B9pP4j23.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-DfWlHRnf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-BwxkdgXr.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-DKTr7U0w.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-BwxkdgXr.mjs.map → acorex-modules-assessment-management-questionnaire-viewer.service-DKTr7U0w.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-B8eP0kxN.mjs → acorex-modules-assessment-management-questionnaire.entity-BYMQ113p.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-B8eP0kxN.mjs.map → acorex-modules-assessment-management-questionnaire.entity-BYMQ113p.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CwR0yKS8.mjs → acorex-modules-assessment-management-view-session-answers.command-MbqZHMxk.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CwR0yKS8.mjs.map → acorex-modules-assessment-management-view-session-answers.command-MbqZHMxk.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-9Tz_Jq63.mjs → acorex-modules-auth-acorex-modules-auth-dgKWK4M-.mjs} +223 -62
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-dgKWK4M-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-BQRMc-PP.mjs → acorex-modules-auth-app-chooser.component-DE7nsDoV.mjs} +3 -4
- package/fesm2022/acorex-modules-auth-app-chooser.component-DE7nsDoV.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-login.module-BnzKJuwI.mjs → acorex-modules-auth-login.module-CfDSXIAI.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-BnzKJuwI.mjs.map → acorex-modules-auth-login.module-CfDSXIAI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-DyBOEl3Z.mjs → acorex-modules-auth-master.layout-Bt2evGBK.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-DyBOEl3Z.mjs.map → acorex-modules-auth-master.layout-Bt2evGBK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-B1qqH43K.mjs → acorex-modules-auth-oauth-callback.component-D-ZI1Zlu.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-B1qqH43K.mjs.map → acorex-modules-auth-oauth-callback.component-D-ZI1Zlu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DGV3LMvW.mjs → acorex-modules-auth-password.component-Bq2AXxsh.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-DGV3LMvW.mjs.map → acorex-modules-auth-password.component-Bq2AXxsh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-KHLtwwR7.mjs → acorex-modules-auth-password.component-QDPyViE8.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-KHLtwwR7.mjs.map → acorex-modules-auth-password.component-QDPyViE8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-CMdYNEdU.mjs → acorex-modules-auth-routes-C_oH3fv-.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-CMdYNEdU.mjs.map → acorex-modules-auth-routes-C_oH3fv-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DFJoSg_2.mjs → acorex-modules-auth-tenant-chooser.component-C-q5FlJt.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DFJoSg_2.mjs.map → acorex-modules-auth-tenant-chooser.component-C-q5FlJt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-CH0SPs-d.mjs → acorex-modules-auth-two-factor.module-Dybj3zGa.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-CH0SPs-d.mjs.map → acorex-modules-auth-two-factor.module-Dybj3zGa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-C7POJT6o.mjs → acorex-modules-auth-user-sessions.component-CjMVASef.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-C7POJT6o.mjs.map → acorex-modules-auth-user-sessions.component-CjMVASef.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +5 -5
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +3 -3
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +3 -3
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +3 -3
- package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +3 -3
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +3 -3
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BmAtaDRT.mjs → acorex-modules-platform-management-acorex-modules-platform-management-C_aLEi3d.mjs} +5 -5
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BmAtaDRT.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-C_aLEi3d.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-DMEgu6_w.mjs → acorex-modules-platform-management-menu-list.component-BC1SOdwQ.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-DMEgu6_w.mjs.map → acorex-modules-platform-management-menu-list.component-BC1SOdwQ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +5 -5
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-C1ehsiff.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-BFGx6GK-.mjs} +7 -7
- package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-C1ehsiff.mjs.map → acorex-modules-reservation-management-acorex-modules-reservation-management-BFGx6GK-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-DrGJ-Adz.mjs → acorex-modules-reservation-management-reservation-class-status.entity-DTOUrTLT.mjs} +2 -2
- package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-DrGJ-Adz.mjs.map → acorex-modules-reservation-management-reservation-class-status.entity-DTOUrTLT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-3ySsMmeQ.mjs → acorex-modules-reservation-management-reservation-resource-type.entity-DmygFSZB.mjs} +2 -2
- package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-3ySsMmeQ.mjs.map → acorex-modules-reservation-management-reservation-resource-type.entity-DmygFSZB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-ilzVQIWd.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-DQab6X62.mjs} +2 -2
- package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-ilzVQIWd.mjs.map → acorex-modules-reservation-management-reservation-status-transition.entity-DQab6X62.mjs.map} +1 -1
- package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BxRF7Sj_.mjs → acorex-modules-settings-management-acorex-modules-settings-management-CQR64tFc.mjs} +8 -8
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-BxRF7Sj_.mjs.map → acorex-modules-settings-management-acorex-modules-settings-management-CQR64tFc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-BF3MqGDk.mjs → acorex-modules-settings-management-permission-definition.provider-Y6HBcIFV.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-BF3MqGDk.mjs.map → acorex-modules-settings-management-permission-definition.provider-Y6HBcIFV.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BMzfjy_0.mjs → acorex-modules-settings-management-setting-page.component-COOQW9ON.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BMzfjy_0.mjs.map → acorex-modules-settings-management-setting-page.component-COOQW9ON.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-CBhAa6rq.mjs → acorex-modules-settings-management-setting-view.component-CeyzDpwa.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-CBhAa6rq.mjs.map → acorex-modules-settings-management-setting-view.component-CeyzDpwa.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-DKXHtLM7.mjs → acorex-modules-task-management-task-board.page-rKmaR1lv.mjs} +2 -2
- package/fesm2022/acorex-modules-task-management-task-board.page-rKmaR1lv.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +4 -4
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +3 -3
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/package.json +28 -28
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-9Tz_Jq63.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-BQRMc-PP.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-DKXHtLM7.mjs.map +0 -1
|
@@ -3,36 +3,40 @@ import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
|
|
|
3
3
|
import * as i1$3 from '@angular/common/http';
|
|
4
4
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { inject, isDevMode, Injectable, InjectionToken, output,
|
|
6
|
+
import { inject, isDevMode, Injectable, InjectionToken, output, viewChild, viewChildren, signal, computed, effect, ChangeDetectionStrategy, Component, input, ViewChild, ViewEncapsulation, NgModule } from '@angular/core';
|
|
7
7
|
import * as i1$2 from '@angular/router';
|
|
8
8
|
import { Router, RouterModule, ROUTES } from '@angular/router';
|
|
9
9
|
import * as i1$5 from '@acorex/platform/common';
|
|
10
|
-
import { AXPHomePageService, AXPDataProvider, AXP_ROOT_CONFIG_TOKEN, AXPSettingsService, AXPCommonModule, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
|
|
10
|
+
import { AXPHomePageService, AXPDataProvider, AXP_ROOT_CONFIG_TOKEN, AXPSettingsService, AXPCommonModule, AXP_NOT_FOUND_ROUTE, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
|
|
11
11
|
import { AXPCommandExecutor, provideCommandSetups } from '@acorex/platform/runtime';
|
|
12
|
-
import * as i1 from '@angular/common';
|
|
12
|
+
import * as i1$1 from '@angular/common';
|
|
13
13
|
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
14
14
|
import * as i1$4 from '@acorex/platform/core';
|
|
15
15
|
import { AXPIconLogoConfig, AXPPlatformScope, AXPComponentSlotModule, provideLazyProvider } from '@acorex/platform/core';
|
|
16
|
-
import * as i1
|
|
16
|
+
import * as i1 from '@acorex/components/button';
|
|
17
17
|
import { AXButtonModule } from '@acorex/components/button';
|
|
18
|
-
import * as i3 from '@acorex/components/decorators';
|
|
18
|
+
import * as i3$1 from '@acorex/components/decorators';
|
|
19
19
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
20
|
-
import * as i2 from '@acorex/components/popover';
|
|
20
|
+
import * as i2$2 from '@acorex/components/popover';
|
|
21
21
|
import { AXPopoverModule } from '@acorex/components/popover';
|
|
22
|
-
import
|
|
23
|
-
import {
|
|
22
|
+
import * as i5 from '@acorex/cdk/list-navigation';
|
|
23
|
+
import { AXListNavigationDirective, AXListNavigationItemDirective, AXListNavigationModule } from '@acorex/cdk/list-navigation';
|
|
24
|
+
import * as i4 from '@acorex/components/search-box';
|
|
25
|
+
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
26
|
+
import * as i3 from '@acorex/components/select-box';
|
|
27
|
+
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
28
|
+
import * as i2 from '@acorex/components/skeleton';
|
|
29
|
+
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
30
|
+
import * as i2$1 from '@acorex/core/translation';
|
|
31
|
+
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
|
24
32
|
import { AXMApplicationService } from '@acorex/modules/application-management';
|
|
33
|
+
import { AXPLogoComponent, AXPUserAvatarComponent } from '@acorex/platform/layout/components';
|
|
34
|
+
import { first, Subject, timer, map, firstValueFrom } from 'rxjs';
|
|
25
35
|
import { AXAvatarModule } from '@acorex/components/avatar';
|
|
26
36
|
import { AXImageModule } from '@acorex/components/image';
|
|
37
|
+
import { AXLoadingModule } from '@acorex/components/loading';
|
|
27
38
|
import { AXPopupService } from '@acorex/components/popup';
|
|
28
39
|
import { AXPlatform } from '@acorex/core/platform';
|
|
29
|
-
import * as i2$2 from '@acorex/core/translation';
|
|
30
|
-
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
|
31
|
-
import * as i3$1 from '@acorex/components/search-box';
|
|
32
|
-
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
33
|
-
import * as i2$1 from '@angular/forms';
|
|
34
|
-
import { FormsModule } from '@angular/forms';
|
|
35
|
-
import { first, Subject, timer, map, firstValueFrom } from 'rxjs';
|
|
36
40
|
import { startWith, switchMap, tap } from 'rxjs/operators';
|
|
37
41
|
import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
|
|
38
42
|
|
|
@@ -132,22 +136,22 @@ const routes = [
|
|
|
132
136
|
},
|
|
133
137
|
{
|
|
134
138
|
path: '',
|
|
135
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
|
136
|
-
loadChildren: () => import('./acorex-modules-auth-login.module-
|
|
139
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-Bt2evGBK.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
|
140
|
+
loadChildren: () => import('./acorex-modules-auth-login.module-CfDSXIAI.mjs').then((c) => c.AXPSignInModule),
|
|
137
141
|
},
|
|
138
142
|
{
|
|
139
143
|
path: '',
|
|
140
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
|
141
|
-
loadChildren: () => import('./acorex-modules-auth-two-factor.module-
|
|
144
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-Bt2evGBK.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
|
145
|
+
loadChildren: () => import('./acorex-modules-auth-two-factor.module-Dybj3zGa.mjs').then((c) => c.AXPTwoFactorModule),
|
|
142
146
|
},
|
|
143
147
|
{
|
|
144
148
|
path: '',
|
|
145
|
-
loadComponent: () => import('./acorex-modules-auth-master.layout-
|
|
146
|
-
loadChildren: () => import('./acorex-modules-auth-routes-
|
|
149
|
+
loadComponent: () => import('./acorex-modules-auth-master.layout-Bt2evGBK.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
|
|
150
|
+
loadChildren: () => import('./acorex-modules-auth-routes-C_oH3fv-.mjs').then((c) => c),
|
|
147
151
|
},
|
|
148
152
|
{
|
|
149
153
|
path: 'axp-oauth-callback',
|
|
150
|
-
loadComponent: () => import('./acorex-modules-auth-oauth-callback.component-
|
|
154
|
+
loadComponent: () => import('./acorex-modules-auth-oauth-callback.component-D-ZI1Zlu.mjs').then((c) => c.AXPOAuthCallbackComponent),
|
|
151
155
|
},
|
|
152
156
|
{
|
|
153
157
|
path: 'account',
|
|
@@ -170,29 +174,94 @@ const routes = [
|
|
|
170
174
|
];
|
|
171
175
|
|
|
172
176
|
class AXPAppChooserListComponent {
|
|
177
|
+
//#endregion
|
|
178
|
+
//#region ---- Constructor ----
|
|
173
179
|
constructor() {
|
|
180
|
+
//#region ---- Services & Dependencies ----
|
|
174
181
|
this.sessionService = inject(AXPSessionService);
|
|
175
182
|
this.homePageService = inject(AXPHomePageService);
|
|
176
183
|
this.authStrategyRegistry = inject(AXPAuthStrategyRegistryService);
|
|
177
184
|
this.applicationService = inject(AXMApplicationService);
|
|
178
185
|
this.strategyName = this.sessionService.getSessionData()?.strategy;
|
|
179
186
|
this.strategy = this.authStrategyRegistry.get(this.strategyName);
|
|
180
|
-
|
|
181
|
-
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region ---- Outputs ----
|
|
182
189
|
this.applicationChosen = output();
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region ---- View References ----
|
|
192
|
+
this.listNav = viewChild(AXListNavigationDirective, ...(ngDevMode ? [{ debugName: "listNav" }] : []));
|
|
193
|
+
this.listItems = viewChildren(AXListNavigationItemDirective, ...(ngDevMode ? [{ debugName: "listItems" }] : []));
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region ---- State ----
|
|
196
|
+
this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
197
|
+
this.allApplications = signal([], ...(ngDevMode ? [{ debugName: "allApplications" }] : []));
|
|
198
|
+
this.useSelectBox = computed(() => this.allApplications().length > 3, ...(ngDevMode ? [{ debugName: "useSelectBox" }] : []));
|
|
199
|
+
this.selectedApplication = signal(null, ...(ngDevMode ? [{ debugName: "selectedApplication" }] : []));
|
|
200
|
+
this.isSelectBoxOpen = signal(false, ...(ngDevMode ? [{ debugName: "isSelectBoxOpen" }] : []));
|
|
201
|
+
this.canApply = computed(() => !!this.selectedApplication(), ...(ngDevMode ? [{ debugName: "canApply" }] : []));
|
|
202
|
+
this.skeletonItems = [1, 2, 3];
|
|
203
|
+
effect(() => {
|
|
204
|
+
if (!this.isLoading() && !this.useSelectBox() && this.allApplications().length > 0) {
|
|
205
|
+
queueMicrotask(() => this.focusFirstListItem());
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region ---- Lifecycle Methods ----
|
|
211
|
+
ngOnInit() {
|
|
212
|
+
this.sessionService.applications$.pipe(first()).subscribe((applications) => {
|
|
213
|
+
this.allApplications.set(applications);
|
|
214
|
+
if (applications.length > 0) {
|
|
215
|
+
this.selectedApplication.set(applications[0]);
|
|
216
|
+
}
|
|
217
|
+
this.isLoading.set(false);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
//#endregion
|
|
221
|
+
//#region ---- UI Handlers ----
|
|
222
|
+
handleApplicationSelect(event) {
|
|
223
|
+
if (!event.isUserInteraction) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
this.selectedApplication.set(event.component.selectedItems[0] ?? null);
|
|
227
|
+
}
|
|
228
|
+
handleListItemKeyDown(event, application) {
|
|
229
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
230
|
+
event.preventDefault();
|
|
231
|
+
void this.chooseApplication(application);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
handleSelectBoxKeyDown(event) {
|
|
235
|
+
if (!(event instanceof KeyboardEvent)) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (event.key !== 'Enter' && event.key !== 'NumpadEnter') {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
if (this.isSelectBoxOpen()) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
event.preventDefault();
|
|
245
|
+
event.stopPropagation();
|
|
246
|
+
if (this.canApply()) {
|
|
247
|
+
this.applySelection();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
applySelection() {
|
|
251
|
+
const application = this.selectedApplication();
|
|
252
|
+
if (application) {
|
|
253
|
+
void this.chooseApplication(application);
|
|
254
|
+
}
|
|
183
255
|
}
|
|
184
256
|
async chooseApplication(item) {
|
|
185
|
-
this.selectedApplication = item;
|
|
186
257
|
const tenantId = this.sessionService.tenant?.id || '';
|
|
187
258
|
if (!tenantId) {
|
|
188
259
|
throw new Error('Tenant ID is missing. Cannot choose application.');
|
|
189
260
|
}
|
|
190
|
-
// Get the full application entity to access its editions
|
|
191
261
|
const fullApplication = await this.applicationService.getOne(item.id);
|
|
192
262
|
if (!fullApplication) {
|
|
193
263
|
throw new Error(`Application not found: ${item.id}`);
|
|
194
264
|
}
|
|
195
|
-
// Determine which edition to use (from item.edition or default to first edition)
|
|
196
265
|
let selectedEdition = item.edition;
|
|
197
266
|
if (!selectedEdition && fullApplication.editions && fullApplication.editions.length > 0) {
|
|
198
267
|
selectedEdition = {
|
|
@@ -201,7 +270,6 @@ class AXPAppChooserListComponent {
|
|
|
201
270
|
description: fullApplication.editions[0].description,
|
|
202
271
|
};
|
|
203
272
|
}
|
|
204
|
-
// Update application with edition information and version from full entity
|
|
205
273
|
const applicationWithEdition = {
|
|
206
274
|
...item,
|
|
207
275
|
version: fullApplication.version || item.version,
|
|
@@ -216,15 +284,34 @@ class AXPAppChooserListComponent {
|
|
|
216
284
|
await this.sessionService.updateToken(updateContext);
|
|
217
285
|
}
|
|
218
286
|
this.applicationChosen.emit();
|
|
219
|
-
|
|
287
|
+
await this.homePageService.navigateTo();
|
|
288
|
+
}
|
|
289
|
+
//#endregion
|
|
290
|
+
//#region ---- Utility Methods ----
|
|
291
|
+
focusFirstListItem() {
|
|
292
|
+
const nav = this.listNav();
|
|
293
|
+
const items = this.listItems();
|
|
294
|
+
if (nav && items.length > 0) {
|
|
295
|
+
nav.navigateTo(items[0]);
|
|
296
|
+
}
|
|
220
297
|
}
|
|
221
298
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", outputs: { applicationChosen: "applicationChosen" }, ngImport: i0, template: "<div class=\"ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n
|
|
299
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", outputs: { applicationChosen: "applicationChosen" }, viewQueries: [{ propertyName: "listNav", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isLoading()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-py-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full ax-shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-flex-1 ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-4\" (keydown.capture)=\"handleSelectBoxKeyDown($event)\">\n <ax-select-box\n class=\"ax-w-full\"\n [dataSource]=\"allApplications()\"\n textField=\"title\"\n valueField=\"id\"\n [itemHeight]=\"56\"\n [value]=\"selectedApplication()\"\n [placeholder]=\"('@auth:application-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"applicationItemTemplate\"\n (onOpened)=\"isSelectBoxOpen.set(true)\"\n (onClosed)=\"isSelectBoxOpen.set(false)\"\n (onValueChanged)=\"handleApplicationSelect($event)\"\n >\n <ax-search-box look=\"fill\"></ax-search-box>\n </ax-select-box>\n <ax-button\n class=\"ax-w-full\"\n color=\"primary\"\n [disabled]=\"!canApply()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n ></ax-button>\n </div>\n} @else {\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\"\n role=\"listbox\"\n >\n @for (application of allApplications(); track application.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"navItem.isActive()\"\n class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-1 ax-px-2 ax-items-start ax-cursor-pointer ax-rounded-md ax-transition-colors ax-outline-none hover:ax-bg-primary-lightest hover:dark:ax-bg-primary-dark\"\n [class.ax-bg-primary-lightest]=\"navItem.isActive()\"\n [class.dark:ax-bg-primary-dark]=\"navItem.isActive()\"\n (click)=\"chooseApplication(application)\"\n (keydown)=\"handleListItemKeyDown($event, application)\"\n >\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\"\n >\n <axp-logo\n [source]=\"application.logo\"\n [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 dark:ax-bg-neutral-800 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-muted ax-text-xs\">{{ application.edition?.title }}</span>\n </div>\n </div>\n }\n </div>\n}\n\n<ng-template #applicationItemTemplate let-item>\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-p-2\">\n <div\n class=\"ax-w-10 ax-h-10 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-shrink-0\"\n >\n <axp-logo\n [source]=\"item.data.logo\"\n [attr.alt]=\"item.data.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-w-8 ax-h-8 ax-bg-neutral-200 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ item.data.title }}</span>\n @if (item.data.edition?.title) {\n <span class=\"ax-text-muted ax-text-xs\">{{ item.data.edition.title }}</span>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i4.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: i5.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged", "onKeypress"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i5.AXListNavigationItemDirective, selector: "[axListNavigationItem]", outputs: ["onKeypress"], exportAs: ["axListNavigationItem"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
223
300
|
}
|
|
224
301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
|
|
225
302
|
type: Component,
|
|
226
|
-
args: [{ selector: 'axp-app-chooser-list',
|
|
227
|
-
|
|
303
|
+
args: [{ selector: 'axp-app-chooser-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
304
|
+
CommonModule,
|
|
305
|
+
AXButtonModule,
|
|
306
|
+
AXDecoratorModule,
|
|
307
|
+
AXSkeletonModule,
|
|
308
|
+
AXSelectBoxModule,
|
|
309
|
+
AXSearchBoxModule,
|
|
310
|
+
AXListNavigationModule,
|
|
311
|
+
AXTranslationModule,
|
|
312
|
+
AXPLogoComponent,
|
|
313
|
+
], template: "@if (isLoading()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-py-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full ax-shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-flex-1 ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-4\" (keydown.capture)=\"handleSelectBoxKeyDown($event)\">\n <ax-select-box\n class=\"ax-w-full\"\n [dataSource]=\"allApplications()\"\n textField=\"title\"\n valueField=\"id\"\n [itemHeight]=\"56\"\n [value]=\"selectedApplication()\"\n [placeholder]=\"('@auth:application-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"applicationItemTemplate\"\n (onOpened)=\"isSelectBoxOpen.set(true)\"\n (onClosed)=\"isSelectBoxOpen.set(false)\"\n (onValueChanged)=\"handleApplicationSelect($event)\"\n >\n <ax-search-box look=\"fill\"></ax-search-box>\n </ax-select-box>\n <ax-button\n class=\"ax-w-full\"\n color=\"primary\"\n [disabled]=\"!canApply()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n ></ax-button>\n </div>\n} @else {\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\"\n role=\"listbox\"\n >\n @for (application of allApplications(); track application.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"navItem.isActive()\"\n class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-1 ax-px-2 ax-items-start ax-cursor-pointer ax-rounded-md ax-transition-colors ax-outline-none hover:ax-bg-primary-lightest hover:dark:ax-bg-primary-dark\"\n [class.ax-bg-primary-lightest]=\"navItem.isActive()\"\n [class.dark:ax-bg-primary-dark]=\"navItem.isActive()\"\n (click)=\"chooseApplication(application)\"\n (keydown)=\"handleListItemKeyDown($event, application)\"\n >\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\"\n >\n <axp-logo\n [source]=\"application.logo\"\n [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 dark:ax-bg-neutral-800 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-muted ax-text-xs\">{{ application.edition?.title }}</span>\n </div>\n </div>\n }\n </div>\n}\n\n<ng-template #applicationItemTemplate let-item>\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-p-2\">\n <div\n class=\"ax-w-10 ax-h-10 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-shrink-0\"\n >\n <axp-logo\n [source]=\"item.data.logo\"\n [attr.alt]=\"item.data.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-w-8 ax-h-8 ax-bg-neutral-200 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ item.data.title }}</span>\n @if (item.data.edition?.title) {\n <span class=\"ax-text-muted ax-text-xs\">{{ item.data.edition.title }}</span>\n }\n </div>\n</ng-template>\n" }]
|
|
314
|
+
}], ctorParameters: () => [], propDecorators: { applicationChosen: [{ type: i0.Output, args: ["applicationChosen"] }], listNav: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXListNavigationDirective), { isSignal: true }] }], listItems: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXListNavigationItemDirective), { isSignal: true }] }] } });
|
|
228
315
|
|
|
229
316
|
class AXMAppChooserSlotComponent {
|
|
230
317
|
constructor() {
|
|
@@ -236,7 +323,7 @@ class AXMAppChooserSlotComponent {
|
|
|
236
323
|
this.appPopover()?.close();
|
|
237
324
|
}
|
|
238
325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
239
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "appPopover", first: true, predicate: ["appPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (((applications$ | async)?.length ?? 0) > 1) {\n <ax-button color=\"primary\" #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=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list (applicationChosen)=\"closePopover()\"></axp-app-chooser-list>\n </div>\n </ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "appPopover", first: true, predicate: ["appPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (((applications$ | async)?.length ?? 0) > 1) {\n <ax-button color=\"primary\" #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=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list (applicationChosen)=\"closePopover()\"></axp-app-chooser-list>\n </div>\n </ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "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$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list", outputs: ["applicationChosen"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
240
327
|
}
|
|
241
328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
|
|
242
329
|
type: Component,
|
|
@@ -244,42 +331,87 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
244
331
|
}], propDecorators: { appPopover: [{ type: i0.ViewChild, args: ['appPopover', { isSignal: true }] }] } });
|
|
245
332
|
|
|
246
333
|
class AXPTenantChooserListComponent {
|
|
334
|
+
//#endregion
|
|
335
|
+
//#region ---- Constructor ----
|
|
247
336
|
constructor() {
|
|
337
|
+
//#region ---- Services & Dependencies ----
|
|
248
338
|
this.sessionService = inject(AXPSessionService);
|
|
249
339
|
this.authStrategyRegistry = inject(AXPAuthStrategyRegistryService);
|
|
250
340
|
this.router = inject(Router);
|
|
251
341
|
this.strategyName = this.sessionService.getSessionData()?.strategy;
|
|
252
342
|
this.strategy = this.authStrategyRegistry.get(this.strategyName);
|
|
253
|
-
|
|
343
|
+
//#endregion
|
|
344
|
+
//#region ---- Inputs & Outputs ----
|
|
254
345
|
this.simple = input(false, ...(ngDevMode ? [{ debugName: "simple" }] : []));
|
|
255
|
-
this.searchValue = '';
|
|
256
|
-
this.showAll = false;
|
|
257
|
-
this.selectedTenant = null;
|
|
258
|
-
this.displayedTenants = [];
|
|
259
|
-
this.tenants$ = this.sessionService.tenants$;
|
|
260
346
|
this.tenantChosen = output();
|
|
347
|
+
//#endregion
|
|
348
|
+
//#region ---- View References ----
|
|
349
|
+
this.listNav = viewChild(AXListNavigationDirective, ...(ngDevMode ? [{ debugName: "listNav" }] : []));
|
|
350
|
+
this.listItems = viewChildren(AXListNavigationItemDirective, ...(ngDevMode ? [{ debugName: "listItems" }] : []));
|
|
351
|
+
//#endregion
|
|
352
|
+
//#region ---- State ----
|
|
353
|
+
this.defaultLogo = new AXPIconLogoConfig('fa-solid fa-building', 'neutral-500');
|
|
354
|
+
this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
355
|
+
this.allTenants = signal([], ...(ngDevMode ? [{ debugName: "allTenants" }] : []));
|
|
356
|
+
this.useSelectBox = computed(() => this.allTenants().length > 3, ...(ngDevMode ? [{ debugName: "useSelectBox" }] : []));
|
|
357
|
+
this.selectedTenant = signal(null, ...(ngDevMode ? [{ debugName: "selectedTenant" }] : []));
|
|
358
|
+
this.isSelectBoxOpen = signal(false, ...(ngDevMode ? [{ debugName: "isSelectBoxOpen" }] : []));
|
|
359
|
+
this.canApply = computed(() => !!this.selectedTenant(), ...(ngDevMode ? [{ debugName: "canApply" }] : []));
|
|
360
|
+
this.skeletonItems = [1, 2, 3];
|
|
361
|
+
effect(() => {
|
|
362
|
+
if (!this.isLoading() && !this.useSelectBox() && this.allTenants().length > 0) {
|
|
363
|
+
queueMicrotask(() => this.focusFirstListItem());
|
|
364
|
+
}
|
|
365
|
+
});
|
|
261
366
|
}
|
|
367
|
+
//#endregion
|
|
368
|
+
//#region ---- Lifecycle Methods ----
|
|
262
369
|
ngOnInit() {
|
|
263
370
|
this.sessionService.tenants$.pipe(first()).subscribe((tenants) => {
|
|
264
|
-
this.
|
|
265
|
-
|
|
371
|
+
this.allTenants.set(tenants);
|
|
372
|
+
if (tenants.length > 0) {
|
|
373
|
+
this.selectedTenant.set(tenants[0]);
|
|
374
|
+
}
|
|
375
|
+
this.isLoading.set(false);
|
|
266
376
|
});
|
|
267
377
|
}
|
|
268
|
-
|
|
269
|
-
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region ---- UI Handlers ----
|
|
380
|
+
handleTenantSelect(event) {
|
|
381
|
+
if (!event.isUserInteraction) {
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
this.selectedTenant.set(event.component.selectedItems[0] ?? null);
|
|
385
|
+
}
|
|
386
|
+
handleListItemKeyDown(event, tenant) {
|
|
387
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
388
|
+
event.preventDefault();
|
|
389
|
+
void this.chooseTenant(tenant);
|
|
390
|
+
}
|
|
270
391
|
}
|
|
271
|
-
|
|
272
|
-
if (event
|
|
273
|
-
|
|
274
|
-
|
|
392
|
+
handleSelectBoxKeyDown(event) {
|
|
393
|
+
if (!(event instanceof KeyboardEvent)) {
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
if (event.key !== 'Enter' && event.key !== 'NumpadEnter') {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
if (this.isSelectBoxOpen()) {
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
event.preventDefault();
|
|
403
|
+
event.stopPropagation();
|
|
404
|
+
if (this.canApply()) {
|
|
405
|
+
this.applySelection();
|
|
275
406
|
}
|
|
276
407
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
408
|
+
applySelection() {
|
|
409
|
+
const tenant = this.selectedTenant();
|
|
410
|
+
if (tenant) {
|
|
411
|
+
void this.chooseTenant(tenant);
|
|
412
|
+
}
|
|
280
413
|
}
|
|
281
414
|
async chooseTenant(item) {
|
|
282
|
-
this.selectedTenant = item;
|
|
283
415
|
if (this.strategy) {
|
|
284
416
|
const updateContext = {
|
|
285
417
|
tenant: item,
|
|
@@ -290,13 +422,32 @@ class AXPTenantChooserListComponent {
|
|
|
290
422
|
this.tenantChosen.emit();
|
|
291
423
|
return this.router.navigate(['/auth/account/app-chooser']);
|
|
292
424
|
}
|
|
425
|
+
//#endregion
|
|
426
|
+
//#region ---- Utility Methods ----
|
|
427
|
+
focusFirstListItem() {
|
|
428
|
+
const nav = this.listNav();
|
|
429
|
+
const items = this.listItems();
|
|
430
|
+
if (nav && items.length > 0) {
|
|
431
|
+
nav.navigateTo(items[0]);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
293
434
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTenantChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
294
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPTenantChooserListComponent, isStandalone: true, selector: "axp-tenant-chooser-list", inputs: { simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tenantChosen: "tenantChosen" }, ngImport: i0, template: "@if (
|
|
435
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPTenantChooserListComponent, isStandalone: true, selector: "axp-tenant-chooser-list", inputs: { simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tenantChosen: "tenantChosen" }, viewQueries: [{ propertyName: "listNav", first: true, predicate: AXListNavigationDirective, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (isLoading()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-py-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full ax-shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-flex-1 ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-4\" (keydown.capture)=\"handleSelectBoxKeyDown($event)\">\n <ax-select-box\n class=\"ax-w-full\"\n [dataSource]=\"allTenants()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedTenant()\"\n [itemHeight]=\"56\"\n [placeholder]=\"('@auth:tenant-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"tenantItemTemplate\"\n (onOpened)=\"isSelectBoxOpen.set(true)\"\n (onClosed)=\"isSelectBoxOpen.set(false)\"\n (onValueChanged)=\"handleTenantSelect($event)\"\n >\n <ax-search-box look=\"fill\"></ax-search-box>\n </ax-select-box>\n <ax-button\n class=\"ax-w-full\"\n color=\"primary\"\n [disabled]=\"!canApply()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n ></ax-button>\n </div>\n} @else {\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\"\n role=\"listbox\"\n >\n @for (tenant of allTenants(); track tenant.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"navItem.isActive()\"\n class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-1 ax-px-2 ax-items-center ax-cursor-pointer ax-rounded-md ax-transition-colors ax-outline-none hover:ax-bg-primary-lightest hover:dark:ax-bg-primary-dark\"\n [class.ax-bg-primary-lightest]=\"navItem.isActive()\"\n [class.dark:ax-bg-primary-dark]=\"navItem.isActive()\"\n [class.ax-items-start]=\"simple()\"\n (click)=\"chooseTenant(tenant)\"\n (keydown)=\"handleListItemKeyDown($event, tenant)\"\n >\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-font-medium\" [class.ax-justify-center]=\"simple()\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\"\n >\n <axp-logo\n [source]=\"tenant.logo ?? defaultLogo\"\n [attr.alt]=\"tenant.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 dark:ax-bg-neutral-800 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ tenant.title }}</span>\n </div>\n </div>\n }\n </div>\n}\n\n<ng-template #tenantItemTemplate let-item>\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-p-2\">\n <div\n class=\"ax-w-10 ax-h-10 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-shrink-0\"\n >\n <axp-logo\n [source]=\"item.data.logo ?? defaultLogo\"\n [attr.alt]=\"item.data.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-w-8 ax-h-8 ax-bg-neutral-200 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-text-start md:ax-text-base ax-text-sm\">{{ item.data.title }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i4.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: i5.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged", "onKeypress"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i5.AXListNavigationItemDirective, selector: "[axListNavigationItem]", outputs: ["onKeypress"], exportAs: ["axListNavigationItem"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
295
436
|
}
|
|
296
437
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTenantChooserListComponent, decorators: [{
|
|
297
438
|
type: Component,
|
|
298
|
-
args: [{ selector: 'axp-tenant-chooser-list',
|
|
299
|
-
|
|
439
|
+
args: [{ selector: 'axp-tenant-chooser-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
440
|
+
CommonModule,
|
|
441
|
+
AXTranslationModule,
|
|
442
|
+
AXButtonModule,
|
|
443
|
+
AXDecoratorModule,
|
|
444
|
+
AXSkeletonModule,
|
|
445
|
+
AXSelectBoxModule,
|
|
446
|
+
AXSearchBoxModule,
|
|
447
|
+
AXListNavigationModule,
|
|
448
|
+
AXPLogoComponent,
|
|
449
|
+
], template: "@if (isLoading()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-3\">\n @for (item of skeletonItems; track item) {\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-py-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full ax-shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-flex-1 ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n }\n </div>\n} @else if (useSelectBox()) {\n <div class=\"ax-w-full ax-flex ax-flex-col ax-gap-4\" (keydown.capture)=\"handleSelectBoxKeyDown($event)\">\n <ax-select-box\n class=\"ax-w-full\"\n [dataSource]=\"allTenants()\"\n textField=\"title\"\n valueField=\"id\"\n [value]=\"selectedTenant()\"\n [itemHeight]=\"56\"\n [placeholder]=\"('@auth:tenant-chooser.select-placeholder' | translate | async) ?? ''\"\n [itemTemplate]=\"tenantItemTemplate\"\n (onOpened)=\"isSelectBoxOpen.set(true)\"\n (onClosed)=\"isSelectBoxOpen.set(false)\"\n (onValueChanged)=\"handleTenantSelect($event)\"\n >\n <ax-search-box look=\"fill\"></ax-search-box>\n </ax-select-box>\n <ax-button\n class=\"ax-w-full\"\n color=\"primary\"\n [disabled]=\"!canApply()\"\n [text]=\"('@general:actions.apply.title' | translate | async) ?? ''\"\n (onClick)=\"applySelection()\"\n ></ax-button>\n </div>\n} @else {\n <div\n axListNavigation\n #listNav=\"axListNavigation\"\n class=\"ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\"\n role=\"listbox\"\n >\n @for (tenant of allTenants(); track tenant.id) {\n <div\n axListNavigationItem\n #navItem=\"axListNavigationItem\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"navItem.isActive()\"\n class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-1 ax-px-2 ax-items-center ax-cursor-pointer ax-rounded-md ax-transition-colors ax-outline-none hover:ax-bg-primary-lightest hover:dark:ax-bg-primary-dark\"\n [class.ax-bg-primary-lightest]=\"navItem.isActive()\"\n [class.dark:ax-bg-primary-dark]=\"navItem.isActive()\"\n [class.ax-items-start]=\"simple()\"\n (click)=\"chooseTenant(tenant)\"\n (keydown)=\"handleListItemKeyDown($event, tenant)\"\n >\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-font-medium\" [class.ax-justify-center]=\"simple()\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\"\n >\n <axp-logo\n [source]=\"tenant.logo ?? defaultLogo\"\n [attr.alt]=\"tenant.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 dark:ax-bg-neutral-800 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ tenant.title }}</span>\n </div>\n </div>\n }\n </div>\n}\n\n<ng-template #tenantItemTemplate let-item>\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-p-2\">\n <div\n class=\"ax-w-10 ax-h-10 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-shrink-0\"\n >\n <axp-logo\n [source]=\"item.data.logo ?? defaultLogo\"\n [attr.alt]=\"item.data.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-w-8 ax-h-8 ax-bg-neutral-200 ax-rounded-full\"\n ></axp-logo>\n </div>\n <span class=\"ax-text-start md:ax-text-base ax-text-sm\">{{ item.data.title }}</span>\n </div>\n</ng-template>\n" }]
|
|
450
|
+
}], ctorParameters: () => [], propDecorators: { simple: [{ type: i0.Input, args: [{ isSignal: true, alias: "simple", required: false }] }], tenantChosen: [{ type: i0.Output, args: ["tenantChosen"] }], listNav: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXListNavigationDirective), { isSignal: true }] }], listItems: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXListNavigationItemDirective), { isSignal: true }] }] } });
|
|
300
451
|
|
|
301
452
|
class AXPTenantChooserDropdownComponent {
|
|
302
453
|
constructor() {
|
|
@@ -309,7 +460,7 @@ class AXPTenantChooserDropdownComponent {
|
|
|
309
460
|
this.tenantPopover()?.close();
|
|
310
461
|
}
|
|
311
462
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
312
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", viewQueries: [{ propertyName: "tenantPopover", first: true, predicate: ["tenantPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (tenants$ | async; as tenants) {\n@if (tenants.length > 1) {\n<ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\" #tenantChooser>\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"tenantChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n #tenantPopover>\n <div class=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-tenant-chooser-list [simple]=\"true\" (tenantChosen)=\"closePopover()\"></axp-tenant-chooser-list>\n </div>\n</ax-popover>\n} @else {\n<ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\"></ax-button>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1
|
|
463
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", viewQueries: [{ propertyName: "tenantPopover", first: true, predicate: ["tenantPopover"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (tenants$ | async; as tenants) {\n@if (tenants.length > 1) {\n<ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\" #tenantChooser>\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"tenantChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n #tenantPopover>\n <div class=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-tenant-chooser-list [simple]=\"true\" (tenantChosen)=\"closePopover()\"></axp-tenant-chooser-list>\n </div>\n</ax-popover>\n} @else {\n<ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\"></ax-button>\n}\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "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$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3$1.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: "component", type: AXPTenantChooserListComponent, selector: "axp-tenant-chooser-list", inputs: ["simple"], outputs: ["tenantChosen"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
313
464
|
}
|
|
314
465
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
|
|
315
466
|
type: Component,
|
|
@@ -344,7 +495,7 @@ class AXMAuthProfileSlotComponent {
|
|
|
344
495
|
this.router.navigate(['/auth/login']);
|
|
345
496
|
}
|
|
346
497
|
async openUserSession() {
|
|
347
|
-
const com = await import('./acorex-modules-auth-user-sessions.component-
|
|
498
|
+
const com = await import('./acorex-modules-auth-user-sessions.component-CjMVASef.mjs').then((c) => c.AXMUserSessionsComponent);
|
|
348
499
|
this.popupService.open(com, {
|
|
349
500
|
size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'sm',
|
|
350
501
|
title: await this.translateService.translateAsync('@auth:profile.sessions.title'),
|
|
@@ -356,9 +507,9 @@ class AXMAuthProfileSlotComponent {
|
|
|
356
507
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
357
508
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if (isAuthenticated$ | async) {\n <div class=\"ax-size-fit\">\n <div #avatar>\n <axp-user-avatar [size]=\"36\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n\n <ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #p>\n <div class=\"ax-bg-lightest ax-border ax-border-lightest ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <axp-user-avatar [size]=\"64\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n <li>\n <a (click)=\"showProfile()\">\n <i class=\"fa-light fa-user\"></i>\n <span>{{ '@auth:profile.edit' | translate | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"p.close()\" [routerLink]=\"['/', appName(), 'settings', 'user']\">\n <i class=\"fa-light fa-gear\"></i>\n <span>{{ '@auth:profile.settings' | translate | async }}</span>\n </a>\n </li>\n <li>\n <a (click)=\"openUserSession()\">\n <i class=\"fa-light fa-mobile\"></i>\n <span>{{ '@auth:profile.sessions' | translate | async }}</span>\n </a>\n </li>\n <li class=\"ax-text-danger-500\">\n <a (click)=\"logOut()\">\n <i class=\"fa-light fa-arrow-right-from-bracket\"></i>\n <span>{{ '@auth:profile.logout' | translate | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </ax-popover>\n </div>\n} @else {\n <ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n </ax-button>\n}\n", styles: [".axp-profile-slot-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.axp-profile-slot-menus ul:last-child{border-width:0px}.axp-profile-slot-menus ul li{display:flex;cursor:pointer;border-radius:.375rem}.axp-profile-slot-menus ul li:last-child{margin-bottom:.5rem}.axp-profile-slot-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}.axp-profile-slot-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}.axp-profile-slot-menus ul li a{display:flex;height:100%;width:100%;align-items:center;padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type:
|
|
358
509
|
//
|
|
359
|
-
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1
|
|
510
|
+
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i2$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "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$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "component", type:
|
|
360
511
|
//
|
|
361
|
-
AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$
|
|
512
|
+
AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
362
513
|
}
|
|
363
514
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMAuthProfileSlotComponent, decorators: [{
|
|
364
515
|
type: Component,
|
|
@@ -444,7 +595,7 @@ class AXMUserProfileCardSlotComponent {
|
|
|
444
595
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMUserProfileCardSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
445
596
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXMUserProfileCardSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<div class=\"ax-p-3 ax-flex ax-items-center ax-gap-1 ax-border-b ax-border-lighter\">\n <div #avatar>\n <axp-user-avatar [size]=\"48\" [userId]=\"(user$ | async)?.id!\"></axp-user-avatar>\n </div>\n <div class=\"ax-flex ax-flex-col\">\n <ax-title class=\"ax-text-sm ax-font-medium ax-px-3\">{{ (user$ | async)?.title }}</ax-title>\n <axp-tenant-chooser-dropdown />\n </div>\n</div>\n}\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
|
446
597
|
//
|
|
447
|
-
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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:
|
|
598
|
+
AXImageModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.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:
|
|
448
599
|
//
|
|
449
600
|
AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
450
601
|
}
|
|
@@ -637,12 +788,12 @@ function routesFacory() {
|
|
|
637
788
|
routes = [
|
|
638
789
|
{
|
|
639
790
|
path: 'tenant-chooser',
|
|
640
|
-
loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-
|
|
791
|
+
loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-C-q5FlJt.mjs').then((c) => c.AXPAuthTenantChooserComponent),
|
|
641
792
|
canActivate: [AXPAuthGuard, canActivateTenantChooser],
|
|
642
793
|
},
|
|
643
794
|
{
|
|
644
795
|
path: 'app-chooser',
|
|
645
|
-
loadComponent: () => import('./acorex-modules-auth-app-chooser.component-
|
|
796
|
+
loadComponent: () => import('./acorex-modules-auth-app-chooser.component-DE7nsDoV.mjs').then((c) => c.AXPAuthAppChooserComponent),
|
|
646
797
|
canActivate: [AXPAuthGuard, canActivateAppChooser],
|
|
647
798
|
},
|
|
648
799
|
];
|
|
@@ -748,6 +899,11 @@ class AXMAuthModule {
|
|
|
748
899
|
command: () => import('./acorex-modules-auth-show-profile-command-13HXhZWr.mjs').then((c) => c.AXPShowProfileCommand),
|
|
749
900
|
},
|
|
750
901
|
]),
|
|
902
|
+
{
|
|
903
|
+
provide: ROUTES,
|
|
904
|
+
multi: true,
|
|
905
|
+
useValue: [{ path: '**', redirectTo: AXP_NOT_FOUND_ROUTE }],
|
|
906
|
+
},
|
|
751
907
|
], imports: [CommonModule,
|
|
752
908
|
AXPCommonModule.forChild({ errorHandlers: [AXMAuthErrorHandler] }),
|
|
753
909
|
RouterModule.forChild(routes),
|
|
@@ -773,6 +929,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
773
929
|
command: () => import('./acorex-modules-auth-show-profile-command-13HXhZWr.mjs').then((c) => c.AXPShowProfileCommand),
|
|
774
930
|
},
|
|
775
931
|
]),
|
|
932
|
+
{
|
|
933
|
+
provide: ROUTES,
|
|
934
|
+
multi: true,
|
|
935
|
+
useValue: [{ path: '**', redirectTo: AXP_NOT_FOUND_ROUTE }],
|
|
936
|
+
},
|
|
776
937
|
],
|
|
777
938
|
}]
|
|
778
939
|
}] });
|
|
@@ -789,4 +950,4 @@ var AXMSessionStatusTypes;
|
|
|
789
950
|
*/
|
|
790
951
|
|
|
791
952
|
export { AXM_AUTH_CONFIG_TOKEN as A, AXM_LOGIN_GUARD_TOKEN as a, AXMAuthenticationTypes as b, AXPTenantChooserListComponent as c, AXPTenantChooserDropdownComponent as d, AXPAppChooserListComponent as e, AXMUserDeviceSessionsService as f, AXMAuthErrorHandler as g, AXMAuthModule as h, AXMDefaultAuthConfigs as i, AXMDeviceSessionsService as j, AXMDeviceSessionsServiceImpl as k, AXMSessionStatusTypes as l, AXPIdleService as m, canActivateLogin as n, configAuthModule as o };
|
|
792
|
-
//# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-
|
|
953
|
+
//# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-dgKWK4M-.mjs.map
|