@qubesense/customer-farm 0.2.5 → 0.2.7

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.
@@ -45,6 +45,8 @@ class CustomerFarmApiUrls {
45
45
  this.getWarehouseDropdownListUrl = 'api/CustomerFarm/GetWarehouseDropdownList';
46
46
  //api Url string for get Customer dropdown list
47
47
  this.getcustomerlistbykeyword = 'api/CustomerFarm/SearchCustomer';
48
+ //api Url string for get Client number validation
49
+ this.getClientNumberValidationUrl = 'api/CustomerFarm/ValidateClientNumber';
48
50
  }
49
51
  }
50
52
 
@@ -194,6 +196,18 @@ class CustomerFarmService {
194
196
  }
195
197
  });
196
198
  }
199
+ ValidateClientNumber(value) {
200
+ return __awaiter(this, void 0, void 0, function* () {
201
+ try {
202
+ const url = this.customerFarmApiUrls.getClientNumberValidationUrl + '/' + value;
203
+ const resultResponse = yield this.dataAccessService.GetDataById(url);
204
+ return resultResponse;
205
+ }
206
+ catch (error) {
207
+ throw error;
208
+ }
209
+ });
210
+ }
197
211
  }
198
212
  CustomerFarmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmService, deps: [{ token: i2.DataAccessService }], target: i0.ɵɵFactoryTarget.Injectable });
199
213
  CustomerFarmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmService, providedIn: 'root' });
@@ -211,6 +225,7 @@ class CustomerFarmModel {
211
225
  this.recordId = null;
212
226
  this.customerId = null;
213
227
  this.clientNumber = '';
228
+ this.standardDeliveryCost = 0;
214
229
  this.customerName = '';
215
230
  this.defaultWarehouse = '';
216
231
  this.personInCharge = '';
@@ -242,6 +257,7 @@ class CustomerFarmConfigrationModel {
242
257
  class RequiredCustomerFarmFields {
243
258
  constructor() {
244
259
  this.clientNumber = true;
260
+ this.standardDeliveryCost = true;
245
261
  this.customerName = true;
246
262
  this.customerId = true;
247
263
  this.defaultWarehouse = true;
@@ -255,6 +271,7 @@ class RequiredCustomerFarmFields {
255
271
  class AllowedCustomerFarmFields {
256
272
  constructor() {
257
273
  this.clientNumber = true;
274
+ this.standardDeliveryCost = true;
258
275
  this.customerName = true;
259
276
  this.defaultWarehouse = true;
260
277
  this.personInCharge = true;
@@ -324,6 +341,7 @@ class CustomerFarmComponent {
324
341
  recordId: [null],
325
342
  customerId: [null],
326
343
  clientNumber: [null],
344
+ standardDeliveryCost: [0],
327
345
  customerName: [null],
328
346
  defaultWarehouse: [null],
329
347
  personInCharge: [null],
@@ -342,6 +360,10 @@ class CustomerFarmComponent {
342
360
  this.customerFarmForm.get('clientNumber').addValidators(Validators.required);
343
361
  this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));
344
362
  }
363
+ if (this.customerFarmConfiguration.requiredCustomerFarmFields.standardDeliveryCost) {
364
+ this.customerFarmForm.get('standardDeliveryCost').addValidators(Validators.required);
365
+ this.customerFarmForm.get('standardDeliveryCost').addValidators(Validators.pattern('^[0-9]+(\\.[0-9]{1,2})?$'));
366
+ }
345
367
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {
346
368
  this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);
347
369
  }
@@ -375,12 +397,14 @@ class CustomerFarmComponent {
375
397
  this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);
376
398
  this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);
377
399
  this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);
400
+ this.customerFarmForm.controls['standardDeliveryCost'].setValue(getResponse.apiData.standardDeliveryCost);
378
401
  this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);
379
402
  this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);
380
403
  this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);
381
404
  this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);
382
405
  this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);
383
406
  this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);
407
+ this.customerFarmForm.controls['standardDeliveryCost'].setValue(getResponse.apiData.standardDeliveryCost);
384
408
  this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);
