@acorex-platform/module-auth-client 0.0.28 → 0.0.32

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 (55) hide show
  1. package/fesm2022/{acorex-platform-module-auth-client-acorex-platform-module-auth-client-CYmUn-lw.mjs → acorex-platform-module-auth-client-acorex-platform-module-auth-client-CPmffSrQ.mjs} +185 -52
  2. package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-CPmffSrQ.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-BVbu-f8h.mjs → acorex-platform-module-auth-client-app-chooser.component-BfOgjNxw.mjs} +3 -3
  4. package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-BVbu-f8h.mjs.map → acorex-platform-module-auth-client-app-chooser.component-BfOgjNxw.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-auth-client-change-password.command-DIM_d7RO.mjs → acorex-platform-module-auth-client-change-password.command-BcBbN5hX.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-module-auth-client-change-password.command-DIM_d7RO.mjs.map → acorex-platform-module-auth-client-change-password.command-BcBbN5hX.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-CYGqrJV0.mjs → acorex-platform-module-auth-client-change-photo.command-DfHUPj7p.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-CYGqrJV0.mjs.map → acorex-platform-module-auth-client-change-photo.command-DfHUPj7p.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-BTpibxe9.mjs → acorex-platform-module-auth-client-get-user-activity.query-D9fyLuBy.mjs} +16 -6
  10. package/fesm2022/acorex-platform-module-auth-client-get-user-activity.query-D9fyLuBy.mjs.map +1 -0
  11. package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-Br9O4b5c.mjs → acorex-platform-module-auth-client-lock-screen.command-DUZ255VK.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-Br9O4b5c.mjs.map → acorex-platform-module-auth-client-lock-screen.command-DUZ255VK.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-auth-client-login.module-DJVL3bAF.mjs → acorex-platform-module-auth-client-login.module-uRv9Gwea.mjs} +7 -7
  14. package/fesm2022/acorex-platform-module-auth-client-login.module-uRv9Gwea.mjs.map +1 -0
  15. package/fesm2022/{acorex-platform-module-auth-client-master.layout-DZUYm22p.mjs → acorex-platform-module-auth-client-master.layout-Cu8mQN9B.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-auth-client-master.layout-DZUYm22p.mjs.map → acorex-platform-module-auth-client-master.layout-Cu8mQN9B.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-LZKM9fgo.mjs → acorex-platform-module-auth-client-open-sessions.command-BlPxfa3v.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-LZKM9fgo.mjs.map → acorex-platform-module-auth-client-open-sessions.command-BlPxfa3v.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-module-auth-client-password.component-CNKRWfuG.mjs → acorex-platform-module-auth-client-password.component-5-0kaY5J.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-auth-client-password.component-CNKRWfuG.mjs.map → acorex-platform-module-auth-client-password.component-5-0kaY5J.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-kBmoYwRh.mjs +229 -0
  22. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-kBmoYwRh.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-6lNx6bKI.mjs → acorex-platform-module-auth-client-profile-page-component.provider-Bz1mdVCM.mjs} +3 -3
  24. package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-6lNx6bKI.mjs.map → acorex-platform-module-auth-client-profile-page-component.provider-Bz1mdVCM.mjs.map} +1 -1
  25. package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-CdxseoJX.mjs → acorex-platform-module-auth-client-profile-page.component-w2SYmCyc.mjs} +7 -3
  26. package/fesm2022/acorex-platform-module-auth-client-profile-page.component-w2SYmCyc.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-module-auth-client-register-password.component-D-tBrCJv.mjs → acorex-platform-module-auth-client-register-password.component-BtDgEnmo.mjs} +2 -2
  28. package/fesm2022/{acorex-platform-module-auth-client-register-password.component-D-tBrCJv.mjs.map → acorex-platform-module-auth-client-register-password.component-BtDgEnmo.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-module-auth-client-register.module-BrXqva0B.mjs → acorex-platform-module-auth-client-register.module-DCWoPb0u.mjs} +7 -7
  30. package/fesm2022/acorex-platform-module-auth-client-register.module-DCWoPb0u.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-uK04-h15.mjs → acorex-platform-module-auth-client-remove-pin-code.command-DJeSHCLL.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-uK04-h15.mjs.map → acorex-platform-module-auth-client-remove-pin-code.command-DJeSHCLL.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-BhsTAmVe.mjs → acorex-platform-module-auth-client-session-lock-overlay.component-3HJEmCYI.mjs} +2 -2
  34. package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-BhsTAmVe.mjs.map → acorex-platform-module-auth-client-session-lock-overlay.component-3HJEmCYI.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-BJT7F-xz.mjs → acorex-platform-module-auth-client-set-pin-code.command-C2kCGuQW.mjs} +3 -3
  36. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-BJT7F-xz.mjs.map → acorex-platform-module-auth-client-set-pin-code.command-C2kCGuQW.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-Cq4skm_3.mjs → acorex-platform-module-auth-client-set-pin-code.component-Dpdgw4KT.mjs} +2 -2
  38. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-Cq4skm_3.mjs.map → acorex-platform-module-auth-client-set-pin-code.component-Dpdgw4KT.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-CHmg7D5H.mjs → acorex-platform-module-auth-client-tenant-chooser.component-1Kv-LGZc.mjs} +2 -2
  40. package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-CHmg7D5H.mjs.map → acorex-platform-module-auth-client-tenant-chooser.component-1Kv-LGZc.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-module-auth-client-two-factor.module-_jYo6xXr.mjs → acorex-platform-module-auth-client-two-factor.module-BnH72Bob.mjs} +5 -5
  42. package/fesm2022/acorex-platform-module-auth-client-two-factor.module-BnH72Bob.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-ovj5rdHL.mjs → acorex-platform-module-auth-client-view-login-history.command-C_T4l61M.mjs} +2 -5
  44. package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-ovj5rdHL.mjs.map → acorex-platform-module-auth-client-view-login-history.command-C_T4l61M.mjs.map} +1 -1
  45. package/fesm2022/acorex-platform-module-auth-client.mjs +1 -1
  46. package/package.json +2 -2
  47. package/types/acorex-platform-module-auth-client.d.ts +37 -7
  48. package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-CYmUn-lw.mjs.map +0 -1
  49. package/fesm2022/acorex-platform-module-auth-client-get-user-activity.query-BTpibxe9.mjs.map +0 -1
  50. package/fesm2022/acorex-platform-module-auth-client-login.module-DJVL3bAF.mjs.map +0 -1
  51. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-CtSrYARX.mjs +0 -150
  52. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-CtSrYARX.mjs.map +0 -1
  53. package/fesm2022/acorex-platform-module-auth-client-profile-page.component-CdxseoJX.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-module-auth-client-register.module-BrXqva0B.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-module-auth-client-two-factor.module-_jYo6xXr.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-auth-client-tenant-chooser.component-CHmg7D5H.mjs","sources":["../../../../libs/modules/auth/client/src/lib/pages/account/tenant-chooser/tenant-chooser.component.ts","../../../../libs/modules/auth/client/src/lib/pages/account/tenant-chooser/tenant-chooser.component.html"],"sourcesContent":["import { Component, ViewEncapsulation, inject, ChangeDetectionStrategy, signal } from '@angular/core';\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPPlatformBrandingService } from '@acorex-platform/framework-client/common';\nimport { AXPLogoComponent } from '@acorex-platform/framework-client/core';\nimport { AXPUserAvatarComponent } from '@acorex-platform/framework-client/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { AXPTenantChooserListComponent } from './tenant-chooser-list.component';\n\n@Component({\n selector: 'axp-auth-tenant-chooser',\n templateUrl: './tenant-chooser.component.html',\n styleUrls: ['../shared/auth-chooser.layout.css', './tenant-chooser.component.css'],\n imports: [\n CommonModule,\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXImageModule,\n AXDecoratorModule,\n AXPLogoComponent,\n AXLoadingModule,\n AXSkeletonModule,\n AXTranslationModule,\n AXPUserAvatarComponent,\n AXPTenantChooserListComponent,\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPAuthTenantChooserComponent {\n private router = inject(Router);\n private readonly platformBranding = inject(AXPPlatformBrandingService);\n protected readonly platformTitle = signal('');\n private sessionService = inject(AXPSessionService);\n\n constructor() {\n void this.platformBranding.resolvePlatformTitle().then((title) => this.platformTitle.set(title));\n }\n\n protected user = this.sessionService.user;\n protected catalogLoading = signal(true);\n\n handleCatalogLoading(loading: boolean): void {\n this.catalogLoading.set(loading);\n }\n\n async handleSignout() {\n await this.sessionService.signout();\n this.router.navigate(['/auth/login']);\n }\n}\n","<main *translate=\"let t\" class=\"axp-auth-chooser\">\n <div class=\"axp-auth-chooser__inner\">\n <!-- ----- Platform branding ----- -->\n <section class=\"axp-auth-chooser__brand\">\n <axp-logo\n logoKey=\"platform\"\n appearance=\"onLight\"\n format=\"full\"\n [size]=\"260\"\n [attr.alt]=\"platformTitle()\"\n ></axp-logo>\n </section>\n <!-- ----- Tenant selection card ----- -->\n <section class=\"axp-auth-chooser__card-wrap\">\n <div class=\"axp-auth-chooser__card\">\n <!-- ----- Profile header while catalog loads ----- -->\n @if (catalogLoading()) {\n <ax-skeleton [animated]=\"true\" class=\"size-[72px] rounded-full shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"h-6 w-56 max-w-full\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"h-4 w-64 max-w-full\"></ax-skeleton>\n } @else {\n <axp-user-avatar\n [size]=\"72\"\n [userId]=\"$safeNavigationMigration(user?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n <h2 class=\"md:text-lg font-medium\">\n {{ '@auth:welcome.message' | translate | async }}, {{ user?.title }}\n </h2>\n <p class=\"text-neutral-500 text-sm md:text-base font-medium\">\n {{ '@auth:tenant-chooser.description' | translate | async }}\n </p>\n }\n <div class=\"mt-3 w-full\">\n <axp-tenant-chooser-list (loadingChange)=\"handleCatalogLoading($event)\"></axp-tenant-chooser-list>\n </div>\n </div>\n </section>\n <!-- ----- Sign-out footer ----- -->\n <section class=\"axp-auth-chooser__footer\">\n <p class=\"text-neutral-400 text-sm\">\n {{ '@auth:tenant-chooser.footer' | translate | async }}\n <a (click)=\"handleSignout()\" class=\"text-primary cursor-pointer hover:underline font-medium\">\n {{ '@auth:backLogin' | translate | async }}\n </a>\n </p>\n </section>\n </div>\n</main>\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-auth-client-tenant-chooser.component-1Kv-LGZc.mjs","sources":["../../../../libs/modules/auth/client/src/lib/pages/account/tenant-chooser/tenant-chooser.component.ts","../../../../libs/modules/auth/client/src/lib/pages/account/tenant-chooser/tenant-chooser.component.html"],"sourcesContent":["import { Component, ViewEncapsulation, inject, ChangeDetectionStrategy, signal } from '@angular/core';\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPPlatformBrandingService } from '@acorex-platform/framework-client/common';\nimport { AXPLogoComponent } from '@acorex-platform/framework-client/core';\nimport { AXPUserAvatarComponent } from '@acorex-platform/framework-client/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { AXPTenantChooserListComponent } from './tenant-chooser-list.component';\n\n@Component({\n selector: 'axp-auth-tenant-chooser',\n templateUrl: './tenant-chooser.component.html',\n styleUrls: ['../shared/auth-chooser.layout.css', './tenant-chooser.component.css'],\n imports: [\n CommonModule,\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXImageModule,\n AXDecoratorModule,\n AXPLogoComponent,\n AXLoadingModule,\n AXSkeletonModule,\n AXTranslationModule,\n AXPUserAvatarComponent,\n AXPTenantChooserListComponent,\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPAuthTenantChooserComponent {\n private router = inject(Router);\n private readonly platformBranding = inject(AXPPlatformBrandingService);\n protected readonly platformTitle = signal('');\n private sessionService = inject(AXPSessionService);\n\n constructor() {\n void this.platformBranding.resolvePlatformTitle().then((title) => this.platformTitle.set(title));\n }\n\n protected user = this.sessionService.user;\n protected catalogLoading = signal(true);\n\n handleCatalogLoading(loading: boolean): void {\n this.catalogLoading.set(loading);\n }\n\n async handleSignout() {\n await this.sessionService.signout();\n this.router.navigate(['/auth/login']);\n }\n}\n","<main *translate=\"let t\" class=\"axp-auth-chooser\">\n <div class=\"axp-auth-chooser__inner\">\n <!-- ----- Platform branding ----- -->\n <section class=\"axp-auth-chooser__brand\">\n <axp-logo\n logoKey=\"platform\"\n appearance=\"onLight\"\n format=\"full\"\n [size]=\"260\"\n [attr.alt]=\"platformTitle()\"\n ></axp-logo>\n </section>\n <!-- ----- Tenant selection card ----- -->\n <section class=\"axp-auth-chooser__card-wrap\">\n <div class=\"axp-auth-chooser__card\">\n <!-- ----- Profile header while catalog loads ----- -->\n @if (catalogLoading()) {\n <ax-skeleton [animated]=\"true\" class=\"size-[72px] rounded-full shrink-0\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"h-6 w-56 max-w-full\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"h-4 w-64 max-w-full\"></ax-skeleton>\n } @else {\n <axp-user-avatar\n [size]=\"72\"\n [userId]=\"$safeNavigationMigration(user?.id)!\"\n [showPresence]=\"false\"\n ></axp-user-avatar>\n <h2 class=\"md:text-lg font-medium\">\n {{ '@auth:welcome.message' | translate | async }}, {{ user?.title }}\n </h2>\n <p class=\"text-neutral-500 text-sm md:text-base font-medium\">\n {{ '@auth:tenant-chooser.description' | translate | async }}\n </p>\n }\n <div class=\"mt-3 w-full\">\n <axp-tenant-chooser-list (loadingChange)=\"handleCatalogLoading($event)\"></axp-tenant-chooser-list>\n </div>\n </div>\n </section>\n <!-- ----- Sign-out footer ----- -->\n <section class=\"axp-auth-chooser__footer\">\n <p class=\"text-neutral-400 text-sm\">\n {{ '@auth:tenant-chooser.footer' | translate | async }}\n <a (click)=\"handleSignout()\" class=\"text-primary cursor-pointer hover:underline font-medium\">\n {{ '@auth:backLogin' | translate | async }}\n </a>\n </p>\n </section>\n </div>\n</main>\n"],"names":["i2"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { NgModule } from '@angular/core';
3
- import { RouterModule, ROUTES } from '@angular/router';
3
+ import { ROUTES } from '@angular/router';
4
4
 
5
5
  function routesFacory() {
6
6
  const routes = [
@@ -13,20 +13,20 @@ function routesFacory() {
13
13
  }
14
14
  class AXPTwoFactorModule {
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTwoFactorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPTwoFactorModule, imports: [RouterModule] }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPTwoFactorModule }); }
17
17
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTwoFactorModule, providers: [
18
18
  {
19
19
  provide: ROUTES,
20
20
  multi: true,
21
21
  useFactory: routesFacory,
22
22
  },
23
- ], imports: [RouterModule] }); }
23
+ ] }); }
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTwoFactorModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [],
29
- imports: [RouterModule],
29
+ imports: [],
30
30
  exports: [],
