@acorex-platform/module-auth-client 0.0.30 → 0.0.33

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 (51) hide show
  1. package/fesm2022/{acorex-platform-module-auth-client-acorex-platform-module-auth-client-BJduAePW.mjs → acorex-platform-module-auth-client-acorex-platform-module-auth-client-CTf7qxkQ.mjs} +199 -60
  2. package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-CTf7qxkQ.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-BeXTcP-B.mjs → acorex-platform-module-auth-client-app-chooser.component-TPCkYJej.mjs} +3 -3
  4. package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-BeXTcP-B.mjs.map → acorex-platform-module-auth-client-app-chooser.component-TPCkYJej.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-auth-client-change-password.command-BiAjSn5C.mjs → acorex-platform-module-auth-client-change-password.command-DHwnPkUO.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-module-auth-client-change-password.command-BiAjSn5C.mjs.map → acorex-platform-module-auth-client-change-password.command-DHwnPkUO.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-BrQVX8wA.mjs → acorex-platform-module-auth-client-change-photo.command-BZK_W29M.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-BrQVX8wA.mjs.map → acorex-platform-module-auth-client-change-photo.command-BZK_W29M.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-ChzxVhRM.mjs → acorex-platform-module-auth-client-get-user-activity.query-DBdELID4.mjs} +16 -6
  10. package/fesm2022/acorex-platform-module-auth-client-get-user-activity.query-DBdELID4.mjs.map +1 -0
  11. package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-tuEnmBqT.mjs → acorex-platform-module-auth-client-lock-screen.command-BADSRZxj.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-tuEnmBqT.mjs.map → acorex-platform-module-auth-client-lock-screen.command-BADSRZxj.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-auth-client-login.module-CXYUlOPx.mjs → acorex-platform-module-auth-client-login.module-DushGqH6.mjs} +3 -3
  14. package/fesm2022/{acorex-platform-module-auth-client-login.module-CXYUlOPx.mjs.map → acorex-platform-module-auth-client-login.module-DushGqH6.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-auth-client-master.layout-WlPLf7po.mjs → acorex-platform-module-auth-client-master.layout-BLUWyFTY.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-auth-client-master.layout-WlPLf7po.mjs.map → acorex-platform-module-auth-client-master.layout-BLUWyFTY.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-DcMF_kGc.mjs → acorex-platform-module-auth-client-open-sessions.command-BHAf7500.mjs} +13 -23
  18. package/fesm2022/acorex-platform-module-auth-client-open-sessions.command-BHAf7500.mjs.map +1 -0
  19. package/fesm2022/{acorex-platform-module-auth-client-password.component-DPPz48en.mjs → acorex-platform-module-auth-client-password.component-D5QDAaKY.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-auth-client-password.component-DPPz48en.mjs.map → acorex-platform-module-auth-client-password.component-D5QDAaKY.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-o7Eq3zuR.mjs +229 -0
  22. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-o7Eq3zuR.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-BkR63GX0.mjs → acorex-platform-module-auth-client-profile-page-component.provider-CfQySdD8.mjs} +3 -3
  24. package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-BkR63GX0.mjs.map → acorex-platform-module-auth-client-profile-page-component.provider-CfQySdD8.mjs.map} +1 -1
  25. package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-jhc0ZSSB.mjs → acorex-platform-module-auth-client-profile-page.component-CPHQXCpS.mjs} +7 -3
  26. package/fesm2022/acorex-platform-module-auth-client-profile-page.component-CPHQXCpS.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-module-auth-client-register-password.component-p_aNCzTQ.mjs → acorex-platform-module-auth-client-register-password.component-BMHOG5m4.mjs} +2 -2
  28. package/fesm2022/{acorex-platform-module-auth-client-register-password.component-p_aNCzTQ.mjs.map → acorex-platform-module-auth-client-register-password.component-BMHOG5m4.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-module-auth-client-register.module-ht9ZxSLU.mjs → acorex-platform-module-auth-client-register.module-CFIHZOYj.mjs} +3 -3
  30. package/fesm2022/{acorex-platform-module-auth-client-register.module-ht9ZxSLU.mjs.map → acorex-platform-module-auth-client-register.module-CFIHZOYj.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-BHIn0igt.mjs → acorex-platform-module-auth-client-remove-pin-code.command-CdlJF48g.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-BHIn0igt.mjs.map → acorex-platform-module-auth-client-remove-pin-code.command-CdlJF48g.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-Dy21tFJ1.mjs → acorex-platform-module-auth-client-session-lock-overlay.component-CcGFA6Op.mjs} +2 -2
  34. package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-Dy21tFJ1.mjs.map → acorex-platform-module-auth-client-session-lock-overlay.component-CcGFA6Op.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-CHEfCVZU.mjs → acorex-platform-module-auth-client-set-pin-code.command-BSZhRCN7.mjs} +3 -3
  36. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-CHEfCVZU.mjs.map → acorex-platform-module-auth-client-set-pin-code.command-BSZhRCN7.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-CrYXfzCf.mjs → acorex-platform-module-auth-client-set-pin-code.component-Bm32dRFz.mjs} +2 -2
  38. package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-CrYXfzCf.mjs.map → acorex-platform-module-auth-client-set-pin-code.component-Bm32dRFz.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-CmcpvQia.mjs → acorex-platform-module-auth-client-tenant-chooser.component-DKTvZ1-I.mjs} +2 -2
  40. package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-CmcpvQia.mjs.map → acorex-platform-module-auth-client-tenant-chooser.component-DKTvZ1-I.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-BnGwRAd-.mjs → acorex-platform-module-auth-client-view-login-history.command-CWmD9wNM.mjs} +2 -5
  42. package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-BnGwRAd-.mjs.map → acorex-platform-module-auth-client-view-login-history.command-CWmD9wNM.mjs.map} +1 -1
  43. package/fesm2022/acorex-platform-module-auth-client.mjs +1 -1
  44. package/package.json +2 -2
  45. package/types/acorex-platform-module-auth-client.d.ts +32 -2
  46. package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-BJduAePW.mjs.map +0 -1
  47. package/fesm2022/acorex-platform-module-auth-client-get-user-activity.query-ChzxVhRM.mjs.map +0 -1
  48. package/fesm2022/acorex-platform-module-auth-client-open-sessions.command-DcMF_kGc.mjs.map +0 -1
  49. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-BPcaNq3h.mjs +0 -150
  50. package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-BPcaNq3h.mjs.map +0 -1
  51. package/fesm2022/acorex-platform-module-auth-client-profile-page.component-jhc0ZSSB.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-auth-client-tenant-chooser.component-CmcpvQia.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-DKTvZ1-I.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":";;;;;;;;;;;;;;;;;;;;;;;MA2Ca,6BAA6B,CAAA;AAMxC,IAAA,WAAA,GAAA;AALQ,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACd,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,0BAA0B,CAAC;QACnD,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,EAAE;0FAAC;AACrC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAMxC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI;QAC/B,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,IAAI;2FAAC;QAJrC,KAAK,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClG;AAKA,IAAA,oBAAoB,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;IAClC;AAEA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IACvC;8GApBW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3C1C,2hEAiDA,EAAA,MAAA,EAAA,CAAA,4yIAAA,EAAA,4QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,sBAAsB,wIACtB,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAKpB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAvBzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,OAAA,EAG1B;wBACP,YAAY;wBACZ,YAAY;wBACZ,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,aAAa;wBACb,iBAAiB;wBACjB,gBAAgB;wBAChB,eAAe;wBACf,gBAAgB;wBAChB,mBAAmB;wBACnB,sBAAsB;wBACtB,6BAA6B;AAC9B,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2hEAAA,EAAA,MAAA,EAAA,CAAA,4yIAAA,EAAA,4QAAA,CAAA,EAAA;;;;;"}