385
409
  });
386
410
  }
@@ -395,6 +419,7 @@ class CustomerFarmComponent {
395
419
  const customerFarmModel = new CustomerFarmModel();
396
420
  customerFarmModel.recordId = this.customerFarmForm.value.recordId;
397
421
  customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;
422
+ customerFarmModel.standardDeliveryCost = this.customerFarmForm.value.standardDeliveryCost;
398
423
  customerFarmModel.customerName = this.customerFarmForm.value.customerName;
399
424
  customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;
400
425
  customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;
@@ -517,10 +542,10 @@ class CustomerFarmComponent {
517
542
  }
518
543
  }
519
544
  CustomerFarmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, deps: [{ token: CustomerFarmService }, { token: i2.JsonFormsService }, { token: i2.ApplicationRoleMenusService }, { token: i3.FormBuilder }, { token: i2.ErrorLogService }, { token: i2.ToastrNotificationService }], target: i0.ɵɵFactoryTarget.Component });
520
- CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
545
+ CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.standardDeliveryCost\">\r\n <mat-label>Standard Delivery Cost</mat-label>\r\n <input matInput type=\"number\" min=\"0\" step=\"0.01\" id=\"standardDeliveryCost\" placeholder=\"Standard Delivery Cost\" [formControlName]=\"'standardDeliveryCost'\"\r\n (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('standardDeliveryCost').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.standardDeliveryCost\">\r\n Standard Delivery Cost is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('standardDeliveryCost').hasError('min')\">\r\n Standard Delivery Cost must be a positive number\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
521
546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, decorators: [{
522
547
  type: Component,
523
- args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
548
+ args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.standardDeliveryCost\">\r\n <mat-label>Standard Delivery Cost</mat-label>\r\n <input matInput type=\"number\" min=\"0\" step=\"0.01\" id=\"standardDeliveryCost\" placeholder=\"Standard Delivery Cost\" [formControlName]=\"'standardDeliveryCost'\"\r\n (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('standardDeliveryCost').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.standardDeliveryCost\">\r\n Standard Delivery Cost is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('standardDeliveryCost').hasError('min')\">\r\n Standard Delivery Cost must be a positive number\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
524
549
  }], ctorParameters: function () { return [{ type: CustomerFarmService }, { type: i2.JsonFormsService }, { type: i2.ApplicationRoleMenusService }, { type: i3.FormBuilder }, { type: i2.ErrorLogService }, { type: i2.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
525
550
  type: Output
526
551
  }], customerFarmConfiguration: [{
@@ -1 +1 @@
1
- {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
1
+ {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n\r\n //api Url string for get Client number validation\r\n getClientNumberValidationUrl: string = 'api/CustomerFarm/ValidateClientNumber';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async ValidateClientNumber(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getClientNumberValidationUrl + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n standardDeliveryCost: number = 0;\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n standardDeliveryCost: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n standardDeliveryCost: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n standardDeliveryCost: [0],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.standardDeliveryCost) {\r\n this.customerFarmForm.get('standardDeliveryCost').addValidators(Validators.required);\r\n this.customerFarmForm.get('standardDeliveryCost').addValidators(Validators.pattern('^[0-9]+(\\\\.[0-9]{1,2})?$'));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['standardDeliveryCost'].setValue(getResponse.apiData.standardDeliveryCost);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['standardDeliveryCost'].setValue(getResponse.apiData.standardDeliveryCost);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.standardDeliveryCost = this.customerFarmForm.value.standardDeliveryCost;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.standardDeliveryCost\">\r\n <mat-label>Standard Delivery Cost</mat-label>\r\n <input matInput type=\"number\" min=\"0\" step=\"0.01\" id=\"standardDeliveryCost\" placeholder=\"Standard Delivery Cost\" [formControlName]=\"'standardDeliveryCost'\"\r\n (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('standardDeliveryCost').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.standardDeliveryCost\">\r\n Standard Delivery Cost is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('standardDeliveryCost').hasError('min')\">\r\n Standard Delivery Cost must be a positive number\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}