@qubesense/customer-farm 0.2.3 → 0.2.4

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.
@@ -242,13 +242,13 @@ export class CustomerFarmComponent {
242
242
  }
243
243
  }
244
244
  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 });
245
- CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
245
+ CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
246
246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, decorators: [{
247
247
  type: Component,
248
- args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
248
+ args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
249
249
  }], ctorParameters: function () { return [{ type: i1.CustomerFarmService }, { type: i2.JsonFormsService }, { type: i2.ApplicationRoleMenusService }, { type: i3.FormBuilder }, { type: i2.ErrorLogService }, { type: i2.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
250
250
  type: Output
251
251
  }], customerFarmConfiguration: [{
252
252
  type: Input
253
253
  }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEcsT0FBTyxFQUFtRiwrQkFBK0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQVF2TCxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUFvQixtQkFBd0MsRUFDbEQsU0FBMkIsRUFDM0IsMkJBQXdELEVBQ3hELFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLE1BQWlDO1FBTHZCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbEQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUF0QmpDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsOEJBQXlCLEdBQWtDLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUUvRyxpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzVCLHNCQUFpQixHQUFv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QUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFHRDs7O1FBR0k7SUFDRyxLQUFLLENBQUMsV0FBVztRQUN0QixNQUFNLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNsRCxJQUFJO1lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1NBQ3JDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7O2tIQTdQVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixnTENYbEMsbzRPQW1IQTsyRkR4R2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjttUkFLbkIsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNTLHlCQUF5QjtzQkFBeEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3VzdG9tZXJGYXJtQ29uZmlncmF0aW9uTW9kZWwsIEN1c3RvbWVyRmFybU1vZGVsIH0gZnJvbSAnLi9kZXBlbmRlbmNpZXMvY3VzdG9tZXItZmFybS1tb2RlbCc7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uUm9sZU1lbnVzU2VydmljZSwgRXJyb3JMb2dTZXJ2aWNlLCBHcmlkRXZlbnRzTW9kZWwsIEpzb25Gb3Jtc1NlcnZpY2UsIEtlbmRvR3JpZHZpZXdDb25maWd1cmF0aW9uTW9kZWwsIFRvYXN0ck5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcXViZXNlbnNlL2Jhc2Utc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDdXN0b21lckZhcm1TZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b21lci1mYXJtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9tZXItZmFybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLWZhcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbWVyLWZhcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJGYXJtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgY3VzdG9tZXJGYXJtRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uOiBDdXN0b21lckZhcm1Db25maWdyYXRpb25Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Db25maWdyYXRpb25Nb2RlbCgpO1xyXG4gIGN1c3RvbWVyRmFybUZvcm06IEZvcm1Hcm91cDtcclxuICB1c2VyTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGdyaWRDb25maWd1cmF0aW9uOiBLZW5kb0dyaWR2aWV3Q29uZmlndXJhdGlvbk1vZGVsID0gbmV3IEtlbmRvR3JpZHZpZXdDb25maWd1cmF0aW9uTW9kZWwoKTtcclxuICBoaWRlQnV0dG9ucyA9IGZhbHNlO1xyXG4gIGlzVmlld0NhbGwgPSBmYWxzZTtcclxuICBzcGVjaWVzTGlzdDogYW55W10gPSBbXTtcclxuICB3YXJlaG91c2VMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkQ3VzdG9tZXJzOiBbXTtcclxuXHJcbiAgcGVybWlzc2lvbjogYW55ID0gW107XHJcbiAgdXNlckRhdGE6IGFueSA9IFtdO1xyXG4gIEhpZGVBZGRCdXR0b246IGJvb2xlYW47XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN1c3RvbWVyRmFybVNlcnZpY2U6IEN1c3RvbWVyRmFybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGpzb25Gb3JtczogSnNvbkZvcm1zU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25Sb2xlTWVudXNTZXJ2aWNlOiBBcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgZXJyb3JMb2dTZXJ2aWNlOiBFcnJvckxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5mb3JtQ29kZUZvckpzb25IZWFkZXIgPSAnQ1VGQSc7XHJcbiAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb25zID0gdGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmN1c3RvbWVyRmFybUdyaWRDb25maWdyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5EZWNsYXJlRm9ybSgpO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93R3JpZCkge1xyXG4gICAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9ySnNvbkhlYWRlciA9ICdDVUZBJztcclxuICAgICAgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5mb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9ucyA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5jdXN0b21lckZhcm1HcmlkQ29uZmlncmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb247XHJcbiAgICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgICAgYXdhaXQgdGhpcy5wZXJtaXNzaW9uTWV0aG9kKCk7XHJcbiAgICAgIC8vdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5hY3Rpb25zID0geyAnVmlldyc6IGZhbHNlLCAnRWRpdCc6IHRydWUsICdEZWxldGUnOiB0cnVlLCAnR2VuZXJhdGUgUERGJzogZmFsc2UgfTsgIFxyXG4gICAgICB0aGlzLkdldExpc3REYXRhKCk7XHJcbiAgICAgIC8vdGhpcy5nZXRXYXJlaG91c2VMaXN0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdhcmVob3VzZUxpc3QoKTtcclxuXHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UudXBkYXRlQ3VzdG9tZXJOYW1lKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBlcm1pc3Npb25NZXRob2QoKSB7XHJcbiAgICB0aGlzLnVzZXJEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInNlc3Npb25Vc2VyXCIpKTtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2UuR2V0QXNzaWduZWRSb2xlQXV0aCh0aGlzLnVzZXJEYXRhLnNlc3Npb25Vc2VyLnVzZXJFbWFpbCwgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5mb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9ucyk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSBnZXRSZXNwb25zZS5hcGlEYXRhWzBdO1xyXG4gICAgdGhpcy5IaWRlQWRkQnV0dG9uID0gdGhpcy5wZXJtaXNzaW9uLmNhbkFkZCA9PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIERlY2xhcmVGb3JtKCkge1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHJlY29yZElkOiBbbnVsbF0sXHJcbiAgICAgIGN1c3RvbWVySWQ6IFtudWxsXSxcclxuICAgICAgY2xpZW50TnVtYmVyOiBbbnVsbF0sXHJcbiAgICAgIGN1c3RvbWVyTmFtZTogW251bGxdLFxyXG4gICAgICBkZWZhdWx0V2FyZWhvdXNlOiBbbnVsbF0sXHJcbiAgICAgIHBlcnNvbkluQ2hhcmdlOiBbbnVsbF0sXHJcbiAgICAgIGRpc3BsYXlOYW1lOiBbbnVsbF0sXHJcbiAgICAgIHByaW1hcnlWZXRJZDogW251bGxdLFxyXG4gICAgICBQSUNUYXR0b286IFtudWxsXSxcclxuICAgICAgaXNBY3RpdmU6IFt0cnVlXVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlcygpO1xyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuY3VzdG9tZXJOYW1lKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5wYXR0ZXJuKCdeW2EtekEtWiBdKiQnKSk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5taW5MZW5ndGgoMykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jbGllbnROdW1iZXIpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aIF0qJCcpKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnZGVmYXVsdFdhcmVob3VzZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnBlcnNvbkluQ2hhcmdlKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3BlcnNvbkluQ2hhcmdlJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucHJpbWFyeVZldElkKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3ByaW1hcnlWZXRJZCcpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3N0YW5kYXJkIG1ldGhvZHMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuICBvbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICBkaXNwbGF5TmFtZTogdmFsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIGVkaXQgZGF0YSBsaXN0IGl0ZW0gdXNpbmcgZGF0YSBpdGVtIEdVSURcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjdXN0b21lcklkXHJcbiAgICpcclxuICAgKiAgZ2V0cyBjdXN0b21lciBHVUlEIGZyb20gZ3JpZERhdGEgYW5kIHBhc3NlcyBpdCB0byB0aGlzIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgYXN5bmMgRWRpdERhdGEoY3VzdG9tZXJJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5HZXREYXRhQnlJZChjdXN0b21lcklkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncmVjb3JkSWQnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnJlY29yZElkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snY3VzdG9tZXJJZCddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuY3VzdG9tZXJJZCk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2NsaWVudE51bWJlciddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuY2xpZW50TnVtYmVyKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snY3VzdG9tZXJOYW1lJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5jdXN0b21lck5hbWUpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydkZWZhdWx0V2FyZWhvdXNlJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5kZWZhdWx0V2FyZWhvdXNlKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncGVyc29uSW5DaGFyZ2UnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnBlcnNvbkluQ2hhcmdlKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snZGlzcGxheU5hbWUnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmRpc3BsYXlOYW1lKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncHJpbWFyeVZldElkJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5wcmltYXJ5VmV0SWQpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydQSUNUYXR0b28nXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnBpY1RhdHRvbyk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2lzQWN0aXZlJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5pc0FjdGl2ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIHRoaXMgbWV0aG9kIGNvbnZlcnRzIGFsbCBmb3JtIGlucHV0cyBpbnRvIG1vZGVsIGNsYXNzXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBtb2RlbCB3aXRoIG5ldyBmb3JtIHZhbHVlc1xyXG4gICAqL1xyXG4gIENvbnZlcnRGb3JtVG9Nb2RlbCgpIHtcclxuICAgIGNvbnN0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5yZWNvcmRJZCA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5yZWNvcmRJZDtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLmNsaWVudE51bWJlciA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5jbGllbnROdW1iZXI7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5jdXN0b21lck5hbWUgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUuY3VzdG9tZXJOYW1lO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuZGVmYXVsdFdhcmVob3VzZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5kZWZhdWx0V2FyZWhvdXNlO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwucGVyc29uSW5DaGFyZ2UgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUucGVyc29uSW5DaGFyZ2U7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5kaXNwbGF5TmFtZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5kaXNwbGF5TmFtZTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLnByaW1hcnlWZXRJZCA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5wcmltYXJ5VmV0SWQ7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5QSUNUYXR0b28gPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUuUElDVGF0dG9vO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuY3VzdG9tZXJJZCA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5jdXN0b21lcklkO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuZm9ybUNvZGUgPSB0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uZm9ybUNvZGU7XHJcblxyXG4gICAgcmV0dXJuIGN1c3RvbWVyRmFybU1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogY2xlYXIgZm9ybSBkYXRhXHJcbiAgICovXHJcbiAgQ2xlYXJGb3JtKCkge1xyXG4gICAgdGhpcy5EZWNsYXJlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdERhdGFUb1BhcmVudCgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1EYXRhLmVtaXQoY3VzdG9tZXJGYXJtTW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBJbnNlcnQgY3VzdG9tZXIgZGF0YSBpbnRvIGRhdGFiYXNlXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIEluc2VydERhdGEoKSB7XHJcbiAgICBsZXQgY3VzdG9tZXJGYXJtTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtTW9kZWwoKTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsID0gdGhpcy5Db252ZXJ0Rm9ybVRvTW9kZWwoKTtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkluc2VydERhdGEoY3VzdG9tZXJGYXJtTW9kZWwpO1xyXG4gICAgdGhpcy51c2VyTWVzc2FnZXMgPSBnZXRSZXNwb25zZS5tZXNzYWdlLnVzZXJNZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi51c2VyTWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd1N1Y2Nlc3ModGhpcy51c2VyTWVzc2FnZXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIHVwZGF0ZSBjdXN0b21lciBkYXRhIGludG8gZGF0YWJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgVXBkYXRlRGF0YSgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuVXBkYXRlRGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uXHJcbiAgKlxyXG4gICogRGVsZXRlIGN1c3RvbWVyIGRhdGEgaW50byBkYXRhYmFzZVxyXG4gICovXHJcbiAgcHVibGljIGFzeW5jIERlbGV0ZURhdGEodmFsdWUpIHtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkRlbGV0ZURhdGEodmFsdWUpO1xyXG4gICAgdGhpcy51c2VyTWVzc2FnZXMgPSBnZXRSZXNwb25zZS5tZXNzYWdlLnVzZXJNZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi51c2VyTWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd1N1Y2Nlc3ModGhpcy51c2VyTWVzc2FnZXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogXHJcbiAgICAgKiBHcmlkIGV2ZW50cyBjYWxsc1xyXG4gICAgICovXHJcbiAgaGFuZGxlR3JpZEV2ZW50cyhncmlkRXZlbnRzOiBHcmlkRXZlbnRzTW9kZWwpIHtcclxuICAgIGdyaWRFdmVudHMuZWRpdFJlY29yZC5zdWJzY3JpYmUoKHJlY29yZElkKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZUJ1dHRvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1ZpZXdDYWxsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuRWRpdERhdGEocmVjb3JkSWQpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZW5hYmxlKCk7XHJcbiAgICB9KTtcclxuICAgIGdyaWRFdmVudHMuZGVsZXRlUmVjb3JkLnN1YnNjcmliZSgocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5EZWxldGVEYXRhKHJlY29yZElkKTtcclxuICAgIH0pO1xyXG4gICAgZ3JpZEV2ZW50cy52aWV3UmVjb3JkLnN1YnNjcmliZShhc3luYyAocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5FZGl0RGF0YShyZWNvcmRJZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5kaXNhYmxlKCk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0V2FyZWhvdXNlTGlzdCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkdldFdhcmVob3VzZURyb3Bkb3duTGlzdCgpO1xyXG4gICAgICB0aGlzLndhcmVob3VzZUxpc3QgPSBnZXRSZXNwb25zZS5hcGlEYXRhO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JMb2dTZXJ2aWNlLnNhdmVFcnJvcihlcnJvcik7XHJcbiAgICAgIHRoaXMudG9hc3RyLlNob3dBbGxFcnJvcnMoZXJyb3IuZXJyb3IubWVzc2FnZS51c2VyTWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgKiBnZXQgZGF0YSBmb3IgQ3VzdG9tZXIgZ3JpZCBsaXN0XHJcbiAgICAqL1xyXG4gIHB1YmxpYyBhc3luYyBHZXRMaXN0RGF0YSgpIHtcclxuICAgIGNvbnN0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5HZXRMaXN0RGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICAgIGdldFJlc3BvbnNlLmFwaURhdGEuZm9yRWFjaChyZWNvcmQgPT4ge1xyXG4gICAgICAgIHJlY29yZC5jcmVhdGVkT25VVEMgPSBuZXcgRGF0ZShyZWNvcmQuY3JlYXRlZE9uVVRDKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZ3JpZERhdGEgPSBnZXRSZXNwb25zZS5hcGlEYXRhO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5lcnJvckxvZ1NlcnZpY2Uuc2F2ZUVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd0FsbEVycm9ycyhlcnJvci5lcnJvci5tZXNzYWdlLnVzZXJNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTAgdy1mdWxsXCI+XHJcbiAgICA8IS0tIGZvcm0gY29kZSBzdGFydHMgaGVyZSAtLT5cclxuICAgIDwhLS1jb250ZW50LS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic206dy1mdWxsIG92ZXJmbG93LWhpZGRlblwiICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93TW9kYWxcIj5cclxuXHJcbiAgICAgICAgPCEtLWZvcm0gYm9keS0tPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW5cIiBbZm9ybUdyb3VwXT1cImN1c3RvbWVyRmFybUZvcm1cIj5cclxuICAgICAgICAgICAgPCEtLSBDdXN0b21lciBGYXJtIHNlY3Rpb24gc3RhcnQgIC0tPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleCBweC04IHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbCBtci00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmNsaWVudE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DbGllbnQgTnVtYmVyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJjbGllbnROdW1iZXJcIiBwbGFjZWhvbGRlcj1cIkNsaWVudCBOdW1iZXJcIiBwYXR0ZXJuPVwiXlthLXpBLVogXSokXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIzXCIgW2Zvcm1Db250cm9sTmFtZV09XCInY2xpZW50TnVtYmVyJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jbGllbnROdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTnVtYmVyIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBlbnRlciB2YWxpZCBDbGllbnQgTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE51bWJlciBtdXN0IGJlIG9mIGF0bGVhc3QgMyBjaGFyYWN0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXggcHgtOCBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGwgbXItNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5jdXN0b21lck5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2xpZW50IE5hbWU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cImN1c3RvbWVyTmFtZVwiIHBsYWNlaG9sZGVyPVwiQ2xpZW50IE5hbWVcIiBwYXR0ZXJuPVwiXlthLXpBLVogXSokXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIzXCIgW2Zvcm1Db250cm9sTmFtZV09XCInY3VzdG9tZXJOYW1lJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jdXN0b21lck5hbWUgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE5hbWUgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5oYXNFcnJvcigncGF0dGVybicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxlYXNlIGVudGVyIHZhbGlkIENsaWVudCBuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IG5hbWUgbXVzdCBiZSBvZiBhdGxlYXN0IDMgY2hhcmFjdGVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGVmYXVsdCBXYXJlaG91c2U8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IG1hdFNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cIidkZWZhdWx0V2FyZWhvdXNlJ1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHdhcmVob3VzZSBvZiB3YXJlaG91c2VMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ3YXJlaG91c2UuZGF0YVZhbHVlXCI+e3t3YXJlaG91c2UuZGF0YVRleHR9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2RlZmF1bHRXYXJlaG91c2UnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IFdhcmVob3VzZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpmbGV4IHB4LTggcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsIG1yLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMucGVyc29uSW5DaGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UGVyc29uIEluIENoYXJnZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwicGVyc29uSW5DaGFyZ2VcIiBwbGFjZWhvbGRlcj1cIlBlcnNvbiBJbiBDaGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3BlcnNvbkluQ2hhcmdlJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgncGVyc29uSW5DaGFyZ2UnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnBlcnNvbkluQ2hhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29uIEluIENoYXJnZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRpc3BsYXkgTmFtZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiZGlzcGxheU5hbWVcIiBwbGFjZWhvbGRlcj1cIkRpc3BsYXkgTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGlzcGxheU5hbWUnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXggcHgtOCBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGwgbXItNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5wcmltYXJ5VmV0SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UHJpbWFyeSBWZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cInByaW1hcnlWZXRJZFwiIHBsYWNlaG9sZGVyPVwiUHJpbWFyeSBWZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ByaW1hcnlWZXRJZCdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3ByaW1hcnlWZXRJZCcpLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucHJpbWFyeVZldElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWFyeSBWZXQgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5QSUNUYXR0b29cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UElDL1RhdHRvbyAoaWYgYXBwbGljYWJsZSk8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cIlBJQ1RhdHRvb1wiIHBsYWNlaG9sZGVyPVwiUElDL1RhdHRvb1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ1BJQ1RhdHRvbydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIEN1c3RvbWVyIEZhcm0gc2VjdGlvbiBFbmQgIC0tPlxyXG5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gZm9ybSBjb2RlIGVuZHMgaGVyZSAtLT5cclxuXHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93R3JpZFwiPlxyXG4gICAgPGxpYi1rZW5kby1ncmlkLXZpZXcgW2NvbmZpZ3VyYXRpb25dPVwiZ3JpZENvbmZpZ3VyYXRpb25cIiAoZXZlbnRzKT1cImhhbmRsZUdyaWRFdmVudHMoJGV2ZW50KVwiPjwvbGliLWtlbmRvLWdyaWQtdmlldz5cclxuICA8L2Rpdj5cclxuIl19
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEcsT0FBTyxFQUFtRiwrQkFBK0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQVF2TCxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUFvQixtQkFBd0MsRUFDbEQsU0FBMkIsRUFDM0IsMkJBQXdELEVBQ3hELFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLE1BQWlDO1FBTHZCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbEQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUF0QmpDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsOEJBQXlCLEdBQWtDLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUUvRyxpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzVCLHNCQUFpQixHQUFv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QUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFHRDs7O1FBR0k7SUFDRyxLQUFLLENBQUMsV0FBVztRQUN0QixNQUFNLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNsRCxJQUFJO1lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1NBQ3JDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7O2tIQTdQVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixnTENYbEMsMG1PQStHQTsyRkRwR2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjttUkFLbkIsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNTLHlCQUF5QjtzQkFBeEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3VzdG9tZXJGYXJtQ29uZmlncmF0aW9uTW9kZWwsIEN1c3RvbWVyRmFybU1vZGVsIH0gZnJvbSAnLi9kZXBlbmRlbmNpZXMvY3VzdG9tZXItZmFybS1tb2RlbCc7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uUm9sZU1lbnVzU2VydmljZSwgRXJyb3JMb2dTZXJ2aWNlLCBHcmlkRXZlbnRzTW9kZWwsIEpzb25Gb3Jtc1NlcnZpY2UsIEtlbmRvR3JpZHZpZXdDb25maWd1cmF0aW9uTW9kZWwsIFRvYXN0ck5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcXViZXNlbnNlL2Jhc2Utc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDdXN0b21lckZhcm1TZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b21lci1mYXJtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9tZXItZmFybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLWZhcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbWVyLWZhcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJGYXJtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgY3VzdG9tZXJGYXJtRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uOiBDdXN0b21lckZhcm1Db25maWdyYXRpb25Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Db25maWdyYXRpb25Nb2RlbCgpO1xyXG4gIGN1c3RvbWVyRmFybUZvcm06IEZvcm1Hcm91cDtcclxuICB1c2VyTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGdyaWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGdyaWRDb25maWd1cmF0aW9uOiBLZW5kb0dyaWR2aWV3Q29uZmlndXJhdGlvbk1vZGVsID0gbmV3IEtlbmRvR3JpZHZpZXdDb25maWd1cmF0aW9uTW9kZWwoKTtcclxuICBoaWRlQnV0dG9ucyA9IGZhbHNlO1xyXG4gIGlzVmlld0NhbGwgPSBmYWxzZTtcclxuICBzcGVjaWVzTGlzdDogYW55W10gPSBbXTtcclxuICB3YXJlaG91c2VMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkQ3VzdG9tZXJzOiBbXTtcclxuXHJcbiAgcGVybWlzc2lvbjogYW55ID0gW107XHJcbiAgdXNlckRhdGE6IGFueSA9IFtdO1xyXG4gIEhpZGVBZGRCdXR0b246IGJvb2xlYW47XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN1c3RvbWVyRmFybVNlcnZpY2U6IEN1c3RvbWVyRmFybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGpzb25Gb3JtczogSnNvbkZvcm1zU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25Sb2xlTWVudXNTZXJ2aWNlOiBBcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgZXJyb3JMb2dTZXJ2aWNlOiBFcnJvckxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5mb3JtQ29kZUZvckpzb25IZWFkZXIgPSAnQ1VGQSc7XHJcbiAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb25zID0gdGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmN1c3RvbWVyRmFybUdyaWRDb25maWdyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5EZWNsYXJlRm9ybSgpO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93R3JpZCkge1xyXG4gICAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9ySnNvbkhlYWRlciA9ICdDVUZBJztcclxuICAgICAgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5mb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9ucyA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5jdXN0b21lckZhcm1HcmlkQ29uZmlncmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb247XHJcbiAgICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgICAgYXdhaXQgdGhpcy5wZXJtaXNzaW9uTWV0aG9kKCk7XHJcbiAgICAgIC8vdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5hY3Rpb25zID0geyAnVmlldyc6IGZhbHNlLCAnRWRpdCc6IHRydWUsICdEZWxldGUnOiB0cnVlLCAnR2VuZXJhdGUgUERGJzogZmFsc2UgfTsgIFxyXG4gICAgICB0aGlzLkdldExpc3REYXRhKCk7XHJcbiAgICAgIC8vdGhpcy5nZXRXYXJlaG91c2VMaXN0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdhcmVob3VzZUxpc3QoKTtcclxuXHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UudXBkYXRlQ3VzdG9tZXJOYW1lKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBlcm1pc3Npb25NZXRob2QoKSB7XHJcbiAgICB0aGlzLnVzZXJEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInNlc3Npb25Vc2VyXCIpKTtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2UuR2V0QXNzaWduZWRSb2xlQXV0aCh0aGlzLnVzZXJEYXRhLnNlc3Npb25Vc2VyLnVzZXJFbWFpbCwgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5mb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9ucyk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSBnZXRSZXNwb25zZS5hcGlEYXRhWzBdO1xyXG4gICAgdGhpcy5IaWRlQWRkQnV0dG9uID0gdGhpcy5wZXJtaXNzaW9uLmNhbkFkZCA9PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIERlY2xhcmVGb3JtKCkge1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHJlY29yZElkOiBbbnVsbF0sXHJcbiAgICAgIGN1c3RvbWVySWQ6IFtudWxsXSxcclxuICAgICAgY2xpZW50TnVtYmVyOiBbbnVsbF0sXHJcbiAgICAgIGN1c3RvbWVyTmFtZTogW251bGxdLFxyXG4gICAgICBkZWZhdWx0V2FyZWhvdXNlOiBbbnVsbF0sXHJcbiAgICAgIHBlcnNvbkluQ2hhcmdlOiBbbnVsbF0sXHJcbiAgICAgIGRpc3BsYXlOYW1lOiBbbnVsbF0sXHJcbiAgICAgIHByaW1hcnlWZXRJZDogW251bGxdLFxyXG4gICAgICBQSUNUYXR0b286IFtudWxsXSxcclxuICAgICAgaXNBY3RpdmU6IFt0cnVlXVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlcygpO1xyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuY3VzdG9tZXJOYW1lKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5wYXR0ZXJuKCdeW2EtekEtWiBdKiQnKSk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5taW5MZW5ndGgoMykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jbGllbnROdW1iZXIpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aIF0qJCcpKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnZGVmYXVsdFdhcmVob3VzZScpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnBlcnNvbkluQ2hhcmdlKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3BlcnNvbkluQ2hhcmdlJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucHJpbWFyeVZldElkKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3ByaW1hcnlWZXRJZCcpLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3N0YW5kYXJkIG1ldGhvZHMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuICBvbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICBkaXNwbGF5TmFtZTogdmFsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIGVkaXQgZGF0YSBsaXN0IGl0ZW0gdXNpbmcgZGF0YSBpdGVtIEdVSURcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjdXN0b21lcklkXHJcbiAgICpcclxuICAgKiAgZ2V0cyBjdXN0b21lciBHVUlEIGZyb20gZ3JpZERhdGEgYW5kIHBhc3NlcyBpdCB0byB0aGlzIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgYXN5bmMgRWRpdERhdGEoY3VzdG9tZXJJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5HZXREYXRhQnlJZChjdXN0b21lcklkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncmVjb3JkSWQnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnJlY29yZElkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snY3VzdG9tZXJJZCddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuY3VzdG9tZXJJZCk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2NsaWVudE51bWJlciddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuY2xpZW50TnVtYmVyKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snY3VzdG9tZXJOYW1lJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5jdXN0b21lck5hbWUpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydkZWZhdWx0V2FyZWhvdXNlJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5kZWZhdWx0V2FyZWhvdXNlKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncGVyc29uSW5DaGFyZ2UnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnBlcnNvbkluQ2hhcmdlKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snZGlzcGxheU5hbWUnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmRpc3BsYXlOYW1lKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1sncHJpbWFyeVZldElkJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5wcmltYXJ5VmV0SWQpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydQSUNUYXR0b28nXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnBpY1RhdHRvbyk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2lzQWN0aXZlJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5pc0FjdGl2ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIHRoaXMgbWV0aG9kIGNvbnZlcnRzIGFsbCBmb3JtIGlucHV0cyBpbnRvIG1vZGVsIGNsYXNzXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBtb2RlbCB3aXRoIG5ldyBmb3JtIHZhbHVlc1xyXG4gICAqL1xyXG4gIENvbnZlcnRGb3JtVG9Nb2RlbCgpIHtcclxuICAgIGNvbnN0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5yZWNvcmRJZCA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5yZWNvcmRJZDtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLmNsaWVudE51bWJlciA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5jbGllbnROdW1iZXI7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5jdXN0b21lck5hbWUgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUuY3VzdG9tZXJOYW1lO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuZGVmYXVsdFdhcmVob3VzZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5kZWZhdWx0V2FyZWhvdXNlO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwucGVyc29uSW5DaGFyZ2UgPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUucGVyc29uSW5DaGFyZ2U7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5kaXNwbGF5TmFtZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5kaXNwbGF5TmFtZTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLnByaW1hcnlWZXRJZCA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5wcmltYXJ5VmV0SWQ7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5QSUNUYXR0b28gPSB0aGlzLmN1c3RvbWVyRmFybUZvcm0udmFsdWUuUElDVGF0dG9vO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuY3VzdG9tZXJJZCA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5jdXN0b21lcklkO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuZm9ybUNvZGUgPSB0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uZm9ybUNvZGU7XHJcblxyXG4gICAgcmV0dXJuIGN1c3RvbWVyRmFybU1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogY2xlYXIgZm9ybSBkYXRhXHJcbiAgICovXHJcbiAgQ2xlYXJGb3JtKCkge1xyXG4gICAgdGhpcy5EZWNsYXJlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdERhdGFUb1BhcmVudCgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1EYXRhLmVtaXQoY3VzdG9tZXJGYXJtTW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBJbnNlcnQgY3VzdG9tZXIgZGF0YSBpbnRvIGRhdGFiYXNlXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIEluc2VydERhdGEoKSB7XHJcbiAgICBsZXQgY3VzdG9tZXJGYXJtTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtTW9kZWwoKTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsID0gdGhpcy5Db252ZXJ0Rm9ybVRvTW9kZWwoKTtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkluc2VydERhdGEoY3VzdG9tZXJGYXJtTW9kZWwpO1xyXG4gICAgdGhpcy51c2VyTWVzc2FnZXMgPSBnZXRSZXNwb25zZS5tZXNzYWdlLnVzZXJNZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi51c2VyTWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd1N1Y2Nlc3ModGhpcy51c2VyTWVzc2FnZXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIHVwZGF0ZSBjdXN0b21lciBkYXRhIGludG8gZGF0YWJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgVXBkYXRlRGF0YSgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuVXBkYXRlRGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQGRlc2NyaXB0aW9uXHJcbiAgKlxyXG4gICogRGVsZXRlIGN1c3RvbWVyIGRhdGEgaW50byBkYXRhYmFzZVxyXG4gICovXHJcbiAgcHVibGljIGFzeW5jIERlbGV0ZURhdGEodmFsdWUpIHtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkRlbGV0ZURhdGEodmFsdWUpO1xyXG4gICAgdGhpcy51c2VyTWVzc2FnZXMgPSBnZXRSZXNwb25zZS5tZXNzYWdlLnVzZXJNZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi51c2VyTWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd1N1Y2Nlc3ModGhpcy51c2VyTWVzc2FnZXMudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogXHJcbiAgICAgKiBHcmlkIGV2ZW50cyBjYWxsc1xyXG4gICAgICovXHJcbiAgaGFuZGxlR3JpZEV2ZW50cyhncmlkRXZlbnRzOiBHcmlkRXZlbnRzTW9kZWwpIHtcclxuICAgIGdyaWRFdmVudHMuZWRpdFJlY29yZC5zdWJzY3JpYmUoKHJlY29yZElkKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZUJ1dHRvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1ZpZXdDYWxsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuRWRpdERhdGEocmVjb3JkSWQpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZW5hYmxlKCk7XHJcbiAgICB9KTtcclxuICAgIGdyaWRFdmVudHMuZGVsZXRlUmVjb3JkLnN1YnNjcmliZSgocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5EZWxldGVEYXRhKHJlY29yZElkKTtcclxuICAgIH0pO1xyXG4gICAgZ3JpZEV2ZW50cy52aWV3UmVjb3JkLnN1YnNjcmliZShhc3luYyAocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5FZGl0RGF0YShyZWNvcmRJZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5kaXNhYmxlKCk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0V2FyZWhvdXNlTGlzdCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkdldFdhcmVob3VzZURyb3Bkb3duTGlzdCgpO1xyXG4gICAgICB0aGlzLndhcmVob3VzZUxpc3QgPSBnZXRSZXNwb25zZS5hcGlEYXRhO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JMb2dTZXJ2aWNlLnNhdmVFcnJvcihlcnJvcik7XHJcbiAgICAgIHRoaXMudG9hc3RyLlNob3dBbGxFcnJvcnMoZXJyb3IuZXJyb3IubWVzc2FnZS51c2VyTWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgKiBnZXQgZGF0YSBmb3IgQ3VzdG9tZXIgZ3JpZCBsaXN0XHJcbiAgICAqL1xyXG4gIHB1YmxpYyBhc3luYyBHZXRMaXN0RGF0YSgpIHtcclxuICAgIGNvbnN0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5HZXRMaXN0RGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICAgIGdldFJlc3BvbnNlLmFwaURhdGEuZm9yRWFjaChyZWNvcmQgPT4ge1xyXG4gICAgICAgIHJlY29yZC5jcmVhdGVkT25VVEMgPSBuZXcgRGF0ZShyZWNvcmQuY3JlYXRlZE9uVVRDKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZ3JpZERhdGEgPSBnZXRSZXNwb25zZS5hcGlEYXRhO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5lcnJvckxvZ1NlcnZpY2Uuc2F2ZUVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd0FsbEVycm9ycyhlcnJvci5lcnJvci5tZXNzYWdlLnVzZXJNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTAgdy1mdWxsXCI+XHJcbiAgICA8IS0tIGZvcm0gY29kZSBzdGFydHMgaGVyZSAtLT5cclxuICAgIDwhLS1jb250ZW50LS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic206dy1mdWxsIG92ZXJmbG93LWhpZGRlblwiICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93TW9kYWxcIj5cclxuXHJcbiAgICAgICAgPCEtLWZvcm0gYm9keS0tPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW5cIiBbZm9ybUdyb3VwXT1cImN1c3RvbWVyRmFybUZvcm1cIj5cclxuICAgICAgICAgICAgPCEtLSBDdXN0b21lciBGYXJtIHNlY3Rpb24gc3RhcnQgIC0tPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleCBweC04IHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbCBtci00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmNsaWVudE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DbGllbnQgTnVtYmVyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJjbGllbnROdW1iZXJcIiBwbGFjZWhvbGRlcj1cIkNsaWVudCBOdW1iZXJcIiBtaW5sZW5ndGg9XCIzXCIgW2Zvcm1Db250cm9sTmFtZV09XCInY2xpZW50TnVtYmVyJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jbGllbnROdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTnVtYmVyIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY2xpZW50TnVtYmVyJykuaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE51bWJlciBtdXN0IGJlIG9mIGF0bGVhc3QgMyBjaGFyYWN0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXggcHgtOCBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGwgbXItNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5jdXN0b21lck5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2xpZW50IE5hbWU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cImN1c3RvbWVyTmFtZVwiIHBsYWNlaG9sZGVyPVwiQ2xpZW50IE5hbWVcIiBwYXR0ZXJuPVwiXlthLXpBLVogXSokXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIzXCIgW2Zvcm1Db250cm9sTmFtZV09XCInY3VzdG9tZXJOYW1lJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jdXN0b21lck5hbWUgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IE5hbWUgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5oYXNFcnJvcigncGF0dGVybicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxlYXNlIGVudGVyIHZhbGlkIENsaWVudCBuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50IG5hbWUgbXVzdCBiZSBvZiBhdGxlYXN0IDMgY2hhcmFjdGVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGVmYXVsdCBXYXJlaG91c2U8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IG1hdFNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cIidkZWZhdWx0V2FyZWhvdXNlJ1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHdhcmVob3VzZSBvZiB3YXJlaG91c2VMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ3YXJlaG91c2UuZGF0YVZhbHVlXCI+e3t3YXJlaG91c2UuZGF0YVRleHR9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2RlZmF1bHRXYXJlaG91c2UnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmRlZmF1bHRXYXJlaG91c2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IFdhcmVob3VzZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpmbGV4IHB4LTggcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsIG1yLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMucGVyc29uSW5DaGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UGVyc29uIEluIENoYXJnZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwicGVyc29uSW5DaGFyZ2VcIiBwbGFjZWhvbGRlcj1cIlBlcnNvbiBJbiBDaGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3BlcnNvbkluQ2hhcmdlJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgncGVyc29uSW5DaGFyZ2UnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLnBlcnNvbkluQ2hhcmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29uIEluIENoYXJnZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRpc3BsYXkgTmFtZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiZGlzcGxheU5hbWVcIiBwbGFjZWhvbGRlcj1cIkRpc3BsYXkgTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGlzcGxheU5hbWUnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXggcHgtOCBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGwgbXItNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5wcmltYXJ5VmV0SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UHJpbWFyeSBWZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cInByaW1hcnlWZXRJZFwiIHBsYWNlaG9sZGVyPVwiUHJpbWFyeSBWZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ByaW1hcnlWZXRJZCdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ3ByaW1hcnlWZXRJZCcpLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucHJpbWFyeVZldElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbWFyeSBWZXQgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5QSUNUYXR0b29cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+UElDL1RhdHRvbyAoaWYgYXBwbGljYWJsZSk8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cIlBJQ1RhdHRvb1wiIHBsYWNlaG9sZGVyPVwiUElDL1RhdHRvb1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ1BJQ1RhdHRvbydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIEN1c3RvbWVyIEZhcm0gc2VjdGlvbiBFbmQgIC0tPlxyXG5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gZm9ybSBjb2RlIGVuZHMgaGVyZSAtLT5cclxuXHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5zaG93R3JpZFwiPlxyXG4gICAgPGxpYi1rZW5kby1ncmlkLXZpZXcgW2NvbmZpZ3VyYXRpb25dPVwiZ3JpZENvbmZpZ3VyYXRpb25cIiAoZXZlbnRzKT1cImhhbmRsZUdyaWRFdmVudHMoJGV2ZW50KVwiPjwvbGliLWtlbmRvLWdyaWQtdmlldz5cclxuICA8L2Rpdj5cclxuIl19
@@ -518,10 +518,10 @@ class CustomerFarmComponent {
518
518
  }
519
519
  }
520
520
  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 });
