verben-authentication-ui 1.0.30 → 1.0.31
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/src/lib/components/user-management/user-management-form/user-management-form.component.mjs +31 -28
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs +31 -28
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs.map +1 -1
- package/package.json +35 -35
- package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts +1 -9
|
@@ -14,9 +14,9 @@ export class UserManagementFormComponent {
|
|
|
14
14
|
set currentData(value) {
|
|
15
15
|
if (value?.data) {
|
|
16
16
|
// Convert comma-separated warehouse codes back to array for dropdown
|
|
17
|
-
const warehouseCodes = value.data.Warehouses
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
// const warehouseCodes = value.data.Warehouses
|
|
18
|
+
// ? value.data.Warehouses.split(',').filter((code: string) => code.trim())
|
|
19
|
+
// : [];
|
|
20
20
|
this.form.patchValue({
|
|
21
21
|
MailAddress: value.data.MailAddress || '',
|
|
22
22
|
FirstName: value.data.FirstName || '',
|
|
@@ -26,7 +26,7 @@ export class UserManagementFormComponent {
|
|
|
26
26
|
RoleID: value.data.RoleID || '',
|
|
27
27
|
Tags: value.data.Tags || [],
|
|
28
28
|
Status: value.data.Status || Status.Active,
|
|
29
|
-
Warehouses: warehouseCodes,
|
|
29
|
+
// Warehouses: warehouseCodes,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
@@ -39,7 +39,7 @@ export class UserManagementFormComponent {
|
|
|
39
39
|
onFormSave = new EventEmitter();
|
|
40
40
|
form;
|
|
41
41
|
statusOptions = Object.values(Status);
|
|
42
|
-
warehouses = [];
|
|
42
|
+
// warehouses: Warehouse[] = [];
|
|
43
43
|
constructor(fb, userManagementService, envService) {
|
|
44
44
|
this.fb = fb;
|
|
45
45
|
this.userManagementService = userManagementService;
|
|
@@ -53,30 +53,33 @@ export class UserManagementFormComponent {
|
|
|
53
53
|
Status: ['', { readonly: true }],
|
|
54
54
|
RoleID: [''],
|
|
55
55
|
Tags: [[]],
|
|
56
|
-
Warehouses: [[]],
|
|
56
|
+
// Warehouses: [[]],
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
ngOnInit() {
|
|
60
|
-
this.loadWarehouses();
|
|
61
|
-
}
|
|
62
|
-
async loadWarehouses() {
|
|
63
|
-
try {
|
|
64
|
-
this.warehouses = await this.userManagementService.loadEntities('Warehouse', ['Name', 'Code'], this.envService.environment.RevenueAPI);
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
console.error('Error loading warehouses:', error);
|
|
68
|
-
this.warehouses = [];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
onWarehouseChange(event) {
|
|
72
|
-
// Convert array of warehouse codes to comma-separated string
|
|
73
|
-
const selectedCodes = event.value;
|
|
74
|
-
const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';
|
|
75
|
-
// Update the form with the comma-separated value for saving
|
|
76
|
-
this.form.patchValue({
|
|
77
|
-
Warehouses: commaSeparated
|
|
78
|
-
}, { emitEvent: false });
|
|
60
|
+
// this.loadWarehouses();
|
|
79
61
|
}
|
|
62
|
+
// async loadWarehouses(): Promise<void> {
|
|
63
|
+
// try {
|
|
64
|
+
// this.warehouses = await this.userManagementService.loadEntities<Warehouse>(
|
|
65
|
+
// 'Warehouse',
|
|
66
|
+
// ['Name', 'Code'],
|
|
67
|
+
// this.envService.environment.RevenueAPI
|
|
68
|
+
// );
|
|
69
|
+
// } catch (error) {
|
|
70
|
+
// console.error('Error loading warehouses:', error);
|
|
71
|
+
// this.warehouses = [];
|
|
72
|
+
// }
|
|
73
|
+
// }
|
|
74
|
+
// onWarehouseChange(event: DropdownChangeEvent): void {
|
|
75
|
+
// // Convert array of warehouse codes to comma-separated string
|
|
76
|
+
// const selectedCodes = event.value as string[];
|
|
77
|
+
// const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';
|
|
78
|
+
// // Update the form with the comma-separated value for saving
|
|
79
|
+
// this.form.patchValue({
|
|
80
|
+
// Warehouses: commaSeparated
|
|
81
|
+
// }, { emitEvent: false });
|
|
82
|
+
// }
|
|
80
83
|
onSave() {
|
|
81
84
|
if (this.form.valid) {
|
|
82
85
|
// Emit save event with form value
|
|
@@ -89,11 +92,11 @@ export class UserManagementFormComponent {
|
|
|
89
92
|
console.log('Delete requested');
|
|
90
93
|
}
|
|
91
94
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.UserManagementService }, { token: i3.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
92
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserManagementFormComponent, selector: "lib-user-request-form", inputs: { currentData: "currentData", roles: "roles", tags: "tags" }, outputs: { switchView: "switchView", onFormSave: "onFormSave" }, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div
|
|
95
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserManagementFormComponent, selector: "lib-user-request-form", inputs: { currentData: "currentData", roles: "roles", tags: "tags" }, outputs: { switchView: "switchView", onFormSave: "onFormSave" }, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
|
|
93
96
|
}
|
|
94
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, decorators: [{
|
|
95
98
|
type: Component,
|
|
96
|
-
args: [{ selector: 'lib-user-request-form', template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div
|
|
99
|
+
args: [{ selector: 'lib-user-request-form', template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n" }]
|
|
97
100
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.UserManagementService }, { type: i3.EnvironmentService }], propDecorators: { currentData: [{
|
|
98
101
|
type: Input
|
|
99
102
|
}], roles: [{
|
|
@@ -105,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
105
108
|
}], onFormSave: [{
|
|
106
109
|
type: Output
|
|
107
110
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1tYW5hZ2VtZW50LWZvcm0vdXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1tYW5hZ2VtZW50LWZvcm0vdXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQVEsTUFBTSxFQUFhLE1BQU0seUNBQXlDLENBQUM7Ozs7OztBQXNCbEYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDNUI7SUFDQTtJQUNBO0lBdENWLCtCQUErQjtJQUMvQixrQ0FBa0M7SUFFbEMsSUFBYSxXQUFXLENBQUMsS0FBc0I7UUFDN0MsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIscUVBQXFFO1lBQ3JFLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFDMUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDeEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVQLElBQUksQ0FBQyxJQUFJLENBQUMs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QWlCLENBQUM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEUsNERBQTREO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ25CLFVBQVUsRUFBRSxjQUFjO1NBQzNCLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixrQ0FBa0M7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0E3RlUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsb01DeEJ4Qyw0d0VBK0NBOzs0RkR2QmEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHVCQUF1QjtxSkFRcEIsV0FBVztzQkFBdkIsS0FBSztnQkFzQkcsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvbGUsIFN0YXR1cywgVGFnLCBVc2VyIH0gZnJvbSAndmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7IENhcmREYXRhLCBEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXItbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIFVzZXJGb3JtRGF0YSB7XG4gIE1haWxBZGRyZXNzOiBzdHJpbmc7XG4gIEZpcnN0TmFtZTogc3RyaW5nO1xuICBMYXN0TmFtZTogc3RyaW5nO1xuICBQaG9uZU51bWJlcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgV2FyZWhvdXNlIHtcbiAgTmFtZTogc3RyaW5nO1xuICBDb2RlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi11c2VyLXJlcXVlc3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLW1hbmFnZW1lbnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLW1hbmFnZW1lbnQtZm9ybS5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlck1hbmFnZW1lbnRGb3JtQ29tcG9uZW50IHtcbiAgLy8gQElucHV0KCkgcm9sZXM6IFJvbGVbXSA9IFtdO1xuICAvLyBASW5wdXQoKSBzdGF0dXM6IFN0YXR1c1tdID0gW107XG5cbiAgQElucHV0KCkgc2V0IGN1cnJlbnREYXRhKHZhbHVlOiBDYXJkRGF0YSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWU/LmRhdGEpIHtcbiAgICAgIC8vIENvbnZlcnQgY29tbWEtc2VwYXJhdGVkIHdhcmVob3VzZSBjb2RlcyBiYWNrIHRvIGFycmF5IGZvciBkcm9wZG93blxuICAgICAgY29uc3Qgd2FyZWhvdXNlQ29kZXMgPSB2YWx1ZS5kYXRhLldhcmVob3VzZXNcbiAgICAgICAgPyB2YWx1ZS5kYXRhLldhcmVob3VzZXMuc3BsaXQoJywnKS5maWx0ZXIoKGNvZGU6IHN0cmluZykgPT4gY29kZS50cmltKCkpXG4gICAgICAgIDogW107XG5cbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgTWFpbEFkZHJlc3M6IHZhbHVlLmRhdGEuTWFpbEFkZHJlc3MgfHwgJycsXG4gICAgICAgIEZpcnN0TmFtZTogdmFsdWUuZGF0YS5GaXJzdE5hbWUgfHwgJycsXG4gICAgICAgIExhc3ROYW1lOiB2YWx1ZS5kYXRhLkxhc3ROYW1lIHx8ICcnLFxuICAgICAgICBQaG9uZU51bWJlcjogdmFsdWUuZGF0YS5QaG9uZU51bWJlciB8fCAnJyxcbiAgICAgICAgLy8gQWRkcmVzczogdmFsdWUuZGF0YS5BZGRyZXNzIHx8ICcnLFxuICAgICAgICBSb2xlSUQ6IHZhbHVlLmRhdGEuUm9sZUlEIHx8ICcnLFxuICAgICAgICBUYWdzOiB2YWx1ZS5kYXRhLlRhZ3MgfHwgW10sXG4gICAgICAgIFN0YXR1czogdmFsdWUuZGF0YS5TdGF0dXMgfHwgU3RhdHVzLkFjdGl2ZSxcbiAgICAgICAgV2FyZWhvdXNlczogd2FyZWhvdXNlQ29kZXMsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHJvbGVzOiBSb2xlW10gPSBbXTtcbiAgQElucHV0KCkgdGFnczogVGFnW10gPSBbXTtcblxuICBAT3V0cHV0KCkgc3dpdGNoVmlldyA9IG5ldyBFdmVudEVtaXR0ZXI8dW5kZWZpbmVkPigpO1xuICBAT3V0cHV0KCkgb25Gb3JtU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFydGlhbDxVc2VyPj4oKTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHN0YXR1c09wdGlvbnMgPSBPYmplY3QudmFsdWVzKFN0YXR1cyk7XG4gIHdhcmVob3VzZXM6IFdhcmVob3VzZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB1c2VyTWFuYWdlbWVudFNlcnZpY2U6IFVzZXJNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGVudlNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZVxuICApIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE1haWxBZGRyZXNzOiBbJycsIHsgcmVhZG9ubHk6IHRydWUgfV0sXG4gICAgICBGaXJzdE5hbWU6IFsnJywgeyByZWFkb25seTogdHJ1ZSB9XSxcbiAgICAgIExhc3ROYW1lOiBbJycsIHsgcmVhZG9ubHk6IHRydWUgfV0sXG4gICAgICBQaG9uZU51bWJlcjogWycnLCB7IHJlYWRvbmx5OiB0cnVlIH1dLFxuICAgICAgLy8gQWRkcmVzczogWycnLCB7IHJlYWRvbmx5OiB0cnVlIH1dLFxuICAgICAgU3RhdHVzOiBbJycsIHsgcmVhZG9ubHk6IHRydWUgfV0sXG4gICAgICBSb2xlSUQ6IFsnJ10sXG4gICAgICBUYWdzOiBbW11dLFxuICAgICAgV2FyZWhvdXNlczogW1tdXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZFdhcmVob3VzZXMoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRXYXJlaG91c2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLndhcmVob3VzZXMgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VtZW50U2VydmljZS5sb2FkRW50aXRpZXM8V2FyZWhvdXNlPihcbiAgICAgICAgJ1dhcmVob3VzZScsXG4gICAgICAgIFsnTmFtZScsICdDb2RlJ10sXG4gICAgICAgIHRoaXMuZW52U2VydmljZS5lbnZpcm9ubWVudC5SZXZlbnVlQVBJXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHdhcmVob3VzZXM6JywgZXJyb3IpO1xuICAgICAgdGhpcy53YXJlaG91c2VzID0gW107XG4gICAgfVxuICB9XG5cbiAgb25XYXJlaG91c2VDaGFuZ2UoZXZlbnQ6IERyb3Bkb3duQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDb252ZXJ0IGFycmF5IG9mIHdhcmVob3VzZSBjb2RlcyB0byBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nXG4gICAgY29uc3Qgc2VsZWN0ZWRDb2RlcyA9IGV2ZW50LnZhbHVlIGFzIHN0cmluZ1tdO1xuICAgIGNvbnN0IGNvbW1hU2VwYXJhdGVkID0gc2VsZWN0ZWRDb2RlcyA/IHNlbGVjdGVkQ29kZXMuam9pbignLCcpIDogJyc7XG5cbiAgICAvLyBVcGRhdGUgdGhlIGZvcm0gd2l0aCB0aGUgY29tbWEtc2VwYXJhdGVkIHZhbHVlIGZvciBzYXZpbmdcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBXYXJlaG91c2VzOiBjb21tYVNlcGFyYXRlZFxuICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAvLyBFbWl0IHNhdmUgZXZlbnQgd2l0aCBmb3JtIHZhbHVlXG4gICAgICBjb25zb2xlLmxvZygnRm9ybSBzYXZlZDonLCB0aGlzLmZvcm0udmFsdWUpO1xuICAgICAgdGhpcy5vbkZvcm1TYXZlLmVtaXQodGhpcy5mb3JtLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZSgpOiB2b2lkIHtcbiAgICAvLyBFbWl0IGRlbGV0ZSBldmVudFxuICAgIGNvbnNvbGUubG9nKCdEZWxldGUgcmVxdWVzdGVkJyk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC0zIHBiLTMgcm91bmRlZC14bCBoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlIHNwYWNlLXktNFwiPlxuICA8dmVyYmVuYS1pbnB1dCBsYWJlbD1cIkZpcnN0IE5hbWU6XCIgbmFtZT1cIkZpcnN0TmFtZVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiRmlyc3ROYW1lXCIgLz5cbiAgPHZlcmJlbmEtaW5wdXQgbGFiZWw9XCJMYXN0IE5hbWU6XCIgbmFtZT1cIkxhc3ROYW1lXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJMYXN0TmFtZVwiIC8+XG4gIDx2ZXJiZW5hLWlucHV0IGxhYmVsPVwiUGhvbmUgTnVtYmVyOlwiIG5hbWU9XCJQaG9uZU51bWJlclwiIHR5cGU9XCJ0ZWxcIiBmb3JtQ29udHJvbE5hbWU9XCJQaG9uZU51bWJlclwiIC8+XG4gIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJNYWlsQWRkcmVzc1wiIGxhYmVsPVwiRS1NYWlsIEFkZHJlc3M6XCIgW3R5cGVdPVwiJ2VtYWlsJ1wiIGZvcm1Db250cm9sTmFtZT1cIk1haWxBZGRyZXNzXCIgLz5cbiAgPCEtLSA8dmVyYmVuYS1pbnB1dFxuICAgIGxhYmVsPVwiQWRkcmVzc1wiXG4gICAgbmFtZT1cIkFkZHJlc3NcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJBZGRyZXNzXCJcbiAgLz4gLS0+XG5cbiAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJyb2xlXCI+Um9sZTwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93biBsYWJlbD1cIlJvbGVcIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCIgW211bHRpc2VsZWN0XT1cImZhbHNlXCIgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiXCIgWyhvcHRpb25zKV09XCJyb2xlc1wiIGlkPVwicm9sZVwiIG9wdGlvbkxhYmVsPVwiTmFtZVwiIG9wdGlvblZhbHVlPVwiQ29kZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJSb2xlSURcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJ0YWdzXCI+VGFnczwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93biBsYWJlbD1cIlRhZ3NcIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCIgW211bHRpc2VsZWN0XT1cInRydWVcIiBbZmlsdGVyXT1cInRydWVcIlxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCIgcGxhY2Vob2xkZXI9XCJcIiBbKG9wdGlvbnMpXT1cInRhZ3NcIiBpZD1cInRhZ3NcIiBvcHRpb25MYWJlbD1cIk5hbWVcIiBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiVGFnc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIndhcmVob3VzZXNcIj5XYXJlaG91c2VzPC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duIGxhYmVsPVwiV2FyZWhvdXNlc1wiIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIlwiIFsob3B0aW9ucyldPVwid2FyZWhvdXNlc1wiIGlkPVwid2FyZWhvdXNlc1wiIG9wdGlvbkxhYmVsPVwiTmFtZVwiIG9wdGlvblZhbHVlPVwiQ29kZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJXYXJlaG91c2VzXCIgKG9uQ2hhbmdlKT1cIm9uV2FyZWhvdXNlQ2hhbmdlKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJzdGF0dXNcIj5TdGF0dXM8L2xhYmVsPlxuXG4gICAgPHZlcmJlbi1kcm9wLWRvd24gc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtmaWx0ZXJdPVwiZmFsc2VcIiBbc2hvd0NsZWFyXT1cImZhbHNlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiXCIgWyhvcHRpb25zKV09XCJzdGF0dXNPcHRpb25zXCIgaWQ9XCJzdGF0dXNcIiBmb3JtQ29udHJvbE5hbWU9XCJTdGF0dXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1tYW5hZ2VtZW50LWZvcm0vdXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1tYW5hZ2VtZW50LWZvcm0vdXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQVEsTUFBTSxFQUFhLE1BQU0seUNBQXlDLENBQUM7Ozs7OztBQXNCbEYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDNUI7SUFDQTtJQUNBO0lBdENWLCtCQUErQjtJQUMvQixrQ0FBa0M7SUFFbEMsSUFBYSxXQUFXLENBQUMsS0FBc0I7UUFDN0MsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIscUVBQXFFO1lBQ3JFLCtDQUErQztZQUMvQyw2RUFBNkU7WUFDN0UsVUFBVTtZQUVWLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNuQixXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRTtnQkFDekMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUU7Z0JBQ3JDLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFO2dCQUNuQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRTtnQkFDekMscUNBQXFDO2dCQUNyQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtnQkFDL0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQzNCLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtnQkFDMUMsOEJBQThCO2FBQy9CLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUNRLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUVoQixVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUMzQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFFekQsSUFBSSxDQUFZO0lBQ2hCLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLGdDQUFnQztJQUVoQyxZQUNVLEVBQWUsRUFDZixxQkFBNEMsRUFDNUMsVUFBOEI7UUFGOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFFdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ25DLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckMscUNBQXFDO1lBQ3JDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDVixvQkFBb0I7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTix5QkFBeUI7SUFDM0IsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxVQUFVO0lBQ1Ysa0ZBQWtGO0lBQ2xGLHFCQUFxQjtJQUNyQiwwQkFBMEI7SUFDMUIsK0NBQStDO0lBQy9DLFNBQVM7SUFDVCxzQkFBc0I7SUFDdEIseURBQXlEO0lBQ3pELDRCQUE0QjtJQUM1QixNQUFNO0lBQ04sSUFBSTtJQUVKLHdEQUF3RDtJQUN4RCxrRUFBa0U7SUFDbEUsbURBQW1EO0lBQ25ELHlFQUF5RTtJQUV6RSxpRUFBaUU7SUFDakUsMkJBQTJCO0lBQzNCLGlDQUFpQztJQUNqQyw4QkFBOEI7SUFDOUIsSUFBSTtJQUVKLE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsa0NBQWtDO1lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixvQkFBb0I7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBN0ZVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLG9NQ3hCeEMscXhFQStDQTs7NEZEdkJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx1QkFBdUI7cUpBUXBCLFdBQVc7c0JBQXZCLEtBQUs7Z0JBc0JHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb2xlLCBTdGF0dXMsIFRhZywgVXNlciB9IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSwgRHJvcGRvd25DaGFuZ2VFdmVudCB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBVc2VyTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLW1hbmFnZW1lbnQuc2VydmljZSc7XG5cbmludGVyZmFjZSBVc2VyRm9ybURhdGEge1xuICBNYWlsQWRkcmVzczogc3RyaW5nO1xuICBGaXJzdE5hbWU6IHN0cmluZztcbiAgTGFzdE5hbWU6IHN0cmluZztcbiAgUGhvbmVOdW1iZXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFdhcmVob3VzZSB7XG4gIE5hbWU6IHN0cmluZztcbiAgQ29kZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1yZXF1ZXN0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdXNlci1tYW5hZ2VtZW50LWZvcm0uY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNYW5hZ2VtZW50Rm9ybUNvbXBvbmVudCB7XG4gIC8vIEBJbnB1dCgpIHJvbGVzOiBSb2xlW10gPSBbXTtcbiAgLy8gQElucHV0KCkgc3RhdHVzOiBTdGF0dXNbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHNldCBjdXJyZW50RGF0YSh2YWx1ZTogQ2FyZERhdGEgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlPy5kYXRhKSB7XG4gICAgICAvLyBDb252ZXJ0IGNvbW1hLXNlcGFyYXRlZCB3YXJlaG91c2UgY29kZXMgYmFjayB0byBhcnJheSBmb3IgZHJvcGRvd25cbiAgICAgIC8vIGNvbnN0IHdhcmVob3VzZUNvZGVzID0gdmFsdWUuZGF0YS5XYXJlaG91c2VzXG4gICAgICAvLyAgID8gdmFsdWUuZGF0YS5XYXJlaG91c2VzLnNwbGl0KCcsJykuZmlsdGVyKChjb2RlOiBzdHJpbmcpID0+IGNvZGUudHJpbSgpKVxuICAgICAgLy8gICA6IFtdO1xuXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIE1haWxBZGRyZXNzOiB2YWx1ZS5kYXRhLk1haWxBZGRyZXNzIHx8ICcnLFxuICAgICAgICBGaXJzdE5hbWU6IHZhbHVlLmRhdGEuRmlyc3ROYW1lIHx8ICcnLFxuICAgICAgICBMYXN0TmFtZTogdmFsdWUuZGF0YS5MYXN0TmFtZSB8fCAnJyxcbiAgICAgICAgUGhvbmVOdW1iZXI6IHZhbHVlLmRhdGEuUGhvbmVOdW1iZXIgfHwgJycsXG4gICAgICAgIC8vIEFkZHJlc3M6IHZhbHVlLmRhdGEuQWRkcmVzcyB8fCAnJyxcbiAgICAgICAgUm9sZUlEOiB2YWx1ZS5kYXRhLlJvbGVJRCB8fCAnJyxcbiAgICAgICAgVGFnczogdmFsdWUuZGF0YS5UYWdzIHx8IFtdLFxuICAgICAgICBTdGF0dXM6IHZhbHVlLmRhdGEuU3RhdHVzIHx8IFN0YXR1cy5BY3RpdmUsXG4gICAgICAgIC8vIFdhcmVob3VzZXM6IHdhcmVob3VzZUNvZGVzLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSByb2xlczogUm9sZVtdID0gW107XG4gIEBJbnB1dCgpIHRhZ3M6IFRhZ1tdID0gW107XG5cbiAgQE91dHB1dCgpIHN3aXRjaFZpZXcgPSBuZXcgRXZlbnRFbWl0dGVyPHVuZGVmaW5lZD4oKTtcbiAgQE91dHB1dCgpIG9uRm9ybVNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8VXNlcj4+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuICBzdGF0dXNPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTdGF0dXMpO1xuICAvLyB3YXJlaG91c2VzOiBXYXJlaG91c2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdXNlck1hbmFnZW1lbnRTZXJ2aWNlOiBVc2VyTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBNYWlsQWRkcmVzczogWycnLCB7IHJlYWRvbmx5OiB0cnVlIH1dLFxuICAgICAgRmlyc3ROYW1lOiBbJycsIHsgcmVhZG9ubHk6IHRydWUgfV0sXG4gICAgICBMYXN0TmFtZTogWycnLCB7IHJlYWRvbmx5OiB0cnVlIH1dLFxuICAgICAgUGhvbmVOdW1iZXI6IFsnJywgeyByZWFkb25seTogdHJ1ZSB9XSxcbiAgICAgIC8vIEFkZHJlc3M6IFsnJywgeyByZWFkb25seTogdHJ1ZSB9XSxcbiAgICAgIFN0YXR1czogWycnLCB7IHJlYWRvbmx5OiB0cnVlIH1dLFxuICAgICAgUm9sZUlEOiBbJyddLFxuICAgICAgVGFnczogW1tdXSxcbiAgICAgIC8vIFdhcmVob3VzZXM6IFtbXV0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvYWRXYXJlaG91c2VzKCk7XG4gIH1cblxuICAvLyBhc3luYyBsb2FkV2FyZWhvdXNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gICB0cnkge1xuICAvLyAgICAgdGhpcy53YXJlaG91c2VzID0gYXdhaXQgdGhpcy51c2VyTWFuYWdlbWVudFNlcnZpY2UubG9hZEVudGl0aWVzPFdhcmVob3VzZT4oXG4gIC8vICAgICAgICdXYXJlaG91c2UnLFxuICAvLyAgICAgICBbJ05hbWUnLCAnQ29kZSddLFxuICAvLyAgICAgICB0aGlzLmVudlNlcnZpY2UuZW52aXJvbm1lbnQuUmV2ZW51ZUFQSVxuICAvLyAgICAgKTtcbiAgLy8gICB9IGNhdGNoIChlcnJvcikge1xuICAvLyAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyB3YXJlaG91c2VzOicsIGVycm9yKTtcbiAgLy8gICAgIHRoaXMud2FyZWhvdXNlcyA9IFtdO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIG9uV2FyZWhvdXNlQ2hhbmdlKGV2ZW50OiBEcm9wZG93bkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gIC8vICAgLy8gQ29udmVydCBhcnJheSBvZiB3YXJlaG91c2UgY29kZXMgdG8gY29tbWEtc2VwYXJhdGVkIHN0cmluZ1xuICAvLyAgIGNvbnN0IHNlbGVjdGVkQ29kZXMgPSBldmVudC52YWx1ZSBhcyBzdHJpbmdbXTtcbiAgLy8gICBjb25zdCBjb21tYVNlcGFyYXRlZCA9IHNlbGVjdGVkQ29kZXMgPyBzZWxlY3RlZENvZGVzLmpvaW4oJywnKSA6ICcnO1xuXG4gIC8vICAgLy8gVXBkYXRlIHRoZSBmb3JtIHdpdGggdGhlIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZSBmb3Igc2F2aW5nXG4gIC8vICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAvLyAgICAgV2FyZWhvdXNlczogY29tbWFTZXBhcmF0ZWRcbiAgLy8gICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIC8vIH1cblxuICBvblNhdmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgLy8gRW1pdCBzYXZlIGV2ZW50IHdpdGggZm9ybSB2YWx1ZVxuICAgICAgY29uc29sZS5sb2coJ0Zvcm0gc2F2ZWQ6JywgdGhpcy5mb3JtLnZhbHVlKTtcbiAgICAgIHRoaXMub25Gb3JtU2F2ZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgLy8gRW1pdCBkZWxldGUgZXZlbnRcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlIHJlcXVlc3RlZCcpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHgtMyBwYi0zIHJvdW5kZWQteGwgaC1mdWxsIHctZnVsbCByZWxhdGl2ZSBzcGFjZS15LTRcIj5cbiAgPHZlcmJlbmEtaW5wdXQgbGFiZWw9XCJGaXJzdCBOYW1lOlwiIG5hbWU9XCJGaXJzdE5hbWVcIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIkZpcnN0TmFtZVwiIC8+XG4gIDx2ZXJiZW5hLWlucHV0IGxhYmVsPVwiTGFzdCBOYW1lOlwiIG5hbWU9XCJMYXN0TmFtZVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiTGFzdE5hbWVcIiAvPlxuICA8dmVyYmVuYS1pbnB1dCBsYWJlbD1cIlBob25lIE51bWJlcjpcIiBuYW1lPVwiUGhvbmVOdW1iZXJcIiB0eXBlPVwidGVsXCIgZm9ybUNvbnRyb2xOYW1lPVwiUGhvbmVOdW1iZXJcIiAvPlxuICA8dmVyYmVuYS1pbnB1dCBuYW1lPVwiTWFpbEFkZHJlc3NcIiBsYWJlbD1cIkUtTWFpbCBBZGRyZXNzOlwiIFt0eXBlXT1cIidlbWFpbCdcIiBmb3JtQ29udHJvbE5hbWU9XCJNYWlsQWRkcmVzc1wiIC8+XG4gIDwhLS0gPHZlcmJlbmEtaW5wdXRcbiAgICBsYWJlbD1cIkFkZHJlc3NcIlxuICAgIG5hbWU9XCJBZGRyZXNzXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiQWRkcmVzc1wiXG4gIC8+IC0tPlxuXG4gIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwicm9sZVwiPlJvbGU8L2xhYmVsPlxuXG4gICAgPHZlcmJlbi1kcm9wLWRvd24gbGFiZWw9XCJSb2xlXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIlwiIFsob3B0aW9ucyldPVwicm9sZXNcIiBpZD1cInJvbGVcIiBvcHRpb25MYWJlbD1cIk5hbWVcIiBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiUm9sZUlEXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwidGFnc1wiPlRhZ3M8L2xhYmVsPlxuXG4gICAgPHZlcmJlbi1kcm9wLWRvd24gbGFiZWw9XCJUYWdzXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiIFttdWx0aXNlbGVjdF09XCJ0cnVlXCIgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwiXCIgWyhvcHRpb25zKV09XCJ0YWdzXCIgaWQ9XCJ0YWdzXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgb3B0aW9uVmFsdWU9XCJDb2RlXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIlRhZ3NcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG5cbiAgPCEtLSA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIndhcmVob3VzZXNcIj5XYXJlaG91c2VzPC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duIGxhYmVsPVwiV2FyZWhvdXNlc1wiIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIlwiIFsob3B0aW9ucyldPVwid2FyZWhvdXNlc1wiIGlkPVwid2FyZWhvdXNlc1wiIG9wdGlvbkxhYmVsPVwiTmFtZVwiIG9wdGlvblZhbHVlPVwiQ29kZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJXYXJlaG91c2VzXCIgKG9uQ2hhbmdlKT1cIm9uV2FyZWhvdXNlQ2hhbmdlKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+IC0tPlxuXG4gIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwic3RhdHVzXCI+U3RhdHVzPC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIiBbZmlsdGVyXT1cImZhbHNlXCIgW3Nob3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlwiIFsob3B0aW9ucyldPVwic3RhdHVzT3B0aW9uc1wiIGlkPVwic3RhdHVzXCIgZm9ybUNvbnRyb2xOYW1lPVwiU3RhdHVzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -235,9 +235,9 @@ class UserManagementFormComponent {
|
|
|
235
235
|
set currentData(value) {
|
|
236
236
|
if (value?.data) {
|
|
237
237
|
// Convert comma-separated warehouse codes back to array for dropdown
|
|
238
|
-
const warehouseCodes = value.data.Warehouses
|
|
239
|
-
|
|
240
|
-
|
|
238
|
+
// const warehouseCodes = value.data.Warehouses
|
|
239
|
+
// ? value.data.Warehouses.split(',').filter((code: string) => code.trim())
|
|
240
|
+
// : [];
|
|
241
241
|
this.form.patchValue({
|
|
242
242
|
MailAddress: value.data.MailAddress || '',
|
|
243
243
|
FirstName: value.data.FirstName || '',
|
|
@@ -247,7 +247,7 @@ class UserManagementFormComponent {
|
|
|
247
247
|
RoleID: value.data.RoleID || '',
|
|
248
248
|
Tags: value.data.Tags || [],
|
|
249
249
|
Status: value.data.Status || Status.Active,
|
|
250
|
-
Warehouses: warehouseCodes,
|
|
250
|
+
// Warehouses: warehouseCodes,
|
|
251
251
|
});
|
|
252
252
|
}
|
|
253
253
|
else {
|
|
@@ -260,7 +260,7 @@ class UserManagementFormComponent {
|
|
|
260
260
|
onFormSave = new EventEmitter();
|
|
261
261
|
form;
|
|
262
262
|
statusOptions = Object.values(Status);
|
|
263
|
-
warehouses = [];
|
|
263
|
+
// warehouses: Warehouse[] = [];
|
|
264
264
|
constructor(fb, userManagementService, envService) {
|
|
265
265
|
this.fb = fb;
|
|
266
266
|
this.userManagementService = userManagementService;
|
|
@@ -274,30 +274,33 @@ class UserManagementFormComponent {
|
|
|
274
274
|
Status: ['', { readonly: true }],
|
|
275
275
|
RoleID: [''],
|
|
276
276
|
Tags: [[]],
|
|
277
|
-
Warehouses: [[]],
|
|
277
|
+
// Warehouses: [[]],
|
|
278
278
|
});
|
|
279
279
|
}
|
|
280
280
|
ngOnInit() {
|
|
281
|
-
this.loadWarehouses();
|
|
282
|
-
}
|
|
283
|
-
async loadWarehouses() {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
281
|
+
// this.loadWarehouses();
|
|
282
|
+
}
|
|
283
|
+
// async loadWarehouses(): Promise<void> {
|
|
284
|
+
// try {
|
|
285
|
+
// this.warehouses = await this.userManagementService.loadEntities<Warehouse>(
|
|
286
|
+
// 'Warehouse',
|
|
287
|
+
// ['Name', 'Code'],
|
|
288
|
+
// this.envService.environment.RevenueAPI
|
|
289
|
+
// );
|
|
290
|
+
// } catch (error) {
|
|
291
|
+
// console.error('Error loading warehouses:', error);
|
|
292
|
+
// this.warehouses = [];
|
|
293
|
+
// }
|
|
294
|
+
// }
|
|
295
|
+
// onWarehouseChange(event: DropdownChangeEvent): void {
|
|
296
|
+
// // Convert array of warehouse codes to comma-separated string
|
|
297
|
+
// const selectedCodes = event.value as string[];
|
|
298
|
+
// const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';
|
|
299
|
+
// // Update the form with the comma-separated value for saving
|
|
300
|
+
// this.form.patchValue({
|
|
301
|
+
// Warehouses: commaSeparated
|
|
302
|
+
// }, { emitEvent: false });
|
|
303
|
+
// }
|
|
301
304
|
onSave() {
|
|
302
305
|
if (this.form.valid) {
|
|
303
306
|
// Emit save event with form value
|
|
@@ -310,11 +313,11 @@ class UserManagementFormComponent {
|
|
|
310
313
|
console.log('Delete requested');
|
|
311
314
|
}
|
|
312
315
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, deps: [{ token: i1.FormBuilder }, { token: UserManagementService }, { token: i4.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
313
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserManagementFormComponent, selector: "lib-user-request-form", inputs: { currentData: "currentData", roles: "roles", tags: "tags" }, outputs: { switchView: "switchView", onFormSave: "onFormSave" }, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div
|
|
316
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserManagementFormComponent, selector: "lib-user-request-form", inputs: { currentData: "currentData", roles: "roles", tags: "tags" }, outputs: { switchView: "switchView", onFormSave: "onFormSave" }, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i7.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
|
|
314
317
|
}
|
|
315
318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, decorators: [{
|
|
316
319
|
type: Component,
|
|
317
|
-
args: [{ selector: 'lib-user-request-form', template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div
|
|
320
|
+
args: [{ selector: 'lib-user-request-form', template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n" }]
|
|
318
321
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: UserManagementService }, { type: i4.EnvironmentService }], propDecorators: { currentData: [{
|
|
319
322
|
type: Input
|
|
320
323
|
}], roles: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-authentication-ui-src-lib-components-user-management.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/services/user-management.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { User } from 'verben-authentication-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<User>[] = [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n formControlName: 'FirstName',\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n formControlName: 'MailAddress',\n },\n\n // {\n // id: 'address',\n // header: 'ADDRESS',\n // accessorKey: 'Address',\n // formControlName: 'Address',\n // },\n {\n id: 'phone',\n header: 'PHONE NUMBER',\n accessorKey: 'PhoneNumber',\n formControlName: 'PhoneNumber',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorKey: 'Role',\n formControlName: 'RoleID',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n formControlName: 'Status',\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorKey: 'MailAddress',\n },\n];\n","export const baseStyle: any = {\n width:\"100%\",\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse, PagedResult, SearchDynamicWrapper, SearchOperator, SearchPropertySign, SortDirection, User } from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { DropdownLoadEvent } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserManagementService {\n // private readonly BASE_URL = 'https://auth.white360.net/User';\n\n constructor(private httpService: HttpWebRequestService) { }\n\n /**\n * Get users with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the list of users\n */\n async getUsers(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ): Promise<User[] | ErrorResponse> {\n // var response : User[] | ErrorResponse;\n const url = `GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n const res = await this.httpService.get(url);\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<User>).Result;\n }\n }\n\n /**\n * Get users with an additional search parameter, pagination, and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered list of users\n */\n async getUsersWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ): Promise<User[]> {\n const url = `GetUserWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return (await this.httpService.get(url)) as User[];\n }\n\n async getRealUsers(\n role: string | null,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ) {\n let url: string;\n\n if (role) {\n // Role is provided, use the \"GetUserWithParam\" endpoint\n url = `GetUserWithParam/${role}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n } else {\n // Role is null, use the \"GetUsers\" endpoint\n url = `GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n }\n\n const res = await this.httpService.get(url);\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return res as PagedResult<User>;\n }\n }\n\n /**\n * Save multiple users\n * @param users Array of users to save\n * @returns Promise containing the save operation result\n */\n saveUsers(users: User[]): Promise<any> {\n const url = `SaveUsers`;\n return this.httpService.post(url, users);\n }\n\n /**\n * Delete multiple users\n * @param userIds Array of user IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUsers(userIds: string[]): Observable<any> {\n const url = `DeleteUsers`;\n return this.httpService.delete(`${url}?data=${userIds.join(',')}`);\n }\n\n async loadEntities<T>(\n entity: string,\n fields: string[],\n env: string,\n event: DropdownLoadEvent | null = null\n ): Promise<T[]> {\n var payload: SearchDynamicWrapper = {\n Fields: fields,\n SearchKeyValues: [\n {\n PropertyName: 'Code',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort: SortDirection.Asc,\n },\n ],\n };\n\n const res = await this.httpService.post(\n `SearchDynamic${entity}/0/0`,\n payload,\n env\n );\n if (res instanceof ErrorResponse) {\n return [];\n } else {\n var result = (res as PagedResult<T>).Result;\n return result;\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport { CardData, DropdownChangeEvent } from 'verben-ng-ui';\nimport { UserManagementService } from '../services/user-management.service';\n\ninterface UserFormData {\n MailAddress: string;\n FirstName: string;\n LastName: string;\n PhoneNumber: string;\n}\n\ninterface Warehouse {\n Name: string;\n Code: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-management-form.component.html',\n styleUrl: './user-management-form.component.css',\n})\nexport class UserManagementFormComponent {\n // @Input() roles: Role[] = [];\n // @Input() status: Status[] = [];\n\n @Input() set currentData(value: CardData | null) {\n if (value?.data) {\n // Convert comma-separated warehouse codes back to array for dropdown\n const warehouseCodes = value.data.Warehouses\n ? value.data.Warehouses.split(',').filter((code: string) => code.trim())\n : [];\n\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n LastName: value.data.LastName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n // Address: value.data.Address || '',\n RoleID: value.data.RoleID || '',\n Tags: value.data.Tags || [],\n Status: value.data.Status || Status.Active,\n Warehouses: warehouseCodes,\n });\n } else {\n this.form.reset();\n }\n }\n @Input() roles: Role[] = [];\n @Input() tags: Tag[] = [];\n\n @Output() switchView = new EventEmitter<undefined>();\n @Output() onFormSave = new EventEmitter<Partial<User>>();\n\n form: FormGroup;\n statusOptions = Object.values(Status);\n warehouses: Warehouse[] = [];\n\n constructor(\n private fb: FormBuilder,\n private userManagementService: UserManagementService,\n private envService: EnvironmentService\n ) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n LastName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n // Address: ['', { readonly: true }],\n Status: ['', { readonly: true }],\n RoleID: [''],\n Tags: [[]],\n Warehouses: [[]],\n });\n }\n\n ngOnInit(): void {\n this.loadWarehouses();\n }\n\n async loadWarehouses(): Promise<void> {\n try {\n this.warehouses = await this.userManagementService.loadEntities<Warehouse>(\n 'Warehouse',\n ['Name', 'Code'],\n this.envService.environment.RevenueAPI\n );\n } catch (error) {\n console.error('Error loading warehouses:', error);\n this.warehouses = [];\n }\n }\n\n onWarehouseChange(event: DropdownChangeEvent): void {\n // Convert array of warehouse codes to comma-separated string\n const selectedCodes = event.value as string[];\n const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';\n\n // Update the form with the comma-separated value for saving\n this.form.patchValue({\n Warehouses: commaSeparated\n }, { emitEvent: false });\n }\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n this.onFormSave.emit(this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n}\n","<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n","import { Component, Input } from '@angular/core';\nimport { Status } from 'verben-authentication-ui/src/lib/models';\n\n@Component({\n selector: 'lib-user-status-badge',\n templateUrl: './user-status-badge.component.html',\n styleUrl: './user-status-badge.component.css',\n})\nexport class UserStatusBadgeComponent {\n @Input() status: Status = Status.Active;\n\n badgeConfig() {\n switch (this.status) {\n case Status.Active:\n return { bgColor: '#CAE1CC', textColor: '#4ABB54', label: 'Active' };\n case Status.InActive:\n return { bgColor: '#FFDFDF', textColor: '#EB5757', label: 'InActive' };\n default:\n return { bgColor: '#827C7C', textColor: '#C3C3C3', label: 'Unknown' };\n }\n }\n}\n","<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n","import {\n Component,\n Input,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { columns } from './user-management.columns';\n\nimport { PagedResult, SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService, UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { baseStyle } from './base-table-style';\n\nimport { FormBuilder } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { UserAccessRequestService } from 'verben-authentication-ui/src/lib/components/user-request-approval';\nimport { ConditionOptions, ErrorResponse, ObjectState, Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n ConditionalOptions,\n DataFilterType,\n DataViewComponent,\n DropdownChangeEvent,\n FormGroupConfig,\n IDataFilter\n} from 'verben-ng-ui';\nimport { UserManagementService } from './services/user-management.service';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\ninterface TestParentObject {\n Id: string;\n Name: string;\n}\n\n@Component({\n selector: 'lib-user-management',\n templateUrl: './user-management.component.html',\n styleUrl: './user-management.component.css',\n})\nexport class UserManagementComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild(UserManagementFormComponent)\n childComponent!: UserManagementFormComponent;\n private currentSearchTerm: string = '';\n\n allColumns: ColumnDefinition<User>[] = columns;\n filteredColumns: ColumnDefinition<User>[] = columns;\n skip: number = 0;\n users: User[] = [];\n searchTerm$ = new Subject<string>();\n @Input() searchDebounceTime: number = 500;\n @Input() pageSize: number = 1;\n pageState: PagedResult<User> | null = null;\n errorMessage: string = '';\n appliedFilters: boolean = false;\n isLoading: boolean = false;\n hasMore: boolean = true;\n limit: number = 20;\n sortParam: string = 'name';\n sortOrder: string = 'asc';\n Roles: Role[] = [];\n Tags: WritableSignal<Tag[]> = signal([]);\n dataFit: PagedResult<User> = {\n PageSize: 1,\n Skip: 0,\n Total: 0,\n Result: [],\n LastItem: [''],\n IsLoadingResults: false,\n };\n\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n\n role: string = '';\n\n cardContextHistory: CardData[] = [];\n param: string | null | undefined;\n formGroupConfig: WritableSignal<FormGroupConfig<any>>;\n statuses = Object.values(Status);\n\n constructor(\n private route: ActivatedRoute,\n private userManagementService: UserManagementService,\n private userRole: UserAccessRequestService,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private fb: FormBuilder,\n ) {\n this.formGroupConfig = signal({\n controls: {\n MailAddress: this.fb.control(''),\n FirstName: this.fb.control(''),\n PhoneNumber: this.fb.control(''),\n Address: this.fb.control(''),\n RoleID: this.fb.control(''),\n Tags: this.fb.control([]),\n Warehouses: this.fb.control(''),\n Status: this.fb.control(''),\n },\n // validatorOrOpts: null,\n // asyncValidator: null,\n });\n }\n\n async ngOnInit(): Promise<void> {\n this.getRoles();\n this.getTags();\n this.route.paramMap.subscribe((params) => {\n this.role = params.get('role') || ''; // Default to an empty string if no role\n this.fetchUsers();\n });\n }\n\n cardData: CardData[] = [];\n\n data: any[] = [];\n\n async fetchUsers(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userManagementService.getRealUsers(\n this.role,\n this.skip,\n this.limit,\n this.sortParam,\n this.sortOrder,\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n // Handle error response\n console.error('Error fetching logs:', res);\n } else {\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = [...this.users, ...response.Result];\n this.cardData = this.formatCardData(this.users);\n this.skip = response.Skip;\n this.hasMore = this.skip < response.Total;\n }\n } catch (error) {\n console.error('Error:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n async getRoles() {\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userRole.getRoles();\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n }\n\n const response = res as PagedResult<Role>;\n this.Roles = response.Result;\n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n\n async getTags() {\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userRole.getTags();\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n }\n const response = res as PagedResult<Tag>;\n this.Tags.set(response.Result);\n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n\n handleRoleId(value: string) {\n const matchedRole = this.Roles.filter((role) => role.Name === value);\n return matchedRole[0]?.Code;\n }\n /**\n * Format users into CardData for the UI library\n * @param users Array of users to format\n * @returns Array of CardData\n */\n private formatCardData(users: User[]): CardData[] {\n return users.map((user) => ({\n selected: false, // Default selection state\n title: `${user.FirstName} ${user.LastName}`, // Display user's name as title\n data: { ...user }, // Pass the entire user object\n body: [\n { title: 'Name', value: `${user.FirstName} ${user.LastName}` },\n { title: 'E-Mail Address', value: user.MailAddress },\n { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },\n ],\n children: [], // Add child data if necessary\n }));\n }\n\n columns = columns;\n styles = baseStyle;\n\n selectedParent?: string;\n basicOption?: string;\n selectedOption: string[] = [];\n selectedOptionTwo: string[] = [];\n selectedOptionThree?: string;\n missingObject: any;\n\n // clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n // this.User = []; // Clear the logs array\n // this.skip = 0; // Reset the skip value\n // this.hasMore = true; // Reset the flag to allow fetching more logs\n // this.appliedFilters = false;\n // this.fetchUsers();\n // }\n\n // Grid view properties\n isGridView: boolean = true;\n currentData!: CardData;\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showFilter: boolean = false;\n searchTerm: string = '';\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n\n filterArray: IDataFilter[] = [\n { name: 'FirstName', type: DataFilterType.String, checked: false },\n { name: 'LastName', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'Status', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n { name: 'Role', type: DataFilterType.String, checked: false },\n ];\n\n sortOptions: IDataFilter[] = [\n { name: 'Name', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n ];\n\n testParents: TestParentObject[] = [\n { Id: '1', Name: 'Manager' },\n { Id: '2', Name: 'Administrator' },\n { Id: '3', Name: 'Jelom' },\n ];\n\n getParentLabel(context: any): string {\n console.log({ MissingObj: this.missingObject });\n return this.missingObject.Name;\n }\n\n onSave(): void {\n if (this.childComponent.form.valid) {\n // const userData: User = this.childComponent.form.value;\n // console.log('Payload:', [userData]); // Log the payload to check its structure\n\n this.utilService.sendBI(true);\n this.userManagementService\n .saveUsers([\n {\n ...this.currentData?.data,\n ...this.childComponent.form.value,\n DataState:\n this.currentData?.data.DataState === ObjectState.Unchanged\n ? ObjectState.Changed\n : this.currentData?.data.DataState,\n },\n ])\n .then(\n (result) => {\n if (result instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('User saved successfully');\n }\n },\n (error) => {\n console.error('Unexpected error saving user:', error);\n },\n )\n .finally(() => {\n this.utilService.sendBI(false);\n });\n console.log(this.childComponent.form.value);\n } else {\n console.error('Form is invalid');\n }\n }\n\n async onDataSave(event: {\n index: number;\n key: number | string;\n data: Partial<User>;\n }) {\n const payload = {\n ...this.users[event.index],\n ...event.data,\n DataState:\n this.users[event.index]?.DataState === ObjectState.Unchanged\n ? ObjectState.Changed\n : ObjectState.New,\n } as User;\n\n this.utilService.sendBI(true);\n this.userManagementService\n .saveUsers([payload])\n .then(\n (result) => {\n if (result instanceof ErrorResponse) {\n } else {\n if (result[0]) {\n this.users = this.users.map((user, index) => {\n if (index === event.index) return result[0] as User;\n return user;\n });\n }\n this.utilService.showSuccess('User saved successfully');\n }\n },\n (error) => {\n console.error('Unexpected error saving user:', error);\n },\n )\n .finally(() => {\n this.utilService.sendBI(false);\n });\n }\n\n onDelete(): void {\n console.log('Child form delete triggered');\n // Perform delete logic here\n }\n onDropdownChange(event: DropdownChangeEvent): void {\n // console.log({\n // 'Test Parent Value': this.selectedParent,\n // ...\n // });\n }\n\n onSelectionChange(selectedRows: User[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n console.log('cardData array:', this.cardData);\n console.log(mailAddress);\n\n return this.cardData.find(({ data }) => data?.MailAddress === mailAddress);\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n console.log(cardItem);\n\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n reset() {\n this.skip = 0;\n this.pageSize = 20;\n }\n\n clearData() {\n this.currentData = {} as CardData;\n }\n\n loadMore() {\n if (this.hasMore) {\n this.fetchUsers();\n }\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n\n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked,\n ),\n );\n\n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n\n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n\n async postSearch(payload: any) {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchUsers/0/10/CreatedAt/asc`,\n payload,\n );\n\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.appliedFilters = false;\n return;\n } else {\n this.appliedFilters = true;\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n }\n }\n\n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter = false;\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n console.log(appliedFilter);\n\n const queryParams = appliedFilter\n .filter((filter) => filter.checked)\n .map((filter) => ({\n PropertyName: filter.name,\n EntityValue:\n filter.name === 'Role'\n ? this.handleRoleId(filter.value)\n : filter.value,\n Type: filter.type,\n Operator: 'And',\n Sign: this.getCondition(filter.condition),\n }));\n\n this.postSearch(queryParams);\n }\n }\n\n getCondition(value: any): ConditionOptions | undefined {\n switch (value) {\n case ConditionalOptions.On:\n return ConditionOptions.On;\n case ConditionalOptions.After:\n return ConditionOptions.After;\n case ConditionalOptions.Before:\n return ConditionOptions.Before;\n case ConditionalOptions.NotEqual:\n return ConditionOptions.NotEqual;\n default:\n return undefined; // Explicitly return undefined for invalid cases\n }\n }\n\n onSortUpdated(updatedSorts: IDataFilter[]): void {\n this.currentSorts = updatedSorts;\n }\n\n async onSearch(event: { key: string; value: string }) {\n this.searchTerm = event.value;\n this.reset();\n if (!this.searchTerm) {\n this.clearLogs('CreatedAt', 'asc');\n return;\n }\n\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.get(\n `GetUserWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error during search:', res);\n this.appliedFilters = false;\n } else {\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n }\n } catch (error) {\n console.error('Search error:', error);\n this.appliedFilters = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.users = []; // Clear the logs array\n this.skip = 0; // Reset the skip value\n this.hasMore = true; // Reset the flag to allow fetching more logs\n this.appliedFilters = false;\n this.fetchUsers(sortValue, order);\n }\n\n onViewChange(isGridView: boolean): void { }\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n if (event.key === 'create') {\n console.log('peace is a boy');\n\n // const newUser = this.newItem()\n\n // if ( newUser && this.cardDataView) {\n // this.dataView.toggleView();\n // // First reset all selections\n // this.cardData.forEach((item) => {\n // item.selected = false;\n // if (item.children) {\n // item.children.forEach((child) => (child.selected = false));\n // }\n // });\n\n // this.currentData = this.cardDataView.onItemClick(newUser);\n\n // // Force change detection if needed\n // // this.changeDetectorRef.detectChanges();\n // }\n }\n }\n\n getRoleName(roleId: string): string {\n const role = this.Roles.find((role) => role.Code === roleId);\n return role ? role.Name : '';\n }\n}\n","<div class=\"flex flex-col gap-4 message-log-container\">\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\n isToggle: true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (onSearchChange)=\"onSearch($event)\"\n [searchValue]=\"searchTerm\"\n [showFilterChild]=\"showFilter\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n [isTableView]=\"false\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"users\"\n [columns]=\"filteredColumns\"\n [formGroupConfig]=\"formGroupConfig()\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onDataSave($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"user\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"FirstName\"\n type=\"text\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"mail\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"MailAddress\"\n type=\"email\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"phone\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"PhoneNumber\"\n type=\"tel\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"address\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"Address\"\n type=\"text\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"role\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verben-drop-down\n name=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"Roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-deleteRow=\"deleteRow\"\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\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\n #cellEdit\n let-value\n let-deleteRow=\"deleteRow\"\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <!-- <verben-svg\n icon=\"cardViewAlt\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"\n ></verben-svg> -->\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <lib-user-status-badge [status]=\"value\"></lib-user-status-badge>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-rowIndex=\"rowIndex\"\n let-formControl=\"formControl\"\n >\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Set status\"\n [options]=\"statuses\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n >\n </verben-drop-down>\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=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\">\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 <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\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 >Role:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n getRoleName(item.data.RoleID)\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.data?.Role?.Name\n }}</span> -->\n </p>\n\n <lib-user-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-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 <div class=\"bg-secondary-100 py-2 flex flex-col gap-20 px-2\">\n <lib-user-request-form\n [roles]=\"Roles\"\n [tags]=\"Tags()\"\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-end bottom-8 left-0 right-0 p-3\">\n <!-- <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\" (click)=\"onDelete()\"></verbena-button> -->\n <div class=\"flex gap-3\">\n <verbena-button\n (click)=\"vdv.toggleView()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#FFE681\"\n (click)=\"onSave()\"\n textColor=\"#404040\"\n border=\"1px solid #FFE681\"\n >\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\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-end': true,\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 [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 (filtersApplied)=\"onFilterApplied($event)\"\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-xport\n [columns]=\"allColumns\"\n [data]=\"users\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n <div\n *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\"\n ></div>\n\n <div *ngIf=\"vdv.isTableView\" class=\"w-full flex gap-2 justify-end\">\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","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UserManagementComponent } from './user-management.component';\n\nimport { LibUserRequestApprovalModule } from 'verben-authentication-ui/src/lib/components/user-request-approval';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DataXportModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { UserManagementService } from './services/user-management.service';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\nimport { UserStatusBadgeComponent } from './user-status-badge/user-status-badge.component';\n\n@NgModule({\n declarations: [\n UserManagementComponent,\n UserManagementFormComponent,\n UserStatusBadgeComponent,\n ],\n imports: [\n HttpClientModule,\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n DataXportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n VerbenaSwitchModule,\n\n LibUserRequestApprovalModule,\n // AsyncLabelPipe,\n ],\n providers: [UserManagementService],\n exports: [UserManagementComponent],\n})\nexport class LibUserManagementModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.UserManagementService","i3","i4","i5","i8.UserManagementFormComponent","i9.UserStatusBadgeComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verben-authentication-ui-src-lib-components-user-management.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/services/user-management.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { User } from 'verben-authentication-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<User>[] = [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n formControlName: 'FirstName',\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n formControlName: 'MailAddress',\n },\n\n // {\n // id: 'address',\n // header: 'ADDRESS',\n // accessorKey: 'Address',\n // formControlName: 'Address',\n // },\n {\n id: 'phone',\n header: 'PHONE NUMBER',\n accessorKey: 'PhoneNumber',\n formControlName: 'PhoneNumber',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorKey: 'Role',\n formControlName: 'RoleID',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n formControlName: 'Status',\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorKey: 'MailAddress',\n },\n];\n","export const baseStyle: any = {\n width:\"100%\",\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse, PagedResult, SearchDynamicWrapper, SearchOperator, SearchPropertySign, SortDirection, User } from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { DropdownLoadEvent } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserManagementService {\n // private readonly BASE_URL = 'https://auth.white360.net/User';\n\n constructor(private httpService: HttpWebRequestService) { }\n\n /**\n * Get users with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the list of users\n */\n async getUsers(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ): Promise<User[] | ErrorResponse> {\n // var response : User[] | ErrorResponse;\n const url = `GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n const res = await this.httpService.get(url);\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<User>).Result;\n }\n }\n\n /**\n * Get users with an additional search parameter, pagination, and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered list of users\n */\n async getUsersWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ): Promise<User[]> {\n const url = `GetUserWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return (await this.httpService.get(url)) as User[];\n }\n\n async getRealUsers(\n role: string | null,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ) {\n let url: string;\n\n if (role) {\n // Role is provided, use the \"GetUserWithParam\" endpoint\n url = `GetUserWithParam/${role}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n } else {\n // Role is null, use the \"GetUsers\" endpoint\n url = `GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n }\n\n const res = await this.httpService.get(url);\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return res as PagedResult<User>;\n }\n }\n\n /**\n * Save multiple users\n * @param users Array of users to save\n * @returns Promise containing the save operation result\n */\n saveUsers(users: User[]): Promise<any> {\n const url = `SaveUsers`;\n return this.httpService.post(url, users);\n }\n\n /**\n * Delete multiple users\n * @param userIds Array of user IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUsers(userIds: string[]): Observable<any> {\n const url = `DeleteUsers`;\n return this.httpService.delete(`${url}?data=${userIds.join(',')}`);\n }\n\n async loadEntities<T>(\n entity: string,\n fields: string[],\n env: string,\n event: DropdownLoadEvent | null = null\n ): Promise<T[]> {\n var payload: SearchDynamicWrapper = {\n Fields: fields,\n SearchKeyValues: [\n {\n PropertyName: 'Code',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort: SortDirection.Asc,\n },\n ],\n };\n\n const res = await this.httpService.post(\n `SearchDynamic${entity}/0/0`,\n payload,\n env\n );\n if (res instanceof ErrorResponse) {\n return [];\n } else {\n var result = (res as PagedResult<T>).Result;\n return result;\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport { CardData, DropdownChangeEvent } from 'verben-ng-ui';\nimport { UserManagementService } from '../services/user-management.service';\n\ninterface UserFormData {\n MailAddress: string;\n FirstName: string;\n LastName: string;\n PhoneNumber: string;\n}\n\ninterface Warehouse {\n Name: string;\n Code: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-management-form.component.html',\n styleUrl: './user-management-form.component.css',\n})\nexport class UserManagementFormComponent {\n // @Input() roles: Role[] = [];\n // @Input() status: Status[] = [];\n\n @Input() set currentData(value: CardData | null) {\n if (value?.data) {\n // Convert comma-separated warehouse codes back to array for dropdown\n // const warehouseCodes = value.data.Warehouses\n // ? value.data.Warehouses.split(',').filter((code: string) => code.trim())\n // : [];\n\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n LastName: value.data.LastName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n // Address: value.data.Address || '',\n RoleID: value.data.RoleID || '',\n Tags: value.data.Tags || [],\n Status: value.data.Status || Status.Active,\n // Warehouses: warehouseCodes,\n });\n } else {\n this.form.reset();\n }\n }\n @Input() roles: Role[] = [];\n @Input() tags: Tag[] = [];\n\n @Output() switchView = new EventEmitter<undefined>();\n @Output() onFormSave = new EventEmitter<Partial<User>>();\n\n form: FormGroup;\n statusOptions = Object.values(Status);\n // warehouses: Warehouse[] = [];\n\n constructor(\n private fb: FormBuilder,\n private userManagementService: UserManagementService,\n private envService: EnvironmentService\n ) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n LastName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n // Address: ['', { readonly: true }],\n Status: ['', { readonly: true }],\n RoleID: [''],\n Tags: [[]],\n // Warehouses: [[]],\n });\n }\n\n ngOnInit(): void {\n // this.loadWarehouses();\n }\n\n // async loadWarehouses(): Promise<void> {\n // try {\n // this.warehouses = await this.userManagementService.loadEntities<Warehouse>(\n // 'Warehouse',\n // ['Name', 'Code'],\n // this.envService.environment.RevenueAPI\n // );\n // } catch (error) {\n // console.error('Error loading warehouses:', error);\n // this.warehouses = [];\n // }\n // }\n\n // onWarehouseChange(event: DropdownChangeEvent): void {\n // // Convert array of warehouse codes to comma-separated string\n // const selectedCodes = event.value as string[];\n // const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';\n\n // // Update the form with the comma-separated value for saving\n // this.form.patchValue({\n // Warehouses: commaSeparated\n // }, { emitEvent: false });\n // }\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n this.onFormSave.emit(this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n}\n","<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n","import { Component, Input } from '@angular/core';\nimport { Status } from 'verben-authentication-ui/src/lib/models';\n\n@Component({\n selector: 'lib-user-status-badge',\n templateUrl: './user-status-badge.component.html',\n styleUrl: './user-status-badge.component.css',\n})\nexport class UserStatusBadgeComponent {\n @Input() status: Status = Status.Active;\n\n badgeConfig() {\n switch (this.status) {\n case Status.Active:\n return { bgColor: '#CAE1CC', textColor: '#4ABB54', label: 'Active' };\n case Status.InActive:\n return { bgColor: '#FFDFDF', textColor: '#EB5757', label: 'InActive' };\n default:\n return { bgColor: '#827C7C', textColor: '#C3C3C3', label: 'Unknown' };\n }\n }\n}\n","<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n","import {\n Component,\n Input,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { columns } from './user-management.columns';\n\nimport { PagedResult, SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService, UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { baseStyle } from './base-table-style';\n\nimport { FormBuilder } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { UserAccessRequestService } from 'verben-authentication-ui/src/lib/components/user-request-approval';\nimport { ConditionOptions, ErrorResponse, ObjectState, Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n ConditionalOptions,\n DataFilterType,\n DataViewComponent,\n DropdownChangeEvent,\n FormGroupConfig,\n IDataFilter\n} from 'verben-ng-ui';\nimport { UserManagementService } from './services/user-management.service';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\ninterface TestParentObject {\n Id: string;\n Name: string;\n}\n\n@Component({\n selector: 'lib-user-management',\n templateUrl: './user-management.component.html',\n styleUrl: './user-management.component.css',\n})\nexport class UserManagementComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild(UserManagementFormComponent)\n childComponent!: UserManagementFormComponent;\n private currentSearchTerm: string = '';\n\n allColumns: ColumnDefinition<User>[] = columns;\n filteredColumns: ColumnDefinition<User>[] = columns;\n skip: number = 0;\n users: User[] = [];\n searchTerm$ = new Subject<string>();\n @Input() searchDebounceTime: number = 500;\n @Input() pageSize: number = 1;\n pageState: PagedResult<User> | null = null;\n errorMessage: string = '';\n appliedFilters: boolean = false;\n isLoading: boolean = false;\n hasMore: boolean = true;\n limit: number = 20;\n sortParam: string = 'name';\n sortOrder: string = 'asc';\n Roles: Role[] = [];\n Tags: WritableSignal<Tag[]> = signal([]);\n dataFit: PagedResult<User> = {\n PageSize: 1,\n Skip: 0,\n Total: 0,\n Result: [],\n LastItem: [''],\n IsLoadingResults: false,\n };\n\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n\n role: string = '';\n\n cardContextHistory: CardData[] = [];\n param: string | null | undefined;\n formGroupConfig: WritableSignal<FormGroupConfig<any>>;\n statuses = Object.values(Status);\n\n constructor(\n private route: ActivatedRoute,\n private userManagementService: UserManagementService,\n private userRole: UserAccessRequestService,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private fb: FormBuilder,\n ) {\n this.formGroupConfig = signal({\n controls: {\n MailAddress: this.fb.control(''),\n FirstName: this.fb.control(''),\n PhoneNumber: this.fb.control(''),\n Address: this.fb.control(''),\n RoleID: this.fb.control(''),\n Tags: this.fb.control([]),\n Warehouses: this.fb.control(''),\n Status: this.fb.control(''),\n },\n // validatorOrOpts: null,\n // asyncValidator: null,\n });\n }\n\n async ngOnInit(): Promise<void> {\n this.getRoles();\n this.getTags();\n this.route.paramMap.subscribe((params) => {\n this.role = params.get('role') || ''; // Default to an empty string if no role\n this.fetchUsers();\n });\n }\n\n cardData: CardData[] = [];\n\n data: any[] = [];\n\n async fetchUsers(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userManagementService.getRealUsers(\n this.role,\n this.skip,\n this.limit,\n this.sortParam,\n this.sortOrder,\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n // Handle error response\n console.error('Error fetching logs:', res);\n } else {\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = [...this.users, ...response.Result];\n this.cardData = this.formatCardData(this.users);\n this.skip = response.Skip;\n this.hasMore = this.skip < response.Total;\n }\n } catch (error) {\n console.error('Error:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n async getRoles() {\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userRole.getRoles();\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n }\n\n const response = res as PagedResult<Role>;\n this.Roles = response.Result;\n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n\n async getTags() {\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userRole.getTags();\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n }\n const response = res as PagedResult<Tag>;\n this.Tags.set(response.Result);\n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n\n handleRoleId(value: string) {\n const matchedRole = this.Roles.filter((role) => role.Name === value);\n return matchedRole[0]?.Code;\n }\n /**\n * Format users into CardData for the UI library\n * @param users Array of users to format\n * @returns Array of CardData\n */\n private formatCardData(users: User[]): CardData[] {\n return users.map((user) => ({\n selected: false, // Default selection state\n title: `${user.FirstName} ${user.LastName}`, // Display user's name as title\n data: { ...user }, // Pass the entire user object\n body: [\n { title: 'Name', value: `${user.FirstName} ${user.LastName}` },\n { title: 'E-Mail Address', value: user.MailAddress },\n { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },\n ],\n children: [], // Add child data if necessary\n }));\n }\n\n columns = columns;\n styles = baseStyle;\n\n selectedParent?: string;\n basicOption?: string;\n selectedOption: string[] = [];\n selectedOptionTwo: string[] = [];\n selectedOptionThree?: string;\n missingObject: any;\n\n // clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n // this.User = []; // Clear the logs array\n // this.skip = 0; // Reset the skip value\n // this.hasMore = true; // Reset the flag to allow fetching more logs\n // this.appliedFilters = false;\n // this.fetchUsers();\n // }\n\n // Grid view properties\n isGridView: boolean = true;\n currentData!: CardData;\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showFilter: boolean = false;\n searchTerm: string = '';\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n\n filterArray: IDataFilter[] = [\n { name: 'FirstName', type: DataFilterType.String, checked: false },\n { name: 'LastName', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'Status', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n { name: 'Role', type: DataFilterType.String, checked: false },\n ];\n\n sortOptions: IDataFilter[] = [\n { name: 'Name', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n ];\n\n testParents: TestParentObject[] = [\n { Id: '1', Name: 'Manager' },\n { Id: '2', Name: 'Administrator' },\n { Id: '3', Name: 'Jelom' },\n ];\n\n getParentLabel(context: any): string {\n console.log({ MissingObj: this.missingObject });\n return this.missingObject.Name;\n }\n\n onSave(): void {\n if (this.childComponent.form.valid) {\n // const userData: User = this.childComponent.form.value;\n // console.log('Payload:', [userData]); // Log the payload to check its structure\n\n this.utilService.sendBI(true);\n this.userManagementService\n .saveUsers([\n {\n ...this.currentData?.data,\n ...this.childComponent.form.value,\n DataState:\n this.currentData?.data.DataState === ObjectState.Unchanged\n ? ObjectState.Changed\n : this.currentData?.data.DataState,\n },\n ])\n .then(\n (result) => {\n if (result instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('User saved successfully');\n }\n },\n (error) => {\n console.error('Unexpected error saving user:', error);\n },\n )\n .finally(() => {\n this.utilService.sendBI(false);\n });\n console.log(this.childComponent.form.value);\n } else {\n console.error('Form is invalid');\n }\n }\n\n async onDataSave(event: {\n index: number;\n key: number | string;\n data: Partial<User>;\n }) {\n const payload = {\n ...this.users[event.index],\n ...event.data,\n DataState:\n this.users[event.index]?.DataState === ObjectState.Unchanged\n ? ObjectState.Changed\n : ObjectState.New,\n } as User;\n\n this.utilService.sendBI(true);\n this.userManagementService\n .saveUsers([payload])\n .then(\n (result) => {\n if (result instanceof ErrorResponse) {\n } else {\n if (result[0]) {\n this.users = this.users.map((user, index) => {\n if (index === event.index) return result[0] as User;\n return user;\n });\n }\n this.utilService.showSuccess('User saved successfully');\n }\n },\n (error) => {\n console.error('Unexpected error saving user:', error);\n },\n )\n .finally(() => {\n this.utilService.sendBI(false);\n });\n }\n\n onDelete(): void {\n console.log('Child form delete triggered');\n // Perform delete logic here\n }\n onDropdownChange(event: DropdownChangeEvent): void {\n // console.log({\n // 'Test Parent Value': this.selectedParent,\n // ...\n // });\n }\n\n onSelectionChange(selectedRows: User[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n console.log('cardData array:', this.cardData);\n console.log(mailAddress);\n\n return this.cardData.find(({ data }) => data?.MailAddress === mailAddress);\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n console.log(cardItem);\n\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n reset() {\n this.skip = 0;\n this.pageSize = 20;\n }\n\n clearData() {\n this.currentData = {} as CardData;\n }\n\n loadMore() {\n if (this.hasMore) {\n this.fetchUsers();\n }\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n\n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked,\n ),\n );\n\n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n\n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n\n async postSearch(payload: any) {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchUsers/0/10/CreatedAt/asc`,\n payload,\n );\n\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.appliedFilters = false;\n return;\n } else {\n this.appliedFilters = true;\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n }\n }\n\n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter = false;\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n console.log(appliedFilter);\n\n const queryParams = appliedFilter\n .filter((filter) => filter.checked)\n .map((filter) => ({\n PropertyName: filter.name,\n EntityValue:\n filter.name === 'Role'\n ? this.handleRoleId(filter.value)\n : filter.value,\n Type: filter.type,\n Operator: 'And',\n Sign: this.getCondition(filter.condition),\n }));\n\n this.postSearch(queryParams);\n }\n }\n\n getCondition(value: any): ConditionOptions | undefined {\n switch (value) {\n case ConditionalOptions.On:\n return ConditionOptions.On;\n case ConditionalOptions.After:\n return ConditionOptions.After;\n case ConditionalOptions.Before:\n return ConditionOptions.Before;\n case ConditionalOptions.NotEqual:\n return ConditionOptions.NotEqual;\n default:\n return undefined; // Explicitly return undefined for invalid cases\n }\n }\n\n onSortUpdated(updatedSorts: IDataFilter[]): void {\n this.currentSorts = updatedSorts;\n }\n\n async onSearch(event: { key: string; value: string }) {\n this.searchTerm = event.value;\n this.reset();\n if (!this.searchTerm) {\n this.clearLogs('CreatedAt', 'asc');\n return;\n }\n\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.get(\n `GetUserWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error during search:', res);\n this.appliedFilters = false;\n } else {\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n }\n } catch (error) {\n console.error('Search error:', error);\n this.appliedFilters = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.users = []; // Clear the logs array\n this.skip = 0; // Reset the skip value\n this.hasMore = true; // Reset the flag to allow fetching more logs\n this.appliedFilters = false;\n this.fetchUsers(sortValue, order);\n }\n\n onViewChange(isGridView: boolean): void { }\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n if (event.key === 'create') {\n console.log('peace is a boy');\n\n // const newUser = this.newItem()\n\n // if ( newUser && this.cardDataView) {\n // this.dataView.toggleView();\n // // First reset all selections\n // this.cardData.forEach((item) => {\n // item.selected = false;\n // if (item.children) {\n // item.children.forEach((child) => (child.selected = false));\n // }\n // });\n\n // this.currentData = this.cardDataView.onItemClick(newUser);\n\n // // Force change detection if needed\n // // this.changeDetectorRef.detectChanges();\n // }\n }\n }\n\n getRoleName(roleId: string): string {\n const role = this.Roles.find((role) => role.Code === roleId);\n return role ? role.Name : '';\n }\n}\n","<div class=\"flex flex-col gap-4 message-log-container\">\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\n isToggle: true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (onSearchChange)=\"onSearch($event)\"\n [searchValue]=\"searchTerm\"\n [showFilterChild]=\"showFilter\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n [isTableView]=\"false\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"users\"\n [columns]=\"filteredColumns\"\n [formGroupConfig]=\"formGroupConfig()\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onDataSave($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"user\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"FirstName\"\n type=\"text\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"mail\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"MailAddress\"\n type=\"email\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"phone\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"PhoneNumber\"\n type=\"tel\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"address\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"Address\"\n type=\"text\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"role\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verben-drop-down\n name=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"Roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-deleteRow=\"deleteRow\"\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\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\n #cellEdit\n let-value\n let-deleteRow=\"deleteRow\"\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <!-- <verben-svg\n icon=\"cardViewAlt\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"\n ></verben-svg> -->\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <lib-user-status-badge [status]=\"value\"></lib-user-status-badge>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-rowIndex=\"rowIndex\"\n let-formControl=\"formControl\"\n >\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Set status\"\n [options]=\"statuses\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n >\n </verben-drop-down>\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=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\">\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 <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\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 >Role:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n getRoleName(item.data.RoleID)\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.data?.Role?.Name\n }}</span> -->\n </p>\n\n <lib-user-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-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 <div class=\"bg-secondary-100 py-2 flex flex-col gap-20 px-2\">\n <lib-user-request-form\n [roles]=\"Roles\"\n [tags]=\"Tags()\"\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-end bottom-8 left-0 right-0 p-3\">\n <!-- <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\" (click)=\"onDelete()\"></verbena-button> -->\n <div class=\"flex gap-3\">\n <verbena-button\n (click)=\"vdv.toggleView()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#FFE681\"\n (click)=\"onSave()\"\n textColor=\"#404040\"\n border=\"1px solid #FFE681\"\n >\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\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-end': true,\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 [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 (filtersApplied)=\"onFilterApplied($event)\"\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-xport\n [columns]=\"allColumns\"\n [data]=\"users\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n <div\n *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\"\n ></div>\n\n <div *ngIf=\"vdv.isTableView\" class=\"w-full flex gap-2 justify-end\">\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","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UserManagementComponent } from './user-management.component';\n\nimport { LibUserRequestApprovalModule } from 'verben-authentication-ui/src/lib/components/user-request-approval';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DataXportModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { UserManagementService } from './services/user-management.service';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\nimport { UserStatusBadgeComponent } from './user-status-badge/user-status-badge.component';\n\n@NgModule({\n declarations: [\n UserManagementComponent,\n UserManagementFormComponent,\n UserStatusBadgeComponent,\n ],\n imports: [\n HttpClientModule,\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n DataXportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n VerbenaSwitchModule,\n\n LibUserRequestApprovalModule,\n // AsyncLabelPipe,\n ],\n providers: [UserManagementService],\n exports: [UserManagementComponent],\n})\nexport class LibUserManagementModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.UserManagementService","i3","i4","i5","i8.UserManagementFormComponent","i9.UserStatusBadgeComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "verben-authentication-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.31",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^18.2.0",
|
|
6
6
|
"@angular/common": "^14.0.0 || ^18.0.0",
|
|
@@ -47,18 +47,18 @@
|
|
|
47
47
|
"esm": "./esm2022/src/lib/pipes/verben-authentication-ui-src-lib-pipes.mjs",
|
|
48
48
|
"default": "./fesm2022/verben-authentication-ui-src-lib-pipes.mjs"
|
|
49
49
|
},
|
|
50
|
-
"./src/lib/services": {
|
|
51
|
-
"types": "./src/lib/services/index.d.ts",
|
|
52
|
-
"esm2022": "./esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs",
|
|
53
|
-
"esm": "./esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs",
|
|
54
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-services.mjs"
|
|
55
|
-
},
|
|
56
50
|
"./src/lib/shared": {
|
|
57
51
|
"types": "./src/lib/shared/index.d.ts",
|
|
58
52
|
"esm2022": "./esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs",
|
|
59
53
|
"esm": "./esm2022/src/lib/shared/verben-authentication-ui-src-lib-shared.mjs",
|
|
60
54
|
"default": "./fesm2022/verben-authentication-ui-src-lib-shared.mjs"
|
|
61
55
|
},
|
|
56
|
+
"./src/lib/services": {
|
|
57
|
+
"types": "./src/lib/services/index.d.ts",
|
|
58
|
+
"esm2022": "./esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs",
|
|
59
|
+
"esm": "./esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs",
|
|
60
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-services.mjs"
|
|
61
|
+
},
|
|
62
62
|
"./src/lib/components/auth-callback": {
|
|
63
63
|
"types": "./src/lib/components/auth-callback/index.d.ts",
|
|
64
64
|
"esm2022": "./esm2022/src/lib/components/auth-callback/verben-authentication-ui-src-lib-components-auth-callback.mjs",
|
|
@@ -71,18 +71,18 @@
|
|
|
71
71
|
"esm": "./esm2022/src/lib/components/button/verben-authentication-ui-src-lib-components-button.mjs",
|
|
72
72
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-button.mjs"
|
|
73
73
|
},
|
|
74
|
-
"./src/lib/components/mail": {
|
|
75
|
-
"types": "./src/lib/components/mail/index.d.ts",
|
|
76
|
-
"esm2022": "./esm2022/src/lib/components/mail/verben-authentication-ui-src-lib-components-mail.mjs",
|
|
77
|
-
"esm": "./esm2022/src/lib/components/mail/verben-authentication-ui-src-lib-components-mail.mjs",
|
|
78
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-mail.mjs"
|
|
79
|
-
},
|
|
80
74
|
"./src/lib/components/forgot-password": {
|
|
81
75
|
"types": "./src/lib/components/forgot-password/index.d.ts",
|
|
82
76
|
"esm2022": "./esm2022/src/lib/components/forgot-password/verben-authentication-ui-src-lib-components-forgot-password.mjs",
|
|
83
77
|
"esm": "./esm2022/src/lib/components/forgot-password/verben-authentication-ui-src-lib-components-forgot-password.mjs",
|
|
84
78
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs"
|
|
85
79
|
},
|
|
80
|
+
"./src/lib/components/mail": {
|
|
81
|
+
"types": "./src/lib/components/mail/index.d.ts",
|
|
82
|
+
"esm2022": "./esm2022/src/lib/components/mail/verben-authentication-ui-src-lib-components-mail.mjs",
|
|
83
|
+
"esm": "./esm2022/src/lib/components/mail/verben-authentication-ui-src-lib-components-mail.mjs",
|
|
84
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-mail.mjs"
|
|
85
|
+
},
|
|
86
86
|
"./src/lib/components/mail-validation": {
|
|
87
87
|
"types": "./src/lib/components/mail-validation/index.d.ts",
|
|
88
88
|
"esm2022": "./esm2022/src/lib/components/mail-validation/verben-authentication-ui-src-lib-components-mail-validation.mjs",
|
|
@@ -101,12 +101,6 @@
|
|
|
101
101
|
"esm": "./esm2022/src/lib/components/otp-input/verben-authentication-ui-src-lib-components-otp-input.mjs",
|
|
102
102
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs"
|
|
103
103
|
},
|
|
104
|
-
"./src/lib/components/role-control": {
|
|
105
|
-
"types": "./src/lib/components/role-control/index.d.ts",
|
|
106
|
-
"esm2022": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
107
|
-
"esm": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
108
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs"
|
|
109
|
-
},
|
|
110
104
|
"./src/lib/components/reset-password": {
|
|
111
105
|
"types": "./src/lib/components/reset-password/index.d.ts",
|
|
112
106
|
"esm2022": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
|
|
@@ -119,11 +113,11 @@
|
|
|
119
113
|
"esm": "./esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs",
|
|
120
114
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs"
|
|
121
115
|
},
|
|
122
|
-
"./src/lib/components/
|
|
123
|
-
"types": "./src/lib/components/
|
|
124
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
125
|
-
"esm": "./esm2022/src/lib/components/
|
|
126
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-
|
|
116
|
+
"./src/lib/components/role-control": {
|
|
117
|
+
"types": "./src/lib/components/role-control/index.d.ts",
|
|
118
|
+
"esm2022": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
119
|
+
"esm": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
|
|
120
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs"
|
|
127
121
|
},
|
|
128
122
|
"./src/lib/components/sign-up": {
|
|
129
123
|
"types": "./src/lib/components/sign-up/index.d.ts",
|
|
@@ -131,12 +125,24 @@
|
|
|
131
125
|
"esm": "./esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs",
|
|
132
126
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs"
|
|
133
127
|
},
|
|
128
|
+
"./src/lib/components/sso": {
|
|
129
|
+
"types": "./src/lib/components/sso/index.d.ts",
|
|
130
|
+
"esm2022": "./esm2022/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.mjs",
|
|
131
|
+
"esm": "./esm2022/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.mjs",
|
|
132
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-sso.mjs"
|
|
133
|
+
},
|
|
134
134
|
"./src/lib/components/two-factor-auth-otp": {
|
|
135
135
|
"types": "./src/lib/components/two-factor-auth-otp/index.d.ts",
|
|
136
136
|
"esm2022": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
|
|
137
137
|
"esm": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
|
|
138
138
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs"
|
|
139
139
|
},
|
|
140
|
+
"./src/lib/components/two-factor-auth-setup": {
|
|
141
|
+
"types": "./src/lib/components/two-factor-auth-setup/index.d.ts",
|
|
142
|
+
"esm2022": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
|
|
143
|
+
"esm": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
|
|
144
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs"
|
|
145
|
+
},
|
|
140
146
|
"./src/lib/components/user-management": {
|
|
141
147
|
"types": "./src/lib/components/user-management/index.d.ts",
|
|
142
148
|
"esm2022": "./esm2022/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.mjs",
|
|
@@ -149,23 +155,17 @@
|
|
|
149
155
|
"esm": "./esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs",
|
|
150
156
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs"
|
|
151
157
|
},
|
|
152
|
-
"./src/lib/components/
|
|
153
|
-
"types": "./src/lib/components/
|
|
154
|
-
"esm2022": "./esm2022/src/lib/components/
|
|
155
|
-
"esm": "./esm2022/src/lib/components/
|
|
156
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-
|
|
158
|
+
"./src/lib/components/user-request-approval": {
|
|
159
|
+
"types": "./src/lib/components/user-request-approval/index.d.ts",
|
|
160
|
+
"esm2022": "./esm2022/src/lib/components/user-request-approval/verben-authentication-ui-src-lib-components-user-request-approval.mjs",
|
|
161
|
+
"esm": "./esm2022/src/lib/components/user-request-approval/verben-authentication-ui-src-lib-components-user-request-approval.mjs",
|
|
162
|
+
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs"
|
|
157
163
|
},
|
|
158
164
|
"./src/lib/components/user-request-process": {
|
|
159
165
|
"types": "./src/lib/components/user-request-process/index.d.ts",
|
|
160
166
|
"esm2022": "./esm2022/src/lib/components/user-request-process/verben-authentication-ui-src-lib-components-user-request-process.mjs",
|
|
161
167
|
"esm": "./esm2022/src/lib/components/user-request-process/verben-authentication-ui-src-lib-components-user-request-process.mjs",
|
|
162
168
|
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs"
|
|
163
|
-
},
|
|
164
|
-
"./src/lib/components/user-request-approval": {
|
|
165
|
-
"types": "./src/lib/components/user-request-approval/index.d.ts",
|
|
166
|
-
"esm2022": "./esm2022/src/lib/components/user-request-approval/verben-authentication-ui-src-lib-components-user-request-approval.mjs",
|
|
167
|
-
"esm": "./esm2022/src/lib/components/user-request-approval/verben-authentication-ui-src-lib-components-user-request-approval.mjs",
|
|
168
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs"
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
}
|
package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts
CHANGED
|
@@ -2,13 +2,9 @@ import { EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
3
|
import { Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';
|
|
4
4
|
import { EnvironmentService } from 'verben-authentication-ui/src/lib/services';
|
|
5
|
-
import { CardData
|
|
5
|
+
import { CardData } from 'verben-ng-ui';
|
|
6
6
|
import { UserManagementService } from '../services/user-management.service';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
interface Warehouse {
|
|
9
|
-
Name: string;
|
|
10
|
-
Code: string;
|
|
11
|
-
}
|
|
12
8
|
export declare class UserManagementFormComponent {
|
|
13
9
|
private fb;
|
|
14
10
|
private userManagementService;
|
|
@@ -20,14 +16,10 @@ export declare class UserManagementFormComponent {
|
|
|
20
16
|
onFormSave: EventEmitter<Partial<User>>;
|
|
21
17
|
form: FormGroup;
|
|
22
18
|
statusOptions: Status[];
|
|
23
|
-
warehouses: Warehouse[];
|
|
24
19
|
constructor(fb: FormBuilder, userManagementService: UserManagementService, envService: EnvironmentService);
|
|
25
20
|
ngOnInit(): void;
|
|
26
|
-
loadWarehouses(): Promise<void>;
|
|
27
|
-
onWarehouseChange(event: DropdownChangeEvent): void;
|
|
28
21
|
onSave(): void;
|
|
29
22
|
onDelete(): void;
|
|
30
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserManagementFormComponent, never>;
|
|
31
24
|
static ɵcmp: i0.ɵɵComponentDeclaration<UserManagementFormComponent, "lib-user-request-form", never, { "currentData": { "alias": "currentData"; "required": false; }; "roles": { "alias": "roles"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; }, { "switchView": "switchView"; "onFormSave": "onFormSave"; }, never, never, false, never>;
|
|
32
25
|
}
|
|
33
|
-
export {};
|