verben-authentication-ui 1.0.23 → 1.0.26
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/services/user-management.service.mjs +24 -2
- package/esm2022/src/lib/components/user-management/user-management-form/user-management-form.component.mjs +41 -8
- package/esm2022/src/lib/components/user-management/user-management.component.mjs +5 -7
- package/esm2022/src/lib/models/user.mjs +1 -1
- package/esm2022/src/lib/services/environment.service.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs +126 -72
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-services.mjs.map +1 -1
- package/package.json +25 -25
- package/src/lib/components/user-management/services/user-management.service.d.ts +3 -3
- package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts +15 -6
- package/src/lib/components/user-management/user-management.component.d.ts +7 -12
- package/src/lib/models/user.d.ts +1 -0
- package/src/lib/services/environment.service.d.ts +1 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output,
|
|
3
|
-
import {
|
|
2
|
+
import { Injectable, EventEmitter, Component, Input, Output, signal, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import { ErrorResponse, SearchOperator, SearchPropertySign, SortDirection, Status, ObjectState, ConditionOptions } from 'verben-authentication-ui/src/lib/models';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
4
5
|
import * as i7 from 'verben-ng-ui';
|
|
5
6
|
import { DataFilterType, ConditionalOptions, DataTableModule, CardModule, SvgModule, DataViewModule, CardDataViewModule, SortTableModule, VisibleColumnModule, TableFilterModule, DataExportModule, DataXportModule, VerbenaInputModule, VerbenaButtonModule, VerbenaBadgeModule, DropDownModule, VerbenaSwitchModule } from 'verben-ng-ui';
|
|
6
7
|
import * as i1 from '@angular/forms';
|
|
7
8
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import * as i1$1 from '@angular/router';
|
|
10
9
|
import * as i4 from 'verben-authentication-ui/src/lib/services';
|
|
10
|
+
import * as i1$1 from '@angular/router';
|
|
11
11
|
import * as i3 from 'verben-authentication-ui/src/lib/components/user-request-approval';
|
|
12
12
|
import { LibUserRequestApprovalModule } from 'verben-authentication-ui/src/lib/components/user-request-approval';
|
|
13
13
|
import * as i6 from '@angular/common';
|
|
@@ -120,74 +120,6 @@ const baseStyle = {
|
|
|
120
120
|
},
|
|
121
121
|
};
|
|
122
122
|
|
|
123
|
-
class UserManagementFormComponent {
|
|
124
|
-
fb;
|
|
125
|
-
// @Input() roles: Role[] = [];
|
|
126
|
-
// @Input() status: Status[] = [];
|
|
127
|
-
set currentData(value) {
|
|
128
|
-
if (value?.data) {
|
|
129
|
-
this.form.patchValue({
|
|
130
|
-
MailAddress: value.data.MailAddress || '',
|
|
131
|
-
FirstName: value.data.FirstName || '',
|
|
132
|
-
PhoneNumber: value.data.PhoneNumber || '',
|
|
133
|
-
// Address: value.data.Address || '',
|
|
134
|
-
RoleID: value.data.RoleID || '',
|
|
135
|
-
Tags: value.data.Tags || [],
|
|
136
|
-
Status: value.data.Status || Status.Active,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
this.form.reset();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
roles = [];
|
|
144
|
-
tags = [];
|
|
145
|
-
switchView = new EventEmitter();
|
|
146
|
-
onFormSave = new EventEmitter();
|
|
147
|
-
form;
|
|
148
|
-
statusOptions = Object.values(Status);
|
|
149
|
-
constructor(fb) {
|
|
150
|
-
this.fb = fb;
|
|
151
|
-
this.form = this.fb.group({
|
|
152
|
-
MailAddress: ['', { readonly: true }],
|
|
153
|
-
FirstName: ['', { readonly: true }],
|
|
154
|
-
PhoneNumber: ['', { readonly: true }],
|
|
155
|
-
// Address: ['', { readonly: true }],
|
|
156
|
-
Status: ['', { readonly: true }],
|
|
157
|
-
RoleID: [''],
|
|
158
|
-
Tags: [[]],
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
ngOnInit() { }
|
|
162
|
-
onSave() {
|
|
163
|
-
if (this.form.valid) {
|
|
164
|
-
// Emit save event with form value
|
|
165
|
-
console.log('Form saved:', this.form.value);
|
|
166
|
-
this.onFormSave.emit(this.form.value);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
onDelete() {
|
|
170
|
-
// Emit delete event
|
|
171
|
-
console.log('Delete requested');
|
|
172
|
-
}
|
|
173
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
174
|
-
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\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n>\n <verbena-input\n label=\"Name:\"\n name=\"FirstName\"\n type=\"text\"\n formControlName=\"FirstName\"\n />\n <verbena-input\n label=\"Phone Number:\"\n name=\"PhoneNumber\"\n type=\"tel\"\n formControlName=\"PhoneNumber\"\n />\n <verbena-input\n name=\"MailAddress\"\n label=\"E-Mail Address:\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n />\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\n label=\"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 formControlName=\"RoleID\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"tags\"\n id=\"tags\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Tags\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"false\"\n [showClear]=\"false\"\n placeholder=\"\"\n [(options)]=\"statusOptions\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\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"] }] });
|
|
175
|
-
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, decorators: [{
|
|
177
|
-
type: Component,
|
|
178
|
-
args: [{ selector: 'lib-user-request-form', template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n>\n <verbena-input\n label=\"Name:\"\n name=\"FirstName\"\n type=\"text\"\n formControlName=\"FirstName\"\n />\n <verbena-input\n label=\"Phone Number:\"\n name=\"PhoneNumber\"\n type=\"tel\"\n formControlName=\"PhoneNumber\"\n />\n <verbena-input\n name=\"MailAddress\"\n label=\"E-Mail Address:\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n />\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\n label=\"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 formControlName=\"RoleID\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"tags\"\n id=\"tags\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Tags\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"false\"\n [showClear]=\"false\"\n placeholder=\"\"\n [(options)]=\"statusOptions\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n</form>\n" }]
|
|
179
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { currentData: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], roles: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], tags: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], switchView: [{
|
|
186
|
-
type: Output
|
|
187
|
-
}], onFormSave: [{
|
|
188
|
-
type: Output
|
|
189
|
-
}] } });
|
|
190
|
-
|
|
191
123
|
class UserManagementService {
|
|
192
124
|
httpService;
|
|
193
125
|
// private readonly BASE_URL = 'https://auth.white360.net/User';
|
|
@@ -262,6 +194,28 @@ class UserManagementService {
|
|
|
262
194
|
const url = `User/DeleteUsers`;
|
|
263
195
|
return this.httpService.delete(`${url}?data=${userIds.join(',')}`);
|
|
264
196
|
}
|
|
197
|
+
async loadEntities(entity, fields, env, event = null) {
|
|
198
|
+
var payload = {
|
|
199
|
+
Fields: fields,
|
|
200
|
+
SearchKeyValues: [
|
|
201
|
+
{
|
|
202
|
+
PropertyName: 'Code',
|
|
203
|
+
EntityValue: '',
|
|
204
|
+
Operator: SearchOperator.And,
|
|
205
|
+
Sign: SearchPropertySign.EQ,
|
|
206
|
+
Sort: SortDirection.Asc,
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
};
|
|
210
|
+
const res = await this.httpService.post(`SearchDynamic${entity}/0/0`, payload, env);
|
|
211
|
+
if (res instanceof ErrorResponse) {
|
|
212
|
+
return [];
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
var result = res.Result;
|
|
216
|
+
return result;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
265
219
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementService, deps: [{ token: i4.HttpWebRequestService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
266
220
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementService, providedIn: 'root' });
|
|
267
221
|
}
|
|
@@ -272,6 +226,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
272
226
|
}]
|
|
273
227
|
}], ctorParameters: () => [{ type: i4.HttpWebRequestService }] });
|
|
274
228
|
|
|
229
|
+
class UserManagementFormComponent {
|
|
230
|
+
fb;
|
|
231
|
+
userManagementService;
|
|
232
|
+
envService;
|
|
233
|
+
// @Input() roles: Role[] = [];
|
|
234
|
+
// @Input() status: Status[] = [];
|
|
235
|
+
set currentData(value) {
|
|
236
|
+
if (value?.data) {
|
|
237
|
+
// Convert comma-separated warehouse codes back to array for dropdown
|
|
238
|
+
const warehouseCodes = value.data.Warehouses
|
|
239
|
+
? value.data.Warehouses.split(',').filter((code) => code.trim())
|
|
240
|
+
: [];
|
|
241
|
+
this.form.patchValue({
|
|
242
|
+
MailAddress: value.data.MailAddress || '',
|
|
243
|
+
FirstName: value.data.FirstName || '',
|
|
244
|
+
PhoneNumber: value.data.PhoneNumber || '',
|
|
245
|
+
// Address: value.data.Address || '',
|
|
246
|
+
RoleID: value.data.RoleID || '',
|
|
247
|
+
Tags: value.data.Tags || [],
|
|
248
|
+
Status: value.data.Status || Status.Active,
|
|
249
|
+
Warehouses: warehouseCodes,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
this.form.reset();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
roles = [];
|
|
257
|
+
tags = [];
|
|
258
|
+
switchView = new EventEmitter();
|
|
259
|
+
onFormSave = new EventEmitter();
|
|
260
|
+
form;
|
|
261
|
+
statusOptions = Object.values(Status);
|
|
262
|
+
warehouses = [];
|
|
263
|
+
constructor(fb, userManagementService, envService) {
|
|
264
|
+
this.fb = fb;
|
|
265
|
+
this.userManagementService = userManagementService;
|
|
266
|
+
this.envService = envService;
|
|
267
|
+
this.form = this.fb.group({
|
|
268
|
+
MailAddress: ['', { readonly: true }],
|
|
269
|
+
FirstName: ['', { readonly: true }],
|
|
270
|
+
PhoneNumber: ['', { readonly: true }],
|
|
271
|
+
// Address: ['', { readonly: true }],
|
|
272
|
+
Status: ['', { readonly: true }],
|
|
273
|
+
RoleID: [''],
|
|
274
|
+
Tags: [[]],
|
|
275
|
+
Warehouses: [[]],
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
ngOnInit() {
|
|
279
|
+
this.loadWarehouses();
|
|
280
|
+
}
|
|
281
|
+
async loadWarehouses() {
|
|
282
|
+
try {
|
|
283
|
+
this.warehouses = await this.userManagementService.loadEntities('Warehouse', ['Name', 'Code'], this.envService.environment.RevenueAPI);
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
console.error('Error loading warehouses:', error);
|
|
287
|
+
this.warehouses = [];
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
onWarehouseChange(event) {
|
|
291
|
+
// Convert array of warehouse codes to comma-separated string
|
|
292
|
+
const selectedCodes = event.value;
|
|
293
|
+
const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';
|
|
294
|
+
// Update the form with the comma-separated value for saving
|
|
295
|
+
this.form.patchValue({
|
|
296
|
+
Warehouses: commaSeparated
|
|
297
|
+
}, { emitEvent: false });
|
|
298
|
+
}
|
|
299
|
+
onSave() {
|
|
300
|
+
if (this.form.valid) {
|
|
301
|
+
// Emit save event with form value
|
|
302
|
+
console.log('Form saved:', this.form.value);
|
|
303
|
+
this.onFormSave.emit(this.form.value);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
onDelete() {
|
|
307
|
+
// Emit delete event
|
|
308
|
+
console.log('Delete requested');
|
|
309
|
+
}
|
|
310
|
+
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 });
|
|
311
|
+
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=\"Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\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"] }] });
|
|
312
|
+
}
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserManagementFormComponent, decorators: [{
|
|
314
|
+
type: Component,
|
|
315
|
+
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=\"Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\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" }]
|
|
316
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: UserManagementService }, { type: i4.EnvironmentService }], propDecorators: { currentData: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], roles: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], tags: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], switchView: [{
|
|
323
|
+
type: Output
|
|
324
|
+
}], onFormSave: [{
|
|
325
|
+
type: Output
|
|
326
|
+
}] } });
|
|
327
|
+
|
|
275
328
|
class UserStatusBadgeComponent {
|
|
276
329
|
status = Status.Active;
|
|
277
330
|
badgeConfig() {
|
|
@@ -360,6 +413,7 @@ class UserManagementComponent {
|
|
|
360
413
|
Address: this.fb.control(''),
|
|
361
414
|
RoleID: this.fb.control(''),
|
|
362
415
|
Tags: this.fb.control([]),
|
|
416
|
+
Warehouses: this.fb.control(''),
|
|
363
417
|
Status: this.fb.control(''),
|
|
364
418
|
},
|
|
365
419
|
// validatorOrOpts: null,
|