@acorex-platform/module-auth-client 0.0.15
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-B7tIKOw6.mjs +3174 -0
- package/fesm2022/acorex-platform-module-auth-client-acorex-platform-module-auth-client-B7tIKOw6.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-app-chooser.component-Cm2ZagaI.mjs +67 -0
- package/fesm2022/acorex-platform-module-auth-client-app-chooser.component-Cm2ZagaI.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-blank.layout-BRGgntib.mjs +18 -0
- package/fesm2022/acorex-platform-module-auth-client-blank.layout-BRGgntib.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-change-password.command-ZyXAjUKw.mjs +168 -0
- package/fesm2022/acorex-platform-module-auth-client-change-password.command-ZyXAjUKw.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-change-photo.command-BC8lw--F.mjs +192 -0
- package/fesm2022/acorex-platform-module-auth-client-change-photo.command-BC8lw--F.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-contracts.mjs +80 -0
- package/fesm2022/acorex-platform-module-auth-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-edit-account-info.command-B-mVlXxg.mjs +129 -0
- package/fesm2022/acorex-platform-module-auth-client-edit-account-info.command-B-mVlXxg.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-edit-signature.command-CcTJJwAX.mjs +32 -0
- package/fesm2022/acorex-platform-module-auth-client-edit-signature.command-CcTJJwAX.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-lock-screen.command-41QnG1TQ.mjs +30 -0
- package/fesm2022/acorex-platform-module-auth-client-lock-screen.command-41QnG1TQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-login.module-DYtNYzF6.mjs +57 -0
- package/fesm2022/acorex-platform-module-auth-client-login.module-DYtNYzF6.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-master.layout-DpdD9kgk.mjs +24 -0
- package/fesm2022/acorex-platform-module-auth-client-master.layout-DpdD9kgk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-menu.provider-Bz-kRip4.mjs +19 -0
- package/fesm2022/acorex-platform-module-auth-client-menu.provider-Bz-kRip4.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-oauth-callback.component-BspBH4Ul.mjs +105 -0
- package/fesm2022/acorex-platform-module-auth-client-oauth-callback.component-BspBH4Ul.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-open-sessions.command-CXSGuqYp.mjs +196 -0
- package/fesm2022/acorex-platform-module-auth-client-open-sessions.command-CXSGuqYp.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-password.component-BuqUhET7.mjs +59 -0
- package/fesm2022/acorex-platform-module-auth-client-password.component-BuqUhET7.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-password.component-Cihg82vM.mjs +529 -0
- package/fesm2022/acorex-platform-module-auth-client-password.component-Cihg82vM.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-pin-code.constants-CRsFG7fg.mjs +7 -0
- package/fesm2022/acorex-platform-module-auth-client-pin-code.constants-CRsFG7fg.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-B8lBvZsA.mjs +158 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-activity-chart.component-B8lBvZsA.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-coming-soon.command-DBbFbzAx.mjs +31 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-coming-soon.command-DBbFbzAx.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-delete-account-danger-zone.component-CtJho4ab.mjs +79 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-delete-account-danger-zone.component-CtJho4ab.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-page-component.provider-B-Qtd4_j.mjs +27 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-page-component.provider-B-Qtd4_j.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-page.component-tbhf7K0V.mjs +446 -0
- package/fesm2022/acorex-platform-module-auth-client-profile-page.component-tbhf7K0V.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-register-password.component-hSJyEA6Q.mjs +145 -0
- package/fesm2022/acorex-platform-module-auth-client-register-password.component-hSJyEA6Q.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-register.module-DXm6AQpo.mjs +62 -0
- package/fesm2022/acorex-platform-module-auth-client-register.module-DXm6AQpo.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-remove-pin-code.command-zUZooOtv.mjs +91 -0
- package/fesm2022/acorex-platform-module-auth-client-remove-pin-code.command-zUZooOtv.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-result.component-DYJaB-FD.mjs +36 -0
- package/fesm2022/acorex-platform-module-auth-client-result.component-DYJaB-FD.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-routes-REjaWcqY.mjs +9 -0
- package/fesm2022/acorex-platform-module-auth-client-routes-REjaWcqY.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-session-lock-overlay.component-DqXGuIgN.mjs +346 -0
- package/fesm2022/acorex-platform-module-auth-client-session-lock-overlay.component-DqXGuIgN.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-set-pin-code.command-DXTVbrS0.mjs +33 -0
- package/fesm2022/acorex-platform-module-auth-client-set-pin-code.command-DXTVbrS0.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-set-pin-code.component-5TxB6aFi.mjs +188 -0
- package/fesm2022/acorex-platform-module-auth-client-set-pin-code.component-5TxB6aFi.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-settings.provider-n1qbs6e1.mjs +177 -0
- package/fesm2022/acorex-platform-module-auth-client-settings.provider-n1qbs6e1.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-show-profile-command-CxMz1yy-.mjs +70 -0
- package/fesm2022/acorex-platform-module-auth-client-show-profile-command-CxMz1yy-.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-signout-command-DqqrP5pk.mjs +24 -0
- package/fesm2022/acorex-platform-module-auth-client-signout-command-DqqrP5pk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-tenant-chooser.component-ihsqCJKN.mjs +59 -0
- package/fesm2022/acorex-platform-module-auth-client-tenant-chooser.component-ihsqCJKN.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-two-factor-code.component-CiENsIEh.mjs +40 -0
- package/fesm2022/acorex-platform-module-auth-client-two-factor-code.component-CiENsIEh.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-two-factor.module-BJqdeuAz.mjs +45 -0
- package/fesm2022/acorex-platform-module-auth-client-two-factor.module-BJqdeuAz.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client-view-login-history.command-Dl0os5lD.mjs +108 -0
- package/fesm2022/acorex-platform-module-auth-client-view-login-history.command-Dl0os5lD.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-auth-client.mjs +2 -0
- package/fesm2022/acorex-platform-module-auth-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-auth-client-contracts.d.ts +67 -0
- package/types/acorex-platform-module-auth-client.d.ts +390 -0
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
import { AXPMultiLanguageString, AXPActionMenuItem } from '@acorex-platform/framework-shared/core';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken } from '@angular/core';
|
|
4
|
+
import * as _acorex_platform_framework_client_core from '@acorex-platform/framework-client/core';
|
|
5
|
+
import { AXPDataSourceDefinitionProvider, AXPDataSourceDefinition } from '@acorex-platform/framework-client/core';
|
|
6
|
+
import * as _acorex_platform_module_auth_client from '@acorex-platform/module-auth-client';
|
|
7
|
+
import { AXMSecurityManagementDeviceSessionsEntityModel } from '@acorex-platform/module-security-management-client/contracts';
|
|
8
|
+
import { AXDataSourceFilterOption } from '@acorex/cdk/common';
|
|
9
|
+
import * as i2 from '@acorex-platform/framework-client/common';
|
|
10
|
+
import { AXPErrorHandler } from '@acorex-platform/framework-client/common';
|
|
11
|
+
import { AuthConfig } from 'angular-oauth2-oidc';
|
|
12
|
+
import * as i1 from '@angular/router';
|
|
13
|
+
import { CanActivateFn } from '@angular/router';
|
|
14
|
+
import * as i1$2 from '@angular/common';
|
|
15
|
+
import * as i1$1 from '@acorex/core/validation';
|
|
16
|
+
|
|
17
|
+
declare const PROFILE_PAGE_GROUPS_HOOK = "profile-page.groups";
|
|
18
|
+
declare const PROFILE_PAGE_SECTIONS_HOOK = "profile-page.sections";
|
|
19
|
+
declare const PROFILE_PAGE_HEADER_META_HOOK = "profile-page.header-meta";
|
|
20
|
+
type AXPUserProfileGroupsPayload = {
|
|
21
|
+
groups: AXPUserProfileGroup[];
|
|
22
|
+
};
|
|
23
|
+
type AXPUserProfileSectionsPayload = {
|
|
24
|
+
sections: AXPUserProfileSection[];
|
|
25
|
+
};
|
|
26
|
+
type AXPUserProfileHeaderMetaPayload = {
|
|
27
|
+
items: AXPUserProfileHeaderMetaItem[];
|
|
28
|
+
};
|
|
29
|
+
/** Renders section cards in a configurable grid (default). */
|
|
30
|
+
interface AXPUserProfileGroupSectionsContent {
|
|
31
|
+
mode: 'sections';
|
|
32
|
+
}
|
|
33
|
+
/** Replaces the entire tab body with a registered page component. */
|
|
34
|
+
interface AXPUserProfileGroupComponentContent {
|
|
35
|
+
mode: 'component';
|
|
36
|
+
componentKey: string;
|
|
37
|
+
pageConfig?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
type AXPUserProfileGroupContent = AXPUserProfileGroupSectionsContent | AXPUserProfileGroupComponentContent;
|
|
40
|
+
/** Standard card with title, description, and action buttons. */
|
|
41
|
+
interface AXPUserProfileSectionCardContent {
|
|
42
|
+
mode: 'card';
|
|
43
|
+
actions: AXPUserProfileSectionAction[];
|
|
44
|
+
}
|
|
45
|
+
/** Replaces the section slot with a registered page component. */
|
|
46
|
+
interface AXPUserProfileSectionComponentContent {
|
|
47
|
+
mode: 'component';
|
|
48
|
+
componentKey: string;
|
|
49
|
+
pageConfig?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
type AXPUserProfileSectionContent = AXPUserProfileSectionCardContent | AXPUserProfileSectionComponentContent;
|
|
52
|
+
/** Grid placement for a section within the 12-column profile sections grid. */
|
|
53
|
+
interface AXPUserProfileSectionLayout {
|
|
54
|
+
/** 1-based column start on md+ breakpoints. */
|
|
55
|
+
col?: number;
|
|
56
|
+
/** Number of columns to span on md+ (default 6). */
|
|
57
|
+
colSpan?: number;
|
|
58
|
+
/** Number of grid rows to span (default 1). */
|
|
59
|
+
rowSpan?: number;
|
|
60
|
+
}
|
|
61
|
+
/** Action on a profile section card. */
|
|
62
|
+
type AXPUserProfileSectionAction = AXPActionMenuItem & {
|
|
63
|
+
/** Primary action when the section card is clicked (required for multi-action sections). */
|
|
64
|
+
default?: boolean;
|
|
65
|
+
};
|
|
66
|
+
/** Top tab group on the profile hub. */
|
|
67
|
+
interface AXPUserProfileGroup {
|
|
68
|
+
id: string;
|
|
69
|
+
/** URL segment under `/:app/profile/:route`; defaults to `id`. */
|
|
70
|
+
route?: string;
|
|
71
|
+
title: AXPMultiLanguageString;
|
|
72
|
+
icon?: string;
|
|
73
|
+
priority?: number;
|
|
74
|
+
/** When omitted, the tab renders its section grid. */
|
|
75
|
+
content?: AXPUserProfileGroupContent;
|
|
76
|
+
}
|
|
77
|
+
/** Profile hub section contributed by modules. */
|
|
78
|
+
interface AXPUserProfileSection {
|
|
79
|
+
id: string;
|
|
80
|
+
groupId: string;
|
|
81
|
+
title?: AXPMultiLanguageString;
|
|
82
|
+
description?: AXPMultiLanguageString;
|
|
83
|
+
icon?: string;
|
|
84
|
+
priority?: number;
|
|
85
|
+
feature?: string;
|
|
86
|
+
layout?: AXPUserProfileSectionLayout;
|
|
87
|
+
content?: AXPUserProfileSectionContent;
|
|
88
|
+
/** Used when `content` is omitted (card mode). */
|
|
89
|
+
actions?: AXPUserProfileSectionAction[];
|
|
90
|
+
/** Optional contextual block shown instead of the section description. */
|
|
91
|
+
insights?: AXPUserProfileSectionInsight[];
|
|
92
|
+
}
|
|
93
|
+
/** Contextual detail row on a profile section card. */
|
|
94
|
+
interface AXPUserProfileSectionInsight {
|
|
95
|
+
id: string;
|
|
96
|
+
icon?: string;
|
|
97
|
+
/** Plain line shown when no date is set. */
|
|
98
|
+
text?: string;
|
|
99
|
+
/** Date value formatted in the template when valid. */
|
|
100
|
+
date?: Date;
|
|
101
|
+
/** Optional prefix shown before a formatted relative date. */
|
|
102
|
+
datePrefix?: AXPMultiLanguageString;
|
|
103
|
+
}
|
|
104
|
+
/** Extra row in the profile page header (label + value). */
|
|
105
|
+
interface AXPUserProfileHeaderMetaItem {
|
|
106
|
+
id: string;
|
|
107
|
+
label: AXPMultiLanguageString;
|
|
108
|
+
value: AXPMultiLanguageString;
|
|
109
|
+
icon?: string;
|
|
110
|
+
priority?: number;
|
|
111
|
+
}
|
|
112
|
+
/** Resolves section content; top-level `actions` imply card mode. */
|
|
113
|
+
declare function resolveUserProfileSectionContent(section: AXPUserProfileSection): AXPUserProfileSectionContent;
|
|
114
|
+
/** Whether the group renders a full-tab component instead of sections. */
|
|
115
|
+
declare function isUserProfileGroupComponent(group: AXPUserProfileGroup): boolean;
|
|
116
|
+
/** Visible actions on a section card. */
|
|
117
|
+
declare function visibleUserProfileSectionActions(actions: AXPUserProfileSectionAction[]): AXPUserProfileSectionAction[];
|
|
118
|
+
/** Default card action: explicit `default`, otherwise the first visible action. */
|
|
119
|
+
declare function resolveDefaultUserProfileSectionAction(actions: AXPUserProfileSectionAction[]): AXPUserProfileSectionAction | undefined;
|
|
120
|
+
|
|
121
|
+
type AXPUserAvatarStorageTarget = {
|
|
122
|
+
kind: 'person';
|
|
123
|
+
personId: string;
|
|
124
|
+
userId: string;
|
|
125
|
+
} | {
|
|
126
|
+
kind: 'user';
|
|
127
|
+
userId: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Client-side profile photo operations for self-service flows.
|
|
131
|
+
* Bidirectional Person ↔ User sync runs on the server via HCM avatar middleware.
|
|
132
|
+
*/
|
|
133
|
+
declare class AXPUserAvatarSyncService {
|
|
134
|
+
private readonly entityService;
|
|
135
|
+
private readonly fileStorage;
|
|
136
|
+
private readonly sessionService;
|
|
137
|
+
private readonly identityService;
|
|
138
|
+
private readonly userAvatarService;
|
|
139
|
+
resolveStorageTarget(userId: string): Promise<AXPUserAvatarStorageTarget>;
|
|
140
|
+
getCurrentAvatarRef(userId: string): Promise<string | null>;
|
|
141
|
+
getCurrentAvatarBlob(userId: string): Promise<Blob | null>;
|
|
142
|
+
uploadAndSetAvatar(userId: string, file: File): Promise<string>;
|
|
143
|
+
removeAvatar(userId: string): Promise<void>;
|
|
144
|
+
/** Keeps session, avatar cache, and shell avatars in sync after any avatar change. */
|
|
145
|
+
notifyAvatarChanged(userId: string, avatar: string | null): Promise<void>;
|
|
146
|
+
private refreshClientDisplay;
|
|
147
|
+
private personData;
|
|
148
|
+
private userData;
|
|
149
|
+
private findPersonByUserId;
|
|
150
|
+
private safeRemoveFile;
|
|
151
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPUserAvatarSyncService, never>;
|
|
152
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPUserAvatarSyncService>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Registers auth module data source definitions.
|
|
157
|
+
*/
|
|
158
|
+
declare class AXMAuthDataSourceProvider implements AXPDataSourceDefinitionProvider {
|
|
159
|
+
private readonly userActivity;
|
|
160
|
+
items(): Promise<_acorex_platform_framework_client_core.AXPDataSourceDefinition<_acorex_platform_module_auth_client.AXPUserActivityDataSourceItem>[]>;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
type AXPUserActivityLevel = 0 | 1 | 2 | 3 | 4;
|
|
164
|
+
interface AXPUserActivityDay {
|
|
165
|
+
date: string;
|
|
166
|
+
count: number;
|
|
167
|
+
level: AXPUserActivityLevel;
|
|
168
|
+
}
|
|
169
|
+
interface AXPUserActivityWeek {
|
|
170
|
+
days: AXPUserActivityDay[];
|
|
171
|
+
}
|
|
172
|
+
interface AXPUserActivityStats {
|
|
173
|
+
longestStreak: number;
|
|
174
|
+
avgPerDay: number;
|
|
175
|
+
avgPerWeek: number;
|
|
176
|
+
total: number;
|
|
177
|
+
}
|
|
178
|
+
/** Single payload row returned by {@link AXMAuthDataSourceKeys.UserActivity}. */
|
|
179
|
+
interface AXPUserActivityDataSourceItem {
|
|
180
|
+
id: string;
|
|
181
|
+
userId: string;
|
|
182
|
+
startDate: string;
|
|
183
|
+
endDate: string;
|
|
184
|
+
weeks: AXPUserActivityWeek[];
|
|
185
|
+
stats: AXPUserActivityStats;
|
|
186
|
+
}
|
|
187
|
+
interface AXPUserActivityLoadParams {
|
|
188
|
+
userId: string;
|
|
189
|
+
startDate: Date;
|
|
190
|
+
endDate: Date;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
declare const AUTH_USER_ACTIVITY_DEFAULT_WEEKS = 53;
|
|
194
|
+
declare function resolveDefaultUserActivityDateRange(weeksToShow?: number, referenceDate?: Date): {
|
|
195
|
+
startDate: Date;
|
|
196
|
+
endDate: Date;
|
|
197
|
+
};
|
|
198
|
+
/** Counts sign-in events per calendar day from device session rows. */
|
|
199
|
+
declare function aggregateDailySessionCounts(sessions: ReadonlyArray<AXMSecurityManagementDeviceSessionsEntityModel>, params: AXPUserActivityLoadParams): Map<string, number>;
|
|
200
|
+
declare function countToActivityLevel(count: number): AXPUserActivityLevel;
|
|
201
|
+
declare function buildUserActivityWeeks(params: AXPUserActivityLoadParams, dailyCounts: ReadonlyMap<string, number>): AXPUserActivityWeek[];
|
|
202
|
+
declare function computeUserActivityStats(weeks: AXPUserActivityWeek[]): AXPUserActivityStats;
|
|
203
|
+
declare function buildUserActivityDataSourceItem(params: AXPUserActivityLoadParams, sessions: ReadonlyArray<AXMSecurityManagementDeviceSessionsEntityModel>): AXPUserActivityDataSourceItem;
|
|
204
|
+
declare function formatCompactActivityCount(value: number): string;
|
|
205
|
+
|
|
206
|
+
declare function extractUserActivityUserId(filter: AXDataSourceFilterOption | undefined): string | undefined;
|
|
207
|
+
declare function extractUserActivityStartDate(filter: AXDataSourceFilterOption | undefined): Date | undefined;
|
|
208
|
+
declare function extractUserActivityEndDate(filter: AXDataSourceFilterOption | undefined): Date | undefined;
|
|
209
|
+
|
|
210
|
+
/** Contribution-style user activity heatmap derived from device session sign-in dates. */
|
|
211
|
+
declare class AXMUserActivityDataSourceDefinition implements AXPDataSourceDefinitionProvider {
|
|
212
|
+
private readonly entityService;
|
|
213
|
+
items(): Promise<AXPDataSourceDefinition<AXPUserActivityDataSourceItem>[]>;
|
|
214
|
+
private loadUserSessions;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
declare class AXMAuthErrorHandler implements AXPErrorHandler {
|
|
218
|
+
private router;
|
|
219
|
+
private layoutService;
|
|
220
|
+
handleError(error: Error, next: (error: any) => void): void;
|
|
221
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMAuthErrorHandler, never>;
|
|
222
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMAuthErrorHandler>;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
declare enum AXMAuthenticationTypes {
|
|
226
|
+
UsernamePassword = 0,
|
|
227
|
+
UsernameEmailPassword = 1,
|
|
228
|
+
EmailPassword = 2,
|
|
229
|
+
MobilePassword = 3,
|
|
230
|
+
EmailCode = 4,
|
|
231
|
+
MobileCode = 5
|
|
232
|
+
}
|
|
233
|
+
declare const AXM_AUTH_CONFIG_TOKEN: InjectionToken<AXMAuthConfigs>;
|
|
234
|
+
interface AXMAuthConfigs {
|
|
235
|
+
type: AXMAuthenticationTypes;
|
|
236
|
+
authConfig?: AuthConfig;
|
|
237
|
+
baseUrl?: string;
|
|
238
|
+
end_url?: string;
|
|
239
|
+
signup?: {
|
|
240
|
+
enable: boolean;
|
|
241
|
+
url?: string;
|
|
242
|
+
};
|
|
243
|
+
signinPage?: {
|
|
244
|
+
description: string;
|
|
245
|
+
slogan: string;
|
|
246
|
+
};
|
|
247
|
+
defaultStrategyName?: string;
|
|
248
|
+
idleTimeout?: number;
|
|
249
|
+
}
|
|
250
|
+
declare const AXMDefaultAuthConfigs: AXMAuthConfigs;
|
|
251
|
+
declare function configAuthModule(config?: Partial<AXMAuthConfigs>): AXMAuthConfigs;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Injection token for login page guard.
|
|
255
|
+
* Apps can provide their own custom guard by providing this token.
|
|
256
|
+
* If not provided, the default guard (canActivateLogin) will be used.
|
|
257
|
+
*/
|
|
258
|
+
declare const AXM_LOGIN_GUARD_TOKEN: InjectionToken<CanActivateFn>;
|
|
259
|
+
|
|
260
|
+
declare class AXPAccountModule {
|
|
261
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPAccountModule, never>;
|
|
262
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXPAccountModule, never, [typeof i1.RouterModule, typeof _acorex_platform_framework_client_core.AXPComponentSlotModule], never>;
|
|
263
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXPAccountModule>;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
declare class AXMAuthValidationRulesModule {
|
|
267
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMAuthValidationRulesModule, never>;
|
|
268
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMAuthValidationRulesModule, never, [typeof i1$1.AXValidationModule], never>;
|
|
269
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXMAuthValidationRulesModule>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare class AXMAuthModule {
|
|
273
|
+
constructor();
|
|
274
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMAuthModule, never>;
|
|
275
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXMAuthModule, never, [typeof i1$2.CommonModule, typeof i2.AXPCommonModule, typeof i1.RouterModule, typeof AXPAccountModule, typeof AXMAuthValidationRulesModule], never>;
|
|
276
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXMAuthModule>;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Guard for login page. Clears incomplete sessions so a prior OAuth attempt
|
|
281
|
+
* does not leak into the next username/password sign-in.
|
|
282
|
+
*/
|
|
283
|
+
declare const canActivateLogin: CanActivateFn;
|
|
284
|
+
|
|
285
|
+
/** Slot name for optional extension-provided login buttons (e.g. Google platform login). */
|
|
286
|
+
declare const AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT = "auth-login-external-providers";
|
|
287
|
+
|
|
288
|
+
declare class AXPLoginExternalProvidersComponent {
|
|
289
|
+
protected readonly slotName = "auth-login-external-providers";
|
|
290
|
+
private readonly slot;
|
|
291
|
+
hasContent(): boolean;
|
|
292
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPLoginExternalProvidersComponent, never>;
|
|
293
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPLoginExternalProvidersComponent, "axm-login-external-providers", never, {}, {}, never, never, true, never>;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Tracks user inactivity and locks the session overlay when idle threshold is exceeded.
|
|
298
|
+
* Requires the Lock When Idle setting to be enabled; unlock uses PIN when configured, otherwise password.
|
|
299
|
+
* Locked state is stored on {@link AXPSessionService.SESSION_KEY} and survives page refresh and browser restart.
|
|
300
|
+
*/
|
|
301
|
+
declare class AXPIdleLockService {
|
|
302
|
+
readonly locked: i0.WritableSignal<boolean>;
|
|
303
|
+
private readonly idleTimeoutMs;
|
|
304
|
+
private readonly enabled;
|
|
305
|
+
/** Whether manual or idle lock is available (Lock When Idle setting is enabled). */
|
|
306
|
+
readonly canLock: i0.Signal<boolean>;
|
|
307
|
+
private readonly storedPinCode;
|
|
308
|
+
private lastActivityAt;
|
|
309
|
+
private lastMouseMoveAt;
|
|
310
|
+
private idleCheckTimerId;
|
|
311
|
+
private overlayRef;
|
|
312
|
+
private overlayOpening;
|
|
313
|
+
private enableTask;
|
|
314
|
+
private readonly sessionService;
|
|
315
|
+
private readonly settingsService;
|
|
316
|
+
private readonly entityService;
|
|
317
|
+
private readonly overlayService;
|
|
318
|
+
private readonly platform;
|
|
319
|
+
private readonly destroyRef;
|
|
320
|
+
private readonly injector;
|
|
321
|
+
constructor();
|
|
322
|
+
hasPinCode(): boolean;
|
|
323
|
+
verifyPin(pin: string): boolean;
|
|
324
|
+
verifyPassword(password: string): Promise<boolean>;
|
|
325
|
+
unlock(): void;
|
|
326
|
+
/** Locks the session overlay when Lock When Idle is enabled. */
|
|
327
|
+
lockScreen(): void;
|
|
328
|
+
refreshPinState(): Promise<void>;
|
|
329
|
+
/** Refreshes lock settings and PIN state for menu/commands. */
|
|
330
|
+
refreshLockState(): Promise<void>;
|
|
331
|
+
/** Restores the lock overlay when the persisted session is locked. */
|
|
332
|
+
restoreFromPersistedSession(): Promise<void>;
|
|
333
|
+
/** Re-evaluates idle lock after the user sets or changes their security PIN. */
|
|
334
|
+
notifyPinChanged(): Promise<void>;
|
|
335
|
+
private scheduleEnable;
|
|
336
|
+
private runEnable;
|
|
337
|
+
/** Idle lock is active when enabled, or when a persisted lock must be restored/unlocked. */
|
|
338
|
+
private isOperational;
|
|
339
|
+
private restoreLockedSession;
|
|
340
|
+
private handleInactiveSession;
|
|
341
|
+
private disable;
|
|
342
|
+
private refreshConfiguration;
|
|
343
|
+
private applyLockWhenIdleSettingChange;
|
|
344
|
+
private recordActivity;
|
|
345
|
+
private lock;
|
|
346
|
+
private openLockOverlay;
|
|
347
|
+
private shouldShowLockOverlay;
|
|
348
|
+
private createLockOverlay;
|
|
349
|
+
private closeLockOverlay;
|
|
350
|
+
private startIdleCheck;
|
|
351
|
+
private stopIdleCheck;
|
|
352
|
+
private resetUnlockedRuntimeState;
|
|
353
|
+
private readonly onActivity;
|
|
354
|
+
private readonly onMouseMove;
|
|
355
|
+
private attachActivityListeners;
|
|
356
|
+
private detachActivityListeners;
|
|
357
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPIdleLockService, never>;
|
|
358
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPIdleLockService>;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
interface AXPLoginHistoryEntry {
|
|
362
|
+
id: string;
|
|
363
|
+
device: string;
|
|
364
|
+
location: string;
|
|
365
|
+
ipAddress: string;
|
|
366
|
+
browser: string;
|
|
367
|
+
status: string;
|
|
368
|
+
lastLoginDate: Date | string;
|
|
369
|
+
}
|
|
370
|
+
/** Loads sign-in records for the current user from device session storage. */
|
|
371
|
+
declare class AXPLoginHistoryService {
|
|
372
|
+
private readonly sessionService;
|
|
373
|
+
private readonly entityService;
|
|
374
|
+
getEntries(): Promise<AXPLoginHistoryEntry[]>;
|
|
375
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPLoginHistoryService, never>;
|
|
376
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPLoginHistoryService>;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/** Persists the last self-service password change timestamp per user (client-side). */
|
|
380
|
+
declare class AXPAuthPasswordChangeTrackingService {
|
|
381
|
+
private readonly sessionService;
|
|
382
|
+
getLastChangedAt(userId?: string): Date | undefined;
|
|
383
|
+
recordChange(userId?: string, changedAt?: Date): void;
|
|
384
|
+
private buildStorageKey;
|
|
385
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPAuthPasswordChangeTrackingService, never>;
|
|
386
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPAuthPasswordChangeTrackingService>;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
export { AUTH_LOGIN_EXTERNAL_PROVIDERS_SLOT, AUTH_USER_ACTIVITY_DEFAULT_WEEKS, AXMAuthDataSourceProvider, AXMAuthErrorHandler, AXMAuthModule, AXMAuthenticationTypes, AXMDefaultAuthConfigs, AXMUserActivityDataSourceDefinition, 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, resolveDefaultUserActivityDateRange, resolveDefaultUserProfileSectionAction, resolveUserProfileSectionContent, visibleUserProfileSectionActions };
|
|
390
|
+
export type { AXMAuthConfigs, AXPLoginHistoryEntry, AXPUserActivityDataSourceItem, AXPUserActivityDay, AXPUserActivityLevel, AXPUserActivityLoadParams, AXPUserActivityStats, AXPUserActivityWeek, AXPUserAvatarStorageTarget, AXPUserProfileGroup, AXPUserProfileGroupComponentContent, AXPUserProfileGroupContent, AXPUserProfileGroupSectionsContent, AXPUserProfileGroupsPayload, AXPUserProfileHeaderMetaItem, AXPUserProfileHeaderMetaPayload, AXPUserProfileSection, AXPUserProfileSectionAction, AXPUserProfileSectionCardContent, AXPUserProfileSectionComponentContent, AXPUserProfileSectionContent, AXPUserProfileSectionInsight, AXPUserProfileSectionLayout, AXPUserProfileSectionsPayload };
|