@acorex/modules 18.0.0 → 18.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +7 -7
  2. package/auth/README.md +3 -3
  3. package/auth/lib/account/account.module.d.ts +1 -1
  4. package/backend/lib/auth/oidc/application.loader.d.ts +2 -2
  5. package/backend/lib/auth/oidc/oidc.strategy.d.ts +2 -3
  6. package/backend/lib/auth/oidc/tenant.loader.d.ts +2 -2
  7. package/backend/lib/data/api/data-provider.d.ts +1 -2
  8. package/backend/lib/data/local/data-Conditioner.d.ts +1 -1
  9. package/backend/lib/data/local/local-data-provider.d.ts +1 -1
  10. package/esm2022/auth/index.mjs +1 -1
  11. package/esm2022/auth/lib/account/account.module.mjs +3 -3
  12. package/esm2022/auth/lib/account/app-chooser/app-chooser-list.component.mjs +4 -4
  13. package/esm2022/auth/lib/account/app-chooser/app-chooser-slot.component.mjs +4 -4
  14. package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +4 -5
  15. package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +6 -5
  16. package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.mjs +3 -3
  17. package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +4 -5
  18. package/esm2022/auth/lib/auth.config.mjs +1 -1
  19. package/esm2022/auth/lib/auth.module.mjs +1 -1
  20. package/esm2022/auth/lib/auth.routes.mjs +1 -1
  21. package/esm2022/auth/lib/error-handler.mjs +2 -2
  22. package/esm2022/auth/lib/forgot/password/password.component.mjs +3 -3
  23. package/esm2022/auth/lib/forgot/routes.mjs +1 -1
  24. package/esm2022/auth/lib/login/login.module.mjs +1 -1
  25. package/esm2022/auth/lib/login/password/password.component.mjs +3 -3
  26. package/esm2022/auth/lib/shared/layouts/blank/blank.layout.mjs +1 -1
  27. package/esm2022/auth/lib/shared/layouts/master/master.layout.mjs +5 -7
  28. package/esm2022/auth/lib/shared/services/idle.service.mjs +1 -1
  29. package/esm2022/auth/lib/shared/services/index.mjs +1 -1
  30. package/esm2022/auth/lib/store/auth.effects.mjs +1 -1
  31. package/esm2022/auth/lib/store/index.mjs +1 -1
  32. package/esm2022/auth/lib/two-factor/two-factor-code/two-factor-code.component.mjs +3 -3
  33. package/esm2022/auth/lib/two-factor/two-factor.module.mjs +1 -1
  34. package/esm2022/backend/index.mjs +1 -1
  35. package/esm2022/backend/lib/auth/oidc/application.loader.mjs +17 -12
  36. package/esm2022/backend/lib/auth/oidc/configuration.service.mjs +2 -3
  37. package/esm2022/backend/lib/auth/oidc/feature.loader.mjs +1 -1
  38. package/esm2022/backend/lib/auth/oidc/index.mjs +1 -1
  39. package/esm2022/backend/lib/auth/oidc/oidc.strategy.mjs +2 -4
  40. package/esm2022/backend/lib/auth/oidc/permission.loader.mjs +3 -3
  41. package/esm2022/backend/lib/auth/oidc/signincallback.component.mjs +1 -1
  42. package/esm2022/backend/lib/auth/oidc/tenant.loader.mjs +4 -13
  43. package/esm2022/backend/lib/auth/oidc/usermanager.service.mjs +1 -1
  44. package/esm2022/backend/lib/backend.configs.mjs +1 -1
  45. package/esm2022/backend/lib/backend.module.mjs +1 -1
  46. package/esm2022/backend/lib/data/api/data-provider.mjs +54 -15
  47. package/esm2022/backend/lib/data/index.mjs +1 -1
  48. package/esm2022/backend/lib/data/local/data-Conditioner.mjs +25 -19
  49. package/esm2022/backend/lib/data/local/local-data-provider.mjs +1 -1
  50. package/esm2022/log-management/lib/audit-logs.entity.mjs +2 -3
  51. package/esm2022/notification/index.mjs +1 -1
  52. package/esm2022/notification/lib/notification.module.mjs +1 -1
  53. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs → acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs} +23 -25
  54. package/fesm2022/acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs.map +1 -0
  55. package/fesm2022/acorex-modules-auth-app-chooser.component-Bw4IumjA.mjs +70 -0
  56. package/fesm2022/acorex-modules-auth-app-chooser.component-Bw4IumjA.mjs.map +1 -0
  57. package/fesm2022/acorex-modules-auth-blank.layout-BOdRxDNv.mjs.map +1 -1
  58. package/fesm2022/{acorex-modules-auth-login.module-Drm4fC1I.mjs → acorex-modules-auth-login.module-CsfZ__0S.mjs} +5 -7
  59. package/fesm2022/acorex-modules-auth-login.module-CsfZ__0S.mjs.map +1 -0
  60. package/fesm2022/acorex-modules-auth-master.layout-7OSbK7SF.mjs +37 -0
  61. package/fesm2022/acorex-modules-auth-master.layout-7OSbK7SF.mjs.map +1 -0
  62. package/fesm2022/acorex-modules-auth-password.component-V2IWBUZb.mjs +125 -0
  63. package/fesm2022/acorex-modules-auth-password.component-V2IWBUZb.mjs.map +1 -0
  64. package/fesm2022/acorex-modules-auth-password.component-qr9vkp8j.mjs +72 -0
  65. package/fesm2022/acorex-modules-auth-password.component-qr9vkp8j.mjs.map +1 -0
  66. package/fesm2022/{acorex-modules-auth-routes-DyjibH6l.mjs → acorex-modules-auth-routes--jOmlQkp.mjs} +2 -2
  67. package/fesm2022/acorex-modules-auth-routes--jOmlQkp.mjs.map +1 -0
  68. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CjEiwASS.mjs +83 -0
  69. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CjEiwASS.mjs.map +1 -0
  70. package/fesm2022/acorex-modules-auth-two-factor-code.component-C0JWM0rO.mjs +40 -0
  71. package/fesm2022/acorex-modules-auth-two-factor-code.component-C0JWM0rO.mjs.map +1 -0
  72. package/fesm2022/{acorex-modules-auth-two-factor.module-A0hevYO2.mjs → acorex-modules-auth-two-factor.module-CmSVriRz.mjs} +4 -6
  73. package/fesm2022/acorex-modules-auth-two-factor.module-CmSVriRz.mjs.map +1 -0
  74. package/fesm2022/acorex-modules-auth.mjs +2 -4
  75. package/fesm2022/acorex-modules-auth.mjs.map +1 -1
  76. package/fesm2022/acorex-modules-backend.mjs +98 -61
  77. package/fesm2022/acorex-modules-backend.mjs.map +1 -1
  78. package/fesm2022/acorex-modules-log-management.mjs +1 -2
  79. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  80. package/fesm2022/acorex-modules-notification.mjs.map +1 -1
  81. package/log-management/lib/audit-logs.entity.d.ts +1 -1
  82. package/notification/README.md +3 -3
  83. package/package.json +1 -1
  84. package/fesm2022/acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs.map +0 -1
  85. package/fesm2022/acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs +0 -72
  86. package/fesm2022/acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs.map +0 -1
  87. package/fesm2022/acorex-modules-auth-login.module-Drm4fC1I.mjs.map +0 -1
  88. package/fesm2022/acorex-modules-auth-master.layout-cAm6TYeA.mjs +0 -39
  89. package/fesm2022/acorex-modules-auth-master.layout-cAm6TYeA.mjs.map +0 -1
  90. package/fesm2022/acorex-modules-auth-password.component-Ch2Wqi2W.mjs +0 -74
  91. package/fesm2022/acorex-modules-auth-password.component-Ch2Wqi2W.mjs.map +0 -1
  92. package/fesm2022/acorex-modules-auth-password.component-D4CkGaq0.mjs +0 -127
  93. package/fesm2022/acorex-modules-auth-password.component-D4CkGaq0.mjs.map +0 -1
  94. package/fesm2022/acorex-modules-auth-routes-DyjibH6l.mjs.map +0 -1
  95. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs +0 -84
  96. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs.map +0 -1
  97. package/fesm2022/acorex-modules-auth-two-factor-code.component-B41iXHoT.mjs +0 -40
  98. package/fesm2022/acorex-modules-auth-two-factor-code.component-B41iXHoT.mjs.map +0 -1
  99. package/fesm2022/acorex-modules-auth-two-factor.module-A0hevYO2.mjs.map +0 -1
@@ -1,12 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, NgZone, isDevMode, Injectable, InjectionToken, Component, ViewChild, NgModule } from '@angular/core';
3
+ import * as i1$2 from '@acorex/platform/common';
4
+ import { AXPLayoutService, AXPSignOutAction, AXPSignInAction, AXPLogoComponent, AXPDataProvider, AXPComponentSlotModule, AXPCommonModule } from '@acorex/platform/common';
3
5
  import * as i2 from '@angular/router';
4
6
  import { Router, RouterModule, ROUTES } from '@angular/router';