521
- CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
521
+ CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
522
522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, decorators: [{
523
523
  type: Component,
524
- args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
524
+ args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
525
525
  }], ctorParameters: function () { return [{ type: CustomerFarmService }, { type: i2.JsonFormsService }, { type: i2.ApplicationRoleMenusService }, { type: i3.FormBuilder }, { type: i2.ErrorLogService }, { type: i2.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
526
526
  type: Output
527
527
  }], customerFarmConfiguration: [{
@@ -1 +1 @@
1
- {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;;AAEI,QAAA,IAAsB,CAAA,sBAAA,GAAW,0BAA0B,CAAC;;AAG5D,QAAA,IAAyB,CAAA,yBAAA,GAAW,yBAAyB,CAAC;;AAG9D,QAAA,IAAyB,CAAA,yBAAA,GAAW,yBAAyB,CAAC;;AAG9D,QAAA,IAAyB,CAAA,yBAAA,GAAW,yBAAyB,CAAC;;AAG9D,QAAA,IAAsB,CAAA,sBAAA,GAAW,yBAAyB,CAAC;;AAG3D,QAAA,IAA8B,CAAA,8BAAA,GAAW,kCAAkC,CAAC;;AAG5E,QAAA,IAA2B,CAAA,2BAAA,GAAW,2CAA2C,CAAC;;AAGlF,QAAA,IAAwB,CAAA,wBAAA,GAAW,iCAAiC,CAAC;KACxE;AAAA;;MCdY,mBAAmB,CAAA;AAE5B,IAAA,WAAA,CAAoB,iBAAoC,EAAA;AAApC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAExD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAExC,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;QAC7D,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KALA;AAO7D,IAAA,kBAAkB,CAAC,YAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;AAED;;;;;;AAMG;AACU,IAAA,WAAW,CAAC,YAAoB,EAAA;;YACzC,IAAI;gBACA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,GAAG,GAAG,GAAG,YAAY,CAAC;gBACjF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrE,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;AACU,IAAA,UAAU,CAAC,iBAAoC,EAAA;;YACxD,IAAI;AACA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC;AAC/D,gBAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACvF,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;AACU,IAAA,UAAU,CAAC,iBAAoC,EAAA;;YACxD,IAAI;AACA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC;AAC/D,gBAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACvF,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;AACU,IAAA,UAAU,CAAC,QAAa,EAAA;;YACjC,IAAI;gBACA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,GAAG,GAAG,GAAG,QAAQ,CAAC;gBAChF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpE,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AACD,YAAA,OAAO,KAAK,EAAE;AACV,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;AACU,IAAA,WAAW,CAAC,iBAAoC,EAAA;;YACzD,IAAI;AACA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC;AAC5D,gBAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACxF,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;AAED;;;;AAIG;IACU,wBAAwB,GAAA;;YACjC,IAAI;AACA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC;gBACpE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC7E,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;AAEY,IAAA,wBAAwB,CAAC,KAAY,EAAA;;YAC9C,IAAI;gBACA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC5E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrE,gBAAA,OAAO,cAAc,CAAC;AACzB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,MAAM,KAAK,CAAC;AACf,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;IAEY,wBAAwB,GAAA;;YACjC,IAAI;AACF,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC;gBACjE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC7E,gBAAA,OAAO,cAAc,CAAC;AACvB,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,MAAM,KAAK,CAAC;AACb,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;;gHApIM,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;MCTY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACI,QAAA,IAAQ,CAAA,QAAA,GAAW,IAAI,CAAC;AACxB,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,QAAA,IAAQ,CAAA,QAAA,GAAW,IAAI,CAAC;AACxB,QAAA,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;AAC1B,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAC5B,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,QAAA,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;AACzB,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAC9B;AAAA,CAAA;MAEY,6BAA6B,CAAA;AAA1C,IAAA,WAAA,GAAA;AACI,QAAA,IAAQ,CAAA,QAAA,GAAW,IAAI,CAAC;AACxB,QAAA,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;AAC1B,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAC3B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAChC,QAAA,IAAY,CAAA,YAAA,GAAsB,IAAI,CAAC;AACvC,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;AAC7C,QAAA,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;AAC5C,QAAA,IAAA,CAAA,0BAA0B,GAA+B,IAAI,0BAA0B,EAAE,CAAC;AAC1F,QAAA,IAAA,CAAA,yBAAyB,GAA8B,IAAI,yBAAyB,EAAE,CAAC;AACvF,QAAA,IAAA,CAAA,4BAA4B,GAAiC,IAAI,4BAA4B,EAAE,CAAC;KACnG;AAAA,CAAA;MAEY,0BAA0B,CAAA;AAAvC,IAAA,WAAA,GAAA;AACI,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AACjC,QAAA,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAC/B,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;AAC5B,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAC3B,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;KACpC;AAAA,CAAA;MAEY,yBAAyB,CAAA;AAAtC,IAAA,WAAA,GAAA;AACI,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AACjC,QAAA,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAC/B,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAC1B,QAAA,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;AAC5B,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;KACpC;AAAA,CAAA;MAEY,4BAA4B,CAAA;AAAzC,IAAA,WAAA,GAAA;AACI,QAAA,IAAqB,CAAA,qBAAA,GAAW,IAAI,CAAC;AACrC,QAAA,IAAyB,CAAA,yBAAA,GAAW,IAAI,CAAC;KAC5C;AAAA;;MChDY,qBAAqB,CAAA;IAkBhC,WAAoB,CAAA,mBAAwC,EAClD,SAA2B,EAC3B,2BAAwD,EACxD,WAAwB,EACxB,eAAgC,EAChC,MAAiC,EAAA;AALvB,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAClD,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;AACxD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACxB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAChC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAA2B;AAtBjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,yBAAyB,GAAkC,IAAI,6BAA6B,EAAE,CAAC;AAE/G,QAAA,IAAY,CAAA,YAAA,GAAa,EAAE,CAAC;AACrB,QAAA,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,iBAAiB,GAAoC,IAAI,+BAA+B,EAAE,CAAC;AAC3F,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AACpB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,QAAA,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;AACxB,QAAA,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;AAG1B,QAAA,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;AACrB,QAAA,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AAWjB,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,MAAM,CAAC;AACtD,QAAA,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC,4BAA4B,CAAC,yBAAyB,CAAC;KAC3I;IAEK,QAAQ,GAAA;;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE;AAC3C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,MAAM,CAAC;AACtD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC,4BAA4B,CAAC,yBAAyB,CAAC;AAC1I,gBAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;AACxC,gBAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;;gBAE9B,IAAI,CAAC,WAAW,EAAE,CAAC;;AAEpB,aAAA;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACzE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACrD,aAAC,CAAC,CAAC;SACJ,CAAA,CAAA;AAAA,KAAA;IAEY,gBAAgB,GAAA;;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;YACvK,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;SACrE,CAAA,CAAA;AAAA,KAAA;IAED,WAAW,GAAA;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7C,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,gBAAgB,EAAE,CAAC,IAAI,CAAC;YACxB,cAAc,EAAE,CAAC,IAAI,CAAC;YACtB,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,SAAS,EAAE,CAAC,IAAI,CAAC;YACjB,QAAQ,EAAE,CAAC,IAAI,CAAC;AACjB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;AAEjB,QAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,YAAY,EAAE;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,YAAY,EAAE;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,gBAAgB,EAAE;AAC9E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,cAAc,EAAE;AAC5E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,YAAY,EAAE;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9E,SAAA;KACF;;IAID,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAG;AACrE,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC/B,gBAAA,WAAW,EAAE,GAAG;AACjB,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED;;;;;;;;AAQG;AACG,IAAA,QAAQ,CAAC,UAAkB,EAAA;;YAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACtF,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC1F,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC1F,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClG,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC9F,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACxF,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC1F,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACnF,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;IACH,kBAAkB,GAAA;AAChB,QAAA,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAClE,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1E,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1E,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAClF,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC;QAC9E,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;QACxE,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1E,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;QACpE,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC;QACzE,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;AAErE,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAED;;;AAGG;IACH,SAAS,GAAA;QACP,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAChD,QAAA,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC/C;AAED;;;;AAIG;IACU,UAAU,GAAA;;AACrB,YAAA,IAAI,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAChD,YAAA,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,YAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE;AAC/C,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;AAIG;IACU,UAAU,GAAA;;AACrB,YAAA,IAAI,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAChD,YAAA,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,YAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE;AAC/C,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;AAIE;AACW,IAAA,UAAU,CAAC,KAAK,EAAA;;YAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;AACpD,YAAA,IAAI,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE;AAC/C,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAED;;;;AAIK;AACL,IAAA,gBAAgB,CAAC,UAA2B,EAAA;QAC1C,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACjC,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAO,QAAQ,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACjD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SAEjC,CAAA,CAAC,CAAC;KACJ;IAEY,gBAAgB,GAAA;;YAC3B,IAAI;gBACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;AAC9E,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;AAC1C,aAAA;AACD,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC5D,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAGD;;;AAGI;IACS,WAAW,GAAA;;AACtB,YAAA,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;YAClD,IAAI;gBACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAClF,gBAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;oBACnC,MAAM,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACtD,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;AACrC,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC5D,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;;kHA7PU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gLCXlC,o4OAmHA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDxGa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,o4OAAA,EAAA,CAAA;gRAKnB,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACS,yBAAyB,EAAA,CAAA;sBAAxC,KAAK;;;MEwCK,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CA/B3B,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAGrB,aAAa;QACT,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,WAAW;QACX,YAAY;QACZ,UAAU;QACV,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,cAAc;QACd,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,YAAY;QACZ,eAAe;QACf,mBAAmB;QACnB,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB,aAGvB,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAGZ,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YA5B3B,aAAa;QACT,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,WAAW;QACX,YAAY;QACZ,UAAU;QACV,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,cAAc;QACd,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,YAAY;QACZ,eAAe;QACf,mBAAmB;QACnB,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAMd,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjC9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;wBACT,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,WAAW;wBACX,YAAY;wBACZ,UAAU;wBACV,aAAa;wBACb,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,iBAAiB;wBACjB,YAAY;wBACZ,eAAe;wBACf,mBAAmB;wBACnB,mBAAmB;wBACnB,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;wBAChB,mBAAmB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;AACtB,qBAAA;iBACF,CAAA;;;ACpDD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
@@ -485,10 +485,10 @@ class CustomerFarmComponent {
485
485
  }
486
486
  }
487
487
  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 });
488
- CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
488
+ CustomerFarmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CustomerFarmComponent, selector: "lib-customer-farm", inputs: { customerFarmConfiguration: "customerFarmConfiguration" }, outputs: { customerFarmData: "customerFarmData" }, ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i2.KendoGridViewComponent, selector: "lib-kendo-grid-view", inputs: ["configuration"], outputs: ["events"] }] });
489
489
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CustomerFarmComponent, decorators: [{
490
490
  type: Component,
491
- args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
491
+ args: [{ selector: 'lib-customer-farm', template: "<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n" }]
492
492
  }], ctorParameters: function () { return [{ type: CustomerFarmService }, { type: i2.JsonFormsService }, { type: i2.ApplicationRoleMenusService }, { type: i3.FormBuilder }, { type: i2.ErrorLogService }, { type: i2.ToastrNotificationService }]; }, propDecorators: { customerFarmData: [{
493
493
  type: Output
494
494
  }], customerFarmConfiguration: [{
@@ -1 +1 @@
1
- {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('pattern')\">\r\n Please enter valid Client Number\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
1
+ {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qubesense/customer-farm",
3
3
  "license": "qubesense",
4
- "version": "0.2.3",
4
+ "version": "0.2.4",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^14.1.0",
7
7
  "@angular/core": "^14.1.0"