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.
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, Injectable, signal, ViewChild, NgModule } from '@angular/core';
3
- import { Status, ErrorResponse, ObjectState, ConditionOptions } from 'verben-authentication-ui/src/lib/models';
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,