5
7
  import { AXPUnauthorizedError, AXPUnauthenticatedError, AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
6
8
  import { HttpErrorResponse, HttpClientModule } from '@angular/common/http';
7
- import { AXPLayoutService, AXPLogoComponent } from '@acorex/platform/layouts';
8
- import * as i1$3 from '@acorex/platform/common';
9
- import { AXPSignOutAction, AXPSignInAction, AXPDataProvider, AXPCommonModule } from '@acorex/platform/common';
10
9
  import * as i1$1 from '@angular/common';
11
10
  import { CommonModule } from '@angular/common';
12
11
  import * as i1 from '@ngrx/effects';
@@ -27,8 +26,6 @@ import { AXAvatarModule } from '@acorex/components/avatar';
27
26
  import * as i2$3 from '@acorex/components/image';
28
27
  import { AXImageModule } from '@acorex/components/image';
29
28
  import { MockDataService } from '@acorex/platform/mocks';
30
- import * as i1$2 from '@acorex/platform/layout';
31
- import { AXPComponentSlotModule } from '@acorex/platform/layout';
32
29
 
33
30
  class AXMAuthErrorHandler {
34
31
  constructor() {
@@ -105,18 +102,18 @@ const routes = [
105
102
  },
106
103
  {
107
104
  path: '',
108
- loadComponent: () => import('./acorex-modules-auth-master.layout-cAm6TYeA.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
109
- loadChildren: () => import('./acorex-modules-auth-login.module-Drm4fC1I.mjs').then((c) => c.AXPSignInModule),
105
+ loadComponent: () => import('./acorex-modules-auth-master.layout-7OSbK7SF.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
106
+ loadChildren: () => import('./acorex-modules-auth-login.module-CsfZ__0S.mjs').then((c) => c.AXPSignInModule),
110
107
  },
111
108
  {
112
109
  path: '',
113
- loadComponent: () => import('./acorex-modules-auth-master.layout-cAm6TYeA.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
114
- loadChildren: () => import('./acorex-modules-auth-two-factor.module-A0hevYO2.mjs').then((c) => c.AXPTwoFactorModule),
110
+ loadComponent: () => import('./acorex-modules-auth-master.layout-7OSbK7SF.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
111
+ loadChildren: () => import('./acorex-modules-auth-two-factor.module-CmSVriRz.mjs').then((c) => c.AXPTwoFactorModule),
115
112
  },
116
113
  {
117
114
  path: '',
118
- loadComponent: () => import('./acorex-modules-auth-master.layout-cAm6TYeA.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
119
- loadChildren: () => import('./acorex-modules-auth-routes-DyjibH6l.mjs').then((c) => c),
115
+ loadComponent: () => import('./acorex-modules-auth-master.layout-7OSbK7SF.mjs').then((c) => c.AXPAuthMasterLayoutComponent),
116
+ loadChildren: () => import('./acorex-modules-auth-routes--jOmlQkp.mjs').then((c) => c),
120
117
  },
121
118
  {
122
119
  path: 'account',
@@ -263,11 +260,11 @@ class AXPAppChooserListComponent {
263
260
  this.router.navigate([`/${item.name}/home`]);
264
261
  }
265
262
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAppChooserListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
266
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", ngImport: i0, template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }] }); }
263
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPAppChooserListComponent, isStandalone: true, selector: "axp-app-chooser-list", ngImport: i0, template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\r\n @for(application of (applications$ | async); track $index){\r\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\r\n (click)=\"chooseApplication(application)\">\r\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\r\n <div\r\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\">\r\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\r\n <!-- TODO: logo instead of application icon -->\r\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\r\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\r\n </div>\r\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\r\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\r\n @if(application.name===selectedApplication?.name){\r\n <ax-loading></ax-loading>\r\n }@else {\r\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }] }); }
267
264
  }
268
265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAppChooserListComponent, decorators: [{
269
266
  type: Component,
270
- args: [{ selector: 'axp-app-chooser-list', standalone: true, imports: [CommonModule, AXDecoratorModule, AXPLogoComponent, AXLoadingModule], template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>" }]
267
+ args: [{ selector: 'axp-app-chooser-list', standalone: true, imports: [CommonModule, AXDecoratorModule, AXPLogoComponent, AXLoadingModule], template: "<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\r\n @for(application of (applications$ | async); track $index){\r\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\r\n (click)=\"chooseApplication(application)\">\r\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\r\n <div\r\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\">\r\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\r\n <!-- TODO: logo instead of application icon -->\r\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\r\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\r\n </div>\r\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\r\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\r\n @if(application.name===selectedApplication?.name){\r\n <ax-loading></ax-loading>\r\n }@else {\r\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>" }]
271
268
  }] });
272
269
 
273
270
  class AXMAppChooserSlotComponent {
@@ -283,7 +280,7 @@ class AXMAppChooserSlotComponent {
283
280
  this.router.navigate([`/${item.name}/home`]);
284
281
  }
285
282
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAppChooserSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
286
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if(((applications$ | async)?.length ?? 0) > 1)\n{\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list" }] }); }
283
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXMAppChooserSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if(((applications$ | async)?.length ?? 0) > 1)\r\n{\r\n<ax-button color=\"default\" look=\"blank\" #appChooser>\r\n <ax-icon>\r\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\r\n </ax-icon>\r\n</ax-button>\r\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\r\n <div class=\"ax-bg-surface ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\r\n <axp-app-chooser-list></axp-app-chooser-list>\r\n </div>\r\n</ax-popover>\r\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list" }] }); }
287
284
  }
288
285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAppChooserSlotComponent, decorators: [{
289
286
  type: Component,
@@ -294,7 +291,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
294
291
  AXDecoratorModule,
295
292
  AXPLogoComponent,
296
293
  AXPAppChooserListComponent
297
- ], template: "@if(((applications$ | async)?.length ?? 0) > 1)\n{\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}" }]
294
+ ], template: "@if(((applications$ | async)?.length ?? 0) > 1)\r\n{\r\n<ax-button color=\"default\" look=\"blank\" #appChooser>\r\n <ax-icon>\r\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\r\n </ax-icon>\r\n</ax-button>\r\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\r\n <div class=\"ax-bg-surface ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\r\n <axp-app-chooser-list></axp-app-chooser-list>\r\n </div>\r\n</ax-popover>\r\n}" }]
298
295
  }] });
299
296
 
300
297
  class AXPTenantChooserDropdownComponent {
@@ -308,11 +305,11 @@ class AXPTenantChooserDropdownComponent {
308
305
  this.router.navigate(['/auth/account/tenant-chooser']);
309
306
  }
310
307
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPTenantChooserDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
311
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", ngImport: i0, template: "<ng-container *ngIf=\"tenants$ | async as tenants\">\n @if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n }\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
308
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPTenantChooserDropdownComponent, isStandalone: true, selector: "axp-tenant-chooser-dropdown", ngImport: i0, template: "<ng-container *ngIf=\"tenants$ | async as tenants\">\r\n @if(tenants.length>1){\r\n <div (click)=\"tenantChooser()\"\r\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\r\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\r\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\r\n {{ tenant?.title }}\r\n </p>\r\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\r\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\r\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\r\n {{ tenant?.title }}\r\n </p>\r\n </div>\r\n }\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
312
309
  }
313
310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPTenantChooserDropdownComponent, decorators: [{
314
311
  type: Component,
315
- args: [{ selector: 'axp-tenant-chooser-dropdown', standalone: true, imports: [CommonModule, AXDecoratorModule], template: "<ng-container *ngIf=\"tenants$ | async as tenants\">\n @if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n }\n</ng-container>" }]
312
+ args: [{ selector: 'axp-tenant-chooser-dropdown', standalone: true, imports: [CommonModule, AXDecoratorModule], template: "<ng-container *ngIf=\"tenants$ | async as tenants\">\r\n @if(tenants.length>1){\r\n <div (click)=\"tenantChooser()\"\r\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\r\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\r\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\r\n {{ tenant?.title }}\r\n </p>\r\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\r\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\r\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\r\n {{ tenant?.title }}\r\n </p>\r\n </div>\r\n }\r\n</ng-container>" }]
316
313
  }] });
317
314
 