@@ -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-BJduAePW.mjs';
6
+ import { s as AXPLoginHistoryService } from './acorex-platform-module-auth-client-acorex-platform-module-auth-client-CTf7qxkQ.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-BnGwRAd-.mjs.map
107
+ //# sourceMappingURL=acorex-platform-module-auth-client-view-login-history.command-CWmD9wNM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-auth-client-view-login-history.command-BnGwRAd-.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":";;;;;;;AAQA;AAEA;MAEa,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAyGjE,IAAA;;;AAnGC,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAE1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAC5D,6DAA6D,CAC9D;QAED,MAAM,IAAI,CAAC;AACR,aAAA,MAAM;AACN,aAAA,MAAM,CAAC,CAAC,MAAM,KAAI;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;AAE/D,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACjB,gBAAA,MAAM,CAAC,UAAU,CAAC,sDAAsD,CAAC;YAC3E;iBAAO;AACL,gBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACxB,oBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;wBACnB;6BACG,aAAa,CAAC,IAAI;AAClB,6BAAA,UAAU,CAAC;AACV,4BAAA;AACE,gCAAA,IAAI,EAAE,eAAe;AACrB,gCAAA,KAAK,EAAE,6DAA6D;AACpE,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,MAAM,EAAE;AACN,oCAAA,IAAI,EAAE,kBAAkB;AACxB,oCAAA,IAAI,EAAE,eAAe;oCACrB,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;AAChD,iCAAA;AACF,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,QAAQ;AACd,gCAAA,KAAK,EAAE,+DAA+D;AACtE,gCAAA,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AAC7E,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,UAAU;AAChB,gCAAA,KAAK,EAAE,iEAAiE;AACxE,gCAAA,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AAC/E,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,WAAW;AACjB,gCAAA,KAAK,EAAE,mEAAmE;AAC1E,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AAChF,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,SAAS;AACf,gCAAA,KAAK,EAAE,gEAAgE;AACvE,gCAAA,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AAC9E,6BAAA;AACD,4BAAA;AACE,gCAAA,IAAI,EAAE,aAAa;AACnB,gCAAA,KAAK,EAAE,+DAA+D;AACtE,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AAClF,6BAAA;yBACF;6BACA,SAAS,CAAC,IAAI;6BACd,aAAa,CAAC,IAAI;6BAClB,iBAAiB,CAAC,KAAK;6BACvB,YAAY,CAAC,GAAG,CAAC;AACtB,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;AAEA,YAAA,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,KAAI;AAC5B,gBAAA,OAAO,CAAC,MAAM,CAAC,8BAA8B,CAAC;AAChD,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;AACA,aAAA,IAAI,EAAE;QAET,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC7B;IACH;;;IAMQ,MAAM,SAAS,CACrB,OAA+B,EAAA;AAE/B,QAAA,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM;AAC5B,YAAA,GAAG,KAAK;AACR,YAAA,WAAW,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CACrD,CAAA,sDAAA,EAAyD,KAAK,CAAC,MAAM,EAAE,CACxE;SACF,CAAC,CAAC,CACJ;IACH;8GA3GW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
1
+ {"version":3,"file":"acorex-platform-module-auth-client-view-login-history.command-CWmD9wNM.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-BJduAePW.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-CTf7qxkQ.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.30",
3
+ "version": "0.0.33",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/module-security-management-client": "0.0.30",
6
+ "@acorex-platform/module-security-management-client": "0.0.33",
7
7
  "@angular/common": "^21.0.0 || ^22.0.0",
8
8
  "@angular/core": "^21.0.0 || ^22.0.0"
9
9
  },
@@ -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;
@@ -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 };