@flusys/ng-auth 1.0.0-beta → 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 -4
- package/fesm2022/flusys-ng-auth.mjs +2045 -237
- package/fesm2022/flusys-ng-auth.mjs.map +1 -1
- package/package.json +4 -4
- package/types/flusys-ng-auth.d.ts +199 -43
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flusys/ng-auth",
|
|
3
|
-
"version": "1.
|
|
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": "^1.
|
|
12
|
-
"@flusys/ng-layout": "^1.
|
|
13
|
-
"@flusys/ng-shared": "^1.
|
|
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,4 +1,4 @@
|
|
|
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';
|
|
@@ -8,6 +8,7 @@ import { CanActivateFn, Routes } from '@angular/router';
|
|
|
8
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
|
|
@@ -1101,6 +1117,10 @@ declare const AUTH_ENDPOINTS: {
|
|
|
1101
1117
|
readonly REGISTER: "/auth/register";
|
|
1102
1118
|
readonly SELECT: "/auth/select";
|
|
1103
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";
|
|
1104
1124
|
};
|
|
1105
1125
|
/**
|
|
1106
1126
|
* Check if a URL is an auth-related endpoint
|
|
@@ -1291,6 +1311,25 @@ declare class CompanyListComponent implements OnInit {
|
|
|
1291
1311
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompanyListComponent, "lib-company-list", never, {}, {}, never, never, true, never>;
|
|
1292
1312
|
}
|
|
1293
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
|
+
|
|
1294
1333
|
/** Login form model interface */
|
|
1295
1334
|
interface ILoginFormModel {
|
|
1296
1335
|
email: string;
|
|
@@ -1303,7 +1342,7 @@ interface ISelectionFormModel {
|
|
|
1303
1342
|
branchId: string;
|
|
1304
1343
|
rememberSelection: boolean;
|
|
1305
1344
|
}
|
|
1306
|
-
type LoginStep = 'credentials' | 'company-selection';
|
|
1345
|
+
type LoginStep = 'credentials' | 'company-selection' | 'email-verification';
|
|
1307
1346
|
/**
|
|
1308
1347
|
* Login Page Component
|
|
1309
1348
|
* Multi-step authentication flow:
|
|
@@ -1316,12 +1355,10 @@ declare class LoginPageComponent implements OnInit {
|
|
|
1316
1355
|
private readonly messageService;
|
|
1317
1356
|
private readonly authApi;
|
|
1318
1357
|
private readonly authState;
|
|
1319
|
-
/** Return URL after successful login */
|
|
1320
1358
|
readonly returnUrl: _angular_core.InputSignal<string>;
|
|
1321
|
-
/** Current step in login flow */
|
|
1322
1359
|
readonly currentStep: _angular_core.WritableSignal<LoginStep>;
|
|
1323
|
-
/** Loading state */
|
|
1324
1360
|
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1361
|
+
readonly unverifiedEmail: _angular_core.WritableSignal<string>;
|
|
1325
1362
|
/** Login form model */
|
|
1326
1363
|
readonly loginFormModel: _angular_core.WritableSignal<ILoginFormModel>;
|
|
1327
1364
|
/** Login form with validation schema */
|
|
@@ -1350,12 +1387,94 @@ declare class LoginPageComponent implements OnInit {
|
|
|
1350
1387
|
onCompanyChange(): void;
|
|
1351
1388
|
onSelectCompany(): void;
|
|
1352
1389
|
goBackToCredentials(): void;
|
|
1390
|
+
onResendVerification(): void;
|
|
1353
1391
|
private autoSelectIfSingle;
|
|
1354
1392
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginPageComponent, never>;
|
|
1355
1393
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginPageComponent, "lib-login-page", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1356
1394
|
}
|
|
1357
1395
|
|
|
1358
|
-
/**
|
|
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
|
+
|
|
1359
1478
|
interface IUserFormModel$1 {
|
|
1360
1479
|
name: string;
|
|
1361
1480
|
email: string;
|
|
@@ -1363,7 +1482,6 @@ interface IUserFormModel$1 {
|
|
|
1363
1482
|
confirmPassword: string;
|
|
1364
1483
|
phone: string;
|
|
1365
1484
|
}
|
|
1366
|
-
/** Company form model */
|
|
1367
1485
|
interface ICompanyFormModel {
|
|
1368
1486
|
createNewCompany: boolean;
|
|
1369
1487
|
companySlug: string;
|
|
@@ -1372,11 +1490,6 @@ interface ICompanyFormModel {
|
|
|
1372
1490
|
newCompanyPhone: string;
|
|
1373
1491
|
newCompanyAddress: string;
|
|
1374
1492
|
}
|
|
1375
|
-
/**
|
|
1376
|
-
* Registration Page Component
|
|
1377
|
-
* Handles user registration with optional company creation
|
|
1378
|
-
* Adapts UI based on company feature configuration
|
|
1379
|
-
*/
|
|
1380
1493
|
declare class RegisterPageComponent implements OnInit {
|
|
1381
1494
|
private readonly destroyRef;
|
|
1382
1495
|
private readonly appConfig;
|
|
@@ -1384,31 +1497,46 @@ declare class RegisterPageComponent implements OnInit {
|
|
|
1384
1497
|
private readonly authApi;
|
|
1385
1498
|
private readonly authState;
|
|
1386
1499
|
private readonly route;
|
|
1387
|
-
|
|
1500
|
+
private readonly router;
|
|
1388
1501
|
readonly returnUrl: _angular_core.InputSignal<string>;
|
|
1389
|
-
/** Loading state */
|
|
1390
1502
|
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
1391
|
-
/** Whether company feature is enabled */
|
|
1392
1503
|
readonly companyFeatureEnabled: _angular_core.Signal<boolean>;
|
|
1393
|
-
/** User form model */
|
|
1394
1504
|
readonly userFormModel: _angular_core.WritableSignal<IUserFormModel$1>;
|
|
1395
|
-
/** User form with validation schema */
|
|
1396
1505
|
readonly userForm: _angular_forms_signals.FieldTree<IUserFormModel$1, string | number>;
|
|
1397
|
-
/** Company form model */
|
|
1398
1506
|
readonly companyFormModel: _angular_core.WritableSignal<ICompanyFormModel>;
|
|
1399
|
-
/** Company form with conditional validation schema */
|
|
1400
1507
|
readonly companyForm: _angular_forms_signals.FieldTree<ICompanyFormModel, string | number>;
|
|
1401
|
-
ngOnInit(): void;
|
|
1402
|
-
/** Check if passwords match */
|
|
1403
1508
|
readonly passwordsMatch: _angular_core.Signal<boolean>;
|
|
1404
|
-
/** Check if form is valid */
|
|
1405
1509
|
readonly isFormValid: _angular_core.Signal<boolean>;
|
|
1510
|
+
ngOnInit(): void;
|
|
1406
1511
|
onCreateCompanyToggle(): void;
|
|
1407
1512
|
onSubmit(): void;
|
|
1408
1513
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RegisterPageComponent, never>;
|
|
1409
1514
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RegisterPageComponent, "lib-register-page", never, { "returnUrl": { "alias": "returnUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1410
1515
|
}
|
|
1411
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
|
+
|
|
1412
1540
|
/** User form model interface */
|
|
1413
1541
|
interface IUserFormModel {
|
|
1414
1542
|
name: string;
|
|
@@ -1500,6 +1628,34 @@ declare class UserListComponent implements OnInit {
|
|
|
1500
1628
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserListComponent, "lib-user-list", never, {}, {}, never, never, true, never>;
|
|
1501
1629
|
}
|
|
1502
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
|
+
|
|
1503
1659
|
/**
|
|
1504
1660
|
* User Branch Permission Dialog
|
|
1505
1661
|
*
|
|
@@ -1595,5 +1751,5 @@ interface CompanyWithAssignment extends ICompany {
|
|
|
1595
1751
|
isAssigned: boolean;
|
|
1596
1752
|
}
|
|
1597
1753
|
|
|
1598
|
-
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 };
|
|
1599
|
-
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 };
|