318
315
  class AXMAuthProfileSlotComponent {
@@ -327,7 +324,8 @@ class AXMAuthProfileSlotComponent {
327
324
  this.loadImage();
328
325
  }
329
326
  editProfile() {
330
- this.router.navigate(['/asc/identity/e/user-info/0/view']);
327
+ // this.router.navigate(['/asc/identity/e/user-info/0/view']);
328
+ this.router.navigate(['/asc/oidc/e/user-info/0/view']);
331
329
  }
332
330
  async logOut() {
333
331
  await this.sessionService.signout();
@@ -341,7 +339,7 @@ class AXMAuthProfileSlotComponent {
341
339
  async loadImage() {
342
340
  try {
343
341
  const url = this.sessionService.user?.avatar;
344
- if (url?.toLowerCase().startsWith("http")) {
342
+ if (url?.toLowerCase().startsWith('http')) {
345
343
  this.src = url;
346
344
  }
347
345
  else if (this.sessionService.user?.avatar != 'null' && this.dataService) {
@@ -358,7 +356,7 @@ class AXMAuthProfileSlotComponent {
358
356
  }
359
357
  }
360
358
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthProfileSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
361
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\n <ax-image [src]=\"src\"></ax-image>\n</ax-avatar>\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <ax-avatar [size]=\"60\">\n <ax-image [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n </ax-avatar>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"profile-menus ax-text-slate-500\">\n <!-- <ul>\n <li>\n <i class=\"fa-solid fa-folder-open\"></i>\n <span> Project Management </span>\n </li>\n <li>\n <i class=\"fa-solid fa-envelope-open-text\"></i>\n <span>Email Config</span>\n </li>\n <li>\n <i class=\"fa-solid fa-gear\"></i>\n <span>Setting</span>\n </li>\n </ul> -->\n <ul>\n <!-- <li>\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\n <span> Upgrade account </span>\n </li> -->\n <li (click)=\"editProfile()\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Edit profile</span>\n </li>\n </ul>\n <ul>\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\n <span>Logout</span>\n </li>\n </ul>\n </div>\n </div>\n</ax-popover>\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2$3.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i3$2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }] }); }
359
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXMAuthProfileSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "profilePopover", first: true, predicate: ["profilePopover"], descendants: true }], ngImport: i0, template: "@if((isAuthenticated$ | async)) {\r\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\r\n <ax-image [src]=\"src\"></ax-image>\r\n</ax-avatar>\r\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\r\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\r\n <ax-avatar [size]=\"60\">\r\n <ax-image [src]=\"src\">\r\n <ax-loading></ax-loading>\r\n </ax-image>\r\n </ax-avatar>\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\r\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\r\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"profile-menus ax-text-slate-500\">\r\n <!-- <ul>\r\n <li>\r\n <i class=\"fa-solid fa-folder-open\"></i>\r\n <span> Project Management </span>\r\n </li>\r\n <li>\r\n <i class=\"fa-solid fa-envelope-open-text\"></i>\r\n <span>Email Config</span>\r\n </li>\r\n <li>\r\n <i class=\"fa-solid fa-gear\"></i>\r\n <span>Setting</span>\r\n </li>\r\n </ul> -->\r\n <ul>\r\n <!-- <li>\r\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\r\n <span> Upgrade account </span>\r\n </li> -->\r\n <li (click)=\"editProfile()\">\r\n <i class=\"fa-solid fa-user\"></i>\r\n <span>Edit profile</span>\r\n </li>\r\n </ul>\r\n <ul>\r\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\r\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\r\n <span>Logout</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</ax-popover>\r\n} @else {\r\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\r\n <ax-icon>\r\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\r\n </ax-icon>\r\n</ax-button>\r\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2$3.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i3$2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }] }); }
362
360
  }
363
361
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthProfileSlotComponent, decorators: [{
364
362
  type: Component,
@@ -371,7 +369,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
371
369
  AXDecoratorModule,
372
370
  AXPTenantChooserDropdownComponent,
373
371
  AXLoadingModule,
374
- ], template: "@if((isAuthenticated$ | async)) {\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\n <ax-image [src]=\"src\"></ax-image>\n</ax-avatar>\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <ax-avatar [size]=\"60\">\n <ax-image [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n </ax-avatar>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"profile-menus ax-text-slate-500\">\n <!-- <ul>\n <li>\n <i class=\"fa-solid fa-folder-open\"></i>\n <span> Project Management </span>\n </li>\n <li>\n <i class=\"fa-solid fa-envelope-open-text\"></i>\n <span>Email Config</span>\n </li>\n <li>\n <i class=\"fa-solid fa-gear\"></i>\n <span>Setting</span>\n </li>\n </ul> -->\n <ul>\n <!-- <li>\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\n <span> Upgrade account </span>\n </li> -->\n <li (click)=\"editProfile()\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Edit profile</span>\n </li>\n </ul>\n <ul>\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\n <span>Logout</span>\n </li>\n </ul>\n </div>\n </div>\n</ax-popover>\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}" }]
372
+ ], template: "@if((isAuthenticated$ | async)) {\r\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\r\n <ax-image [src]=\"src\"></ax-image>\r\n</ax-avatar>\r\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\r\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\r\n <ax-avatar [size]=\"60\">\r\n <ax-image [src]=\"src\">\r\n <ax-loading></ax-loading>\r\n </ax-image>\r\n </ax-avatar>\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\r\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\r\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"profile-menus ax-text-slate-500\">\r\n <!-- <ul>\r\n <li>\r\n <i class=\"fa-solid fa-folder-open\"></i>\r\n <span> Project Management </span>\r\n </li>\r\n <li>\r\n <i class=\"fa-solid fa-envelope-open-text\"></i>\r\n <span>Email Config</span>\r\n </li>\r\n <li>\r\n <i class=\"fa-solid fa-gear\"></i>\r\n <span>Setting</span>\r\n </li>\r\n </ul> -->\r\n <ul>\r\n <!-- <li>\r\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\r\n <span> Upgrade account </span>\r\n </li> -->\r\n <li (click)=\"editProfile()\">\r\n <i class=\"fa-solid fa-user\"></i>\r\n <span>Edit profile</span>\r\n </li>\r\n </ul>\r\n <ul>\r\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\r\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\r\n <span>Logout</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</ax-popover>\r\n} @else {\r\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\r\n <ax-icon>\r\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\r\n </ax-icon>\r\n</ax-button>\r\n}" }]
375
373
  }], ctorParameters: () => [], propDecorators: { profilePopover: [{
376
374
  type: ViewChild,
377
375
  args: ['profilePopover']
@@ -408,12 +406,12 @@ function routesFacory() {
408
406
  routes = [
409
407
  {
410
408
  path: 'tenant-chooser',
411
- loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs').then((c) => c.AXPAuthTenantChooserComponent),
409
+ loadComponent: () => import('./acorex-modules-auth-tenant-chooser.component-CjEiwASS.mjs').then((c) => c.AXPAuthTenantChooserComponent),
412
410
  canActivate: [AXPAuthGuard, canActivateTenantChooser]
413
411
  },
414
412
  {
415
413
  path: 'app-chooser',
416
- loadComponent: () => import('./acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs').then((c) => c.AXPAuthAppChooserComponent),
414
+ loadComponent: () => import('./acorex-modules-auth-app-chooser.component-Bw4IumjA.mjs').then((c) => c.AXPAuthAppChooserComponent),
417
415
  canActivate: [AXPAuthGuard, canActivateAppChooser]
418
416
  },
419
417
  ];
@@ -487,7 +485,7 @@ class AXMAuthModule {
487
485
  };
488
486
  }
489
487
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
490
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, imports: [CommonModule, i1$3.AXPCommonModule, HttpClientModule, i2.RouterModule, i1.EffectsFeatureModule, AXPAccountModule] }); }
488
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, imports: [CommonModule, i1$2.AXPCommonModule, HttpClientModule, i2.RouterModule, i1.EffectsFeatureModule, AXPAccountModule] }); }
491
489
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMAuthModule, providers: [AXMAuthErrorHandler], imports: [CommonModule,
492
490
  AXPCommonModule.forChild({ errorHandlers: [AXMAuthErrorHandler] }),
493
491
  HttpClientModule,
@@ -515,4 +513,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
515
513
  */
516
514
 
517
515
  export { AXM_AUTH_CONFIG_TOKEN as A, AXMAuthenticationTypes as a, AXPTenantChooserDropdownComponent as b, AXPAppChooserListComponent as c, AXMAuthErrorHandler as d, AXMDefaultAuthConfigs as e, configAuthModule as f, AXMAuthModule as g, AXPIdleService as h };
518
- //# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs.map
516
+ //# sourceMappingURL=acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs","sources":["../../../../libs/modules/auth/src/lib/error-handler.ts","../../../../libs/modules/auth/src/lib/auth.config.ts","../../../../libs/modules/auth/src/lib/auth.routes.ts","../../../../libs/modules/auth/src/lib/shared/services/idle.service.ts","../../../../libs/modules/auth/src/lib/store/auth.effects.ts","../../../../libs/modules/auth/src/lib/store/index.ts","../../../../libs/modules/auth/src/lib/account/app-chooser/app-chooser-list.component.ts","../../../../libs/modules/auth/src/lib/account/app-chooser/app-chooser-list.component.html","../../../../libs/modules/auth/src/lib/account/app-chooser/app-chooser-slot.component.ts","../../../../libs/modules/auth/src/lib/account/app-chooser/app-chooser-slot.component.html","../../../../libs/modules/auth/src/lib/account/tenant-chooser/tenant-chooser-dropdown.component.ts","../../../../libs/modules/auth/src/lib/account/tenant-chooser/tenant-chooser-dropdown.component.html","../../../../libs/modules/auth/src/lib/account/profile/profile-slot.component.ts","../../../../libs/modules/auth/src/lib/account/profile/profile-slot.component.html","../../../../libs/modules/auth/src/lib/account/account.module.ts","../../../../libs/modules/auth/src/lib/auth.module.ts","../../../../libs/modules/auth/src/acorex-modules-auth.ts"],"sourcesContent":["import { Injectable, NgZone, inject, isDevMode } from \"@angular/core\";\r\nimport { AXPErrorHandler, AXPLayoutService } from \"@acorex/platform/common\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AXPUnauthenticatedError, AXPUnauthorizedError } from \"@acorex/platform/auth\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\n@Injectable()\r\nexport class AXMAuthErrorHandler implements AXPErrorHandler {\r\n\r\n\r\n private router = inject(Router);\r\n private layoutService = inject(AXPLayoutService);\r\n private zone = inject(NgZone);\r\n\r\n\r\n\r\n handleError(error: Error, next: (error: any) => void): void {\r\n if (error instanceof HttpErrorResponse) {\r\n if (error.status == 401) {\r\n this.router.navigate(['/auth/login']);\r\n }\r\n else if (error.status == 404) {\r\n this.router.navigate(['/404']);\r\n }\r\n }\r\n else if (error instanceof AXPUnauthorizedError) {\r\n const redirectUrl = error.data?.redirectUrl;\r\n console.error(error.message);\r\n this.router.navigate(['/401'], { queryParams: redirectUrl ? { redirectUrl: redirectUrl } : null });\r\n }\r\n else if (error instanceof AXPUnauthenticatedError) {\r\n console.error(error.message);\r\n const redirectUrl = error.data?.redirectUrl;\r\n this.router.navigate(['/auth/login'], { queryParams: redirectUrl ? { redirectUrl: redirectUrl } : null });\r\n } else {\r\n if (isDevMode()) {\r\n next(error); // Pass the error to the next handler\r\n }\r\n else {\r\n next(error); // maybe we need a error page\r\n }\r\n }\r\n this.layoutService.setNavigationLoading(false);\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { UserManagerSettings } from 'oidc-client-ts';\r\n\r\nexport enum AXMAuthenticationTypes {\r\n UsernamePassword,\r\n UsernameEmailPassword,\r\n EmailPassword,\r\n MobilePassword,\r\n EmailCode,\r\n MobileCode,\r\n}\r\n\r\nexport const AXM_AUTH_CONFIG_TOKEN = new InjectionToken<AXMAuthConfigs>('app-module-auth-config', {\r\n providedIn: 'root',\r\n factory: () => {\r\n return AXMDefaultAuthConfigs;\r\n },\r\n});\r\n\r\nexport interface AXMAuthConfigs {\r\n type: AXMAuthenticationTypes;\r\n oidc_settings?: UserManagerSettings;\r\n end_url?: string;\r\n signinPage?: {\r\n description: string;\r\n slogan: string;\r\n };\r\n idleTimeout?: number;\r\n}\r\n\r\nexport const AXMDefaultAuthConfigs: AXMAuthConfigs = {\r\n type: AXMAuthenticationTypes.UsernamePassword,\r\n};\r\n\r\nexport function configAuthModule(config: Partial<AXMAuthConfigs> = AXMDefaultAuthConfigs): AXMAuthConfigs {\r\n return { ...AXMDefaultAuthConfigs, ...config };\r\n}\r\n","import { Route } from '@angular/router';\r\nexport const routes: Route[] = [\r\n {\r\n path: 'auth',\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'login',\r\n },\r\n {\r\n path: '',\r\n loadComponent: () => import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\r\n loadChildren: () => import('./login/login.module').then((c) => c.AXPSignInModule),\r\n },\r\n {\r\n path: '',\r\n loadComponent: () => import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\r\n loadChildren: () => import('./two-factor/two-factor.module').then((c) => c.AXPTwoFactorModule),\r\n },\r\n {\r\n path: '',\r\n loadComponent: () => import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\r\n loadChildren: () => import('./forgot/routes').then((c) => c),\r\n },\r\n {\r\n path: 'account',\r\n loadComponent: () => import('./shared/layouts/blank/blank.layout').then((c) => c.AXPAuthBlankLayoutComponent),\r\n loadChildren: () => import('./account/account.module').then((c) => c.AXPAccountModule),\r\n },\r\n // {\r\n // path: '',\r\n // loadComponent: () =>\r\n // import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\r\n // loadChildren: () => import('./register/register.module').then((c) => c.AXPRegisterModule),\r\n // },\r\n ],\r\n },\r\n];\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Subject, Observable, timer, Subscription } from 'rxjs';\r\nimport { startWith, switchMap, tap } from 'rxjs/operators';\r\nimport { AXM_AUTH_CONFIG_TOKEN } from '../../auth.config';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPIdleService {\r\n private configs = inject(AXM_AUTH_CONFIG_TOKEN);\r\n private idle$ = new Subject<void>();\r\n private timeoutDuration = this.configs.idleTimeout ?? 10 * 60 * 1000;\r\n private userActivity$ = new Subject<void>();\r\n private idleSubscription: Subscription | null = null;\r\n\r\n constructor() {\r\n this.setupActivityListeners();\r\n }\r\n\r\n get idleState$(): Observable<void> {\r\n return this.idle$.asObservable();\r\n }\r\n\r\n private setupActivityListeners() {\r\n const activityEvents = ['mousemove', 'keydown', 'wheel'];\r\n activityEvents.forEach(event =>\r\n document.addEventListener(event, () => this.resetTimer())\r\n );\r\n }\r\n\r\n startWatching() {\r\n this.stopWatching(); // Stop any existing subscription\r\n this.idleSubscription = this.userActivity$.pipe(\r\n startWith(null),\r\n switchMap(() => timer(this.timeoutDuration)),\r\n tap(() => this.idle$.next()),\r\n ).subscribe();\r\n }\r\n\r\n resetTimer() {\r\n this.userActivity$.next();\r\n }\r\n\r\n stopWatching() {\r\n if (this.idleSubscription) {\r\n this.idleSubscription.unsubscribe();\r\n this.idleSubscription = null;\r\n }\r\n }\r\n}\r\n","import { AXDialogButtonItem, AXDialogService } from \"@acorex/components/dialog\";\r\nimport { AXPSessionService } from \"@acorex/platform/auth\";\r\nimport { AXPSignInAction, AXPSignOutAction } from \"@acorex/platform/common\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Actions, createEffect, ofType } from \"@ngrx/effects\";\r\nimport { of, switchMap, tap } from \"rxjs\";\r\nimport { AXPIdleService } from \"../shared/services\";\r\nimport { AXM_AUTH_CONFIG_TOKEN } from \"../auth.config\";\r\n\r\n@Injectable()\r\nexport class AXPAuthEffects {\r\n\r\n private configs = inject(AXM_AUTH_CONFIG_TOKEN);\r\n private sessionService = inject(AXPSessionService);\r\n private idleService = inject(AXPIdleService);\r\n private dialogService = inject(AXDialogService);\r\n private dialogAlreadyOpen = false;\r\n\r\n constructor(private actions$: Actions, private router: Router) { }\r\n\r\n signout$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(AXPSignOutAction),\r\n switchMap((action) => {\r\n this.idleService.stopWatching();\r\n this.router.navigate(['/auth/login']);\r\n return of();\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n signin$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(AXPSignInAction),\r\n switchMap((action) => {\r\n if (this.configs.idleTimeout) {\r\n this.idleService.startWatching();\r\n }\r\n return of();\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n\r\n idle$ = createEffect(\r\n () =>\r\n this.idleService.idleState$.pipe(\r\n tap(() => {\r\n if (!this.dialogAlreadyOpen) {\r\n let time = 60;\r\n let intervalId: number;\r\n const buttonText = (time: number) => `Stay Sign In (${time})`;\r\n const stayButton: AXDialogButtonItem = {\r\n text: buttonText(time),\r\n color: 'primary',\r\n autofocus: true,\r\n onClick: () => {\r\n this.idleService.resetTimer();\r\n dialog.close();\r\n this.dialogAlreadyOpen = false;\r\n clearInterval(intervalId);\r\n }\r\n }\r\n const dialog = this.dialogService.open({\r\n title: \"Session Timeout\",\r\n content: \"You're being timed out due to inactivity. Please choose to stay signed in or to sign off. Otherwise, you will signed off automatically.\",\r\n type: 'warning',\r\n buttons: [\r\n {\r\n text: \"Sign Off\",\r\n color: 'ghost',\r\n onClick: async () => {\r\n await this.sessionService.signout();\r\n dialog.close();\r\n this.dialogAlreadyOpen = false;\r\n clearInterval(intervalId);\r\n }\r\n },\r\n stayButton,\r\n ]\r\n });\r\n this.dialogAlreadyOpen = true;\r\n // Automatically close dialog and sign out after additional time\r\n intervalId = setInterval(() => {\r\n if (time > 0) {\r\n stayButton.text = buttonText(--time);\r\n } else {\r\n clearInterval(intervalId);\r\n this.sessionService.signout();\r\n dialog.close();\r\n this.dialogAlreadyOpen = false;\r\n }\r\n }, 1000);\r\n //\r\n }\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n}\r\n","export * from './auth.effects';\r\n//export * from './auth.actions';","import { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPApplication, AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXPLogoComponent } from '@acorex/platform/common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'axp-app-chooser-list',\r\n templateUrl: 'app-chooser-list.component.html',\r\n standalone: true,\r\n imports: [CommonModule, AXDecoratorModule, AXPLogoComponent, AXLoadingModule],\r\n})\r\nexport class AXPAppChooserListComponent {\r\n private router = inject(Router);\r\n private sessionService = inject(AXPSessionService);\r\n\r\n protected selectedApplication: AXPApplication | null = null;\r\n protected applications$ = this.sessionService.applications$;\r\n\r\n async chooseApplication(item: AXPApplication) {\r\n this.selectedApplication = item;\r\n await this.sessionService.setApplication(item);\r\n this.router.navigate([`/${item.name}/home`]);\r\n }\r\n}\r\n","<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\r\n @for(application of (applications$ | async); track $index){\r\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\r\n (click)=\"chooseApplication(application)\">\r\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\r\n <div\r\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\">\r\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\r\n <!-- TODO: logo instead of application icon -->\r\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\r\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\r\n </div>\r\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\r\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\r\n @if(application.name===selectedApplication?.name){\r\n <ax-loading></ax-loading>\r\n }@else {\r\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>","import { AXButtonModule } from \"@acorex/components/button\";\r\nimport { AXDecoratorModule } from \"@acorex/components/decorators\";\r\nimport { AXPopoverModule } from \"@acorex/components/popover\";\r\nimport { AXPApplication, AXPSessionService } from \"@acorex/platform/auth\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { Component, inject } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AXPAppChooserListComponent } from \"./app-chooser-list.component\";\r\nimport { of } from \"rxjs\";\r\nimport { AXPLogoComponent } from \"@acorex/platform/common\";\r\n\r\n@Component({\r\n templateUrl: './app-chooser-slot.component.html',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n AXButtonModule,\r\n AXPopoverModule,\r\n AXDecoratorModule,\r\n AXPLogoComponent,\r\n AXPAppChooserListComponent\r\n ]\r\n})\r\nexport class AXMAppChooserSlotComponent {\r\n private sessionService = inject(AXPSessionService);\r\n protected tenant$ = this.sessionService.tenant$;\r\n\r\n protected application$ = this.sessionService.application$;\r\n protected applications$ = of([]);\r\n\r\n private router = inject(Router);\r\n\r\n\r\n async chooseApplication(item: AXPApplication) {\r\n //await this.sessionService.selectApplication(item.name);\r\n this.router.navigate([`/${item.name}/home`]);\r\n }\r\n\r\n\r\n}","@if(((applications$ | async)?.length ?? 0) > 1)\r\n{\r\n<ax-button color=\"default\" look=\"blank\" #appChooser>\r\n <ax-icon>\r\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\r\n </ax-icon>\r\n</ax-button>\r\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\r\n <div class=\"ax-bg-surface ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\r\n <axp-app-chooser-list></axp-app-chooser-list>\r\n </div>\r\n</ax-popover>\r\n}","import { Component, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { CommonModule } from '@angular/common';\r\nimport { of } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'axp-tenant-chooser-dropdown',\r\n templateUrl: 'tenant-chooser-dropdown.component.html',\r\n standalone: true,\r\n imports: [CommonModule, AXDecoratorModule]\r\n})\r\nexport class AXPTenantChooserDropdownComponent {\r\n\r\n private router = inject(Router);\r\n private sessionService = inject(AXPSessionService);\r\n protected tenants$ = of([]) // this.sessionService.tenants$;\r\n protected tenant = this.sessionService.tenant;\r\n\r\n tenantChooser() {\r\n this.router.navigate(['/auth/account/tenant-chooser']);\r\n }\r\n\r\n\r\n}","<ng-container *ngIf=\"tenants$ | async as tenants\">\r\n @if(tenants.length>1){\r\n <div (click)=\"tenantChooser()\"\r\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\r\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\r\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\r\n {{ tenant?.title }}\r\n </p>\r\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\r\n </div>\r\n }@else {\r\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\r\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\r\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\r\n {{ tenant?.title }}\r\n </p>\r\n </div>\r\n }\r\n</ng-container>","import { AXAvatarModule } from '@acorex/components/avatar';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXPDataProvider } from '@acorex/platform/common';\r\nimport { MockDataService } from '@acorex/platform/mocks';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, ViewChild, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AXPTenantChooserDropdownComponent } from '../tenant-chooser/tenant-chooser-dropdown.component';\r\n\r\n@Component({\r\n templateUrl: './profile-slot.component.html',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n AXImageModule,\r\n AXAvatarModule,\r\n AXPopoverModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXPTenantChooserDropdownComponent,\r\n AXLoadingModule,\r\n ],\r\n})\r\nexport class AXMAuthProfileSlotComponent {\r\n private router = inject(Router);\r\n private sessionService = inject(AXPSessionService);\r\n private dataService = inject(AXPDataProvider, { optional: true });\r\n private mockerService = inject(MockDataService);\r\n\r\n constructor() {\r\n this.loadImage();\r\n }\r\n protected src!: string;\r\n protected user$ = this.sessionService.user$;\r\n protected tenant$ = this.sessionService.tenant$;\r\n\r\n protected isAuthenticated$ = this.sessionService.isAuthenticated$;\r\n\r\n @ViewChild('profilePopover') profilePopover!: AXPopoverComponent;\r\n\r\n editProfile() {\r\n // this.router.navigate(['/asc/identity/e/user-info/0/view']);\r\n this.router.navigate(['/asc/oidc/e/user-info/0/view']);\r\n }\r\n\r\n async logOut() {\r\n await this.sessionService.signout();\r\n }\r\n\r\n toggleProfileMenu() {\r\n this.profilePopover.open();\r\n }\r\n\r\n protected handleSignIn() {\r\n this.router.navigate(['/auth/login']);\r\n }\r\n private async loadImage() {\r\n try {\r\n const url = this.sessionService.user?.avatar as string;\r\n if (url?.toLowerCase().startsWith('http')) {\r\n this.src = url;\r\n } else if (this.sessionService.user?.avatar != 'null' && this.dataService) {\r\n //TODO: Remove dataService and mockService\r\n const blob = await this.dataService.viewFile(url, '');\r\n this.src = URL.createObjectURL(blob);\r\n } else {\r\n this.src = this.mockerService.avatar();\r\n }\r\n } catch (error) {\r\n console.error('Failed to load image by ID:', error);\r\n }\r\n }\r\n}\r\n","@if((isAuthenticated$ | async)) {\r\n<ax-avatar #avatar color=\"secondary\" [size]=\"32\" class=\"ax-cursor-pointer ax-ms-4\">\r\n <ax-image [src]=\"src\"></ax-image>\r\n</ax-avatar>\r\n<ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\">\r\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\r\n <ax-avatar [size]=\"60\">\r\n <ax-image [src]=\"src\">\r\n <ax-loading></ax-loading>\r\n </ax-image>\r\n </ax-avatar>\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\r\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\r\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"profile-menus ax-text-slate-500\">\r\n <!-- <ul>\r\n <li>\r\n <i class=\"fa-solid fa-folder-open\"></i>\r\n <span> Project Management </span>\r\n </li>\r\n <li>\r\n <i class=\"fa-solid fa-envelope-open-text\"></i>\r\n <span>Email Config</span>\r\n </li>\r\n <li>\r\n <i class=\"fa-solid fa-gear\"></i>\r\n <span>Setting</span>\r\n </li>\r\n </ul> -->\r\n <ul>\r\n <!-- <li>\r\n <i class=\"fa-solid fa-gem ax-text-primary-500\"></i>\r\n <span> Upgrade account </span>\r\n </li> -->\r\n <li (click)=\"editProfile()\">\r\n <i class=\"fa-solid fa-user\"></i>\r\n <span>Edit profile</span>\r\n </li>\r\n </ul>\r\n <ul>\r\n <li class=\"ax-text-danger-500\" (click)=\"logOut()\">\r\n <i class=\"fa-solid fa-arrow-right-from-bracket\"></i>\r\n <span>Logout</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</ax-popover>\r\n} @else {\r\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\r\n <ax-icon>\r\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\r\n </ax-icon>\r\n</ax-button>\r\n}","import { AXPAuthGuard, AXPSessionService } from '@acorex/platform/auth';\r\nimport { inject, NgModule } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivateFn, Router, RouterModule, RouterStateSnapshot, ROUTES, Routes } from '@angular/router';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { AXMAppChooserSlotComponent } from './app-chooser/app-chooser-slot.component';\r\nimport { AXMAuthProfileSlotComponent } from './profile/profile-slot.component';\r\nimport { AXPComponentSlotModule } from '@acorex/platform/common';\r\n\r\n\r\nconst canActivateTenantChooser: CanActivateFn =\r\n async (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\r\n const sessionService = inject(AXPSessionService);\r\n const router = inject(Router);\r\n const tenants = await firstValueFrom(sessionService.tenants$);\r\n if (tenants.length == 0) {\r\n return router.createUrlTree(['/auth/login']);\r\n }\r\n if (tenants.length == 1) {\r\n await sessionService.setTenant(tenants[0]);\r\n return router.createUrlTree(['/auth/account/app-chooser']);\r\n }\r\n return true;\r\n };\r\n\r\n\r\nconst canActivateAppChooser: CanActivateFn =\r\n async (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\r\n const sessionService = inject(AXPSessionService);\r\n const router = inject(Router);\r\n const apps = await firstValueFrom(sessionService.applications$);\r\n if (apps.length == 0) {\r\n return router.createUrlTree(['/auth/login']);\r\n }\r\n if (apps.length == 1) {\r\n await sessionService.setApplication(apps[0])\r\n return router.createUrlTree([`/${apps[0].name}/home`]);\r\n }\r\n return true\r\n };\r\n\r\n\r\nfunction routesFacory() {\r\n let routes: Routes = [];\r\n routes = [\r\n {\r\n path: 'tenant-chooser',\r\n loadComponent: () =>\r\n import('./tenant-chooser/tenant-chooser.component').then(\r\n (c) => c.AXPAuthTenantChooserComponent\r\n ),\r\n canActivate: [AXPAuthGuard, canActivateTenantChooser]\r\n },\r\n {\r\n path: 'app-chooser',\r\n loadComponent: () =>\r\n import('./app-chooser/app-chooser.component').then((c) => c.AXPAuthAppChooserComponent),\r\n canActivate: [AXPAuthGuard, canActivateAppChooser]\r\n },\r\n ];\r\n return routes;\r\n}\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n RouterModule,\r\n //\r\n AXPComponentSlotModule.forChild({\r\n \"header-end\": [\r\n {\r\n name: \"app-choser\",\r\n component: AXMAppChooserSlotComponent,\r\n },\r\n {\r\n name: \"profile\",\r\n component: AXMAuthProfileSlotComponent,\r\n },\r\n ]\r\n })\r\n ],\r\n exports: [],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n multi: true,\r\n useFactory: routesFacory,\r\n },\r\n ],\r\n})\r\nexport class AXPAccountModule { }\r\n","import { AXPCommonModule } from '@acorex/platform/common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { routes } from './auth.routes';\r\nimport { AXMAuthErrorHandler } from './error-handler';\r\nimport { AXPAuthEffects } from './store';\r\nimport { AXPAccountModule } from './account/account.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AXPCommonModule.forChild({ errorHandlers: [AXMAuthErrorHandler] }),\r\n HttpClientModule,\r\n RouterModule.forChild(routes),\r\n EffectsModule.forFeature([AXPAuthEffects]),\r\n AXPAccountModule\r\n ],\r\n providers: [AXMAuthErrorHandler],\r\n})\r\nexport class AXMAuthModule {\r\n static forRoot(): ModuleWithProviders<AXMAuthModule> {\r\n return {\r\n ngModule: AXMAuthModule,\r\n providers: [],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["switchMap","tap","i1","i2","i3","i4","i5","i6","i7"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Component, ViewEncapsulation } from '@angular/core';
3
+ import * as i3 from '@acorex/components/avatar';
4
+ import { AXAvatarModule } from '@acorex/components/avatar';
5
+ import { AXButtonModule } from '@acorex/components/button';
6
+ import { AXCheckBoxModule } from '@acorex/components/check-box';
7
+ import { AXDecoratorModule } from '@acorex/components/decorators';
8
+ import { AXFormModule } from '@acorex/components/form';
9
+ import * as i2 from '@acorex/components/image';
10
+ import { AXImageModule } from '@acorex/components/image';
11
+ import { AXLabelModule } from '@acorex/components/label';
12
+ import { AXLoadingModule } from '@acorex/components/loading';
13
+ import { AXTextBoxModule } from '@acorex/components/text-box';
14
+ import * as i6 from '@acorex/core/translation';
15
+ import { AXTranslationModule } from '@acorex/core/translation';
16
+ import { AXPSessionService } from '@acorex/platform/auth';
17
+ import { AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent } from '@acorex/platform/common';
18
+ import * as i1 from '@angular/common';
19
+ import { CommonModule } from '@angular/common';
20
+ import { Router } from '@angular/router';
21
+ import { b as AXPTenantChooserDropdownComponent, c as AXPAppChooserListComponent } from './acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs';
22
+ import { of } from 'rxjs';
23
+ import '@angular/common/http';
24
+ import '@ngrx/effects';
25
+ import '@acorex/components/dialog';
26
+ import 'rxjs/operators';
27
+ import '@acorex/components/popover';
28
+ import '@acorex/platform/mocks';
29
+
30
+ class AXPAuthAppChooserComponent {
31
+ constructor() {
32
+ this.router = inject(Router);
33
+ this.platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);
34
+ this.sessionService = inject(AXPSessionService);
35
+ this.user = this.sessionService.user;
36
+ this.tenants$ = of([]); //this.sessionService.tenants$;
37
+ this.tenant = this.sessionService.tenant;
38
+ }
39
+ tenantChooser() {
40
+ this.router.navigate(['/auth/account/tenant-chooser']);
41
+ }
42
+ async handleSignout() {
43
+ await this.sessionService.signout();
44
+ this.router.navigate(['/auth/login']);
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthAppChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPAuthAppChooserComponent, isStandalone: true, selector: "axp-auth-app-chooser", ngImport: i0, template: "<main *translate=\"let t\"\r\n class=\"ax-w-full ax-space-y-10 ax-h-[100vh] ax-flex ax-flex-col ax-items-center ax-justify-center ax-bg-surface md:ax-bg-default\">\r\n <section>\r\n <axp-logo [source]=\"platformConfig.logo?.colored\" [attr.alt]=\"platformConfig.title\"\r\n class=\"ax-w-36 ax-mx-auto ax-text-2xl ax-font-bold\"></axp-logo>\r\n </section>\r\n <section class=\"ax-flex ax-justify-center\">\r\n <div\r\n class=\"ax-flex ax-gap-2 ax-justify-center ax-text-center ax-flex-col ax-items-center ax-border ax-rounded-lg ax-shadow-lg ax-p-6 md:ax-w-96 ax-w-80\">\r\n <ax-avatar class=\"ax-rounded-full\" [size]=\"72\">\r\n @if(user?.avatar){\r\n <ax-image [src]=\"user?.avatar\"></ax-image>\r\n }\r\n </ax-avatar>\r\n <h2 class=\"md:ax-text-lg ax-font-medium\">{{ t('welcome') | async }}, {{ user?.title }}</h2>\r\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\r\n <p class=\"ax-text-neutral-500 ax-text-sm md:ax-text-base ax-font-medium\">\r\n {{ t('application-chooser.description', { scope: 'auth' }) | async }}\r\n </p>\r\n <div class=\"ax-mt-3 ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\r\n <axp-app-chooser-list></axp-app-chooser-list>\r\n </div>\r\n </div>\r\n </section>\r\n <section>\r\n <p class=\"ax-text-neutral-400 ax-text-sm\">\r\n {{ t('application-chooser.footer', { scope: 'auth' }) | async }}\r\n <ng-container *ngIf=\"tenants$ | async as tenants\">\r\n @if(tenants.length > 1){\r\n <a (click)=\"tenantChooser()\" class=\"ax-text-primary-500 ax-cursor-pointer ax-font-medium hover:ax-underline\">\r\n {{ t('application-chooser.backCompany', { scope: 'auth' }) | async }}\r\n </a>\r\n } @else {\r\n <a (click)=\"handleSignout()\" class=\"ax-text-primary-500 ax-font-medium ax-cursor-pointer hover:ax-underline\">\r\n {{ t('backLogin', { scope: 'auth' }) | async }}\r\n </a>\r\n }\r\n </ng-container>\r\n </p>\r\n </section>\r\n</main>", styles: [".gradient{background:-webkit-linear-gradient(var(--ax-current-v1),var(--ax-current-v2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i3.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type: AXPTenantChooserDropdownComponent, selector: "axp-tenant-chooser-dropdown" }, { kind: "component", type: AXPAppChooserListComponent, selector: "axp-app-chooser-list" }], encapsulation: i0.ViewEncapsulation.None }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthAppChooserComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'axp-auth-app-chooser', imports: [
52
+ CommonModule,
53
+ AXFormModule,
54
+ AXTextBoxModule,
55
+ AXButtonModule,
56
+ AXLabelModule,
57
+ AXCheckBoxModule,
58
+ AXAvatarModule,
59
+ AXImageModule,
60
+ AXDecoratorModule,
61
+ AXPLogoComponent,
62
+ AXLoadingModule,
63
+ AXTranslationModule,
64
+ AXPTenantChooserDropdownComponent,
65
+ AXPAppChooserListComponent
66
+ ], encapsulation: ViewEncapsulation.None, standalone: true, template: "<main *translate=\"let t\"\r\n class=\"ax-w-full ax-space-y-10 ax-h-[100vh] ax-flex ax-flex-col ax-items-center ax-justify-center ax-bg-surface md:ax-bg-default\">\r\n <section>\r\n <axp-logo [source]=\"platformConfig.logo?.colored\" [attr.alt]=\"platformConfig.title\"\r\n class=\"ax-w-36 ax-mx-auto ax-text-2xl ax-font-bold\"></axp-logo>\r\n </section>\r\n <section class=\"ax-flex ax-justify-center\">\r\n <div\r\n class=\"ax-flex ax-gap-2 ax-justify-center ax-text-center ax-flex-col ax-items-center ax-border ax-rounded-lg ax-shadow-lg ax-p-6 md:ax-w-96 ax-w-80\">\r\n <ax-avatar class=\"ax-rounded-full\" [size]=\"72\">\r\n @if(user?.avatar){\r\n <ax-image [src]=\"user?.avatar\"></ax-image>\r\n }\r\n </ax-avatar>\r\n <h2 class=\"md:ax-text-lg ax-font-medium\">{{ t('welcome') | async }}, {{ user?.title }}</h2>\r\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\r\n <p class=\"ax-text-neutral-500 ax-text-sm md:ax-text-base ax-font-medium\">\r\n {{ t('application-chooser.description', { scope: 'auth' }) | async }}\r\n </p>\r\n <div class=\"ax-mt-3 ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\r\n <axp-app-chooser-list></axp-app-chooser-list>\r\n </div>\r\n </div>\r\n </section>\r\n <section>\r\n <p class=\"ax-text-neutral-400 ax-text-sm\">\r\n {{ t('application-chooser.footer', { scope: 'auth' }) | async }}\r\n <ng-container *ngIf=\"tenants$ | async as tenants\">\r\n @if(tenants.length > 1){\r\n <a (click)=\"tenantChooser()\" class=\"ax-text-primary-500 ax-cursor-pointer ax-font-medium hover:ax-underline\">\r\n {{ t('application-chooser.backCompany', { scope: 'auth' }) | async }}\r\n </a>\r\n } @else {\r\n <a (click)=\"handleSignout()\" class=\"ax-text-primary-500 ax-font-medium ax-cursor-pointer hover:ax-underline\">\r\n {{ t('backLogin', { scope: 'auth' }) | async }}\r\n </a>\r\n }\r\n </ng-container>\r\n </p>\r\n </section>\r\n</main>", styles: [".gradient{background:-webkit-linear-gradient(var(--ax-current-v1),var(--ax-current-v2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}\n"] }]
67
+ }] });
68
+
69
+ export { AXPAuthAppChooserComponent };
70
+ //# sourceMappingURL=acorex-modules-auth-app-chooser.component-Bw4IumjA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-auth-app-chooser.component-Bw4IumjA.mjs","sources":["../../../../libs/modules/auth/src/lib/account/app-chooser/app-chooser.component.ts","../../../../libs/modules/auth/src/lib/account/app-chooser/app-chooser.component.html"],"sourcesContent":["import { Component, ViewEncapsulation, inject } from '@angular/core';\r\n\r\nimport { AXAvatarModule } from '@acorex/components/avatar';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLabelModule } from '@acorex/components/label';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXTextBoxModule } from '@acorex/components/text-box';\r\nimport { AXTranslationModule } from '@acorex/core/translation';\r\nimport { AXPSessionService } from '@acorex/platform/auth';\r\nimport { AXPLogoComponent, AXP_PLATFORM_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { AXPTenantChooserDropdownComponent } from '../tenant-chooser/tenant-chooser-dropdown.component';\r\nimport { AXPAppChooserListComponent } from './app-chooser-list.component';\r\nimport { of } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'axp-auth-app-chooser',\r\n templateUrl: './app-chooser.component.html',\r\n styleUrls: ['./app-chooser.component.scss'],\r\n imports: [\r\n CommonModule,\r\n AXFormModule,\r\n AXTextBoxModule,\r\n AXButtonModule,\r\n AXLabelModule,\r\n AXCheckBoxModule,\r\n AXAvatarModule,\r\n AXImageModule,\r\n AXDecoratorModule,\r\n AXPLogoComponent,\r\n AXLoadingModule,\r\n AXTranslationModule,\r\n AXPTenantChooserDropdownComponent,\r\n AXPAppChooserListComponent\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n})\r\nexport class AXPAuthAppChooserComponent {\r\n\r\n private router = inject(Router);\r\n protected platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);\r\n private sessionService = inject(AXPSessionService);\r\n\r\n protected user = this.sessionService.user;\r\n protected tenants$ = of([])//this.sessionService.tenants$;\r\n protected tenant = this.sessionService.tenant;\r\n\r\n\r\n tenantChooser() {\r\n this.router.navigate(['/auth/account/tenant-chooser']);\r\n }\r\n\r\n async handleSignout() {\r\n await this.sessionService.signout();\r\n this.router.navigate(['/auth/login']);\r\n }\r\n\r\n\r\n}\r\n","<main *translate=\"let t\"\r\n class=\"ax-w-full ax-space-y-10 ax-h-[100vh] ax-flex ax-flex-col ax-items-center ax-justify-center ax-bg-surface md:ax-bg-default\">\r\n <section>\r\n <axp-logo [source]=\"platformConfig.logo?.colored\" [attr.alt]=\"platformConfig.title\"\r\n class=\"ax-w-36 ax-mx-auto ax-text-2xl ax-font-bold\"></axp-logo>\r\n </section>\r\n <section class=\"ax-flex ax-justify-center\">\r\n <div\r\n class=\"ax-flex ax-gap-2 ax-justify-center ax-text-center ax-flex-col ax-items-center ax-border ax-rounded-lg ax-shadow-lg ax-p-6 md:ax-w-96 ax-w-80\">\r\n <ax-avatar class=\"ax-rounded-full\" [size]=\"72\">\r\n @if(user?.avatar){\r\n <ax-image [src]=\"user?.avatar\"></ax-image>\r\n }\r\n </ax-avatar>\r\n <h2 class=\"md:ax-text-lg ax-font-medium\">{{ t('welcome') | async }}, {{ user?.title }}</h2>\r\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\r\n <p class=\"ax-text-neutral-500 ax-text-sm md:ax-text-base ax-font-medium\">\r\n {{ t('application-chooser.description', { scope: 'auth' }) | async }}\r\n </p>\r\n <div class=\"ax-mt-3 ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\r\n <axp-app-chooser-list></axp-app-chooser-list>\r\n </div>\r\n </div>\r\n </section>\r\n <section>\r\n <p class=\"ax-text-neutral-400 ax-text-sm\">\r\n {{ t('application-chooser.footer', { scope: 'auth' }) | async }}\r\n <ng-container *ngIf=\"tenants$ | async as tenants\">\r\n @if(tenants.length > 1){\r\n <a (click)=\"tenantChooser()\" class=\"ax-text-primary-500 ax-cursor-pointer ax-font-medium hover:ax-underline\">\r\n {{ t('application-chooser.backCompany', { scope: 'auth' }) | async }}\r\n </a>\r\n } @else {\r\n <a (click)=\"handleSignout()\" class=\"ax-text-primary-500 ax-font-medium ax-cursor-pointer hover:ax-underline\">\r\n {{ t('backLogin', { scope: 'auth' }) | async }}\r\n </a>\r\n }\r\n </ng-container>\r\n </p>\r\n </section>\r\n</main>"],"names":["i2","i3","i4"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-auth-blank.layout-BOdRxDNv.mjs","sources":["../../../../libs/modules/auth/src/lib/shared/layouts/blank/blank.layout.ts","../../../../libs/modules/auth/src/lib/shared/layouts/blank/blank.layout.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n templateUrl: 'blank.layout.html',\n imports: [RouterModule],\n standalone: true,\n})\nexport class AXPAuthBlankLayoutComponent implements OnInit {\n constructor() { }\n\n ngOnInit() { }\n}\n","<router-outlet></router-outlet>"],"names":["i1"],"mappings":";;;;;MAQa,2BAA2B,CAAA;AACtC,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,QAAQ,MAAM;8GAHH,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECRxC,iCAA+B,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;8BAEC,CAAC,YAAY,CAAC,EAAA,UAAA,EACX,IAAI,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"acorex-modules-auth-blank.layout-BOdRxDNv.mjs","sources":["../../../../libs/modules/auth/src/lib/shared/layouts/blank/blank.layout.ts","../../../../libs/modules/auth/src/lib/shared/layouts/blank/blank.layout.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@Component({\r\n templateUrl: 'blank.layout.html',\r\n imports: [RouterModule],\r\n standalone: true,\r\n})\r\nexport class AXPAuthBlankLayoutComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n}\r\n","<router-outlet></router-outlet>"],"names":["i1"],"mappings":";;;;;MAQa,2BAA2B,CAAA;AACtC,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,QAAQ,MAAM;8GAHH,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECRxC,iCAA+B,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;8BAEC,CAAC,YAAY,CAAC,EAAA,UAAA,EACX,IAAI,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA;;;;;"}
@@ -1,11 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, NgModule } from '@angular/core';
3
3
  import { RouterModule, ROUTES } from '@angular/router';