31
31
  providers: [
32
32
  {
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
39
39
  }] });
40
40
 
41
41
  export { AXPTwoFactorModule };
42
- //# sourceMappingURL=acorex-platform-module-auth-client-two-factor.module-_jYo6xXr.mjs.map
42
+ //# sourceMappingURL=acorex-platform-module-auth-client-two-factor.module-BnH72Bob.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-auth-client-two-factor.module-BnH72Bob.mjs","sources":["../../../../libs/modules/auth/client/src/lib/pages/two-factor/two-factor.module.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\n\nfunction routesFacory() {\n const routes: Routes = [\n {\n path: 'two-step',\n loadComponent: () =>\n import('./two-factor-code/two-factor-code.component').then((c) => c.AXPAuthTwoFactorCodeComponent),\n },\n ];\n return routes;\n}\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n ],\n})\nexport class AXPTwoFactorModule {}\n"],"names":[],"mappings":";;;;AAGA,SAAS,YAAY,GAAA;AACnB,IAAA,MAAM,MAAM,GAAW;AACrB,QAAA;AACE,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,aAAa,EAAE,MACb,OAAO,6EAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC;AACrG,SAAA;KACF;AACD,IAAA,OAAO,MAAM;AACf;MAca,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAlB,kBAAkB,EAAA,CAAA,CAAA;AAAlB,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,kBAAkB,EAAA,SAAA,EARlB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,YAAY;AACzB,aAAA;AACF,SAAA,EAAA,CAAA,CAAA;;2FAEU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,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;;;;;"}
@@ -3,7 +3,7 @@ import { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layou
3
3
  import * as i0 from '@angular/core';
4
4
  import { inject, Injectable } from '@angular/core';
5
5
  import { isEmpty } from 'lodash';
6
- import { q as AXPLoginHistoryService } from './acorex-platform-module-auth-client-acorex-platform-module-auth-client-CYmUn-lw.mjs';
6
+ import { s as AXPLoginHistoryService } from './acorex-platform-module-auth-client-acorex-platform-module-auth-client-CPmffSrQ.mjs';
7
7
 
8
8
  //#region ---- View login history command ----
9
9
  /** Opens a read-only dialog listing recent sign-in attempts for the current user. */
@@ -78,9 +78,6 @@ class AXPViewLoginHistoryCommand {
78
78
  });
