@acorex-platform/module-auth-client 0.0.32 → 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.
- package/fesm2022/{acorex-platform-module-auth-client-acorex-platform-module-auth-client-CPmffSrQ.mjs → acorex-platform-module-auth-client-acorex-platform-module-auth-client-CTf7qxkQ.mjs} +48 -46
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-CTf7qxkQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-BfOgjNxw.mjs → acorex-platform-module-auth-client-app-chooser.component-TPCkYJej.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-app-chooser.component-BfOgjNxw.mjs.map → acorex-platform-module-auth-client-app-chooser.component-TPCkYJej.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-change-password.command-BcBbN5hX.mjs → acorex-platform-module-auth-client-change-password.command-DHwnPkUO.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-change-password.command-BcBbN5hX.mjs.map → acorex-platform-module-auth-client-change-password.command-DHwnPkUO.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-DfHUPj7p.mjs → acorex-platform-module-auth-client-change-photo.command-BZK_W29M.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-change-photo.command-DfHUPj7p.mjs.map → acorex-platform-module-auth-client-change-photo.command-BZK_W29M.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-D9fyLuBy.mjs → acorex-platform-module-auth-client-get-user-activity.query-DBdELID4.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-get-user-activity.query-D9fyLuBy.mjs.map → acorex-platform-module-auth-client-get-user-activity.query-DBdELID4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-DUZ255VK.mjs → acorex-platform-module-auth-client-lock-screen.command-BADSRZxj.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-lock-screen.command-DUZ255VK.mjs.map → acorex-platform-module-auth-client-lock-screen.command-BADSRZxj.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-login.module-uRv9Gwea.mjs → acorex-platform-module-auth-client-login.module-DushGqH6.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-login.module-uRv9Gwea.mjs.map → acorex-platform-module-auth-client-login.module-DushGqH6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-master.layout-Cu8mQN9B.mjs → acorex-platform-module-auth-client-master.layout-BLUWyFTY.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-master.layout-Cu8mQN9B.mjs.map → acorex-platform-module-auth-client-master.layout-BLUWyFTY.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-open-sessions.command-BlPxfa3v.mjs → acorex-platform-module-auth-client-open-sessions.command-BHAf7500.mjs} +13 -23
- package/fesm2022/acorex-platform-module-auth-client-open-sessions.command-BHAf7500.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-auth-client-password.component-5-0kaY5J.mjs → acorex-platform-module-auth-client-password.component-D5QDAaKY.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-password.component-5-0kaY5J.mjs.map → acorex-platform-module-auth-client-password.component-D5QDAaKY.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-activity-chart.component-kBmoYwRh.mjs → acorex-platform-module-auth-client-profile-activity-chart.component-o7Eq3zuR.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-auth-client-profile-activity-chart.component-kBmoYwRh.mjs.map → acorex-platform-module-auth-client-profile-activity-chart.component-o7Eq3zuR.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-Bz1mdVCM.mjs → acorex-platform-module-auth-client-profile-page-component.provider-CfQySdD8.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-profile-page-component.provider-Bz1mdVCM.mjs.map → acorex-platform-module-auth-client-profile-page-component.provider-CfQySdD8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-w2SYmCyc.mjs → acorex-platform-module-auth-client-profile-page.component-CPHQXCpS.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-profile-page.component-w2SYmCyc.mjs.map → acorex-platform-module-auth-client-profile-page.component-CPHQXCpS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-register-password.component-BtDgEnmo.mjs → acorex-platform-module-auth-client-register-password.component-BMHOG5m4.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-register-password.component-BtDgEnmo.mjs.map → acorex-platform-module-auth-client-register-password.component-BMHOG5m4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-register.module-DCWoPb0u.mjs → acorex-platform-module-auth-client-register.module-CFIHZOYj.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-register.module-DCWoPb0u.mjs.map → acorex-platform-module-auth-client-register.module-CFIHZOYj.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-DJeSHCLL.mjs → acorex-platform-module-auth-client-remove-pin-code.command-CdlJF48g.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-remove-pin-code.command-DJeSHCLL.mjs.map → acorex-platform-module-auth-client-remove-pin-code.command-CdlJF48g.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-3HJEmCYI.mjs → acorex-platform-module-auth-client-session-lock-overlay.component-CcGFA6Op.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-session-lock-overlay.component-3HJEmCYI.mjs.map → acorex-platform-module-auth-client-session-lock-overlay.component-CcGFA6Op.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-C2kCGuQW.mjs → acorex-platform-module-auth-client-set-pin-code.command-BSZhRCN7.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.command-C2kCGuQW.mjs.map → acorex-platform-module-auth-client-set-pin-code.command-BSZhRCN7.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-Dpdgw4KT.mjs → acorex-platform-module-auth-client-set-pin-code.component-Bm32dRFz.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-set-pin-code.component-Dpdgw4KT.mjs.map → acorex-platform-module-auth-client-set-pin-code.component-Bm32dRFz.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-1Kv-LGZc.mjs → acorex-platform-module-auth-client-tenant-chooser.component-DKTvZ1-I.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-tenant-chooser.component-1Kv-LGZc.mjs.map → acorex-platform-module-auth-client-tenant-chooser.component-DKTvZ1-I.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-C_T4l61M.mjs → acorex-platform-module-auth-client-view-login-history.command-CWmD9wNM.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-auth-client-view-login-history.command-C_T4l61M.mjs.map → acorex-platform-module-auth-client-view-login-history.command-CWmD9wNM.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-auth-client.mjs +1 -1
- package/package.json +2 -2
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-CPmffSrQ.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-auth-client-open-sessions.command-BlPxfa3v.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-auth-client-open-sessions.command-BlPxfa3v.mjs","sources":["../../../../libs/modules/auth/client/src/lib/pages/account/user-sessions/user-sessions.component.ts","../../../../libs/modules/auth/client/src/lib/pages/account/user-sessions/user-sessions.component.html","../../../../libs/modules/auth/client/src/lib/commands/open-sessions.command.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n AXPAuthInactiveSessionTerminationOptions,\n AXPAuthInactiveSessionTerminationValue,\n AXPAuthSettings,\n} from '@acorex-platform/module-auth-client/contracts';\nimport { AXMSecurityManagementDeviceSessionsEntityModel } from '@acorex-platform/module-security-management-client/contracts';\nimport { AXMUserDeviceSessionsService } from './user-sessions.service';\n\n//#region ---- Types ----\n\ninterface InactiveSessionTerminationOption {\n id: AXPAuthInactiveSessionTerminationValue;\n titleKey: string;\n}\n\ninterface TranslatedInactiveSessionTerminationOption {\n id: AXPAuthInactiveSessionTerminationValue;\n name: string;\n}\n\n//#endregion\n\n@Component({\n selector: 'axm-user-sessions',\n templateUrl: './user-sessions.component.html',\n styleUrl: './user-sessions.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXFormatModule,\n AXSelectBoxModule,\n AXDropdownModule,\n AXPopoverModule,\n AXTranslationModule,\n ],\n})\nexport class AXMUserSessionsComponent extends AXBasePageComponent {\n //#region ---- State ----\n\n items = signal<AXMSecurityManagementDeviceSessionsEntityModel[]>([]);\n activeSession = signal<AXMSecurityManagementDeviceSessionsEntityModel | undefined>(undefined);\n expireTime = signal<AXPAuthInactiveSessionTerminationValue | null>(null);\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private readonly userDeviceSessionsService = inject(AXMUserDeviceSessionsService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly translateService = inject(AXTranslationService);\n private readonly cdRef = inject(ChangeDetectorRef);\n\n //#endregion\n\n //#region ---- Data Sources ----\n\n private readonly terminationOptionDefinitions: InactiveSessionTerminationOption[] = [\n {\n id: AXPAuthInactiveSessionTerminationOptions.OneWeek,\n titleKey: '@auth:sessions.inactive-termination.options.one-week',\n },\n {\n id: AXPAuthInactiveSessionTerminationOptions.OneMonth,\n titleKey: '@auth:sessions.inactive-termination.options.one-month',\n },\n {\n id: AXPAuthInactiveSessionTerminationOptions.ThreeMonths,\n titleKey: '@auth:sessions.inactive-termination.options.three-months',\n },\n {\n id: AXPAuthInactiveSessionTerminationOptions.SixMonths,\n titleKey: '@auth:sessions.inactive-termination.options.six-months',\n },\n ];\n\n protected expirationItems: TranslatedInactiveSessionTerminationOption[] = [];\n\n protected dataSource = new AXDataSource<TranslatedInactiveSessionTerminationOption>({\n pageSize: 10,\n key: 'id',\n load: async () => ({\n items: this.expirationItems,\n total: this.expirationItems.length,\n }),\n });\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n itemsWithIcons = computed(() =>\n this.items().map((item) => ({\n ...item,\n icon: this.getDeviceIcon(item.deviceName),\n })),\n );\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n super();\n void this.loadUserSessions();\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n getDeviceIcon(deviceName: string | undefined): string {\n if (!deviceName) {\n return 'fa-solid fa-question';\n }\n\n const lowerCaseName = deviceName.toLowerCase();\n\n if (lowerCaseName.includes('windows')) {\n return 'fa-brands fa-windows';\n }\n if (lowerCaseName.includes('macbook') || lowerCaseName.includes('mac')) {\n return 'fa-brands fa-apple';\n }\n if (lowerCaseName.includes('linux')) {\n return 'fa-brands fa-linux';\n }\n if (lowerCaseName.includes('android')) {\n return 'fa-brands fa-android';\n }\n if (lowerCaseName.includes('ios') || lowerCaseName.includes('iphone') || lowerCaseName.includes('ipad')) {\n return 'fa-brands fa-apple';\n }\n\n return 'fa-solid fa-desktop';\n }\n\n protected onChangeSessionExpireTime(e: AXValueChangedEvent): void {\n const selectedId = e.component.selectedItems[0]?.id as AXPAuthInactiveSessionTerminationValue | undefined;\n if (!selectedId) {\n return;\n }\n\n this.expireTime.set(selectedId);\n void this.userDeviceSessionsService.setInactiveSessionTermination(selectedId);\n }\n\n async onTerminate(sessionId: string | undefined): Promise<void> {\n if (!sessionId) {\n console.error('No item to terminate');\n return;\n }\n\n await this.userDeviceSessionsService.terminateSession(sessionId);\n await this.loadUserSessions();\n }\n\n async onTerminateAll(): Promise<void> {\n await this.userDeviceSessionsService.terminateAllSession();\n await this.loadUserSessions();\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n private async loadUserSessions(): Promise<void> {\n try {\n this.expirationItems = await Promise.all(\n this.terminationOptionDefinitions.map(async (option) => ({\n id: option.id,\n name: await this.translateService.translateAsync(option.titleKey),\n })),\n );\n\n const sessions = await this.userDeviceSessionsService.getSessions();\n this.items.set(sessions);\n\n try {\n const activeSession = await this.userDeviceSessionsService.getCurrentActiveSessions();\n this.activeSession.set(activeSession);\n } catch (error) {\n console.warn('No active session found:', error);\n this.activeSession.set(undefined);\n }\n\n const inactiveSessionTermination = await this.settingsService.get<AXPAuthInactiveSessionTerminationValue>(\n AXPAuthSettings.InactiveSessionTermination,\n );\n\n if (\n inactiveSessionTermination &&\n Object.values(AXPAuthInactiveSessionTerminationOptions).includes(inactiveSessionTermination)\n ) {\n this.expireTime.set(inactiveSessionTermination);\n }\n\n await this.dataSource.refresh();\n this.cdRef.markForCheck();\n } catch (error) {\n console.error('Error loading user sessions', error);\n }\n }\n\n //#endregion\n}\n","<ax-content>\n <div class=\"axm-user-sessions__content flex flex-col gap-4 p-6 w-full min-w-0 box-border\">\n <p class=\"font-semibold text-base text-on-lightest text-start m-0\">\n {{ '@auth:sessions.this-device.title' | translate | async }}\n </p>\n <div\n class=\"axm-user-sessions__row flex w-full min-w-0 items-center gap-3 rounded-lg border border-lightest bg-lightest p-3 text-on-lightest\"\n >\n <div class=\"axm-user-sessions__icon axm-user-sessions__icon--primary shrink-0 rounded-lg border border-primary-200 bg-primary-50\">\n <i class=\"{{ getDeviceIcon($safeNavigationMigration(activeSession()?.deviceName)) }} m-3 text-primary-500\"></i>\n </div>\n @if (activeSession()) {\n <div class=\"flex min-w-0 flex-1 flex-col text-start\">\n <div class=\"font-medium text-base\">{{ activeSession()?.deviceName }}</div>\n <div class=\"font-normal text-sm\">{{ activeSession()?.operatingSystem }}</div>\n <p class=\"axm-user-sessions__meta m-0 font-normal text-xs\">\n {{ activeSession()?.location }}\n @if (activeSession()?.lastLoginDate) {\n <span>{{ $safeNavigationMigration(activeSession()?.lastLoginDate) | format: 'datetime' : 'short' | async }}</span>\n }\n </p>\n </div>\n }\n </div>\n\n @if (itemsWithIcons().length > 0) {\n <div\n class=\"axm-user-sessions__row flex w-full min-w-0 cursor-pointer items-center gap-3 rounded-lg border border-lightest bg-lightest p-3 text-on-lightest\"\n (click)=\"onTerminateAll()\"\n >\n <div class=\"axm-user-sessions__icon axm-user-sessions__icon--danger shrink-0 rounded-lg border border-danger-200 bg-danger-50\">\n <i class=\"icon icon-clear m-3 text-danger-500\"></i>\n </div>\n <div class=\"flex min-w-0 flex-1 flex-col text-start\">\n <div class=\"font-medium text-base\">\n {{ '@auth:sessions.terminate-all.title' | translate | async }}\n </div>\n <p class=\"axm-user-sessions__meta m-0 font-normal text-sm\">\n {{ '@auth:sessions.terminate-all.description' | translate | async }}\n </p>\n </div>\n </div>\n\n <p class=\"font-semibold text-base text-on-lightest text-start m-0\">\n {{ '@auth:sessions.active-devices.title' | translate | async }}\n </p>\n @for (item of itemsWithIcons(); track item.id) {\n <div\n class=\"axm-user-sessions__row flex w-full min-w-0 items-center gap-3 rounded-lg border border-lightest bg-lightest p-3 text-on-lightest\"\n >\n <div class=\"axm-user-sessions__icon shrink-0 rounded-lg border\">\n <i class=\"{{ item.icon }} m-3\"></i>\n </div>\n <div class=\"flex min-w-0 flex-1 flex-col text-start\">\n <div class=\"font-medium text-base\">{{ item.deviceName }}</div>\n <div class=\"font-normal text-sm\">{{ item.operatingSystem }}</div>\n <p class=\"axm-user-sessions__meta m-0 font-normal text-xs\">\n {{ item.location }}\n @if (item.lastLoginDate) {\n <span>{{ item.lastLoginDate | format: 'datetime' : 'short' | async }}</span>\n }\n </p>\n </div>\n <button\n type=\"button\"\n class=\"axm-user-sessions__action shrink-0 border-0 bg-transparent p-1 cursor-pointer\"\n [attr.aria-label]=\"('@general:actions.remove.title' | translate | async) ?? ''\"\n (click)=\"onTerminate(item.id); $event.stopPropagation()\"\n >\n <i class=\"ax-icon ax-icon-close\"></i>\n </button>\n </div>\n }\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-suffix>\n <div class=\"axm-user-sessions__footer flex w-full min-w-0 flex-col gap-1 px-4 py-2 box-border\">\n <p class=\"m-0 text-start font-medium text-base text-danger-500\">\n {{ '@auth:sessions.terminate-old.title' | translate | async }}\n </p>\n <div class=\"axm-user-sessions__footer-setting w-full min-w-0\">\n <div class=\"axm-user-sessions__footer-label font-normal text-base text-on-lightest text-start\">\n {{ '@auth:sessions.terminate-old.inactive-for' | translate | async }}\n </div>\n <div class=\"axm-user-sessions__footer-select min-w-0\">\n <ax-select-box\n [ngModel]=\"expireTime()\"\n (onValueChanged)=\"onChangeSessionExpireTime($event)\"\n [dataSource]=\"dataSource\"\n textField=\"name\"\n valueField=\"id\"\n [placeholder]=\"('@auth:sessions.terminate-old.placeholder' | translate | async) ?? ''\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n </ax-suffix>\n</ax-footer>\n","import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXMUserSessionsComponent } from '../pages/account/user-sessions/user-sessions.component';\n\n//#region ---- Open sessions command ----\n\n/** Opens the active sessions popup for the current user. */\n@Injectable({ providedIn: 'root' })\nexport class AXPOpenSessionsCommand implements AXPCommand {\n //#region ---- Services & Dependencies ----\n\n private readonly popupService = inject(AXPopupService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(): AXPCommandExecuteResultPromise<void> {\n await this.popupService.open(AXMUserSessionsComponent, {\n title: await this.translateService.translateAsync('@auth:profile.sessions'),\n size: 'md',\n });\n\n return { success: true, kind: 'object', data: undefined };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["i2","i3","i4","i6"],"mappings":"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"}
|