verben-authentication-ui 0.5.9 → 0.6.1
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/esm2022/lib/components/user-request/user-request.component.mjs +6 -4
- package/esm2022/lib/components/user-request-approval/facades/user-access-request.facade.mjs +46 -2
- package/esm2022/lib/components/user-request-approval/helper.mjs +21 -1
- package/esm2022/lib/components/user-request-approval/services/user-access-request.service.mjs +14 -1
- package/esm2022/lib/components/user-request-approval/states/user-access-request.state.mjs +8 -1
- package/esm2022/lib/components/user-request-approval/user-request-approval.component.mjs +3 -2
- package/esm2022/lib/components/user-request-approval/user-request-form/use-request-form.component.mjs +7 -1
- package/esm2022/lib/services/http-web-request.service.mjs +2 -2
- package/fesm2022/verben-authentication-ui.mjs +174 -86
- package/fesm2022/verben-authentication-ui.mjs.map +1 -1
- package/lib/components/user-request/user-request.component.d.ts +1 -0
- package/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +4 -0
- package/lib/components/user-request-approval/helper.d.ts +3 -0
- package/lib/components/user-request-approval/services/user-access-request.service.d.ts +11 -0
- package/lib/components/user-request-approval/states/user-access-request.state.d.ts +4 -0
- package/lib/components/user-request-approval/user-request-approval.component.d.ts +1 -1
- package/lib/components/user-request-approval/user-request-form/use-request-form.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -61,7 +61,7 @@ class HttpWebRequestService {
|
|
|
61
61
|
buildHeaders() {
|
|
62
62
|
return {
|
|
63
63
|
'Content-Type': 'application/json',
|
|
64
|
-
'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
64
|
+
'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZXMiOiIiLCJUZW5hbnRJZCI6IlBETFRDNiIsIlNlcnZpY2VOYW1lIjoiV2hpdGUzNjAiLCJuYmYiOjE3MzYxNjM1OTYsImV4cCI6MTczNjM3OTU5NiwiaWF0IjoxNzM2MTYzNTk2fQ.q5ErmDIP0NwKKRlVeb9_EfmrEfd8gsFzkNNszkTeTg4'
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
buildUrl(url, baseUrl) {
|
|
@@ -448,7 +448,8 @@ class UserRequestComponent {
|
|
|
448
448
|
height = 'auto';
|
|
449
449
|
pd = '32px 48px';
|
|
450
450
|
isFormEditable = true;
|
|
451
|
-
apiKey
|
|
451
|
+
apiKey;
|
|
452
|
+
secret;
|
|
452
453
|
hidePassword = false;
|
|
453
454
|
isCode = false;
|
|
454
455
|
text = 'Send Request';
|
|
@@ -481,6 +482,7 @@ class UserRequestComponent {
|
|
|
481
482
|
this.envSvc = envSvc;
|
|
482
483
|
this.route = route;
|
|
483
484
|
this.apiKey = this.envSvc.environment.Tenant;
|
|
485
|
+
this.secret = this.envSvc.environment.Secret;
|
|
484
486
|
this.userRequestForm = this.fb.group({
|
|
485
487
|
Code: new FormControl('', { nonNullable: true }),
|
|
486
488
|
FirstName: new FormControl('', {
|
|
@@ -557,7 +559,7 @@ class UserRequestComponent {
|
|
|
557
559
|
}
|
|
558
560
|
async ngOnInit() {
|
|
559
561
|
await this.getTenantConfig();
|
|
560
|
-
this.route.queryParams.subscribe(params => {
|
|
562
|
+
this.route.queryParams.subscribe((params) => {
|
|
561
563
|
this.code = params['code'];
|
|
562
564
|
this.type = params['type'];
|
|
563
565
|
if (this.code) {
|
|
@@ -631,7 +633,7 @@ class UserRequestComponent {
|
|
|
631
633
|
const data = this.AuthMechanisms.find((item) => item.AuthMechanism.includes(this.type));
|
|
632
634
|
const payload = {
|
|
633
635
|
AuthCode: this.code,
|
|
634
|
-
|
|
636
|
+
Tenant: this.apiKey,
|
|
635
637
|
AuthMechanism: data.AuthMechanism,
|
|
636
638
|
};
|
|
637
639
|
this.utilService.sendBI(true);
|
|
@@ -2648,6 +2650,104 @@ const baseStyle$2 = {
|
|
|
2648
2650
|
},
|
|
2649
2651
|
};
|
|
2650
2652
|
|
|
2653
|
+
var SearchOperator;
|
|
2654
|
+
(function (SearchOperator) {
|
|
2655
|
+
SearchOperator["And"] = "And";
|
|
2656
|
+
SearchOperator["Or"] = "Or";
|
|
2657
|
+
})(SearchOperator || (SearchOperator = {}));
|
|
2658
|
+
|
|
2659
|
+
var SearchPropertySign;
|
|
2660
|
+
(function (SearchPropertySign) {
|
|
2661
|
+
SearchPropertySign["EQ"] = "EQ";
|
|
2662
|
+
SearchPropertySign["NEQ"] = "NEQ";
|
|
2663
|
+
SearchPropertySign["GT"] = "GT";
|
|
2664
|
+
SearchPropertySign["GTE"] = "GTE";
|
|
2665
|
+
SearchPropertySign["LT"] = "LT";
|
|
2666
|
+
SearchPropertySign["LTE"] = "LTE";
|
|
2667
|
+
SearchPropertySign["LIKE"] = "LIKE";
|
|
2668
|
+
})(SearchPropertySign || (SearchPropertySign = {}));
|
|
2669
|
+
|
|
2670
|
+
var OAuthType;
|
|
2671
|
+
(function (OAuthType) {
|
|
2672
|
+
OAuthType["InApp"] = "InApp";
|
|
2673
|
+
OAuthType["Google"] = "Google";
|
|
2674
|
+
OAuthType["Facebook"] = "Facebook";
|
|
2675
|
+
OAuthType["OAuth"] = "OAuth";
|
|
2676
|
+
OAuthType["MicrosoftAD"] = "MicrosoftAD";
|
|
2677
|
+
})(OAuthType || (OAuthType = {}));
|
|
2678
|
+
|
|
2679
|
+
var UserAccessRequestStatus;
|
|
2680
|
+
(function (UserAccessRequestStatus) {
|
|
2681
|
+
UserAccessRequestStatus["Pending"] = "Pending";
|
|
2682
|
+
UserAccessRequestStatus["Approved"] = "Approved";
|
|
2683
|
+
UserAccessRequestStatus["Declined"] = "Declined";
|
|
2684
|
+
})(UserAccessRequestStatus || (UserAccessRequestStatus = {}));
|
|
2685
|
+
|
|
2686
|
+
var SearchPropertyValueType;
|
|
2687
|
+
(function (SearchPropertyValueType) {
|
|
2688
|
+
SearchPropertyValueType["Int"] = "Int";
|
|
2689
|
+
SearchPropertyValueType["Float"] = "Float";
|
|
2690
|
+
SearchPropertyValueType["Decimal"] = "Decimal";
|
|
2691
|
+
SearchPropertyValueType["Double"] = "Double";
|
|
2692
|
+
SearchPropertyValueType["String"] = "String";
|
|
2693
|
+
SearchPropertyValueType["Bool"] = "Bool";
|
|
2694
|
+
SearchPropertyValueType["Date"] = "Date";
|
|
2695
|
+
})(SearchPropertyValueType || (SearchPropertyValueType = {}));
|
|
2696
|
+
|
|
2697
|
+
const roles = [
|
|
2698
|
+
{ id: 'admin', name: 'Admin' },
|
|
2699
|
+
{ id: 'manager', name: 'Manager' },
|
|
2700
|
+
{ id: 'staff', name: 'Staff' },
|
|
2701
|
+
];
|
|
2702
|
+
const mockData = new Array(10)
|
|
2703
|
+
.fill(1)
|
|
2704
|
+
.map((id, i) => ({
|
|
2705
|
+
FirstName: `First ${id + i}`,
|
|
2706
|
+
LastName: `Last ${id + i}`,
|
|
2707
|
+
OtherName: `Other ${id + i}`,
|
|
2708
|
+
Id: id + i,
|
|
2709
|
+
id: (id + i).toString(),
|
|
2710
|
+
MailAddress: `user${id + i}@mail.com`,
|
|
2711
|
+
PhoneNumber: `+23480000000${id + i}`,
|
|
2712
|
+
RequestStatus: randomEnum$1(UserAccessRequestStatus),
|
|
2713
|
+
RoleID: roles[Math.floor(Math.random() * roles.length)].id,
|
|
2714
|
+
Password: '1234567',
|
|
2715
|
+
ExpireOn: new Date(),
|
|
2716
|
+
IsSeeded: false,
|
|
2717
|
+
OTPExpireOn: new Date(),
|
|
2718
|
+
Tenants: [],
|
|
2719
|
+
SignupType: OAuthType.InApp,
|
|
2720
|
+
CreatedAt: new Date(),
|
|
2721
|
+
UpdatedAt: new Date(),
|
|
2722
|
+
DataState: ObjectState.New,
|
|
2723
|
+
TenantId: `Tenant${id + i}`,
|
|
2724
|
+
Code: '',
|
|
2725
|
+
ServiceName: '',
|
|
2726
|
+
}));
|
|
2727
|
+
function randomEnum$1(anEnum) {
|
|
2728
|
+
const enumValues = Object.values(anEnum);
|
|
2729
|
+
const randomIndex = Math.floor(Math.random() * enumValues.length);
|
|
2730
|
+
return enumValues[randomIndex];
|
|
2731
|
+
}
|
|
2732
|
+
function convertDataFilterTypeToSearchPropertyValueType(type) {
|
|
2733
|
+
switch (type) {
|
|
2734
|
+
case DataFilterType.String:
|
|
2735
|
+
return SearchPropertyValueType.String;
|
|
2736
|
+
case DataFilterType.Integer:
|
|
2737
|
+
return SearchPropertyValueType.Int;
|
|
2738
|
+
case DataFilterType.Decimal:
|
|
2739
|
+
return SearchPropertyValueType.Decimal;
|
|
2740
|
+
case DataFilterType.Credit:
|
|
2741
|
+
return SearchPropertyValueType.Float;
|
|
2742
|
+
case DataFilterType.Date:
|
|
2743
|
+
return SearchPropertyValueType.Date;
|
|
2744
|
+
case DataFilterType.Bool:
|
|
2745
|
+
return SearchPropertyValueType.Bool;
|
|
2746
|
+
case DataFilterType.Number:
|
|
2747
|
+
return SearchPropertyValueType.Int;
|
|
2748
|
+
}
|
|
2749
|
+
}
|
|
2750
|
+
|
|
2651
2751
|
class UserAccessRequestService {
|
|
2652
2752
|
httpService;
|
|
2653
2753
|
BASE_URL = 'User';
|
|
@@ -2683,6 +2783,19 @@ class UserAccessRequestService {
|
|
|
2683
2783
|
const url = `${this.BASE_URL}/GetUserAccessRequestWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
2684
2784
|
return this.httpService.get(url);
|
|
2685
2785
|
}
|
|
2786
|
+
/**
|
|
2787
|
+
* Get user access requests with additional parameter, pagination and sorting
|
|
2788
|
+
* @param params Filter parameters
|
|
2789
|
+
* @param skip Number of records to skip
|
|
2790
|
+
* @param limit Number of records to take
|
|
2791
|
+
* @param sortParam Sort parameter
|
|
2792
|
+
* @param sortOrder Sort order ('asc' or 'desc')
|
|
2793
|
+
* @returns Promise containing the filtered user access requests
|
|
2794
|
+
*/
|
|
2795
|
+
getUserAccessRequestByFilterParams(params, skip, limit, sortParam, sortOrder) {
|
|
2796
|
+
const url = `${this.BASE_URL}/SearchUserAccessRequest/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
2797
|
+
return this.httpService.post(url, params);
|
|
2798
|
+
}
|
|
2686
2799
|
/**
|
|
2687
2800
|
* Save multiple user access requests
|
|
2688
2801
|
* @param requests Array of user access requests to save
|
|
@@ -2732,6 +2845,7 @@ class UserAccessRequestState {
|
|
|
2732
2845
|
sortParam: 'CreatedAt',
|
|
2733
2846
|
sortOrder: 'asc',
|
|
2734
2847
|
});
|
|
2848
|
+
filterParams$ = new BehaviorSubject([]);
|
|
2735
2849
|
isUpdating$() {
|
|
2736
2850
|
return this.updating$.asObservable();
|
|
2737
2851
|
}
|
|
@@ -2744,6 +2858,12 @@ class UserAccessRequestState {
|
|
|
2744
2858
|
setRequests(requests) {
|
|
2745
2859
|
this.requests$.next(requests);
|
|
2746
2860
|
}
|
|
2861
|
+
getFilterParams$() {
|
|
2862
|
+
return this.filterParams$.asObservable();
|
|
2863
|
+
}
|
|
2864
|
+
setFilterParams(params) {
|
|
2865
|
+
this.filterParams$.next(params);
|
|
2866
|
+
}
|
|
2747
2867
|
getRoles$() {
|
|
2748
2868
|
return this.roles$.asObservable();
|
|
2749
2869
|
}
|
|
@@ -2814,13 +2934,20 @@ class UserAccessRequestFacade {
|
|
|
2814
2934
|
this.utilService = utilService;
|
|
2815
2935
|
// Set up debounced search handling
|
|
2816
2936
|
this.searchSubject
|
|
2817
|
-
.pipe(debounceTime(
|
|
2937
|
+
.pipe(debounceTime(1000), distinctUntilChanged(), takeUntil(this.destroy$))
|
|
2818
2938
|
.subscribe((searchTerm) => {
|
|
2819
2939
|
this.handleSearch(searchTerm);
|
|
2820
2940
|
});
|
|
2821
2941
|
this.isUpdating$().subscribe((loading) => {
|
|
2822
2942
|
this.utilService.sendBI(loading);
|
|
2823
2943
|
});
|
|
2944
|
+
this.getFilterParams$().subscribe((params) => {
|
|
2945
|
+
if (params.length) {
|
|
2946
|
+
}
|
|
2947
|
+
else {
|
|
2948
|
+
this.loadRequests();
|
|
2949
|
+
}
|
|
2950
|
+
});
|
|
2824
2951
|
}
|
|
2825
2952
|
destroy() {
|
|
2826
2953
|
this.destroy$.next();
|
|
@@ -2832,6 +2959,9 @@ class UserAccessRequestFacade {
|
|
|
2832
2959
|
getRequests$() {
|
|
2833
2960
|
return this.userAccessRequestState.getRequests$();
|
|
2834
2961
|
}
|
|
2962
|
+
getFilterParams$() {
|
|
2963
|
+
return this.userAccessRequestState.getFilterParams$();
|
|
2964
|
+
}
|
|
2835
2965
|
getRoles$() {
|
|
2836
2966
|
return this.userAccessRequestState.getRoles$();
|
|
2837
2967
|
}
|
|
@@ -2865,6 +2995,10 @@ class UserAccessRequestFacade {
|
|
|
2865
2995
|
this.userAccessRequestState.setUpdating(false);
|
|
2866
2996
|
}
|
|
2867
2997
|
}
|
|
2998
|
+
async filter(filterParams) {
|
|
2999
|
+
this.userAccessRequestState.resetPagination();
|
|
3000
|
+
this.userAccessRequestState.setFilterParams(filterParams);
|
|
3001
|
+
}
|
|
2868
3002
|
// Load more handling
|
|
2869
3003
|
async loadMore() {
|
|
2870
3004
|
try {
|
|
@@ -2933,6 +3067,27 @@ class UserAccessRequestFacade {
|
|
|
2933
3067
|
this.userAccessRequestState.setUpdating(false);
|
|
2934
3068
|
}
|
|
2935
3069
|
}
|
|
3070
|
+
async loadRequestsByFilterParams(filterParams) {
|
|
3071
|
+
try {
|
|
3072
|
+
this.userAccessRequestState.setUpdating(true);
|
|
3073
|
+
const params = this.userAccessRequestState.getQueryParamsValue();
|
|
3074
|
+
const requests = await this.userAccessRequestService.getUserAccessRequestByFilterParams(filterParams.map((filter) => ({
|
|
3075
|
+
PropertyName: filter.name,
|
|
3076
|
+
EntityValue: filter.value,
|
|
3077
|
+
type: convertDataFilterTypeToSearchPropertyValueType(filter.type),
|
|
3078
|
+
Operator: SearchOperator.And,
|
|
3079
|
+
Sign: SearchPropertySign.EQ,
|
|
3080
|
+
})), params.skip, params.limit, params.sortParam || 'createdDate', params.sortOrder);
|
|
3081
|
+
this.userAccessRequestState.setRequests(requests.Result);
|
|
3082
|
+
}
|
|
3083
|
+
catch (error) {
|
|
3084
|
+
console.error('Failed to load requests with param:', error);
|
|
3085
|
+
throw error;
|
|
3086
|
+
}
|
|
3087
|
+
finally {
|
|
3088
|
+
this.userAccessRequestState.setUpdating(false);
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
2936
3091
|
updateQueryParams(params) {
|
|
2937
3092
|
this.userAccessRequestState.updateQueryParams(params);
|
|
2938
3093
|
this.loadRequests();
|
|
@@ -3009,18 +3164,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3009
3164
|
providedIn: 'root',
|
|
3010
3165
|
}]
|
|
3011
3166
|
}], ctorParameters: () => [{ type: UserAccessRequestService }, { type: UserAccessRequestState }, { type: UtilService }] });
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
})(UserAccessRequestStatus || (UserAccessRequestStatus = {}));
|
|
3167
|
+
var DateFilterTypes$2;
|
|
3168
|
+
(function (DateFilterTypes) {
|
|
3169
|
+
DateFilterTypes["Before"] = "LT";
|
|
3170
|
+
DateFilterTypes["On"] = "EQ";
|
|
3171
|
+
DateFilterTypes["After"] = "GT";
|
|
3172
|
+
})(DateFilterTypes$2 || (DateFilterTypes$2 = {}));
|
|
3019
3173
|
|
|
3020
3174
|
class UserRequestFormComponent {
|
|
3021
3175
|
fb;
|
|
3022
3176
|
roles = [];
|
|
3177
|
+
get currentData() {
|
|
3178
|
+
return this._currentData;
|
|
3179
|
+
}
|
|
3023
3180
|
set currentData(value) {
|
|
3181
|
+
this._currentData = value;
|
|
3024
3182
|
if (value?.data) {
|
|
3025
3183
|
this.form.patchValue({
|
|
3026
3184
|
MailAddress: value.data.MailAddress || '',
|
|
@@ -3034,6 +3192,7 @@ class UserRequestFormComponent {
|
|
|
3034
3192
|
this.form.reset();
|
|
3035
3193
|
}
|
|
3036
3194
|
}
|
|
3195
|
+
_currentData = null;
|
|
3037
3196
|
switchView = new EventEmitter();
|
|
3038
3197
|
onApproval = new EventEmitter();
|
|
3039
3198
|
form;
|
|
@@ -3058,6 +3217,7 @@ class UserRequestFormComponent {
|
|
|
3058
3217
|
// } catch (error) {
|
|
3059
3218
|
// // Handle error
|
|
3060
3219
|
// }
|
|
3220
|
+
console.log(this.currentData?.data);
|
|
3061
3221
|
}
|
|
3062
3222
|
onSave() {
|
|
3063
3223
|
if (this.form.valid) {
|
|
@@ -3315,7 +3475,7 @@ class UserRequestApprovalComponent {
|
|
|
3315
3475
|
{
|
|
3316
3476
|
name: 'CreatedAt',
|
|
3317
3477
|
type: DataFilterType.Date,
|
|
3318
|
-
checked:
|
|
3478
|
+
checked: true,
|
|
3319
3479
|
},
|
|
3320
3480
|
];
|
|
3321
3481
|
clearData() {
|
|
@@ -3353,6 +3513,7 @@ class UserRequestApprovalComponent {
|
|
|
3353
3513
|
}
|
|
3354
3514
|
onFilterSet(event) {
|
|
3355
3515
|
console.log(event);
|
|
3516
|
+
this.userAccessRequestFacade.filter(event);
|
|
3356
3517
|
}
|
|
3357
3518
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserRequestApprovalComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: UserAccessRequestFacade }], target: i0.ɵɵFactoryTarget.Component });
|
|
3358
3519
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserRequestApprovalComponent, selector: "lib-user-request-approval", viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <lib-user-access-request-status-badge\n [status]=\"value\"\n ></lib-user-access-request-status-badge>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow>\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <!-- <button (click)=\"openDetailView(value)\">Open</button>\n <button (click)=\"selected = cardData[rowIndex]; vdv.toggleView()\">\n Switch\n </button> -->\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <!-- <ng-template #header>\n <strong>Actions</strong>\n </ng-template> -->\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"#f5f6f9\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span\n class=\"font-semibold text-[#404040] flex-1 truncate\"\n >{{ item.title }}</span\n >\n\n <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Role</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.body[0]?.Role\n }}</span>\n </p>\n\n <lib-user-access-request-status-badge\n [status]=\"item.data.RequestStatus\"\n ></lib-user-access-request-status-badge>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-user-request-form\n [roles]=\"roles()\"\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-between': true,\n 'justify-end': vdcv.hasCurrentItem()\n }\"\n >\n <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterSet($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data()\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: ["*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-8{bottom:2rem}.left-0{left:0}.right-0{right:0}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.float-right{float:right}.m-0{margin:0}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-\\[8px\\]{margin-top:8px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\\[100\\%\\]{height:100%}.h-\\[max-content\\]{height:-moz-max-content;height:max-content}.h-full{height:100%}.w-2{width:.5rem}.w-3{width:.75rem}.w-full{width:100%}.\\!max-w-\\[304px\\]{max-width:304px!important}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-20{gap:5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\\[1\\.5vw\\]{gap:1.5vw}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.rounded-\\[9px\\]{border-radius:9px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-br-none{border-bottom-right-radius:0}.rounded-tr-none{border-top-right-radius:0}.border,.border-\\[1px\\]{border-width:1px}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.border-secondary-200{border-color:#d7dbe6}.bg-\\[\\#CAE1CC\\]{--tw-bg-opacity: 1;background-color:rgb(202 225 204 / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(212 160 7 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 234 241 / var(--tw-bg-opacity, 1))}.bg-secondary-100{--tw-bg-opacity: 1;background-color:rgb(245 246 249 / var(--tw-bg-opacity, 1))}.bg-secondary-200{background-color:#d7dbe6}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.text-center{text-align:center}.\\!text-\\[10px\\]{font-size:10px!important}.text-\\[10px\\]{font-size:10px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[2rem\\]{font-size:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.lowercase{text-transform:lowercase}.leading-6{line-height:1.5rem}.leading-\\[12\\.1px\\]{line-height:12.1px}.leading-\\[16\\.6px\\]{line-height:16.6px}.leading-\\[19\\.5px\\]{line-height:19.5px}.leading-\\[29\\.05px\\]{line-height:29.05px}.leading-\\[33px\\]{line-height:33px}.leading-\\[48px\\]{line-height:48px}.text-\\[\\#333\\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\\[\\#3479E9\\]{--tw-text-opacity: 1;color:rgb(52 121 233 / var(--tw-text-opacity, 1))}.text-\\[\\#404040\\]{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-\\[\\#4ABB54\\]{--tw-text-opacity: 1;color:rgb(74 187 84 / var(--tw-text-opacity, 1))}.text-\\[black\\]{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-muted{color:#0009}.underline{text-decoration-line:underline}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.view-links{color:#3479e9;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "groupBy", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowDelete", "selectionChange"] }, { kind: "directive", type: i2.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i2.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "exportCustomClass", "selectCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "columnTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "showColumnChild", "showSortChild", "showFilterChild", "showExportChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i2.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "onItemClick", "onCardChildClick"], outputs: ["loadMoreClick"] }, { kind: "component", type: i2.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i2.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i2.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i2.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i2.SortTableComponent, selector: "verben-sort-table", inputs: ["enableDragAndDrop", "sortOptions", "resetText", "displayedOptions", "propertyText", "showMoreText", "sortButtonText", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "containerHeight"], outputs: ["selectedOptions"] }, { kind: "component", type: i2.VisibleColumnComponent, selector: "verben-visible-column", inputs: ["columns", "items", "enableDragAndDrop", "displayedColumns", "showMore", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "closeColumn"], outputs: ["columnsUpdated"] }, { kind: "component", type: i2.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied"] }, { kind: "component", type: i2.DataExportComponent, selector: "lib-data-export", inputs: ["data"], outputs: ["exportDataEvent"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: UserRequestFormComponent, selector: "lib-user-request-form", inputs: ["roles", "currentData"], outputs: ["switchView", "onApproval"] }, { kind: "component", type: UserAccessRequestStatusBadgeComponent, selector: "lib-user-access-request-status-badge", inputs: ["status"] }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -3368,51 +3529,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3368
3529
|
args: ['vdv']
|
|
3369
3530
|
}] } });
|
|
3370
3531
|
|
|
3371
|
-
var OAuthType;
|
|
3372
|
-
(function (OAuthType) {
|
|
3373
|
-
OAuthType["InApp"] = "InApp";
|
|
3374
|
-
OAuthType["Google"] = "Google";
|
|
3375
|
-
OAuthType["Facebook"] = "Facebook";
|
|
3376
|
-
OAuthType["OAuth"] = "OAuth";
|
|
3377
|
-
OAuthType["MicrosoftAD"] = "MicrosoftAD";
|
|
3378
|
-
})(OAuthType || (OAuthType = {}));
|
|
3379
|
-
|
|
3380
|
-
const roles = [
|
|
3381
|
-
{ id: 'admin', name: 'Admin' },
|
|
3382
|
-
{ id: 'manager', name: 'Manager' },
|
|
3383
|
-
{ id: 'staff', name: 'Staff' },
|
|
3384
|
-
];
|
|
3385
|
-
const mockData = new Array(10)
|
|
3386
|
-
.fill(1)
|
|
3387
|
-
.map((id, i) => ({
|
|
3388
|
-
FirstName: `First ${id + i}`,
|
|
3389
|
-
LastName: `Last ${id + i}`,
|
|
3390
|
-
OtherName: `Other ${id + i}`,
|
|
3391
|
-
Id: id + i,
|
|
3392
|
-
id: (id + i).toString(),
|
|
3393
|
-
MailAddress: `user${id + i}@mail.com`,
|
|
3394
|
-
PhoneNumber: `+23480000000${id + i}`,
|
|
3395
|
-
RequestStatus: randomEnum$1(UserAccessRequestStatus),
|
|
3396
|
-
RoleID: roles[Math.floor(Math.random() * roles.length)].id,
|
|
3397
|
-
Password: '1234567',
|
|
3398
|
-
ExpireOn: new Date(),
|
|
3399
|
-
IsSeeded: false,
|
|
3400
|
-
OTPExpireOn: new Date(),
|
|
3401
|
-
Tenants: [],
|
|
3402
|
-
SignupType: OAuthType.InApp,
|
|
3403
|
-
CreatedAt: new Date(),
|
|
3404
|
-
UpdatedAt: new Date(),
|
|
3405
|
-
DataState: ObjectState.New,
|
|
3406
|
-
TenantId: `Tenant${id + i}`,
|
|
3407
|
-
Code: '',
|
|
3408
|
-
ServiceName: '',
|
|
3409
|
-
}));
|
|
3410
|
-
function randomEnum$1(anEnum) {
|
|
3411
|
-
const enumValues = Object.values(anEnum);
|
|
3412
|
-
const randomIndex = Math.floor(Math.random() * enumValues.length);
|
|
3413
|
-
return enumValues[randomIndex];
|
|
3414
|
-
}
|
|
3415
|
-
|
|
3416
3532
|
const SERVICE_CONFIG = new InjectionToken('ServiceConfig');
|
|
3417
3533
|
class UserRequestApprovalService {
|
|
3418
3534
|
// protected readonly baseUrl: string;
|
|
@@ -3557,17 +3673,6 @@ const columns = [
|
|
|
3557
3673
|
},
|
|
3558
3674
|
];
|
|
3559
3675
|
|
|
3560
|
-
var SearchPropertySign;
|
|
3561
|
-
(function (SearchPropertySign) {
|
|
3562
|
-
SearchPropertySign["EQ"] = "EQ";
|
|
3563
|
-
SearchPropertySign["NEQ"] = "NEQ";
|
|
3564
|
-
SearchPropertySign["GT"] = "GT";
|
|
3565
|
-
SearchPropertySign["GTE"] = "GTE";
|
|
3566
|
-
SearchPropertySign["LT"] = "LT";
|
|
3567
|
-
SearchPropertySign["LTE"] = "LTE";
|
|
3568
|
-
SearchPropertySign["LIKE"] = "LIKE";
|
|
3569
|
-
})(SearchPropertySign || (SearchPropertySign = {}));
|
|
3570
|
-
|
|
3571
3676
|
const baseStyle$1 = {
|
|
3572
3677
|
width: "100%",
|
|
3573
3678
|
fontFamily: '"Fraunces", serif',
|
|
@@ -4588,23 +4693,6 @@ var ChildrenType;
|
|
|
4588
4693
|
ChildrenType["Action"] = "Action";
|
|
4589
4694
|
})(ChildrenType || (ChildrenType = {}));
|
|
4590
4695
|
|
|
4591
|
-
var SearchOperator;
|
|
4592
|
-
(function (SearchOperator) {
|
|
4593
|
-
SearchOperator["And"] = "And";
|
|
4594
|
-
SearchOperator["Or"] = "Or";
|
|
4595
|
-
})(SearchOperator || (SearchOperator = {}));
|
|
4596
|
-
|
|
4597
|
-
var SearchPropertyValueType;
|
|
4598
|
-
(function (SearchPropertyValueType) {
|
|
4599
|
-
SearchPropertyValueType["Int"] = "Int";
|
|
4600
|
-
SearchPropertyValueType["Float"] = "Float";
|
|
4601
|
-
SearchPropertyValueType["Decimal"] = "Decimal";
|
|
4602
|
-
SearchPropertyValueType["Double"] = "Double";
|
|
4603
|
-
SearchPropertyValueType["String"] = "String";
|
|
4604
|
-
SearchPropertyValueType["Bool"] = "Bool";
|
|
4605
|
-
SearchPropertyValueType["Date"] = "Date";
|
|
4606
|
-
})(SearchPropertyValueType || (SearchPropertyValueType = {}));
|
|
4607
|
-
|
|
4608
4696
|
class RoleControlService {
|
|
4609
4697
|
constructor() { }
|
|
4610
4698
|
get roleColumns() {
|