79
79
  });
80
80
  }
81
- dialog.setActions((actions) => {
82
- actions.cancel('@general:actions.close.title');
83
- });
84
81
  })
85
82
  .show();
86
83
  return {
@@ -107,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
107
104
  }] });
108
105
 
109
106
  export { AXPViewLoginHistoryCommand };
110
- //# sourceMappingURL=acorex-platform-module-auth-client-view-login-history.command-ovj5rdHL.mjs.map
107
+ //# sourceMappingURL=acorex-platform-module-auth-client-view-login-history.command-C_T4l61M.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-auth-client-view-login-history.command-ovj5rdHL.mjs","sources":["../../../../libs/modules/auth/client/src/lib/commands/view-login-history.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';\n\nimport { inject, Injectable } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { AXPLoginHistoryEntry, AXPLoginHistoryService } from '../shared/services/login-history.service';\n\n//#region ---- View login history command ----\n\n/** Opens a read-only dialog listing recent sign-in attempts for the current user. */\n@Injectable({ providedIn: 'root' })\nexport class AXPViewLoginHistoryCommand implements AXPCommand {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly loginHistoryService = inject(AXPLoginHistoryService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(): AXPCommandExecuteResultPromise<void> {\n const entries = await this.loginHistoryService.getEntries();\n const rows = await this.buildRows(entries);\n\n const dialogTitle = await this.translateService.translateAsync(\n '@auth:profile-page.commands.view-login-history.dialog.title',\n );\n\n await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog.setTitle(dialogTitle).setSize('lg').setCloseButton(true);\n\n if (isEmpty(rows)) {\n dialog.setMessage('@auth:profile-page.commands.view-login-history.empty');\n } else {\n dialog.content((layout) => {\n layout.list((list) => {\n list\n .setDataSource(rows)\n .setColumns([\n {\n name: 'lastLoginDate',\n title: '@auth:profile-page.commands.view-login-history.columns.date',\n width: '180px',\n widget: {\n type: 'date-time-editor',\n path: 'lastLoginDate',\n options: { format: 'datetime', readOnly: true },\n },\n },\n {\n name: 'device',\n title: '@auth:profile-page.commands.view-login-history.columns.device',\n widget: { type: 'text-editor', path: 'device', options: { readOnly: true } },\n },\n {\n name: 'location',\n title: '@auth:profile-page.commands.view-login-history.columns.location',\n widget: { type: 'text-editor', path: 'location', options: { readOnly: true } },\n },\n {\n name: 'ipAddress',\n title: '@auth:profile-page.commands.view-login-history.columns.ip-address',\n width: '140px',\n widget: { type: 'text-editor', path: 'ipAddress', options: { readOnly: true } },\n },\n {\n name: 'browser',\n title: '@auth:profile-page.commands.view-login-history.columns.browser',\n widget: { type: 'text-editor', path: 'browser', options: { readOnly: true } },\n },\n {\n name: 'statusLabel',\n title: '@auth:profile-page.commands.view-login-history.columns.status',\n width: '120px',\n widget: { type: 'text-editor', path: 'statusLabel', options: { readOnly: true } },\n },\n ])\n .setPaging(true)\n .setShowHeader(true)\n .setAllowSelection(false)\n .setMinHeight(360);\n });\n });\n }\n\n dialog.setActions((actions) => {\n actions.cancel('@general:actions.close.title');\n });\n })\n .show();\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private async buildRows(\n entries: AXPLoginHistoryEntry[],\n ): Promise<Array<AXPLoginHistoryEntry & { statusLabel: string }>> {\n return Promise.all(\n entries.map(async (entry) => ({\n ...entry,\n statusLabel: await this.translateService.translateAsync(\n `@auth:profile-page.commands.view-login-history.status.${entry.status}`,\n ),\n })),\n );\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-auth-client-view-login-history.command-C_T4l61M.mjs","sources":["../../../../libs/modules/auth/client/src/lib/commands/view-login-history.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';\n\nimport { inject, Injectable } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { AXPLoginHistoryEntry, AXPLoginHistoryService } from '../shared/services/login-history.service';\n\n//#region ---- View login history command ----\n\n/** Opens a read-only dialog listing recent sign-in attempts for the current user. */\n@Injectable({ providedIn: 'root' })\nexport class AXPViewLoginHistoryCommand implements AXPCommand {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly loginHistoryService = inject(AXPLoginHistoryService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(): AXPCommandExecuteResultPromise<void> {\n const entries = await this.loginHistoryService.getEntries();\n const rows = await this.buildRows(entries);\n\n const dialogTitle = await this.translateService.translateAsync(\n '@auth:profile-page.commands.view-login-history.dialog.title',\n );\n\n await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog.setTitle(dialogTitle).setSize('lg').setCloseButton(true);\n\n if (isEmpty(rows)) {\n dialog.setMessage('@auth:profile-page.commands.view-login-history.empty');\n } else {\n dialog.content((layout) => {\n layout.list((list) => {\n list\n .setDataSource(rows)\n .setColumns([\n {\n name: 'lastLoginDate',\n title: '@auth:profile-page.commands.view-login-history.columns.date',\n width: '180px',\n widget: {\n type: 'date-time-editor',\n path: 'lastLoginDate',\n options: { format: 'datetime', readOnly: true },\n },\n },\n {\n name: 'device',\n title: '@auth:profile-page.commands.view-login-history.columns.device',\n widget: { type: 'text-editor', path: 'device', options: { readOnly: true } },\n },\n {\n name: 'location',\n title: '@auth:profile-page.commands.view-login-history.columns.location',\n widget: { type: 'text-editor', path: 'location', options: { readOnly: true } },\n },\n {\n name: 'ipAddress',\n title: '@auth:profile-page.commands.view-login-history.columns.ip-address',\n width: '140px',\n widget: { type: 'text-editor', path: 'ipAddress', options: { readOnly: true } },\n },\n {\n name: 'browser',\n title: '@auth:profile-page.commands.view-login-history.columns.browser',\n widget: { type: 'text-editor', path: 'browser', options: { readOnly: true } },\n },\n {\n name: 'statusLabel',\n title: '@auth:profile-page.commands.view-login-history.columns.status',\n width: '120px',\n widget: { type: 'text-editor', path: 'statusLabel', options: { readOnly: true } },\n },\n ])\n .setPaging(true)\n .setShowHeader(true)\n .setAllowSelection(false)\n .setMinHeight(360);\n });\n });\n }\n })\n .show();\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private async buildRows(\n entries: AXPLoginHistoryEntry[],\n ): Promise<Array<AXPLoginHistoryEntry & { statusLabel: string }>> {\n return Promise.all(\n entries.map(async (entry) => ({\n ...entry,\n statusLabel: await this.translateService.translateAsync(\n `@auth:profile-page.commands.view-login-history.status.${entry.status}`,\n ),\n })),\n );\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT, E as AUTH_USER_ACTIVITY_DEFAULT_WEEKS, F as AXMAuthErrorHandler, G as AXMAuthModule, s as AXMAuthPlatformSettingsService, B as AXMAuthenticationTypes, H as AXMDefaultAuthConfigs, I as AXM_AUTH_CONFIG_TOKEN, t as AXM_LOGIN_GUARD_TOKEN, l as AXPAuthPasswordChangeTrackingService, i as AXPIdleLockService, z as AXPLoginExternalProvidersComponent, q as AXPLoginHistoryService, j as AXPUserAvatarSyncService, P as PROFILE_PAGE_GROUPS_HOOK, b as PROFILE_PAGE_HEADER_META_HOOK, a as PROFILE_PAGE_SECTIONS_HOOK, J as aggregateDailySessionCounts, h as buildUserActivityDataSourceItem, K as buildUserActivityWeeks, L as canActivateLogin, M as computeUserActivityStats, N as configAuthModule, O as countToActivityLevel, Q as extractUserActivityEndDate, R as extractUserActivityStartDate, S as extractUserActivityUserId, y as formatCompactActivityCount, T as isUserProfileGroupComponent, U as isUserProfileSectionsGroupRequested, V as parseAuthCredentialType, g as resolveDefaultUserActivityDateRange, r as resolveDefaultUserProfileSectionAction, c as resolveUserProfileSectionContent, v as visibleUserProfileSectionActions } from './acorex-platform-module-auth-client-acorex-platform-module-auth-client-CYmUn-lw.mjs';
1
+ export { E as AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT, F as AUTH_USER_ACTIVITY_CLUSTER_GAP_DAYS, G as AUTH_USER_ACTIVITY_DEFAULT_WEEKS, H as AUTH_USER_ACTIVITY_WEEK_PRESETS, I as AXMAuthErrorHandler, J as AXMAuthModule, t as AXMAuthPlatformSettingsService, D as AXMAuthenticationTypes, K as AXMDefaultAuthConfigs, L as AXM_AUTH_CONFIG_TOKEN, u as AXM_LOGIN_GUARD_TOKEN, m as AXPAuthPasswordChangeTrackingService, j as AXPIdleLockService, B as AXPLoginExternalProvidersComponent, s as AXPLoginHistoryService, k as AXPUserAvatarSyncService, P as PROFILE_PAGE_GROUPS_HOOK, b as PROFILE_PAGE_HEADER_META_HOOK, a as PROFILE_PAGE_SECTIONS_HOOK, M as aggregateDailySessionCounts, N as aggregateHourlySessionCounts, i as buildUserActivityDataSourceItem, O as buildUserActivityHours, Q as buildUserActivityWeeks, R as canActivateLogin, S as computeUserActivityStats, T as configAuthModule, U as countToActivityLevel, V as extractUserActivityEndDate, W as extractUserActivityStartDate, X as extractUserActivityUserId, z as formatCompactActivityCount, Y as isUserProfileGroupComponent, Z as isUserProfileSectionsGroupRequested, _ as parseAuthCredentialType, $ as resolveDayDateRange, g as resolveDefaultUserActivityDateRange, r as resolveDefaultUserProfileSectionAction, h as resolveSmartUserActivityDateRange, a0 as resolveUserActivityHeatmapLayout, c as resolveUserProfileSectionContent, v as visibleUserProfileSectionActions } from './acorex-platform-module-auth-client-acorex-platform-module-auth-client-CPmffSrQ.mjs';
2
2
  //# sourceMappingURL=acorex-platform-module-auth-client.mjs.map
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-auth-client",
3
- "version": "0.0.28",
3
+ "version": "0.0.32",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/module-security-management-client": "0.0.28",
6
+ "@acorex-platform/module-security-management-client": "0.0.32",
7
7
  "@angular/common": "^21.0.0 || ^22.0.0",