4
- import { A as AXM_AUTH_CONFIG_TOKEN, a as AXMAuthenticationTypes } from './acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs';
4
+ import { A as AXM_AUTH_CONFIG_TOKEN, a as AXMAuthenticationTypes } from './acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs';
5
+ import '@acorex/platform/common';
5
6
  import '@acorex/platform/auth';
6
7
  import '@angular/common/http';
7
- import '@acorex/platform/layouts';
8
- import '@acorex/platform/common';
9
8
  import '@angular/common';
10
9
  import '@ngrx/effects';
11
10
  import '@acorex/components/dialog';
@@ -18,7 +17,6 @@ import '@acorex/components/loading';
18
17
  import '@acorex/components/avatar';
19
18
  import '@acorex/components/image';
20
19
  import '@acorex/platform/mocks';
21
- import '@acorex/platform/layout';
22
20
 
23
21
  function routesFacory() {
24
22
  const val = inject(AXM_AUTH_CONFIG_TOKEN);
@@ -32,10 +30,10 @@ function routesFacory() {
32
30
  AXMAuthenticationTypes.EmailPassword,
33
31
  AXMAuthenticationTypes.MobilePassword,
34
32
  ].includes(val.type)) {
35
- return import('./acorex-modules-auth-password.component-D4CkGaq0.mjs').then((c) => c.AXPLoginPasswordComponent);
33
+ return import('./acorex-modules-auth-password.component-V2IWBUZb.mjs').then((c) => c.AXPLoginPasswordComponent);
36
34
  }
