@qubesense/customer-farm 0.1.6 → 0.1.8

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.
@@ -4,14 +4,16 @@ import { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies
4
4
  import { KendoGridviewConfigurationModel } from '@qubesense/base-services';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "./customer-farm.service";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@qubesense/base-services";
7
+ import * as i2 from "@qubesense/base-services";
8
+ import * as i3 from "@angular/forms";
9
9
  import * as i4 from "@angular/material/form-field";
10
10
  import * as i5 from "@angular/material/input";
11
11
  import * as i6 from "@angular/common";
12
12
  export class CustomerFarmComponent {
13
- constructor(customerFarmService, formBuilder, errorLogService, toastr) {
13
+ constructor(customerFarmService, jsonForms, applicationRoleMenusService, formBuilder, errorLogService, toastr) {
14
14
  this.customerFarmService = customerFarmService;
15
+ this.jsonForms = jsonForms;
16
+ this.applicationRoleMenusService = applicationRoleMenusService;
15
17
  this.formBuilder = formBuilder;
16
18
  this.errorLogService = errorLogService;
17
19
  this.toastr = toastr;
@@ -23,16 +25,28 @@ export class CustomerFarmComponent {
23
25
  this.hideButtons = false;
24
26
  this.isViewCall = false;
25
27
  this.speciesList = [];
28
+ this.permission = [];
29
+ this.userData = [];
30
+ this.gridConfiguration.formCodeForJsonHeader = 'CUFA';
31
+ this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;
26
32
  }
27
- ngOnInit() {
33
+ async ngOnInit() {
28
34
  this.DeclareForm();
29
35
  if (this.customerFarmConfiguration.showGrid) {
30
- this.gridConfiguration.FormCode = 'CUFA';
36
+ this.gridConfiguration.formCodeForJsonHeader = 'CUFA';
37
+ this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;
31
38
  this.gridConfiguration.showModal = true;
32
- this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false };
39
+ await this.permissionMethod();
40
+ //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false };
33
41
  this.GetListData();
34
42
  }
35
43
  }
44
+ async permissionMethod() {
45
+ this.userData = JSON.parse(localStorage.getItem("sessionUser"));
46
+ const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);
47
+ this.permission = getResponse.apiData[0];
48
+ this.HideAddButton = this.permission.canAdd == false ? true : false;
49
+ }
36
50
  DeclareForm() {
37
51
  this.customerFarmForm = this.formBuilder.group({
38
52
  recordId: [null],
@@ -45,6 +59,7 @@ export class CustomerFarmComponent {
45
59
  PICTattoo: [null],
46
60
  isActive: [true]
47
61
  });
62
+ this.onChanges();
48
63
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {
49
64
  this.customerFarmForm.get('customerName').addValidators(Validators.required);
50
65
  this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));
@@ -61,6 +76,13 @@ export class CustomerFarmComponent {
61
76
  }
62
77
  }
63
78
  ///////////////////////////////////standard methods/////////////////////////////////////////////////////
79
+ onChanges() {
80
+ this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {
81
+ this.customerFarmForm.patchValue({
82
+ displayName: val
83
+ });
84
+ });
85
+ }
64
86
  /**
65
87
  * @description
66
88
  *
@@ -182,6 +204,9 @@ export class CustomerFarmComponent {
182
204
  const customerFarmModel = new CustomerFarmModel();
183
205
  try {
184
206
  const getResponse = await this.customerFarmService.GetListData(customerFarmModel);
207
+ getResponse.apiData.forEach(record => {
208
+ record.createdOnUTC = new Date(record.createdOnUTC);
209
+ });
185
210
  this.gridData = getResponse.apiData;
186
211
  }
187
212
  catch (error) {
@@ -190,14 +215,14 @@ export class CustomerFarmComponent {
190
215
  }
191
216
  }
192
217
  }
193
- CustomerFarmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, deps: [{ token: i1.CustomerFarmService }, { token: i2.FormBuilder }, { token: i3.ErrorLogService }, { token: i3.ToastrNotificationService }], target: i0.ɵɵFactoryTarget.Component });
194
- 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.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 <input matInput id=\"defaultWarehouse\" placeholder=\"Default Warehouse\"\r\n [formControlName]=\"'defaultWarehouse'\" (change)=\"emitDataToParent()\">\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: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
218
+ CustomerFarmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, deps: [{ token: i1.CustomerFarmService }, { token: i2.JsonFormsService }, { token: i2.ApplicationRoleMenusService }, { token: i3.FormBuilder }, { token: i2.ErrorLogService }, { token: i2.ToastrNotificationService }], target: i0.ɵɵFactoryTarget.Component });
219
+ 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.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 <input matInput id=\"defaultWarehouse\" placeholder=\"Default Warehouse\"\r\n [formControlName]=\"'defaultWarehouse'\" (change)=\"emitDataToParent()\">\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
195
220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, decorators: [{
196
221
  type: Component,
197
222
  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.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 <input matInput id=\"defaultWarehouse\" placeholder=\"Default Warehouse\"\r\n [formControlName]=\"'defaultWarehouse'\" (change)=\"emitDataToParent()\">\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" }]
198
- }], ctorParameters: function () { return [{ type: i1.CustomerFarmService }, { type: i2.FormBuilder }, { type: i3.ErrorLogService }, { type: i3.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
223
+ }], ctorParameters: function () { return [{ type: i1.CustomerFarmService }, { type: i2.JsonFormsService }, { type: i2.ApplicationRoleMenusService }, { type: i3.FormBuilder }, { type: i2.ErrorLogService }, { type: i2.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
199
224
  type: Output
200
225
  }], customerFarmConfiguration: [{
201
226
  type: Input
202
227
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEcsT0FBTyxFQUFvQywrQkFBK0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFReEksTUFBTSxPQUFPLHFCQUFxQjtJQVloQyxZQUFvQixtQkFBd0MsRUFDbEQsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsTUFBaUM7UUFIdkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUNsRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFkakMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyQyw4QkFBeUIsR0FBa0MsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1FBRS9HLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDNUIsc0JBQWlCLEdBQW9DLElBQUksK0JBQStCLEVBQUUsQ0FBQztRQUMzRixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFX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QztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDOztrSEFsTVUscUJBQXFCO3NHQUFyQixxQkFBcUIsZ0xDWGxDLCt4TEE2RkE7MkZEbEZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7ME1BS25CLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDUyx5QkFBeUI7c0JBQXhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsLCBDdXN0b21lckZhcm1Nb2RlbCB9IGZyb20gJy4vZGVwZW5kZW5jaWVzL2N1c3RvbWVyLWZhcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBFcnJvckxvZ1NlcnZpY2UsIEdyaWRFdmVudHNNb2RlbCwgS2VuZG9Hcmlkdmlld0NvbmZpZ3VyYXRpb25Nb2RlbCwgVG9hc3RyTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BxdWJlc2Vuc2UvYmFzZS1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEN1c3RvbWVyRmFybVNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbWVyLWZhcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jdXN0b21lci1mYXJtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tZXItZmFybS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21lckZhcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBjdXN0b21lckZhcm1EYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb246IEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsID0gbmV3IEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsKCk7XHJcbiAgY3VzdG9tZXJGYXJtRm9ybTogRm9ybUdyb3VwO1xyXG4gIHVzZXJNZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZ3JpZERhdGE6IGFueVtdID0gW107XHJcbiAgZ3JpZENvbmZpZ3VyYXRpb246IEtlbmRvR3JpZHZpZXdDb25maWd1cmF0aW9uTW9kZWwgPSBuZXcgS2VuZG9Hcmlkdmlld0NvbmZpZ3VyYXRpb25Nb2RlbCgpO1xyXG4gIGhpZGVCdXR0b25zID0gZmFsc2U7XHJcbiAgaXNWaWV3Q2FsbCA9IGZhbHNlO1xyXG4gIHNwZWNpZXNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkQ3VzdG9tZXJzOltdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN1c3RvbWVyRmFybVNlcnZpY2U6IEN1c3RvbWVyRmFybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgZXJyb3JMb2dTZXJ2aWNlOiBFcnJvckxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5EZWNsYXJlRm9ybSgpO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93R3JpZCkge1xyXG4gICAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLkZvcm1Db2RlID0gJ0NVRkEnO1xyXG4gICAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLnNob3dNb2RhbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uYWN0aW9ucyA9IHsgJ1ZpZXcnOiBmYWxzZSwgJ0VkaXQnOiB0cnVlLCAnRGVsZXRlJzogdHJ1ZSwgJ0dlbmVyYXRlIFBERic6IGZhbHNlIH07ICBcclxuICAgICAgdGhpcy5HZXRMaXN0RGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgRGVjbGFyZUZvcm0oKSB7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgcmVjb3JkSWQgICAgICAgICAgICA6IFtudWxsXSxcclxuICAgICAgY3VzdG9tZXJJZCAgICAgICAgICA6IFtudWxsXSxcclxuICAgICAgY3VzdG9tZXJOYW1lICAgICAgICA6IFtudWxsXSxcclxuICAgICAgZGVmYXVsdFdhcmVob3VzZSAgICA6IFtudWxsXSxcclxuICAgICAgcGVyc29uSW5DaGFyZ2UgICAgICA6IFtudWxsXSxcclxuICAgICAgZGlzcGxheU5hbWUgICAgICAgICA6IFtudWxsXSxcclxuICAgICAgcHJpbWFyeVZldElkICAgICAgICA6IFtudWxsXSxcclxuICAgICAgUElDVGF0dG9vICAgICAgICAgICA6IFtudWxsXSxcclxuICAgICAgaXNBY3RpdmUgICAgICAgICAgICA6IFt0cnVlXVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmN1c3RvbWVyTmFtZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucGF0dGVybignXlthLXpBLVogXSokJykpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuZGVmYXVsdFdhcmVob3VzZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdkZWZhdWx0V2FyZWhvdXNlJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucGVyc29uSW5DaGFyZ2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgncGVyc29uSW5DaGFyZ2UnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5wcmltYXJ5VmV0SWQpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgncHJpbWFyeVZldElkJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vc3RhbmRhcmQgbWV0aG9kcy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogZWRpdCBkYXRhIGxpc3QgaXRlbSB1c2luZyBkYXRhIGl0ZW0gR1VJRFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGN1c3RvbWVySWRcclxuICAgKlxyXG4gICAqICBnZXRzIGN1c3RvbWVyIEdVSUQgZnJvbSBncmlkRGF0YSBhbmQgcGFzc2VzIGl0IHRvIHRoaXMgZnVuY3Rpb25cclxuICAgKi9cclxuICBhc3luYyBFZGl0RGF0YShjdXN0b21lcklkOnN0cmluZykge1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuR2V0RGF0YUJ5SWQoY3VzdG9tZXJJZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncmVjb3JkSWQnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnJlY29yZElkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydjdXN0b21lcklkJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5jdXN0b21lcklkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydjdXN0b21lck5hbWUnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmN1c3RvbWVyTmFtZSk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snZGVmYXVsdFdhcmVob3VzZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuZGVmYXVsdFdhcmVob3VzZSk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncGVyc29uSW5DaGFyZ2UnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnBlcnNvbkluQ2hhcmdlKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydkaXNwbGF5TmFtZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuZGlzcGxheU5hbWUpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ3ByaW1hcnlWZXRJZCddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEucHJpbWFyeVZldElkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydQSUNUYXR0b28nXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnBpY1RhdHRvbyk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snaXNBY3RpdmUnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmlzQWN0aXZlKTsgICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIHRoaXMgbWV0aG9kIGNvbnZlcnRzIGFsbCBmb3JtIGlucHV0cyBpbnRvIG1vZGVsIGNsYXNzXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBtb2RlbCB3aXRoIG5ldyBmb3JtIHZhbHVlc1xyXG4gICAqL1xyXG4gIENvbnZlcnRGb3JtVG9Nb2RlbCgpIHtcclxuICAgIGNvbnN0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5yZWNvcmRJZCA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5yZWNvcmRJZDtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLmN1c3RvbWVyTmFtZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5jdXN0b21lck5hbWU7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5kZWZhdWx0V2FyZWhvdXNlID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLmRlZmF1bHRXYXJlaG91c2U7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5wZXJzb25JbkNoYXJnZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5wZXJzb25JbkNoYXJnZTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLmRpc3BsYXlOYW1lID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLmRpc3BsYXlOYW1lO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwucHJpbWFyeVZldElkID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLnByaW1hcnlWZXRJZDtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLlBJQ1RhdHRvbyA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5QSUNUYXR0b287XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5jdXN0b21lcklkID0gdGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmN1c3RvbWVySWQ7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5mb3JtQ29kZSA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5mb3JtQ29kZTtcclxuXHJcbiAgICByZXR1cm4gY3VzdG9tZXJGYXJtTW9kZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBjbGVhciBmb3JtIGRhdGFcclxuICAgKi9cclxuICBDbGVhckZvcm0oKSB7XHJcbiAgICB0aGlzLkRlY2xhcmVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBlbWl0RGF0YVRvUGFyZW50KCkge1xyXG4gICAgbGV0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbCA9IHRoaXMuQ29udmVydEZvcm1Ub01vZGVsKCk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybURhdGEuZW1pdChjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEluc2VydCBjdXN0b21lciBkYXRhIGludG8gZGF0YWJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgSW5zZXJ0RGF0YSgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuSW5zZXJ0RGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogdXBkYXRlIGN1c3RvbWVyIGRhdGEgaW50byBkYXRhYmFzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBVcGRhdGVEYXRhKCkge1xyXG4gICAgbGV0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbCA9IHRoaXMuQ29udmVydEZvcm1Ub01vZGVsKCk7XHJcbiAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5VcGRhdGVEYXRhKGN1c3RvbWVyRmFybU1vZGVsKTtcclxuICAgIHRoaXMudXNlck1lc3NhZ2VzID0gZ2V0UmVzcG9uc2UubWVzc2FnZS51c2VyTWVzc2FnZTtcclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24udXNlck1lc3NhZ2VzKSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLlNob3dTdWNjZXNzKHRoaXMudXNlck1lc3NhZ2VzLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb25cclxuICAqXHJcbiAgKiBEZWxldGUgY3VzdG9tZXIgZGF0YSBpbnRvIGRhdGFiYXNlXHJcbiAgKi9cclxuICBwdWJsaWMgYXN5bmMgRGVsZXRlRGF0YSh2YWx1ZSkge1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuRGVsZXRlRGF0YSh2YWx1ZSk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIEdyaWQgZXZlbnRzIGNhbGxzXHJcbiAgICAgKi9cclxuICBoYW5kbGVHcmlkRXZlbnRzKGdyaWRFdmVudHM6IEdyaWRFdmVudHNNb2RlbCkge1xyXG4gICAgZ3JpZEV2ZW50cy5lZGl0UmVjb3JkLnN1YnNjcmliZSgocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5oaWRlQnV0dG9ucyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzVmlld0NhbGwgPSBmYWxzZTtcclxuICAgICAgdGhpcy5FZGl0RGF0YShyZWNvcmRJZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5lbmFibGUoKTtcclxuICAgIH0pO1xyXG4gICAgZ3JpZEV2ZW50cy5kZWxldGVSZWNvcmQuc3Vic2NyaWJlKChyZWNvcmRJZCkgPT4ge1xyXG4gICAgICB0aGlzLkRlbGV0ZURhdGEocmVjb3JkSWQpO1xyXG4gICAgfSk7XHJcbiAgICBncmlkRXZlbnRzLnZpZXdSZWNvcmQuc3Vic2NyaWJlKGFzeW5jIChyZWNvcmRJZCkgPT4ge1xyXG4gICAgICB0aGlzLkVkaXREYXRhKHJlY29yZElkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmRpc2FibGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBnZXQgZGF0YSBmb3IgQ3VzdG9tZXIgZ3JpZCBsaXN0XHJcbiAgICAgKi9cclxuICAgcHVibGljIGFzeW5jIEdldExpc3REYXRhKCkge1xyXG4gICAgY29uc3QgY3VzdG9tZXJGYXJtTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtTW9kZWwoKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkdldExpc3REYXRhKGN1c3RvbWVyRmFybU1vZGVsKTtcclxuICAgICAgdGhpcy5ncmlkRGF0YSA9IGdldFJlc3BvbnNlLmFwaURhdGE7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLmVycm9yTG9nU2VydmljZS5zYXZlRXJyb3IoZXJyb3IpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93QWxsRXJyb3JzKGVycm9yLmVycm9yLm1lc3NhZ2UudXNlck1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWF1dG8gbWluLXctMCB3LWZ1bGxcIj5cclxuICAgIDwhLS0gZm9ybSBjb2RlIHN0YXJ0cyBoZXJlIC0tPlxyXG4gICAgPCEtLWNvbnRlbnQtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJzbTp3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCIgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnNob3dNb2RhbFwiPlxyXG5cclxuICAgICAgICA8IS0tZm9ybSBib2R5LS0+XHJcbiAgICAgICAgPGZvcm0gY2xhc3M9XCJmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlblwiIFtmb3JtR3JvdXBdPVwiY3VzdG9tZXJGYXJtRm9ybVwiPlxyXG4gICAgICAgICAgICA8IS0tIEN1c3RvbWVyIEZhcm0gc2VjdGlvbiBzdGFydCAgLS0+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpmbGV4IHB4LTggcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsIG1yLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMuY3VzdG9tZXJOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNsaWVudCBOYW1lPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJjdXN0b21lck5hbWVcIiBwbGFjZWhvbGRlcj1cIkNsaWVudCBOYW1lXCIgcGF0dGVybj1cIl5bYS16QS1aIF0qJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiM1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2N1c3RvbWVyTmFtZSdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuY3VzdG9tZXJOYW1lIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBOYW1lIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBlbnRlciB2YWxpZCBDbGllbnQgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBuYW1lIG11c3QgYmUgb2YgYXRsZWFzdCAzIGNoYXJhY3RlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5kZWZhdWx0V2FyZWhvdXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRlZmF1bHQgV2FyZWhvdXNlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJkZWZhdWx0V2FyZWhvdXNlXCIgcGxhY2Vob2xkZXI9XCJEZWZhdWx0IFdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGVmYXVsdFdhcmVob3VzZSdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2RlZmF1bHRXYXJlaG91c2UnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IFdhcmVob3VzZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpmbGV4IHB4LTggcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsIG1yLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMucGVyc29uSW5DaGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UGVyc29uIEluIENoYXJnZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwicGVyc29uSW5DaGFyZ2VcIiBwbGFjZWhvbGRlcj1cIlBlcnNvbiBJbiBDaGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3BlcnNvbkluQ2hhcmdlJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgncGVyc29uSW5DaGFyZ2UnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnBlcnNvbkluQ2hhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29uIEluIENoYXJnZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRpc3BsYXkgTmFtZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiZGlzcGxheU5hbWVcIiBwbGFjZWhvbGRlcj1cIkRpc3BsYXkgTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGlzcGxheU5hbWUnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXggcHgtOCBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGwgbXItNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5wcmltYXJ5VmV0SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UHJpbWFyeSBWZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cInByaW1hcnlWZXRJZFwiIHBsYWNlaG9sZGVyPVwiUHJpbWFyeSBWZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ByaW1hcnlWZXRJZCdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3ByaW1hcnlWZXRJZCcpLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucHJpbWFyeVZldElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWFyeSBWZXQgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5QSUNUYXR0b29cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UElDL1RhdHRvbyAoaWYgYXBwbGljYWJsZSk8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cIlBJQ1RhdHRvb1wiIHBsYWNlaG9sZGVyPVwiUElDL1RhdHRvb1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ1BJQ1RhdHRvbydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIEN1c3RvbWVyIEZhcm0gc2VjdGlvbiBFbmQgIC0tPlxyXG5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gZm9ybSBjb2RlIGVuZHMgaGVyZSAtLT5cclxuXHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93R3JpZFwiPlxyXG4gICAgPGxpYi1rZW5kby1ncmlkLXZpZXcgW2NvbmZpZ3VyYXRpb25dPVwiZ3JpZENvbmZpZ3VyYXRpb25cIiAoZXZlbnRzKT1cImhhbmRsZUdyaWRFdmVudHMoJGV2ZW50KVwiPjwvbGliLWtlbmRvLWdyaWQtdmlldz5cclxuICA8L2Rpdj5cclxuIl19
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEcsT0FBTyxFQUFtRiwrQkFBK0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFRdkwsTUFBTSxPQUFPLHFCQUFxQjtJQWlCaEMsWUFBb0IsbUJBQXdDLEVBQ2xELFNBQTJCLEVBQzNCLDJCQUF3RCxFQUN4RCxXQUF3QixFQUN4QixlQUFnQyxFQUNoQyxNQUFpQztRQUx2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ2xELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBckJqQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLDhCQUF5QixHQUFrQyxJQUFJLDZCQUE2QixFQUFFLENBQUM7UUFFL0csaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDckIsYUFBUSxHQUFVLEVBQUUsQ0FBQztRQUM1QixzQkFBaUIsR0FBb0Ms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QUFDO1lBQ2xGLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztTQUNyQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDOztrSEFuT1UscUJBQXFCO3NHQUFyQixxQkFBcUIsZ0xDWGxDLCt4TEE2RkE7MkZEbEZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7bVJBS25CLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDUyx5QkFBeUI7c0JBQXhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsLCBDdXN0b21lckZhcm1Nb2RlbCB9IGZyb20gJy4vZGVwZW5kZW5jaWVzL2N1c3RvbWVyLWZhcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2UsIEVycm9yTG9nU2VydmljZSwgR3JpZEV2ZW50c01vZGVsLCBKc29uRm9ybXNTZXJ2aWNlLCBLZW5kb0dyaWR2aWV3Q29uZmlndXJhdGlvbk1vZGVsLCBUb2FzdHJOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHF1YmVzZW5zZS9iYXNlLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQ3VzdG9tZXJGYXJtU2VydmljZSB9IGZyb20gJy4vY3VzdG9tZXItZmFybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWN1c3RvbWVyLWZhcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b21lci1mYXJtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdXN0b21lci1mYXJtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyRmFybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpIGN1c3RvbWVyRmFybURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbjogQ3VzdG9tZXJGYXJtQ29uZmlncmF0aW9uTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtQ29uZmlncmF0aW9uTW9kZWwoKTtcclxuICBjdXN0b21lckZhcm1Gb3JtOiBGb3JtR3JvdXA7XHJcbiAgdXNlck1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBncmlkRGF0YTogYW55W10gPSBbXTtcclxuICBncmlkQ29uZmlndXJhdGlvbjogS2VuZG9Hcmlkdmlld0NvbmZpZ3VyYXRpb25Nb2RlbCA9IG5ldyBLZW5kb0dyaWR2aWV3Q29uZmlndXJhdGlvbk1vZGVsKCk7XHJcbiAgaGlkZUJ1dHRvbnMgPSBmYWxzZTtcclxuICBpc1ZpZXdDYWxsID0gZmFsc2U7XHJcbiAgc3BlY2llc0xpc3Q6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRDdXN0b21lcnM6IFtdO1xyXG5cclxuICBwZXJtaXNzaW9uOiBhbnkgPSBbXTtcclxuICB1c2VyRGF0YTogYW55ID0gW107XHJcbiAgSGlkZUFkZEJ1dHRvbjogYm9vbGVhbjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3VzdG9tZXJGYXJtU2VydmljZTogQ3VzdG9tZXJGYXJtU2VydmljZSxcclxuICAgIHByaXZhdGUganNvbkZvcm1zOiBKc29uRm9ybXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2U6IEFwcGxpY2F0aW9uUm9sZU1lbnVzU2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBlcnJvckxvZ1NlcnZpY2U6IEVycm9yTG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9ySnNvbkhlYWRlciA9ICdDVUZBJztcclxuICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbnMgPSB0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uY3VzdG9tZXJGYXJtR3JpZENvbmZpZ3JhdGlvbi5mb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLkRlY2xhcmVGb3JtKCk7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnNob3dHcmlkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uZm9ybUNvZGVGb3JKc29uSGVhZGVyID0gJ0NVRkEnO1xyXG4gICAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb25zID0gdGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmN1c3RvbWVyRmFybUdyaWRDb25maWdyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbjtcclxuICAgICAgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5zaG93TW9kYWwgPSB0cnVlO1xyXG4gICAgICBhd2FpdCB0aGlzLnBlcm1pc3Npb25NZXRob2QoKTtcclxuICAgICAgLy90aGlzLmdyaWRDb25maWd1cmF0aW9uLmFjdGlvbnMgPSB7ICdWaWV3JzogZmFsc2UsICdFZGl0JzogdHJ1ZSwgJ0RlbGV0ZSc6IHRydWUsICdHZW5lcmF0ZSBQREYnOiBmYWxzZSB9OyAgXHJcbiAgICAgIHRoaXMuR2V0TGlzdERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwZXJtaXNzaW9uTWV0aG9kKCkge1xyXG4gICAgdGhpcy51c2VyRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzZXNzaW9uVXNlclwiKSk7XHJcbiAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25Sb2xlTWVudXNTZXJ2aWNlLkdldEFzc2lnbmVkUm9sZUF1dGgodGhpcy51c2VyRGF0YS5zZXNzaW9uVXNlci51c2VyRW1haWwsIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbnMpO1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uID0gZ2V0UmVzcG9uc2UuYXBpRGF0YVswXTtcclxuICAgIHRoaXMuSGlkZUFkZEJ1dHRvbiA9IHRoaXMucGVybWlzc2lvbi5jYW5BZGQgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBEZWNsYXJlRm9ybSgpIHtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICByZWNvcmRJZDogW251bGxdLFxyXG4gICAgICBjdXN0b21lcklkOiBbbnVsbF0sXHJcbiAgICAgIGN1c3RvbWVyTmFtZTogW251bGxdLFxyXG4gICAgICBkZWZhdWx0V2FyZWhvdXNlOiBbbnVsbF0sXHJcbiAgICAgIHBlcnNvbkluQ2hhcmdlOiBbbnVsbF0sXHJcbiAgICAgIGRpc3BsYXlOYW1lOiBbbnVsbF0sXHJcbiAgICAgIHByaW1hcnlWZXRJZDogW251bGxdLFxyXG4gICAgICBQSUNUYXR0b286IFtudWxsXSxcclxuICAgICAgaXNBY3RpdmU6IFt0cnVlXVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlcygpO1xyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuY3VzdG9tZXJOYW1lKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5wYXR0ZXJuKCdeW2EtekEtWiBdKiQnKSk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5taW5MZW5ndGgoMykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5kZWZhdWx0V2FyZWhvdXNlKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2RlZmF1bHRXYXJlaG91c2UnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5wZXJzb25JbkNoYXJnZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdwZXJzb25JbkNoYXJnZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnByaW1hcnlWZXRJZCkge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdwcmltYXJ5VmV0SWQnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9zdGFuZGFyZCBtZXRob2RzLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbiAgICBvbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBkaXNwbGF5TmFtZTogdmFsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIGVkaXQgZGF0YSBsaXN0IGl0ZW0gdXNpbmcgZGF0YSBpdGVtIEdVSURcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjdXN0b21lcklkXHJcbiAgICpcclxuICAgKiAgZ2V0cyBjdXN0b21lciBHVUlEIGZyb20gZ3JpZERhdGEgYW5kIHBhc3NlcyBpdCB0byB0aGlzIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgYXN5bmMgRWRpdERhdGEoY3VzdG9tZXJJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5HZXREYXRhQnlJZChjdXN0b21lcklkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncmVjb3JkSWQnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnJlY29yZElkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snY3VzdG9tZXJJZCddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuY3VzdG9tZXJJZCk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2N1c3RvbWVyTmFtZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuY3VzdG9tZXJOYW1lKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snZGVmYXVsdFdhcmVob3VzZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuZGVmYXVsdFdhcmVob3VzZSk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ3BlcnNvbkluQ2hhcmdlJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5wZXJzb25JbkNoYXJnZSk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2Rpc3BsYXlOYW1lJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5kaXNwbGF5TmFtZSk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ3ByaW1hcnlWZXRJZCddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEucHJpbWFyeVZldElkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snUElDVGF0dG9vJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5waWNUYXR0b28pO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydpc0FjdGl2ZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuaXNBY3RpdmUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiB0aGlzIG1ldGhvZCBjb252ZXJ0cyBhbGwgZm9ybSBpbnB1dHMgaW50byBtb2RlbCBjbGFzc1xyXG4gICAqXHJcbiAgICogQHJldHVybnMgbW9kZWwgd2l0aCBuZXcgZm9ybSB2YWx1ZXNcclxuICAgKi9cclxuICBDb252ZXJ0Rm9ybVRvTW9kZWwoKSB7XHJcbiAgICBjb25zdCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwucmVjb3JkSWQgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUucmVjb3JkSWQ7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5jdXN0b21lck5hbWUgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUuY3VzdG9tZXJOYW1lO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuZGVmYXVsdFdhcmVob3VzZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5kZWZhdWx0V2FyZWhvdXNlO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwucGVyc29uSW5DaGFyZ2UgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUucGVyc29uSW5DaGFyZ2U7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5kaXNwbGF5TmFtZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5kaXNwbGF5TmFtZTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLnByaW1hcnlWZXRJZCA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5wcmltYXJ5VmV0SWQ7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5QSUNUYXR0b28gPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUuUElDVGF0dG9vO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuY3VzdG9tZXJJZCA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5jdXN0b21lcklkO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuZm9ybUNvZGUgPSB0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uZm9ybUNvZGU7XHJcblxyXG4gICAgcmV0dXJuIGN1c3RvbWVyRmFybU1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogY2xlYXIgZm9ybSBkYXRhXHJcbiAgICovXHJcbiAgQ2xlYXJGb3JtKCkge1xyXG4gICAgdGhpcy5EZWNsYXJlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdERhdGFUb1BhcmVudCgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1EYXRhLmVtaXQoY3VzdG9tZXJGYXJtTW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBJbnNlcnQgY3VzdG9tZXIgZGF0YSBpbnRvIGRhdGFiYXNlXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIEluc2VydERhdGEoKSB7XHJcbiAgICBsZXQgY3VzdG9tZXJGYXJtTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtTW9kZWwoKTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsID0gdGhpcy5Db252ZXJ0Rm9ybVRvTW9kZWwoKTtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkluc2VydERhdGEoY3VzdG9tZXJGYXJtTW9kZWwpO1xyXG4gICAgdGhpcy51c2VyTWVzc2FnZXMgPSBnZXRSZXNwb25zZS5tZXNzYWdlLnVzZXJNZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi51c2VyTWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd1N1Y2Nlc3ModGhpcy51c2VyTWVzc2FnZXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIHVwZGF0ZSBjdXN0b21lciBkYXRhIGludG8gZGF0YWJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgVXBkYXRlRGF0YSgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuVXBkYXRlRGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uXHJcbiAgKlxyXG4gICogRGVsZXRlIGN1c3RvbWVyIGRhdGEgaW50byBkYXRhYmFzZVxyXG4gICovXHJcbiAgcHVibGljIGFzeW5jIERlbGV0ZURhdGEodmFsdWUpIHtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkRlbGV0ZURhdGEodmFsdWUpO1xyXG4gICAgdGhpcy51c2VyTWVzc2FnZXMgPSBnZXRSZXNwb25zZS5tZXNzYWdlLnVzZXJNZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi51c2VyTWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd1N1Y2Nlc3ModGhpcy51c2VyTWVzc2FnZXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogXHJcbiAgICAgKiBHcmlkIGV2ZW50cyBjYWxsc1xyXG4gICAgICovXHJcbiAgaGFuZGxlR3JpZEV2ZW50cyhncmlkRXZlbnRzOiBHcmlkRXZlbnRzTW9kZWwpIHtcclxuICAgIGdyaWRFdmVudHMuZWRpdFJlY29yZC5zdWJzY3JpYmUoKHJlY29yZElkKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZUJ1dHRvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1ZpZXdDYWxsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuRWRpdERhdGEocmVjb3JkSWQpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZW5hYmxlKCk7XHJcbiAgICB9KTtcclxuICAgIGdyaWRFdmVudHMuZGVsZXRlUmVjb3JkLnN1YnNjcmliZSgocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5EZWxldGVEYXRhKHJlY29yZElkKTtcclxuICAgIH0pO1xyXG4gICAgZ3JpZEV2ZW50cy52aWV3UmVjb3JkLnN1YnNjcmliZShhc3luYyAocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5FZGl0RGF0YShyZWNvcmRJZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5kaXNhYmxlKCk7XHJcbiAgICAgIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgKiBnZXQgZGF0YSBmb3IgQ3VzdG9tZXIgZ3JpZCBsaXN0XHJcbiAgICAqL1xyXG4gIHB1YmxpYyBhc3luYyBHZXRMaXN0RGF0YSgpIHtcclxuICAgIGNvbnN0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5HZXRMaXN0RGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICAgIGdldFJlc3BvbnNlLmFwaURhdGEuZm9yRWFjaChyZWNvcmQgPT4ge1xyXG4gICAgICAgIHJlY29yZC5jcmVhdGVkT25VVEMgPSBuZXcgRGF0ZShyZWNvcmQuY3JlYXRlZE9uVVRDKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZ3JpZERhdGEgPSBnZXRSZXNwb25zZS5hcGlEYXRhO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5lcnJvckxvZ1NlcnZpY2Uuc2F2ZUVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd0FsbEVycm9ycyhlcnJvci5lcnJvci5tZXNzYWdlLnVzZXJNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTAgdy1mdWxsXCI+XHJcbiAgICA8IS0tIGZvcm0gY29kZSBzdGFydHMgaGVyZSAtLT5cclxuICAgIDwhLS1jb250ZW50LS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic206dy1mdWxsIG92ZXJmbG93LWhpZGRlblwiICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93TW9kYWxcIj5cclxuXHJcbiAgICAgICAgPCEtLWZvcm0gYm9keS0tPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW5cIiBbZm9ybUdyb3VwXT1cImN1c3RvbWVyRmFybUZvcm1cIj5cclxuICAgICAgICAgICAgPCEtLSBDdXN0b21lciBGYXJtIHNlY3Rpb24gc3RhcnQgIC0tPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleCBweC04IHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbCBtci00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmN1c3RvbWVyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DbGllbnQgTmFtZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiY3VzdG9tZXJOYW1lXCIgcGxhY2Vob2xkZXI9XCJDbGllbnQgTmFtZVwiIHBhdHRlcm49XCJeW2EtekEtWiBdKiRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aD1cIjNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIidjdXN0b21lck5hbWUnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmN1c3RvbWVyTmFtZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTmFtZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmhhc0Vycm9yKCdwYXR0ZXJuJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2UgZW50ZXIgdmFsaWQgQ2xpZW50IG5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgbmFtZSBtdXN0IGJlIG9mIGF0bGVhc3QgMyBjaGFyYWN0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMuZGVmYXVsdFdhcmVob3VzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EZWZhdWx0IFdhcmVob3VzZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiZGVmYXVsdFdhcmVob3VzZVwiIHBsYWNlaG9sZGVyPVwiRGVmYXVsdCBXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2RlZmF1bHRXYXJlaG91c2UnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdkZWZhdWx0V2FyZWhvdXNlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5kZWZhdWx0V2FyZWhvdXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCBXYXJlaG91c2UgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleCBweC04IHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbCBtci00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLnBlcnNvbkluQ2hhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlBlcnNvbiBJbiBDaGFyZ2U8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cInBlcnNvbkluQ2hhcmdlXCIgcGxhY2Vob2xkZXI9XCJQZXJzb24gSW4gQ2hhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidwZXJzb25JbkNoYXJnZSdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3BlcnNvbkluQ2hhcmdlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5wZXJzb25JbkNoYXJnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbiBJbiBDaGFyZ2UgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5kaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EaXNwbGF5IE5hbWU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cImRpc3BsYXlOYW1lXCIgcGxhY2Vob2xkZXI9XCJEaXNwbGF5IE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2Rpc3BsYXlOYW1lJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpmbGV4IHB4LTggcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsIG1yLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMucHJpbWFyeVZldElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlByaW1hcnkgVmV0PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJwcmltYXJ5VmV0SWRcIiBwbGFjZWhvbGRlcj1cIlByaW1hcnkgVmV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidwcmltYXJ5VmV0SWQnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdwcmltYXJ5VmV0SWQnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnByaW1hcnlWZXRJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1hcnkgVmV0IGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMuUElDVGF0dG9vXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlBJQy9UYXR0b28gKGlmIGFwcGxpY2FibGUpPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJQSUNUYXR0b29cIiBwbGFjZWhvbGRlcj1cIlBJQy9UYXR0b29cIiBbZm9ybUNvbnRyb2xOYW1lXT1cIidQSUNUYXR0b28nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBDdXN0b21lciBGYXJtIHNlY3Rpb24gRW5kICAtLT5cclxuXHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIGZvcm0gY29kZSBlbmRzIGhlcmUgLS0+XHJcblxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uc2hvd0dyaWRcIj5cclxuICAgIDxsaWIta2VuZG8tZ3JpZC12aWV3IFtjb25maWd1cmF0aW9uXT1cImdyaWRDb25maWd1cmF0aW9uXCIgKGV2ZW50cyk9XCJoYW5kbGVHcmlkRXZlbnRzKCRldmVudClcIj48L2xpYi1rZW5kby1ncmlkLXZpZXc+XHJcbiAgPC9kaXY+XHJcbiJdfQ==
@@ -29,6 +29,7 @@ export class CustomerFarmConfigrationModel {
29
29
  this.allowedCustomerFarmSection = false;
30
30
  this.requiredCustomerFarmFields = new RequiredCustomerFarmFields();
31
31
  this.allowedCustomerFarmFields = new AllowedCustomerFarmFields();
32
+ this.customerFarmGridConfigration = new CustomerFarmGridConfigration();
32
33
  }
33
34
  }
34
35
  export class RequiredCustomerFarmFields {
@@ -54,4 +55,10 @@ export class AllowedCustomerFarmFields {
54
55
  this.profileImageURL = false;
55
56
  }
56
57
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2N1c3RvbWVyLWZhcm0vc3JjL2xpYi9kZXBlbmRlbmNpZXMvY3VzdG9tZXItZmFybS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBQ0ksYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLDZCQUE2QjtJQUExQztRQUNJLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsaUJBQVksR0FBc0IsSUFBSSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGdDQUEyQixHQUFZLEtBQUssQ0FBQztRQUM3QywrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFDNUMsK0JBQTBCLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUMxRiw4QkFBeUIsR0FBOEIsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO0lBQzNGLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFBdkM7UUFDSSxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBQ3JDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyx5QkFBeUI7SUFBdEM7UUFDSSxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFDakMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFDN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixvQkFBZSxHQUFZLEtBQUssQ0FBQztJQUNyQyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ3VzdG9tZXJGYXJtTW9kZWwge1xyXG4gICAgZm9ybUNvZGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICBmb3JtSWQ6IHN0cmluZyA9ICcnO1xyXG4gICAgcmVjb3JkSWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgICBjdXN0b21lcklkOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgY3VzdG9tZXJOYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIGRlZmF1bHRXYXJlaG91c2U6IHN0cmluZyA9ICcnO1xyXG4gICAgcGVyc29uSW5DaGFyZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgcHJpbWFyeVZldElkOiBzdHJpbmcgPSAnJztcclxuICAgIFBJQ1RhdHRvbzogc3RyaW5nID0gJyc7XHJcbiAgICBpc0FjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpc0RlbGV0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsIHtcclxuICAgIGZvcm1Db2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgY3VzdG9tZXJJZDogc3RyaW5nID0gbnVsbDtcclxuICAgIGRlZmF1bHRWaWV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBzaG93TW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNob3dHcmlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpc1NlYXJjaGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNob3dDbGllbnREYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjdXN0b21lckRhdGE6IEN1c3RvbWVyRmFybU1vZGVsID0gbnVsbDtcclxuICAgIHVzZXJNZXNzYWdlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcmVxdWlyZWRDdXN0b21lckZhcm1TZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBhbGxvd2VkQ3VzdG9tZXJGYXJtU2VjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHM6IFJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzID0gbmV3IFJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzKCk7XHJcbiAgICBhbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzOiBBbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzID0gbmV3IEFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMoKTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzIHtcclxuICAgIGN1c3RvbWVyTmFtZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBjdXN0b21lcklkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGRlZmF1bHRXYXJlaG91c2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcGVyc29uSW5DaGFyZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHJpbWFyeVZldElkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGRpc3BsYXlOYW1lOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIFBJQ1RhdHRvbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJvZmlsZUltYWdlVVJMOiBib29sZWFuID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzIHtcclxuICAgIGN1c3RvbWVyTmFtZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBkZWZhdWx0V2FyZWhvdXNlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHBlcnNvbkluQ2hhcmdlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHByaW1hcnlWZXRJZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBQSUNUYXR0b286IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZGlzcGxheU5hbWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHJvZmlsZUltYWdlVVJMOiBib29sZWFuID0gZmFsc2U7XHJcbn1cclxuXHJcbiJdfQ==
58
+ export class CustomerFarmGridConfigration {
59
+ constructor() {
60
+ this.formCodeForJsonHeader = null;
61
+ this.formCodeForGridPermission = null;
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2N1c3RvbWVyLWZhcm0vc3JjL2xpYi9kZXBlbmRlbmNpZXMvY3VzdG9tZXItZmFybS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBQ0ksYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLDZCQUE2QjtJQUExQztRQUNJLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsaUJBQVksR0FBc0IsSUFBSSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGdDQUEyQixHQUFZLEtBQUssQ0FBQztRQUM3QywrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFDNUMsK0JBQTBCLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUMxRiw4QkFBeUIsR0FBOEIsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQ3ZGLGlDQUE0QixHQUFpQyxJQUFJLDRCQUE0QixFQUFFLENBQUM7SUFDcEcsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUNJLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBQ2pDLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFDckMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQUF0QztRQUNJLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBQ3JDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyw0QkFBNEI7SUFBekM7UUFDSSwwQkFBcUIsR0FBVyxJQUFJLENBQUM7UUFDckMsOEJBQXlCLEdBQVcsSUFBSSxDQUFDO0lBQzdDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDdXN0b21lckZhcm1Nb2RlbCB7XHJcbiAgICBmb3JtQ29kZTogc3RyaW5nID0gbnVsbDtcclxuICAgIGZvcm1JZDogc3RyaW5nID0gJyc7XHJcbiAgICByZWNvcmRJZDogc3RyaW5nID0gbnVsbDtcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgICBjdXN0b21lck5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgZGVmYXVsdFdhcmVob3VzZTogc3RyaW5nID0gJyc7XHJcbiAgICBwZXJzb25JbkNoYXJnZTogc3RyaW5nID0gJyc7XHJcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBwcmltYXJ5VmV0SWQ6IHN0cmluZyA9ICcnO1xyXG4gICAgUElDVGF0dG9vOiBzdHJpbmcgPSAnJztcclxuICAgIGlzQWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGlzRGVsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJGYXJtQ29uZmlncmF0aW9uTW9kZWwge1xyXG4gICAgZm9ybUNvZGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICBjdXN0b21lcklkOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgZGVmYXVsdFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHNob3dNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc2hvd0dyaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlzU2VhcmNoYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc2hvd0NsaWVudERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGN1c3RvbWVyRGF0YTogQ3VzdG9tZXJGYXJtTW9kZWwgPSBudWxsO1xyXG4gICAgdXNlck1lc3NhZ2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICByZXF1aXJlZEN1c3RvbWVyRmFybVNlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGFsbG93ZWRDdXN0b21lckZhcm1TZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICByZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkczogUmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMgPSBuZXcgUmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMoKTtcclxuICAgIGFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHM6IEFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMgPSBuZXcgQWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcygpO1xyXG4gICAgY3VzdG9tZXJGYXJtR3JpZENvbmZpZ3JhdGlvbjogQ3VzdG9tZXJGYXJtR3JpZENvbmZpZ3JhdGlvbiA9IG5ldyBDdXN0b21lckZhcm1HcmlkQ29uZmlncmF0aW9uKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcyB7XHJcbiAgICBjdXN0b21lck5hbWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgY3VzdG9tZXJJZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBkZWZhdWx0V2FyZWhvdXNlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHBlcnNvbkluQ2hhcmdlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHByaW1hcnlWZXRJZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBkaXNwbGF5TmFtZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBQSUNUYXR0b286IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByb2ZpbGVJbWFnZVVSTDogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcyB7XHJcbiAgICBjdXN0b21lck5hbWU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZGVmYXVsdFdhcmVob3VzZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwZXJzb25JbkNoYXJnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwcmltYXJ5VmV0SWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgUElDVGF0dG9vOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGRpc3BsYXlOYW1lOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHByb2ZpbGVJbWFnZVVSTDogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJGYXJtR3JpZENvbmZpZ3JhdGlvbiB7XHJcbiAgICBmb3JtQ29kZUZvckpzb25IZWFkZXI6IHN0cmluZyA9IG51bGw7XHJcbiAgICBmb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9uOiBzdHJpbmcgPSBudWxsO1xyXG59XHJcblxyXG4iXX0=
@@ -1,9 +1,9 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Injectable, EventEmitter, Component, Output, Input, NgModule } from '@angular/core';
4
- import * as i3 from '@qubesense/base-services';
4
+ import * as i2 from '@qubesense/base-services';
5
5
  import { KendoGridviewConfigurationModel, KendoGridViewModule } from '@qubesense/base-services';
6
- import * as i2 from '@angular/forms';
6
+ import * as i3 from '@angular/forms';
7
7
  import { Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
8
8
  import * as i4 from '@angular/material/form-field';
9
9
  import { MatFormFieldModule } from '@angular/material/form-field';
@@ -173,14 +173,14 @@ class CustomerFarmService {
173
173
  });
174
174
  }
175
175
  }
176
- CustomerFarmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmService, deps: [{ token: i3.DataAccessService }], target: i0.ɵɵFactoryTarget.Injectable });
176
+ CustomerFarmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmService, deps: [{ token: i2.DataAccessService }], target: i0.ɵɵFactoryTarget.Injectable });
177
177
  CustomerFarmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmService, providedIn: 'root' });
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmService, decorators: [{
179
179
  type: Injectable,
180
180
  args: [{
181
181
  providedIn: 'root'
182
182
  }]
183
- }], ctorParameters: function () { return [{ type: i3.DataAccessService }]; } });
183
+ }], ctorParameters: function () { return [{ type: i2.DataAccessService }]; } });
184
184
 
185
185
  class CustomerFarmModel {
186
186
  constructor() {
@@ -213,6 +213,7 @@ class CustomerFarmConfigrationModel {
213
213
  this.allowedCustomerFarmSection = false;
214
214
  this.requiredCustomerFarmFields = new RequiredCustomerFarmFields();
215
215
  this.allowedCustomerFarmFields = new AllowedCustomerFarmFields();
216
+ this.customerFarmGridConfigration = new CustomerFarmGridConfigration();
216
217
  }
217
218
  }
218
219
  class RequiredCustomerFarmFields {
@@ -237,11 +238,19 @@ class AllowedCustomerFarmFields {
237
238
  this.displayName = true;
238
239
  this.profileImageURL = false;
239
240
  }
241
+ }
242
+ class CustomerFarmGridConfigration {
243
+ constructor() {
244
+ this.formCodeForJsonHeader = null;
245
+ this.formCodeForGridPermission = null;
246
+ }
240
247
  }
241
248
 
242
249
  class CustomerFarmComponent {
243
- constructor(customerFarmService, formBuilder, errorLogService, toastr) {
250
+ constructor(customerFarmService, jsonForms, applicationRoleMenusService, formBuilder, errorLogService, toastr) {
244
251
  this.customerFarmService = customerFarmService;
252
+ this.jsonForms = jsonForms;
253
+ this.applicationRoleMenusService = applicationRoleMenusService;
245
254
  this.formBuilder = formBuilder;
246
255
  this.errorLogService = errorLogService;
247
256
  this.toastr = toastr;
@@ -253,15 +262,31 @@ class CustomerFarmComponent {
253
262
  this.hideButtons = false;
254
263
  this.isViewCall = false;
255
264
  this.speciesList = [];
265
+ this.permission = [];
266
+ this.userData = [];
267
+ this.gridConfiguration.formCodeForJsonHeader = 'CUFA';
268
+ this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;
256
269
  }
257
270
  ngOnInit() {
258
- this.DeclareForm();
259
- if (this.customerFarmConfiguration.showGrid) {
260
- this.gridConfiguration.FormCode = 'CUFA';
261
- this.gridConfiguration.showModal = true;
262
- this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false };
263
- this.GetListData();
264
- }
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ this.DeclareForm();
273
+ if (this.customerFarmConfiguration.showGrid) {
274
+ this.gridConfiguration.formCodeForJsonHeader = 'CUFA';
275
+ this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;
276
+ this.gridConfiguration.showModal = true;
277
+ yield this.permissionMethod();
278
+ //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false };
279
+ this.GetListData();
280
+ }
281
+ });
282
+ }
283
+ permissionMethod() {
284
+ return __awaiter(this, void 0, void 0, function* () {
285
+ this.userData = JSON.parse(localStorage.getItem("sessionUser"));
286
+ const getResponse = yield this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);
287
+ this.permission = getResponse.apiData[0];
288
+ this.HideAddButton = this.permission.canAdd == false ? true : false;
289
+ });
265
290
  }
266
291
  DeclareForm() {
267
292
  this.customerFarmForm = this.formBuilder.group({
@@ -275,6 +300,7 @@ class CustomerFarmComponent {
275
300
  PICTattoo: [null],
276
301
  isActive: [true]
277
302
  });
303
+ this.onChanges();
278
304
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {
279
305
  this.customerFarmForm.get('customerName').addValidators(Validators.required);
280
306
  this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));
@@ -291,6 +317,13 @@ class CustomerFarmComponent {
291
317
  }
292
318
  }
293
319
  ///////////////////////////////////standard methods/////////////////////////////////////////////////////
320
+ onChanges() {
321
+ this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {
322
+ this.customerFarmForm.patchValue({
323
+ displayName: val
324
+ });
325
+ });
326
+ }
294
327
  /**
295
328
  * @description
296
329
  *
@@ -421,6 +454,9 @@ class CustomerFarmComponent {
421
454
  const customerFarmModel = new CustomerFarmModel();
422
455
  try {
423
456
  const getResponse = yield this.customerFarmService.GetListData(customerFarmModel);
457
+ getResponse.apiData.forEach(record => {
458
+ record.createdOnUTC = new Date(record.createdOnUTC);
459
+ });
424
460
  this.gridData = getResponse.apiData;
425
461
  }
426
462
  catch (error) {
@@ -430,12 +466,12 @@ class CustomerFarmComponent {
430
466
  });
431
467
  }
432
468
  }
433
- CustomerFarmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, deps: [{ token: CustomerFarmService }, { token: i2.FormBuilder }, { token: i3.ErrorLogService }, { token: i3.ToastrNotificationService }], target: i0.ɵɵFactoryTarget.Component });
434
- 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.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 <input matInput id=\"defaultWarehouse\" placeholder=\"Default Warehouse\"\r\n [formControlName]=\"'defaultWarehouse'\" (change)=\"emitDataToParent()\">\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: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
469
+ 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 });
470
+ 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.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 <input matInput id=\"defaultWarehouse\" placeholder=\"Default Warehouse\"\r\n [formControlName]=\"'defaultWarehouse'\" (change)=\"emitDataToParent()\">\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
435
471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, decorators: [{
436
472
  type: Component,
437
473
  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.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 <input matInput id=\"defaultWarehouse\" placeholder=\"Default Warehouse\"\r\n [formControlName]=\"'defaultWarehouse'\" (change)=\"emitDataToParent()\">\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" }]
438
- }], ctorParameters: function () { return [{ type: CustomerFarmService }, { type: i2.FormBuilder }, { type: i3.ErrorLogService }, { type: i3.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
474
+ }], ctorParameters: function () { return [{ type: CustomerFarmService }, { type: i2.JsonFormsService }, { type: i2.ApplicationRoleMenusService }, { type: i3.FormBuilder }, { type: i2.ErrorLogService }, { type: i2.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
439
475
  type: Output
440
476
  }], customerFarmConfiguration: [{
441
477
  type: Input
@@ -535,5 +571,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
535
571
  * Generated bundle index. Do not edit.
536
572
  */
537
573
 
538
- export { AllowedCustomerFarmFields, CustomerFarmApiUrls, CustomerFarmComponent, CustomerFarmConfigrationModel, CustomerFarmModel, CustomerFarmModule, CustomerFarmService, RequiredCustomerFarmFields };
574
+ export { AllowedCustomerFarmFields, CustomerFarmApiUrls, CustomerFarmComponent, CustomerFarmConfigrationModel, CustomerFarmGridConfigration, CustomerFarmModel, CustomerFarmModule, CustomerFarmService, RequiredCustomerFarmFields };
539
575
  //# sourceMappingURL=qubesense-customer-farm.mjs.map