8
8
  "@angular/core": "^21.0.0 || ^22.0.0"
9
9
  },
@@ -3,12 +3,12 @@ import * as i0 from '@angular/core';
3
3
  import { InjectionToken } from '@angular/core';
4
4
  import { AXMSecurityManagementDeviceSessionsEntityModel } from '@acorex-platform/module-security-management-client/contracts';
5
5
  import { AXDataSourceFilterOption } from '@acorex/cdk/common';
6
- import * as i2$1 from '@acorex-platform/framework-client/common';
6
+ import * as i2 from '@acorex-platform/framework-client/common';
7
7
  import { AXPErrorHandler } from '@acorex-platform/framework-client/common';
8
- import * as i1 from '@angular/router';
8
+ import * as i3 from '@angular/router';
9
9
  import { CanActivateFn } from '@angular/router';
10
10
  import * as i1$2 from '@angular/common';
11
- import * as i2 from '@acorex-platform/framework-client/core';
11
+ import * as i1 from '@acorex-platform/framework-client/core';
12
12
  import * as i1$1 from '@acorex/core/validation';
13
13
 
14
14
  declare const PROFILE_PAGE_GROUPS_HOOK = "profile-page.groups";
@@ -144,11 +144,18 @@ declare class AXPUserAvatarSyncService {
144
144
  }
