@flusys/ng-auth 0.1.0-beta.3 → 1.1.0-beta
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/README.md +45 -5
- package/fesm2022/flusys-ng-auth.mjs +2163 -318
- package/fesm2022/flusys-ng-auth.mjs.map +1 -1
- package/package.json +4 -4
- package/types/flusys-ng-auth.d.ts +201 -44
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flusys/ng-auth",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0-beta",
|
|
4
4
|
"description": "Authentication module for FLUSYS Angular applications",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"@angular/core": "^21.0.0",
|
|
9
9
|
"@angular/forms": "^21.0.0",
|
|
10
10
|
"@angular/router": "^21.0.0",
|
|
11
|
-
"@flusys/ng-core": "^
|
|
12
|
-
"@flusys/ng-layout": "^
|
|
13
|
-
"@flusys/ng-shared": "^
|
|
11
|
+
"@flusys/ng-core": "^1.1.0-beta",
|
|
12
|
+
"@flusys/ng-layout": "^1.1.0-beta",
|
|
13
|
+
"@flusys/ng-shared": "^1.1.0-beta",
|
|
14
14
|
"@primeuix/themes": "^1.0.0",
|
|
15
15
|
"primeicons": "^7.0.0",
|
|
16
16
|
"primeng": "^21.0.0"
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { IMessageResponse, ApiResourceService, ISingleResponse, IUserProvider, IListResponse, IUserBasicInfo, ICompanyApiProvider, ICompanyBasicInfo, IUserPermissionProvider } from '@flusys/ng-shared';
|
|
1
|
+
import { IMessageResponse, ApiResourceService, ISingleResponse, IUserProvider, IListResponse, IUserBasicInfo, ICompanyApiProvider, ICompanyBasicInfo, IUserPermissionProvider, IProfileRoleInfo, IProfileActionInfo, UploadFileFn } from '@flusys/ng-shared';
|
|
2
2
|
import * as rxjs from 'rxjs';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { Signal, Provider, OnInit } from '@angular/core';
|
|
6
6
|
import { HttpClient, HttpRequest, HttpHandlerFn, HttpEvent } from '@angular/common/http';
|
|
7
7
|
import { CanActivateFn, Routes } from '@angular/router';
|
|
8
|
-
import {
|
|
8
|
+
import { ILayoutAuthApi, ICompanyInfo as ICompanyInfo$1, IBranchInfo as IBranchInfo$1, ILayoutAuthState, IUserInfo as IUserInfo$1 } from '@flusys/ng-layout';
|
|
9
9
|
import * as _angular_forms_signals from '@angular/forms/signals';
|
|
10
10
|
import * as _flusys_ng_auth from '@flusys/ng-auth';
|
|
11
|
+
import * as _flusys_ng_core from '@flusys/ng-core';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Login Request Interface
|
|
@@ -62,6 +63,7 @@ interface IUserInfo {
|
|
|
62
63
|
id: string;
|
|
63
64
|
email: string;
|
|
64
65
|
name?: string;
|
|
66
|
+
phone?: string | null;
|
|
65
67
|
profilePictureId?: string | null;
|
|
66
68
|
companyId?: string;
|
|
67
69
|
branchId?: string;
|
|
@@ -134,12 +136,13 @@ interface IMeResponse {
|
|
|
134
136
|
* Returned on successful registration
|
|
135
137
|
*/
|
|
136
138
|
interface IRegistrationResponse {
|
|
137
|
-
accessToken
|
|
138
|
-
refreshToken
|
|
139
|
+
accessToken?: string;
|
|
140
|
+
refreshToken?: string;
|
|
139
141
|
user: IUserInfo;
|
|
140
142
|
company?: ICompanyInfo;
|
|
141
143
|
branch?: IBranchInfo;
|
|
142
144
|
companyFeatureEnabled?: boolean;
|
|
145
|
+
requiresEmailVerification?: boolean;
|
|
143
146
|
}
|
|
144
147
|
/**
|
|
145
148
|
* Company Selection Response Interface
|
|
@@ -160,9 +163,21 @@ interface IRefreshTokenResponse {
|
|
|
160
163
|
refreshToken?: string;
|
|
161
164
|
}
|
|
162
165
|
/**
|
|
163
|
-
*
|
|
166
|
+
* Login Response when email verification required
|
|
167
|
+
*/
|
|
168
|
+
interface ILoginRequiresEmailVerification {
|
|
169
|
+
requiresEmailVerification: true;
|
|
170
|
+
email: string;
|
|
171
|
+
message: string;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Auth Response Type - Can be login success, company selection, or email verification required
|
|
164
175
|
*/
|
|
165
|
-
type AuthResponse = ILoginResponse | ICompanySelectionResponse;
|
|
176
|
+
type AuthResponse = ILoginResponse | ICompanySelectionResponse | ILoginRequiresEmailVerification;
|
|
177
|
+
/**
|
|
178
|
+
* Type guard to check if response requires email verification
|
|
179
|
+
*/
|
|
180
|
+
declare function isEmailVerificationRequired(response: AuthResponse): response is ILoginRequiresEmailVerification;
|
|
166
181
|
/**
|
|
167
182
|
* Type guard to check if response requires company selection
|
|
168
183
|
*/
|
|
@@ -445,6 +460,16 @@ declare class AuthApiService {
|
|
|
445
460
|
* Reset password with token
|
|
446
461
|
*/
|
|
447
462
|
resetPassword(token: string, newPassword: string): Observable<IMessageResponse>;
|
|
463
|
+
/**
|
|
464
|
+
* Resend verification email (unauthenticated)
|
|
465
|
+
*/
|
|
466
|
+
resendVerification(email: string): Observable<IMessageResponse>;
|
|
467
|
+
/**
|
|
468
|
+
* Verify email with token
|
|
469
|
+
* Returns IMessageResponse for existing user verification
|
|
470
|
+
* Returns IRegistrationResponse for pending registration completion
|
|
471
|
+
*/
|
|
472
|
+
verifyEmail(token: string): Observable<IMessageResponse | IRegistrationResponse>;
|
|
448
473
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthApiService, never>;
|
|
449
474
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AuthApiService>;
|
|
450
475
|
}
|
|
@@ -848,21 +873,7 @@ declare const guestGuard: CanActivateFn;
|
|
|
848
873
|
declare const companyFeatureGuard: CanActivateFn;
|
|
849
874
|
|
|
850
875
|
/**
|
|
851
|
-
* Auth Interceptor
|
|
852
|
-
* Adds Authorization header and tenant header to HTTP requests.
|
|
853
|
-
*
|
|
854
|
-
* - Adds Bearer token for authenticated requests (including /auth/me)
|
|
855
|
-
* - Adds tenant header for multi-tenant mode
|
|
856
|
-
* - Adds withCredentials for auth endpoints (cookies)
|
|
857
|
-
*
|
|
858
|
-
* @example
|
|
859
|
-
* ```typescript
|
|
860
|
-
* // In app.config.ts
|
|
861
|
-
* provideHttpClient(
|
|
862
|
-
* withFetch(),
|
|
863
|
-
* withInterceptors([authInterceptor, tokenRefreshInterceptor])
|
|
864
|
-
* )
|
|
865
|
-
* ```
|
|
876
|
+
* Auth Interceptor - Adds auth headers and cookie credentials to requests
|
|
866
877
|
*/
|
|
867
878
|
declare function authInterceptor(req: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>>;
|
|
868
879
|
|
|
@@ -901,6 +912,11 @@ declare const AUTH_ROUTES: Routes;
|
|
|
901
912
|
* Uses tabbed interface - all under /administration with child routes
|
|
902
913
|
*/
|
|
903
914
|
declare const ADMINISTRATION_ROUTES: Routes;
|
|
915
|
+
/**
|
|
916
|
+
* Profile Routes Configuration
|
|
917
|
+
* Protected route for user profile management
|
|
918
|
+
*/
|
|
919
|
+
declare const PROFILE_ROUTES: Routes;
|
|
904
920
|
|
|
905
921
|
/**
|
|
906
922
|
* Auth Layout State Adapter
|
|
@@ -992,6 +1008,7 @@ declare class AuthUserProviderAdapter implements IUserProvider {
|
|
|
992
1008
|
search?: string;
|
|
993
1009
|
companyId?: string;
|
|
994
1010
|
branchId?: string;
|
|
1011
|
+
isActive?: boolean;
|
|
995
1012
|
[key: string]: any;
|
|
996
1013
|
}): Observable<IListResponse<IUserBasicInfo>>;
|
|
997
1014
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthUserProviderAdapter, never>;
|
|
@@ -1100,6 +1117,10 @@ declare const AUTH_ENDPOINTS: {
|
|
|
1100
1117
|
readonly REGISTER: "/auth/register";
|
|
1101
1118
|
readonly SELECT: "/auth/select";
|
|
1102
1119
|
readonly SWITCH_COMPANY: "/auth/switch-company";
|
|
1120
|
+
readonly VERIFY_EMAIL: "/auth/verify-email";
|
|
1121
|
+
readonly FORGOT_PASSWORD: "/auth/forgot-password";
|
|
1122
|
+
readonly RESET_PASSWORD: "/auth/reset-password";
|
|
1123
|
+
readonly RESEND_VERIFICATION: "/auth/resend-verification";
|
|
1103
1124
|
};
|
|
1104
1125
|
/**
|
|
1105
1126
|
* Check if a URL is an auth-related endpoint
|
|
@@ -1290,6 +1311,25 @@ declare class CompanyListComponent implements OnInit {
|
|
|
1290
1311
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompanyListComponent, "lib-company-list", never, {}, {}, never, never, true, never>;
|
|
1291
1312
|
}
|
|
1292
1313
|
|
|
1314
|
+
interface IForgotPasswordFormModel {
|
|
1315
|
+
email: string;
|
|
1316
|
+
}
|
|
1317
|
+
declare class ForgotPasswordPageComponent {
|
|
1318
|
+
private readonly destroyRef;
|
|
1319
|
+
private readonly messageService;
|
|
1320
|
+
private readonly authApi;
|
|
1321
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1322
|
+
readonly emailSent: _angular_core.WritableSignal<boolean>;
|
|
1323
|
+
readonly submittedEmail: _angular_core.WritableSignal<string>;
|
|
1324
|
+
readonly formModel: _angular_core.WritableSignal<IForgotPasswordFormModel>;
|
|
1325
|
+
readonly forgotForm: _angular_forms_signals.FieldTree<IForgotPasswordFormModel, string | number>;
|
|
1326
|
+
readonly isFormValid: _angular_core.Signal<boolean>;
|
|
1327
|
+
onSubmit(): void;
|
|
1328
|
+
resetForm(): void;
|
|
1329
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForgotPasswordPageComponent, never>;
|
|
1330
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ForgotPasswordPageComponent, "lib-forgot-password-page", never, {}, {}, never, never, true, never>;
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1293
1333
|
/** Login form model interface */
|
|
1294
1334
|
interface ILoginFormModel {
|
|
1295
1335
|
email: string;
|
|
@@ -1302,7 +1342,7 @@ interface ISelectionFormModel {
|
|
|
1302
1342
|
branchId: string;
|
|
1303
1343
|
rememberSelection: boolean;
|
|
1304
1344
|
}
|
|
1305
|
-
type LoginStep = 'credentials' | 'company-selection';
|
|
1345
|
+
type LoginStep = 'credentials' | 'company-selection' | 'email-verification';
|
|
1306
1346
|
/**
|
|
1307
1347
|
* Login Page Component
|
|
1308
1348
|
* Multi-step authentication flow:
|
|
@@ -1315,12 +1355,10 @@ declare class LoginPageComponent implements OnInit {
|
|
|
1315
1355
|
private readonly messageService;
|
|
1316
1356
|
private readonly authApi;
|
|
1317
1357
|
private readonly authState;
|
|
1318
|
-
/** Return URL after successful login */
|
|
1319
1358
|
readonly returnUrl: _angular_core.InputSignal<string>;
|
|
1320
|
-
/** Current step in login flow */
|
|
1321
1359
|
readonly currentStep: _angular_core.WritableSignal<LoginStep>;
|
|
1322
|
-
/** Loading state */
|
|
1323
1360
|
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1361
|
+
readonly unverifiedEmail: _angular_core.WritableSignal<string>;
|
|
1324
1362
|
/** Login form model */
|
|
1325
1363
|
readonly loginFormModel: _angular_core.WritableSignal<ILoginFormModel>;
|
|
1326
1364
|
/** Login form with validation schema */
|
|
@@ -1349,12 +1387,94 @@ declare class LoginPageComponent implements OnInit {
|
|
|
1349
1387
|
onCompanyChange(): void;
|
|
1350
1388
|
onSelectCompany(): void;
|
|
1351
1389
|
goBackToCredentials(): void;
|
|
1390
|
+
onResendVerification(): void;
|
|
1352
1391
|
private autoSelectIfSingle;
|
|
1353
1392
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginPageComponent, never>;
|
|
1354
1393
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginPageComponent, "lib-login-page", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1355
1394
|
}
|
|
1356
1395
|
|
|
1357
|
-
/**
|
|
1396
|
+
/** Profile form model */
|
|
1397
|
+
interface IProfileFormModel {
|
|
1398
|
+
name: string;
|
|
1399
|
+
phone: string;
|
|
1400
|
+
}
|
|
1401
|
+
/** Password form model */
|
|
1402
|
+
interface IPasswordFormModel {
|
|
1403
|
+
currentPassword: string;
|
|
1404
|
+
newPassword: string;
|
|
1405
|
+
confirmPassword: string;
|
|
1406
|
+
}
|
|
1407
|
+
/**
|
|
1408
|
+
* Profile Page Component
|
|
1409
|
+
*
|
|
1410
|
+
* Allows users to view and update their profile information.
|
|
1411
|
+
* Features:
|
|
1412
|
+
* - Update name, phone, profile picture (if storage enabled)
|
|
1413
|
+
* - View company/branch info (read-only, if company feature enabled)
|
|
1414
|
+
* - View roles/actions (read-only, if IAM enabled via optional injection)
|
|
1415
|
+
*
|
|
1416
|
+
* Package Independence:
|
|
1417
|
+
* - Uses PROFILE_UPLOAD_PROVIDER (optional) for storage functionality
|
|
1418
|
+
* - Uses PROFILE_PERMISSION_PROVIDER (optional) for IAM functionality
|
|
1419
|
+
* - No direct imports from ng-storage or ng-iam
|
|
1420
|
+
*/
|
|
1421
|
+
declare class ProfilePageComponent implements OnInit {
|
|
1422
|
+
private readonly destroyRef;
|
|
1423
|
+
private readonly appConfig;
|
|
1424
|
+
private readonly messageService;
|
|
1425
|
+
private readonly authState;
|
|
1426
|
+
private readonly userService;
|
|
1427
|
+
private readonly authApiService;
|
|
1428
|
+
private readonly fileUrlService;
|
|
1429
|
+
private readonly uploadProvider;
|
|
1430
|
+
private readonly permissionProvider;
|
|
1431
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1432
|
+
readonly isLoadingPermissions: _angular_core.WritableSignal<boolean>;
|
|
1433
|
+
private readonly _profilePictureUrl;
|
|
1434
|
+
readonly profilePictureUrl: _angular_core.Signal<string | null>;
|
|
1435
|
+
private readonly _userRoles;
|
|
1436
|
+
readonly userRoles: _angular_core.Signal<IProfileRoleInfo[]>;
|
|
1437
|
+
private readonly _userActions;
|
|
1438
|
+
readonly userActions: _angular_core.Signal<IProfileActionInfo[]>;
|
|
1439
|
+
readonly userEmail: _angular_core.Signal<string>;
|
|
1440
|
+
readonly userName: _angular_core.Signal<string>;
|
|
1441
|
+
readonly userInitials: _angular_core.Signal<string>;
|
|
1442
|
+
readonly companyName: _angular_core.Signal<string>;
|
|
1443
|
+
readonly branchName: _angular_core.Signal<string>;
|
|
1444
|
+
readonly showUploadSection: _angular_core.Signal<boolean>;
|
|
1445
|
+
readonly showCompanySection: _angular_core.Signal<boolean>;
|
|
1446
|
+
readonly showPermissionsSection: _angular_core.Signal<boolean>;
|
|
1447
|
+
readonly permissionMode: _angular_core.Signal<_flusys_ng_core.PermissionMode>;
|
|
1448
|
+
readonly showRoles: _angular_core.Signal<boolean>;
|
|
1449
|
+
readonly showActions: _angular_core.Signal<boolean>;
|
|
1450
|
+
readonly showBottomRow: _angular_core.Signal<boolean>;
|
|
1451
|
+
readonly formModel: _angular_core.WritableSignal<IProfileFormModel>;
|
|
1452
|
+
readonly formTree: _angular_forms_signals.FieldTree<IProfileFormModel, string | number>;
|
|
1453
|
+
readonly isFormValid: _angular_core.Signal<boolean>;
|
|
1454
|
+
readonly passwordModel: _angular_core.WritableSignal<IPasswordFormModel>;
|
|
1455
|
+
readonly isPasswordLoading: _angular_core.WritableSignal<boolean>;
|
|
1456
|
+
readonly isPasswordFormValid: _angular_core.Signal<boolean>;
|
|
1457
|
+
readonly passwordsMatch: _angular_core.Signal<boolean>;
|
|
1458
|
+
readonly uploadFileFn: UploadFileFn;
|
|
1459
|
+
/** Map upload result to IUploadedFile format */
|
|
1460
|
+
private mapUploadResultToUploadedFile;
|
|
1461
|
+
ngOnInit(): void;
|
|
1462
|
+
private loadUserData;
|
|
1463
|
+
private loadPermissions;
|
|
1464
|
+
onProfilePictureUploaded(file: {
|
|
1465
|
+
id?: string;
|
|
1466
|
+
name: string;
|
|
1467
|
+
key: string;
|
|
1468
|
+
size: number;
|
|
1469
|
+
contentType: string;
|
|
1470
|
+
}): void;
|
|
1471
|
+
onSubmit(): void;
|
|
1472
|
+
updatePasswordField(field: keyof IPasswordFormModel, value: string): void;
|
|
1473
|
+
onChangePassword(): void;
|
|
1474
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfilePageComponent, never>;
|
|
1475
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfilePageComponent, "lib-profile-page", never, {}, {}, never, never, true, never>;
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1358
1478
|
interface IUserFormModel$1 {
|
|
1359
1479
|
name: string;
|
|
1360
1480
|
email: string;
|
|
@@ -1362,7 +1482,6 @@ interface IUserFormModel$1 {
|
|
|
1362
1482
|
confirmPassword: string;
|
|
1363
1483
|
phone: string;
|
|
1364
1484
|
}
|
|
1365
|
-
/** Company form model */
|
|
1366
1485
|
interface ICompanyFormModel {
|
|
1367
1486
|
createNewCompany: boolean;
|
|
1368
1487
|
companySlug: string;
|
|
@@ -1371,11 +1490,6 @@ interface ICompanyFormModel {
|
|
|
1371
1490
|
newCompanyPhone: string;
|
|
1372
1491
|
newCompanyAddress: string;
|
|
1373
1492
|
}
|
|
1374
|
-
/**
|
|
1375
|
-
* Registration Page Component
|
|
1376
|
-
* Handles user registration with optional company creation
|
|
1377
|
-
* Adapts UI based on company feature configuration
|
|
1378
|
-
*/
|
|
1379
1493
|
declare class RegisterPageComponent implements OnInit {
|
|
1380
1494
|
private readonly destroyRef;
|
|
1381
1495
|
private readonly appConfig;
|
|
@@ -1383,31 +1497,46 @@ declare class RegisterPageComponent implements OnInit {
|
|
|
1383
1497
|
private readonly authApi;
|
|
1384
1498
|
private readonly authState;
|
|
1385
1499
|
private readonly route;
|
|
1386
|
-
|
|
1500
|
+
private readonly router;
|
|
1387
1501
|
readonly returnUrl: _angular_core.InputSignal<string>;
|
|
1388
|
-
/** Loading state */
|
|
1389
1502
|
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1390
|
-
/** Whether company feature is enabled */
|
|
1391
1503
|
readonly companyFeatureEnabled: _angular_core.Signal<boolean>;
|
|
1392
|
-
/** User form model */
|
|
1393
1504
|
readonly userFormModel: _angular_core.WritableSignal<IUserFormModel$1>;
|
|
1394
|
-
/** User form with validation schema */
|
|
1395
1505
|
readonly userForm: _angular_forms_signals.FieldTree<IUserFormModel$1, string | number>;
|
|
1396
|
-
/** Company form model */
|
|
1397
1506
|
readonly companyFormModel: _angular_core.WritableSignal<ICompanyFormModel>;
|
|
1398
|
-
/** Company form with conditional validation schema */
|
|
1399
1507
|
readonly companyForm: _angular_forms_signals.FieldTree<ICompanyFormModel, string | number>;
|
|
1400
|
-
ngOnInit(): void;
|
|
1401
|
-
/** Check if passwords match */
|
|
1402
1508
|
readonly passwordsMatch: _angular_core.Signal<boolean>;
|
|
1403
|
-
/** Check if form is valid */
|
|
1404
1509
|
readonly isFormValid: _angular_core.Signal<boolean>;
|
|
1510
|
+
ngOnInit(): void;
|
|
1405
1511
|
onCreateCompanyToggle(): void;
|
|
1406
1512
|
onSubmit(): void;
|
|
1407
1513
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RegisterPageComponent, never>;
|
|
1408
1514
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RegisterPageComponent, "lib-register-page", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1409
1515
|
}
|
|
1410
1516
|
|
|
1517
|
+
interface IResetPasswordFormModel {
|
|
1518
|
+
newPassword: string;
|
|
1519
|
+
confirmPassword: string;
|
|
1520
|
+
}
|
|
1521
|
+
type PageState$1 = 'form' | 'success' | 'invalid-token';
|
|
1522
|
+
declare class ResetPasswordPageComponent implements OnInit {
|
|
1523
|
+
private readonly destroyRef;
|
|
1524
|
+
private readonly route;
|
|
1525
|
+
private readonly messageService;
|
|
1526
|
+
private readonly authApi;
|
|
1527
|
+
private token;
|
|
1528
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1529
|
+
readonly pageState: _angular_core.WritableSignal<PageState$1>;
|
|
1530
|
+
readonly formModel: _angular_core.WritableSignal<IResetPasswordFormModel>;
|
|
1531
|
+
readonly resetForm: _angular_forms_signals.FieldTree<IResetPasswordFormModel, string | number>;
|
|
1532
|
+
readonly passwordMismatch: _angular_core.Signal<boolean>;
|
|
1533
|
+
readonly canSubmit: _angular_core.Signal<boolean>;
|
|
1534
|
+
ngOnInit(): void;
|
|
1535
|
+
onSubmit(): void;
|
|
1536
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ResetPasswordPageComponent, never>;
|
|
1537
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ResetPasswordPageComponent, "lib-reset-password-page", never, {}, {}, never, never, true, never>;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1411
1540
|
/** User form model interface */
|
|
1412
1541
|
interface IUserFormModel {
|
|
1413
1542
|
name: string;
|
|
@@ -1499,6 +1628,34 @@ declare class UserListComponent implements OnInit {
|
|
|
1499
1628
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserListComponent, "lib-user-list", never, {}, {}, never, never, true, never>;
|
|
1500
1629
|
}
|
|
1501
1630
|
|
|
1631
|
+
interface IResendFormModel {
|
|
1632
|
+
email: string;
|
|
1633
|
+
}
|
|
1634
|
+
type PageState = 'verifying' | 'success' | 'invalid-token' | 'resend';
|
|
1635
|
+
declare class VerifyEmailPageComponent implements OnInit {
|
|
1636
|
+
private readonly platformId;
|
|
1637
|
+
private readonly transferState;
|
|
1638
|
+
private readonly destroyRef;
|
|
1639
|
+
private readonly route;
|
|
1640
|
+
private readonly messageService;
|
|
1641
|
+
private readonly authApi;
|
|
1642
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1643
|
+
readonly pageState: _angular_core.WritableSignal<PageState>;
|
|
1644
|
+
readonly resendSuccess: _angular_core.WritableSignal<boolean>;
|
|
1645
|
+
readonly submittedEmail: _angular_core.WritableSignal<string>;
|
|
1646
|
+
readonly resendFormModel: _angular_core.WritableSignal<IResendFormModel>;
|
|
1647
|
+
readonly resendForm: _angular_forms_signals.FieldTree<IResendFormModel, string | number>;
|
|
1648
|
+
readonly isResendFormValid: _angular_core.Signal<boolean>;
|
|
1649
|
+
ngOnInit(): void;
|
|
1650
|
+
private verifyEmail;
|
|
1651
|
+
private handleVerificationResult;
|
|
1652
|
+
showResendForm(): void;
|
|
1653
|
+
onResend(): void;
|
|
1654
|
+
private handleResendComplete;
|
|
1655
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<VerifyEmailPageComponent, never>;
|
|
1656
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<VerifyEmailPageComponent, "lib-verify-email-page", never, {}, {}, never, never, true, never>;
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1502
1659
|
/**
|
|
1503
1660
|
* User Branch Permission Dialog
|
|
1504
1661
|
*
|
|
@@ -1594,5 +1751,5 @@ interface CompanyWithAssignment extends ICompany {
|
|
|
1594
1751
|
isAssigned: boolean;
|
|
1595
1752
|
}
|
|
1596
1753
|
|
|
1597
|
-
export { ADMINISTRATION_ROUTES, AUTH_ENDPOINTS, AUTH_ROUTES, AdministrationPageComponent, AuthApiService, AuthCompanyApiProviderAdapter, AuthInitService, AuthLayoutApiAdapter, AuthLayoutStateAdapter, AuthStateService, AuthUserPermissionProviderAdapter, AuthUserProviderAdapter, BranchApiService, BranchFormComponent, BranchListComponent, CompanyApiService, CompanyFormComponent, CompanyListComponent, LoginPageComponent, RegisterPageComponent, TokenRefreshStateService, UserApiService, UserBranchPermissionDialogComponent, UserCompanyPermissionDialogComponent, UserFormComponent, UserListComponent, UserPermissionApiService, authGuard, authInterceptor, companyFeatureGuard, guestGuard, isAuthEndpoint, isCompanySelectionResponse, isEndpoint, isLoginResponse, provideAuthLayoutIntegration, provideAuthProviders, tokenRefreshInterceptor };
|
|
1598
|
-
export type { AuthResponse, IAssignUserBranchRequest, IAssignUserCompanyRequest, IBatchOperationResponse, IBranch, IBranchInfo, IBranchSelectionInfo, IChangePasswordRequest, ICompany, ICompanyInfo, ICompanySelectionResponse, ICompanyWithBranches, ICreateBranchRequest, ICreateCompanyRequest, ICreateUserRequest, ILoginRequest, ILoginResponse, IMeResponse, IPermissionItem, IRefreshTokenResponse, IRegistrationRequest, IRegistrationResponse, ISelectRequest, ISwitchCompanyRequest, IUpdateBranchRequest, IUpdateCompanyRequest, IUpdateUserRequest, IUser, IUserBranchPermission, IUserBranchesResponse, IUserCompaniesResponse, IUserCompanyPermission, IUserInfo };
|
|
1754
|
+
export { ADMINISTRATION_ROUTES, AUTH_ENDPOINTS, AUTH_ROUTES, AdministrationPageComponent, AuthApiService, AuthCompanyApiProviderAdapter, AuthInitService, AuthLayoutApiAdapter, AuthLayoutStateAdapter, AuthStateService, AuthUserPermissionProviderAdapter, AuthUserProviderAdapter, BranchApiService, BranchFormComponent, BranchListComponent, CompanyApiService, CompanyFormComponent, CompanyListComponent, ForgotPasswordPageComponent, LoginPageComponent, PROFILE_ROUTES, ProfilePageComponent, RegisterPageComponent, ResetPasswordPageComponent, TokenRefreshStateService, UserApiService, UserBranchPermissionDialogComponent, UserCompanyPermissionDialogComponent, UserFormComponent, UserListComponent, UserPermissionApiService, VerifyEmailPageComponent, authGuard, authInterceptor, companyFeatureGuard, guestGuard, isAuthEndpoint, isCompanySelectionResponse, isEmailVerificationRequired, isEndpoint, isLoginResponse, provideAuthLayoutIntegration, provideAuthProviders, tokenRefreshInterceptor };
|
|
1755
|
+
export type { AuthResponse, IAssignUserBranchRequest, IAssignUserCompanyRequest, IBatchOperationResponse, IBranch, IBranchInfo, IBranchSelectionInfo, IChangePasswordRequest, ICompany, ICompanyInfo, ICompanySelectionResponse, ICompanyWithBranches, ICreateBranchRequest, ICreateCompanyRequest, ICreateUserRequest, ILoginRequest, ILoginRequiresEmailVerification, ILoginResponse, IMeResponse, IPermissionItem, IRefreshTokenResponse, IRegistrationRequest, IRegistrationResponse, ISelectRequest, ISwitchCompanyRequest, IUpdateBranchRequest, IUpdateCompanyRequest, IUpdateUserRequest, IUser, IUserBranchPermission, IUserBranchesResponse, IUserCompaniesResponse, IUserCompanyPermission, IUserInfo };
|