37
35
  else {
38
- return import('./acorex-modules-auth-password.component-D4CkGaq0.mjs').then((c) => c.AXPLoginPasswordComponent);
36
+ return import('./acorex-modules-auth-password.component-V2IWBUZb.mjs').then((c) => c.AXPLoginPasswordComponent);
39
37
  }
40
38
  },
41
39
  },
@@ -69,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
69
67
  }] });
70
68
 
71
69
  export { AXPSignInModule };
72
- //# sourceMappingURL=acorex-modules-auth-login.module-Drm4fC1I.mjs.map
70
+ //# sourceMappingURL=acorex-modules-auth-login.module-CsfZ__0S.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-auth-login.module-CsfZ__0S.mjs","sources":["../../../../libs/modules/auth/src/lib/login/login.module.ts"],"sourcesContent":["import { NgModule, inject } from '@angular/core';\r\nimport { ROUTES, RouterModule, Routes } from '@angular/router';\r\nimport { AXMAuthenticationTypes, AXM_AUTH_CONFIG_TOKEN } from '../auth.config';\r\n\r\nfunction routesFacory() {\r\n const val = inject(AXM_AUTH_CONFIG_TOKEN);\r\n let routes: Routes = [];\r\n routes = [\r\n {\r\n path: 'login',\r\n loadComponent: () => {\r\n if (\r\n [\r\n AXMAuthenticationTypes.UsernamePassword,\r\n AXMAuthenticationTypes.EmailPassword,\r\n AXMAuthenticationTypes.MobilePassword,\r\n ].includes(val.type)\r\n ) {\r\n return import('./password/password.component').then((c) => c.AXPLoginPasswordComponent);\r\n } else {\r\n return import('./password/password.component').then((c) => c.AXPLoginPasswordComponent);\r\n }\r\n },\r\n },\r\n ];\r\n return routes;\r\n}\r\n\r\n@NgModule({\r\n imports: [RouterModule],\r\n exports: [],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n multi: true,\r\n useFactory: routesFacory,\r\n },\r\n ],\r\n})\r\nexport class AXPSignInModule { }\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,SAAS,YAAY,GAAA;AACnB,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC1C,IAAI,MAAM,GAAW,EAAE,CAAC;AACxB,IAAA,MAAM,GAAG;AACP,QAAA;AACE,YAAA,IAAI,EAAE,OAAO;YACb,aAAa,EAAE,MAAK;gBAClB,IACE;AACE,oBAAA,sBAAsB,CAAC,gBAAgB;AACvC,oBAAA,sBAAsB,CAAC,aAAa;AACpC,oBAAA,sBAAsB,CAAC,cAAc;AACtC,iBAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EACpB;AACA,oBAAA,OAAO,OAAO,uDAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;iBACzF;qBAAM;AACL,oBAAA,OAAO,OAAO,uDAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;iBACzF;aACF;AACF,SAAA;KACF,CAAC;AACF,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;MAaY,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAVhB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;AAUX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EARf,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,YAAY;AACzB,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CARS,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,UAAU,EAAE,YAAY;AACzB,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;;;"}
@@ -0,0 +1,37 @@
1
+ import * as i1 from '@acorex/platform/common';
2
+ import { AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent, AXPComponentSlotModule } from '@acorex/platform/common';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Component, ViewEncapsulation } from '@angular/core';
5
+ import * as i2 from '@angular/router';
6
+ import { RouterModule } from '@angular/router';
7
+ import { A as AXM_AUTH_CONFIG_TOKEN } from './acorex-modules-auth-acorex-modules-auth-DeS0JelZ.mjs';
8
+ import '@acorex/platform/auth';
9
+ import '@angular/common/http';
10
+ import '@angular/common';
11
+ import '@ngrx/effects';
12
+ import '@acorex/components/dialog';
13
+ import 'rxjs';
14
+ import 'rxjs/operators';
15
+ import '@acorex/components/button';
16
+ import '@acorex/components/decorators';
17
+ import '@acorex/components/popover';
18
+ import '@acorex/components/loading';
19
+ import '@acorex/components/avatar';
20
+ import '@acorex/components/image';
21
+ import '@acorex/platform/mocks';
22
+
23
+ class AXPAuthMasterLayoutComponent {
24
+ constructor() {
25
+ this.authConfig = inject(AXM_AUTH_CONFIG_TOKEN);
26
+ this.platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthMasterLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPAuthMasterLayoutComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"ax-w-full ax-h-full ax-flex\">\r\n <div class=\"ax-flex-1 ax-bg-surface ax-flex ax-flex-col ax-items-center ax-justify-between ax-py-12\">\r\n <router-outlet></router-outlet>\r\n <div class=\"ax-flex ax-justify-between\">\r\n <div class=\"auth-footer-links\">\r\n <axp-component-slot name=\"auth-footer-links\"></axp-component-slot>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ax-hidden lg:ax-flex ax-bg-primary-500 ax-flex-1 axp-auth-bk\">\r\n <div class=\"ax-flex ax-flex-col ax-text-primary-fore ax-justify-between ax-px-48 ax-py-20 ax-text-center\">\r\n <div>\r\n <axp-logo [source]=\"platformConfig.logo?.colored\" [attr.alt]=\"platformConfig.title\"\r\n class=\"ax-mx-auto ax-text-2xl\"></axp-logo>\r\n </div>\r\n <div>\r\n <p class=\"ax-font-black ax-text-4xl ax-mb-4\">\r\n {{authConfig.signinPage?.slogan}}\r\n </p>\r\n <p>\r\n {{authConfig.signinPage?.description}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".auth-footer-links{gap:1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.auth-footer-links a{color:rgba(var(--ax-color-primary-500));cursor:pointer}.auth-footer-links a:hover{text-decoration:underline}.auth-footer-links a:visited{color:rgba(var(--ax-color-primary-700))}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPAuthMasterLayoutComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ imports: [RouterModule, AXPLogoComponent, AXPComponentSlotModule], standalone: true, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-w-full ax-h-full ax-flex\">\r\n <div class=\"ax-flex-1 ax-bg-surface ax-flex ax-flex-col ax-items-center ax-justify-between ax-py-12\">\r\n <router-outlet></router-outlet>\r\n <div class=\"ax-flex ax-justify-between\">\r\n <div class=\"auth-footer-links\">\r\n <axp-component-slot name=\"auth-footer-links\"></axp-component-slot>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ax-hidden lg:ax-flex ax-bg-primary-500 ax-flex-1 axp-auth-bk\">\r\n <div class=\"ax-flex ax-flex-col ax-text-primary-fore ax-justify-between ax-px-48 ax-py-20 ax-text-center\">\r\n <div>\r\n <axp-logo [source]=\"platformConfig.logo?.colored\" [attr.alt]=\"platformConfig.title\"\r\n class=\"ax-mx-auto ax-text-2xl\"></axp-logo>\r\n </div>\r\n <div>\r\n <p class=\"ax-font-black ax-text-4xl ax-mb-4\">\r\n {{authConfig.signinPage?.slogan}}\r\n </p>\r\n <p>\r\n {{authConfig.signinPage?.description}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".auth-footer-links{gap:1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.auth-footer-links a{color:rgba(var(--ax-color-primary-500));cursor:pointer}.auth-footer-links a:hover{text-decoration:underline}.auth-footer-links a:visited{color:rgba(var(--ax-color-primary-700))}\n"] }]
34
+ }] });
35
+
36
+ export { AXPAuthMasterLayoutComponent };
37
+ //# sourceMappingURL=acorex-modules-auth-master.layout-7OSbK7SF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-auth-master.layout-7OSbK7SF.mjs","sources":["../../../../libs/modules/auth/src/lib/shared/layouts/master/master.layout.ts","../../../../libs/modules/auth/src/lib/shared/layouts/master/master.layout.html"],"sourcesContent":["import { AXPComponentSlotModule, AXPLogoComponent, AXP_PLATFORM_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AXM_AUTH_CONFIG_TOKEN } from '../../../auth.config';\r\n\r\n@Component({\r\n templateUrl: 'master.layout.html',\r\n styleUrls: ['master.layout.scss'],\r\n imports: [RouterModule, AXPLogoComponent, AXPComponentSlotModule],\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXPAuthMasterLayoutComponent {\r\n protected authConfig = inject(AXM_AUTH_CONFIG_TOKEN);\r\n protected platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);\r\n}\r\n","<div class=\"ax-w-full ax-h-full ax-flex\">\r\n <div class=\"ax-flex-1 ax-bg-surface ax-flex ax-flex-col ax-items-center ax-justify-between ax-py-12\">\r\n <router-outlet></router-outlet>\r\n <div class=\"ax-flex ax-justify-between\">\r\n <div class=\"auth-footer-links\">\r\n <axp-component-slot name=\"auth-footer-links\"></axp-component-slot>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ax-hidden lg:ax-flex ax-bg-primary-500 ax-flex-1 axp-auth-bk\">\r\n <div class=\"ax-flex ax-flex-col ax-text-primary-fore ax-justify-between ax-px-48 ax-py-20 ax-text-center\">\r\n <div>\r\n <axp-logo [source]=\"platformConfig.logo?.colored\" [attr.alt]=\"platformConfig.title\"\r\n class=\"ax-mx-auto ax-text-2xl\"></axp-logo>\r\n </div>\r\n <div>\r\n <p class=\"ax-font-black ax-text-4xl ax-mb-4\">\r\n {{authConfig.signinPage?.slogan}}\r\n </p>\r\n <p>\r\n {{authConfig.signinPage?.description}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAYa,4BAA4B,CAAA;AAPzC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC9D,KAAA;8GAHY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,wECZzC,0iCAyBM,EAAA,MAAA,EAAA,CAAA,+RAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjBM,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,wEAAE,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIrD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;8BAGC,CAAC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,EAAA,UAAA,EACrD,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,0iCAAA,EAAA,MAAA,EAAA,CAAA,+RAAA,CAAA,EAAA,CAAA;;;;;"}