145
145
 
146
146
  type AXPUserActivityLevel = 0 | 1 | 2 | 3 | 4;
147
+ /** How the profile heatmap should be drawn for the chosen window. */
148
+ type AXPUserActivityHeatmapLayout = 'hours' | 'days' | 'calendar';
147
149
  interface AXPUserActivityDay {
148
150
  date: string;
149
151
  count: number;
150
152
  level: AXPUserActivityLevel;
151
153
  }
154
+ interface AXPUserActivityHour {
155
+ hour: number;
156
+ count: number;
157
+ level: AXPUserActivityLevel;
158
+ }
152
159
  interface AXPUserActivityWeek {
153
160
  days: AXPUserActivityDay[];
154
161
  }
@@ -164,7 +171,9 @@ interface AXPUserActivityDataSourceItem {
164
171
  userId: string;
165
172
  startDate: string;
166
173
  endDate: string;
174
+ layout: AXPUserActivityHeatmapLayout;
167
175
  weeks: AXPUserActivityWeek[];
176
+ hours: AXPUserActivityHour[];
168
177
  stats: AXPUserActivityStats;
169
178
  }
170
179
  interface AXPUserActivityLoadParams {
@@ -174,12 +183,33 @@ interface AXPUserActivityLoadParams {
174
183
  }
175
184
 
176
185
  declare const AUTH_USER_ACTIVITY_DEFAULT_WEEKS = 53;
186
+ /** Ignore an older sign-in cluster when the gap to the next newer day exceeds this. */
187
+ declare const AUTH_USER_ACTIVITY_CLUSTER_GAP_DAYS = 14;
188
+ /** Week / month / quarter / year heatmap windows, smallest first. */
189
+ declare const AUTH_USER_ACTIVITY_WEEK_PRESETS: readonly [1, 2, 5, 13, 53];
177
190
  declare function resolveDefaultUserActivityDateRange(weeksToShow?: number, referenceDate?: Date): {
178
191
  startDate: Date;
179
192
  endDate: Date;
180
193
  };
194
+ /**
195
+ * Auto heatmap window from recent sign-in days.
196
+ * Walks backward from the latest sign-in and drops an older cluster when the gap
197
+ * exceeds {@link AUTH_USER_ACTIVITY_CLUSTER_GAP_DAYS}. Empty users get one week.
198
+ */
199
+ declare function resolveSmartUserActivityDateRange(sessions: ReadonlyArray<AXMSecurityManagementDeviceSessionsEntityModel>, userId: string, referenceDate?: Date): {
200
+ startDate: Date;
201
+ endDate: Date;
202
+ };
203
+ declare function resolveDayDateRange(day: Date): {
204
+ startDate: Date;
205
+ endDate: Date;
206
+ };
207
+ declare function resolveUserActivityHeatmapLayout(startDate: Date, endDate: Date): AXPUserActivityHeatmapLayout;
181
208
  /** Counts sign-in events per calendar day from device session rows. */
182
209
  declare function aggregateDailySessionCounts(sessions: ReadonlyArray<AXMSecurityManagementDeviceSessionsEntityModel>, params: AXPUserActivityLoadParams): Map<string, number>;
210
+ /** Counts sign-in events per local hour from device session rows. */
211
+ declare function aggregateHourlySessionCounts(sessions: ReadonlyArray<AXMSecurityManagementDeviceSessionsEntityModel>, params: AXPUserActivityLoadParams): number[];
212
+ declare function buildUserActivityHours(hourlyCounts: readonly number[]): AXPUserActivityHour[];
183
213
  declare function countToActivityLevel(count: number): AXPUserActivityLevel;
184
214
  declare function buildUserActivityWeeks(params: AXPUserActivityLoadParams, dailyCounts: ReadonlyMap<string, number>): AXPUserActivityWeek[];
185
215
  declare function computeUserActivityStats(weeks: AXPUserActivityWeek[]): AXPUserActivityStats;
@@ -254,7 +284,7 @@ declare class AXMAuthPlatformSettingsService {
254
284
 
255
285
  declare class AXPAccountModule {
256
286
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPAccountModule, never>;
257
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXPAccountModule, never, [typeof i1.RouterModule, typeof i2.AXPComponentSlotModule], never>;
287
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPAccountModule, never, [typeof i1.AXPComponentSlotModule], never>;
258
288
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPAccountModule>;
259
289
  }
260
290
 
@@ -267,7 +297,7 @@ declare class AXMAuthValidationRulesModule {
267
297
  declare class AXMAuthModule {
268
298
  constructor();
269
299
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMAuthModule, never>;
270
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXMAuthModule, never, [typeof i1$2.CommonModule, typeof i2$1.AXPCommonModule, typeof i1.RouterModule, typeof AXPAccountModule, typeof AXMAuthValidationRulesModule], never>;
300
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMAuthModule, never, [typeof i1$2.CommonModule, typeof i2.AXPCommonModule, typeof i3.RouterModule, typeof AXPAccountModule, typeof AXMAuthValidationRulesModule], never>;
271
301
  static ɵinj: i0.ɵɵInjectorDeclaration<AXMAuthModule>;
272
302
  }
273
303
 
@@ -393,5 +423,5 @@ declare class AXPAuthPasswordChangeTrackingService {
393
423
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPAuthPasswordChangeTrackingService>;
394
424
  }
395
425
 
396
- export { AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT, AUTH_USER_ACTIVITY_DEFAULT_WEEKS, AXMAuthErrorHandler, AXMAuthModule, AXMAuthPlatformSettingsService, AXMAuthenticationTypes, AXMDefaultAuthConfigs, AXM_AUTH_CONFIG_TOKEN, AXM_LOGIN_GUARD_TOKEN, AXPAuthPasswordChangeTrackingService, AXPIdleLockService, AXPLoginExternalProvidersComponent, AXPLoginHistoryService, AXPUserAvatarSyncService, PROFILE_PAGE_GROUPS_HOOK, PROFILE_PAGE_HEADER_META_HOOK, PROFILE_PAGE_SECTIONS_HOOK, aggregateDailySessionCounts, buildUserActivityDataSourceItem, buildUserActivityWeeks, canActivateLogin, computeUserActivityStats, configAuthModule, countToActivityLevel, extractUserActivityEndDate, extractUserActivityStartDate, extractUserActivityUserId, formatCompactActivityCount, isUserProfileGroupComponent, isUserProfileSectionsGroupRequested, parseAuthCredentialType, resolveDefaultUserActivityDateRange, resolveDefaultUserProfileSectionAction, resolveUserProfileSectionContent, visibleUserProfileSectionActions };
397
- export type { AXMAuthClientConfig, AXMAuthConfigs, AXPLoginHistoryEntry, AXPUserActivityDataSourceItem, AXPUserActivityDay, AXPUserActivityLevel, AXPUserActivityLoadParams, AXPUserActivityStats, AXPUserActivityWeek, AXPUserProfileGroup, AXPUserProfileGroupComponentContent, AXPUserProfileGroupContent, AXPUserProfileGroupSectionsContent, AXPUserProfileGroupsPayload, AXPUserProfileHeaderMetaItem, AXPUserProfileHeaderMetaPayload, AXPUserProfileSection, AXPUserProfileSectionAction, AXPUserProfileSectionCardContent, AXPUserProfileSectionComponentContent, AXPUserProfileSectionContent, AXPUserProfileSectionInsight, AXPUserProfileSectionLayout, AXPUserProfileSectionsPayload };
426
+ export { AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT, AUTH_USER_ACTIVITY_CLUSTER_GAP_DAYS, AUTH_USER_ACTIVITY_DEFAULT_WEEKS, AUTH_USER_ACTIVITY_WEEK_PRESETS, AXMAuthErrorHandler, AXMAuthModule, AXMAuthPlatformSettingsService, AXMAuthenticationTypes, AXMDefaultAuthConfigs, AXM_AUTH_CONFIG_TOKEN, AXM_LOGIN_GUARD_TOKEN, AXPAuthPasswordChangeTrackingService, AXPIdleLockService, AXPLoginExternalProvidersComponent, AXPLoginHistoryService, AXPUserAvatarSyncService, PROFILE_PAGE_GROUPS_HOOK, PROFILE_PAGE_HEADER_META_HOOK, PROFILE_PAGE_SECTIONS_HOOK, aggregateDailySessionCounts, aggregateHourlySessionCounts, buildUserActivityDataSourceItem, buildUserActivityHours, buildUserActivityWeeks, canActivateLogin, computeUserActivityStats, configAuthModule, countToActivityLevel, extractUserActivityEndDate, extractUserActivityStartDate, extractUserActivityUserId, formatCompactActivityCount, isUserProfileGroupComponent, isUserProfileSectionsGroupRequested, parseAuthCredentialType, resolveDayDateRange, resolveDefaultUserActivityDateRange, resolveDefaultUserProfileSectionAction, resolveSmartUserActivityDateRange, resolveUserActivityHeatmapLayout, resolveUserProfileSectionContent, visibleUserProfileSectionActions };
427
+ export type { AXMAuthClientConfig, AXMAuthConfigs, AXPLoginHistoryEntry, AXPUserActivityDataSourceItem, AXPUserActivityDay, AXPUserActivityHeatmapLayout, AXPUserActivityHour, AXPUserActivityLevel, AXPUserActivityLoadParams, AXPUserActivityStats, AXPUserActivityWeek, AXPUserProfileGroup, AXPUserProfileGroupComponentContent, AXPUserProfileGroupContent, AXPUserProfileGroupSectionsContent, AXPUserProfileGroupsPayload, AXPUserProfileHeaderMetaItem, AXPUserProfileHeaderMetaPayload, AXPUserProfileSection, AXPUserProfileSectionAction, AXPUserProfileSectionCardContent, AXPUserProfileSectionComponentContent, AXPUserProfileSectionContent, AXPUserProfileSectionInsight, AXPUserProfileSectionLayout, AXPUserProfileSectionsPayload };