@qubesense/customer-farm 0.2.4 → 0.2.5

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.
@@ -76,7 +76,6 @@ export class CustomerFarmComponent {
76
76
  }
77
77
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {
78
78
  this.customerFarmForm.get('clientNumber').addValidators(Validators.required);
79
- this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));
80
79
  this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));
81
80
  }
82
81
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {
@@ -251,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
251
250
  }], customerFarmConfiguration: [{
252
251
  type: Input
253
252
  }] } });
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
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZmFybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXN0b21lci1mYXJtL3NyYy9saWIvY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEcsT0FBTyxFQUFtRiwrQkFBK0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQVF2TCxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUFvQixtQkFBd0MsRUFDbEQsU0FBMkIsRUFDM0IsMkJBQXdELEVBQ3hELFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLE1BQWlDO1FBTHZCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbEQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUF0QmpDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsOEJBQXlCLEdBQWtDLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUUvRyxpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzVCLHNCQUFpQixHQUFv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LEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2xELElBQUk7WUFDRixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRixXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7U0FDckM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQzs7a0hBNVBVLHFCQUFxQjtzR0FBckIscUJBQXFCLGdMQ1hsQywwbU9BK0dBOzJGRHBHYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO21SQUtuQixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ1MseUJBQXlCO3NCQUF4QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDdXN0b21lckZhcm1Db25maWdyYXRpb25Nb2RlbCwgQ3VzdG9tZXJGYXJtTW9kZWwgfSBmcm9tICcuL2RlcGVuZGVuY2llcy9jdXN0b21lci1mYXJtLW1vZGVsJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25Sb2xlTWVudXNTZXJ2aWNlLCBFcnJvckxvZ1NlcnZpY2UsIEdyaWRFdmVudHNNb2RlbCwgSnNvbkZvcm1zU2VydmljZSwgS2VuZG9Hcmlkdmlld0NvbmZpZ3VyYXRpb25Nb2RlbCwgVG9hc3RyTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BxdWJlc2Vuc2UvYmFzZS1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEN1c3RvbWVyRmFybVNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbWVyLWZhcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jdXN0b21lci1mYXJtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tZXItZmFybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tZXItZmFybS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21lckZhcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBjdXN0b21lckZhcm1EYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb246IEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsID0gbmV3IEN1c3RvbWVyRmFybUNvbmZpZ3JhdGlvbk1vZGVsKCk7XHJcbiAgY3VzdG9tZXJGYXJtRm9ybTogRm9ybUdyb3VwO1xyXG4gIHVzZXJNZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZ3JpZERhdGE6IGFueVtdID0gW107XHJcbiAgZ3JpZENvbmZpZ3VyYXRpb246IEtlbmRvR3JpZHZpZXdDb25maWd1cmF0aW9uTW9kZWwgPSBuZXcgS2VuZG9Hcmlkdmlld0NvbmZpZ3VyYXRpb25Nb2RlbCgpO1xyXG4gIGhpZGVCdXR0b25zID0gZmFsc2U7XHJcbiAgaXNWaWV3Q2FsbCA9IGZhbHNlO1xyXG4gIHNwZWNpZXNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHdhcmVob3VzZUxpc3Q6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRDdXN0b21lcnM6IFtdO1xyXG5cclxuICBwZXJtaXNzaW9uOiBhbnkgPSBbXTtcclxuICB1c2VyRGF0YTogYW55ID0gW107XHJcbiAgSGlkZUFkZEJ1dHRvbjogYm9vbGVhbjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3VzdG9tZXJGYXJtU2VydmljZTogQ3VzdG9tZXJGYXJtU2VydmljZSxcclxuICAgIHByaXZhdGUganNvbkZvcm1zOiBKc29uRm9ybXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJvbGVNZW51c1NlcnZpY2U6IEFwcGxpY2F0aW9uUm9sZU1lbnVzU2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBlcnJvckxvZ1NlcnZpY2U6IEVycm9yTG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJOb3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9ySnNvbkhlYWRlciA9ICdDVUZBJztcclxuICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbnMgPSB0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uY3VzdG9tZXJGYXJtR3JpZENvbmZpZ3JhdGlvbi5mb3JtQ29kZUZvckdyaWRQZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLkRlY2xhcmVGb3JtKCk7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnNob3dHcmlkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZENvbmZpZ3VyYXRpb24uZm9ybUNvZGVGb3JKc29uSGVhZGVyID0gJ0NVRkEnO1xyXG4gICAgICB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb25zID0gdGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmN1c3RvbWVyRmFybUdyaWRDb25maWdyYXRpb24uZm9ybUNvZGVGb3JHcmlkUGVybWlzc2lvbjtcclxuICAgICAgdGhpcy5ncmlkQ29uZmlndXJhdGlvbi5zaG93TW9kYWwgPSB0cnVlO1xyXG4gICAgICBhd2FpdCB0aGlzLnBlcm1pc3Npb25NZXRob2QoKTtcclxuICAgICAgLy90aGlzLmdyaWRDb25maWd1cmF0aW9uLmFjdGlvbnMgPSB7ICdWaWV3JzogZmFsc2UsICdFZGl0JzogdHJ1ZSwgJ0RlbGV0ZSc6IHRydWUsICdHZW5lcmF0ZSBQREYnOiBmYWxzZSB9OyAgXHJcbiAgICAgIHRoaXMuR2V0TGlzdERhdGEoKTtcclxuICAgICAgLy90aGlzLmdldFdhcmVob3VzZUxpc3QoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0V2FyZWhvdXNlTGlzdCgpO1xyXG5cclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS51cGRhdGVDdXN0b21lck5hbWUodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGVybWlzc2lvbk1ldGhvZCgpIHtcclxuICAgIHRoaXMudXNlckRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic2Vzc2lvblVzZXJcIikpO1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uUm9sZU1lbnVzU2VydmljZS5HZXRBc3NpZ25lZFJvbGVBdXRoKHRoaXMudXNlckRhdGEuc2Vzc2lvblVzZXIudXNlckVtYWlsLCB0aGlzLmdyaWRDb25maWd1cmF0aW9uLmZvcm1Db2RlRm9yR3JpZFBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMucGVybWlzc2lvbiA9IGdldFJlc3BvbnNlLmFwaURhdGFbMF07XHJcbiAgICB0aGlzLkhpZGVBZGRCdXR0b24gPSB0aGlzLnBlcm1pc3Npb24uY2FuQWRkID09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgRGVjbGFyZUZvcm0oKSB7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgcmVjb3JkSWQ6IFtudWxsXSxcclxuICAgICAgY3VzdG9tZXJJZDogW251bGxdLFxyXG4gICAgICBjbGllbnROdW1iZXI6IFtudWxsXSxcclxuICAgICAgY3VzdG9tZXJOYW1lOiBbbnVsbF0sXHJcbiAgICAgIGRlZmF1bHRXYXJlaG91c2U6IFtudWxsXSxcclxuICAgICAgcGVyc29uSW5DaGFyZ2U6IFtudWxsXSxcclxuICAgICAgZGlzcGxheU5hbWU6IFtudWxsXSxcclxuICAgICAgcHJpbWFyeVZldElkOiBbbnVsbF0sXHJcbiAgICAgIFBJQ1RhdHRvbzogW251bGxdLFxyXG4gICAgICBpc0FjdGl2ZTogW3RydWVdXHJcbiAgICB9KTtcclxuICAgIHRoaXMub25DaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5jdXN0b21lck5hbWUpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aIF0qJCcpKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgnY3VzdG9tZXJOYW1lJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmNsaWVudE51bWJlcikge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjbGllbnROdW1iZXInKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjbGllbnROdW1iZXInKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuZGVmYXVsdFdhcmVob3VzZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uZ2V0KCdkZWZhdWx0V2FyZWhvdXNlJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucGVyc29uSW5DaGFyZ2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgncGVyc29uSW5DaGFyZ2UnKS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5wcmltYXJ5VmV0SWQpIHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmdldCgncHJpbWFyeVZldElkJykuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vc3RhbmRhcmQgbWV0aG9kcy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIG9uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIGRpc3BsYXlOYW1lOiB2YWxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogZWRpdCBkYXRhIGxpc3QgaXRlbSB1c2luZyBkYXRhIGl0ZW0gR1VJRFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGN1c3RvbWVySWRcclxuICAgKlxyXG4gICAqICBnZXRzIGN1c3RvbWVyIEdVSUQgZnJvbSBncmlkRGF0YSBhbmQgcGFzc2VzIGl0IHRvIHRoaXMgZnVuY3Rpb25cclxuICAgKi9cclxuICBhc3luYyBFZGl0RGF0YShjdXN0b21lcklkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkdldERhdGFCeUlkKGN1c3RvbWVySWQpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydyZWNvcmRJZCddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEucmVjb3JkSWQpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydjdXN0b21lcklkJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5jdXN0b21lcklkKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snY2xpZW50TnVtYmVyJ10uc2V0VmFsdWUoZ2V0UmVzcG9uc2UuYXBpRGF0YS5jbGllbnROdW1iZXIpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydjdXN0b21lck5hbWUnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmN1c3RvbWVyTmFtZSk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ2RlZmF1bHRXYXJlaG91c2UnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmRlZmF1bHRXYXJlaG91c2UpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydwZXJzb25JbkNoYXJnZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEucGVyc29uSW5DaGFyZ2UpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydkaXNwbGF5TmFtZSddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEuZGlzcGxheU5hbWUpO1xyXG4gICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmNvbnRyb2xzWydwcmltYXJ5VmV0SWQnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLnByaW1hcnlWZXRJZCk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybUZvcm0uY29udHJvbHNbJ1BJQ1RhdHRvbyddLnNldFZhbHVlKGdldFJlc3BvbnNlLmFwaURhdGEucGljVGF0dG9vKTtcclxuICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5jb250cm9sc1snaXNBY3RpdmUnXS5zZXRWYWx1ZShnZXRSZXNwb25zZS5hcGlEYXRhLmlzQWN0aXZlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogdGhpcyBtZXRob2QgY29udmVydHMgYWxsIGZvcm0gaW5wdXRzIGludG8gbW9kZWwgY2xhc3NcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIG1vZGVsIHdpdGggbmV3IGZvcm0gdmFsdWVzXHJcbiAgICovXHJcbiAgQ29udmVydEZvcm1Ub01vZGVsKCkge1xyXG4gICAgY29uc3QgY3VzdG9tZXJGYXJtTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtTW9kZWwoKTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLnJlY29yZElkID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLnJlY29yZElkO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwuY2xpZW50TnVtYmVyID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLmNsaWVudE51bWJlcjtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLmN1c3RvbWVyTmFtZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5jdXN0b21lck5hbWU7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5kZWZhdWx0V2FyZWhvdXNlID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLmRlZmF1bHRXYXJlaG91c2U7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5wZXJzb25JbkNoYXJnZSA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5wZXJzb25JbkNoYXJnZTtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLmRpc3BsYXlOYW1lID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLmRpc3BsYXlOYW1lO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwucHJpbWFyeVZldElkID0gdGhpcy5jdXN0b21lckZhcm1Gb3JtLnZhbHVlLnByaW1hcnlWZXRJZDtcclxuICAgIGN1c3RvbWVyRmFybU1vZGVsLlBJQ1RhdHRvbyA9IHRoaXMuY3VzdG9tZXJGYXJtRm9ybS52YWx1ZS5QSUNUYXR0b287XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5jdXN0b21lcklkID0gdGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmN1c3RvbWVySWQ7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbC5mb3JtQ29kZSA9IHRoaXMuY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5mb3JtQ29kZTtcclxuXHJcbiAgICByZXR1cm4gY3VzdG9tZXJGYXJtTW9kZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBjbGVhciBmb3JtIGRhdGFcclxuICAgKi9cclxuICBDbGVhckZvcm0oKSB7XHJcbiAgICB0aGlzLkRlY2xhcmVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBlbWl0RGF0YVRvUGFyZW50KCkge1xyXG4gICAgbGV0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbCA9IHRoaXMuQ29udmVydEZvcm1Ub01vZGVsKCk7XHJcbiAgICB0aGlzLmN1c3RvbWVyRmFybURhdGEuZW1pdChjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEluc2VydCBjdXN0b21lciBkYXRhIGludG8gZGF0YWJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgSW5zZXJ0RGF0YSgpIHtcclxuICAgIGxldCBjdXN0b21lckZhcm1Nb2RlbCA9IG5ldyBDdXN0b21lckZhcm1Nb2RlbCgpO1xyXG4gICAgY3VzdG9tZXJGYXJtTW9kZWwgPSB0aGlzLkNvbnZlcnRGb3JtVG9Nb2RlbCgpO1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuSW5zZXJ0RGF0YShjdXN0b21lckZhcm1Nb2RlbCk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogdXBkYXRlIGN1c3RvbWVyIGRhdGEgaW50byBkYXRhYmFzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBVcGRhdGVEYXRhKCkge1xyXG4gICAgbGV0IGN1c3RvbWVyRmFybU1vZGVsID0gbmV3IEN1c3RvbWVyRmFybU1vZGVsKCk7XHJcbiAgICBjdXN0b21lckZhcm1Nb2RlbCA9IHRoaXMuQ29udmVydEZvcm1Ub01vZGVsKCk7XHJcbiAgICBjb25zdCBnZXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuY3VzdG9tZXJGYXJtU2VydmljZS5VcGRhdGVEYXRhKGN1c3RvbWVyRmFybU1vZGVsKTtcclxuICAgIHRoaXMudXNlck1lc3NhZ2VzID0gZ2V0UmVzcG9uc2UubWVzc2FnZS51c2VyTWVzc2FnZTtcclxuICAgIGlmICh0aGlzLmN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24udXNlck1lc3NhZ2VzKSB7XHJcbiAgICAgIHRoaXMudG9hc3RyLlNob3dTdWNjZXNzKHRoaXMudXNlck1lc3NhZ2VzLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBAZGVzY3JpcHRpb25cclxuICAqXHJcbiAgKiBEZWxldGUgY3VzdG9tZXIgZGF0YSBpbnRvIGRhdGFiYXNlXHJcbiAgKi9cclxuICBwdWJsaWMgYXN5bmMgRGVsZXRlRGF0YSh2YWx1ZSkge1xyXG4gICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuRGVsZXRlRGF0YSh2YWx1ZSk7XHJcbiAgICB0aGlzLnVzZXJNZXNzYWdlcyA9IGdldFJlc3BvbnNlLm1lc3NhZ2UudXNlck1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5jdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnVzZXJNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93U3VjY2Vzcyh0aGlzLnVzZXJNZXNzYWdlcy50b1N0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIEdyaWQgZXZlbnRzIGNhbGxzXHJcbiAgICAgKi9cclxuICBoYW5kbGVHcmlkRXZlbnRzKGdyaWRFdmVudHM6IEdyaWRFdmVudHNNb2RlbCkge1xyXG4gICAgZ3JpZEV2ZW50cy5lZGl0UmVjb3JkLnN1YnNjcmliZSgocmVjb3JkSWQpID0+IHtcclxuICAgICAgdGhpcy5oaWRlQnV0dG9ucyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzVmlld0NhbGwgPSBmYWxzZTtcclxuICAgICAgdGhpcy5FZGl0RGF0YShyZWNvcmRJZCk7XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJGYXJtRm9ybS5lbmFibGUoKTtcclxuICAgIH0pO1xyXG4gICAgZ3JpZEV2ZW50cy5kZWxldGVSZWNvcmQuc3Vic2NyaWJlKChyZWNvcmRJZCkgPT4ge1xyXG4gICAgICB0aGlzLkRlbGV0ZURhdGEocmVjb3JkSWQpO1xyXG4gICAgfSk7XHJcbiAgICBncmlkRXZlbnRzLnZpZXdSZWNvcmQuc3Vic2NyaWJlKGFzeW5jIChyZWNvcmRJZCkgPT4ge1xyXG4gICAgICB0aGlzLkVkaXREYXRhKHJlY29yZElkKTtcclxuICAgICAgdGhpcy5jdXN0b21lckZhcm1Gb3JtLmRpc2FibGUoKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRXYXJlaG91c2VMaXN0KCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZ2V0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLmN1c3RvbWVyRmFybVNlcnZpY2UuR2V0V2FyZWhvdXNlRHJvcGRvd25MaXN0KCk7XHJcbiAgICAgIHRoaXMud2FyZWhvdXNlTGlzdCA9IGdldFJlc3BvbnNlLmFwaURhdGE7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5lcnJvckxvZ1NlcnZpY2Uuc2F2ZUVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy50b2FzdHIuU2hvd0FsbEVycm9ycyhlcnJvci5lcnJvci5tZXNzYWdlLnVzZXJNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAqIGdldCBkYXRhIGZvciBDdXN0b21lciBncmlkIGxpc3RcclxuICAgICovXHJcbiAgcHVibGljIGFzeW5jIEdldExpc3REYXRhKCkge1xyXG4gICAgY29uc3QgY3VzdG9tZXJGYXJtTW9kZWwgPSBuZXcgQ3VzdG9tZXJGYXJtTW9kZWwoKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGdldFJlc3BvbnNlID0gYXdhaXQgdGhpcy5jdXN0b21lckZhcm1TZXJ2aWNlLkdldExpc3REYXRhKGN1c3RvbWVyRmFybU1vZGVsKTtcclxuICAgICAgZ2V0UmVzcG9uc2UuYXBpRGF0YS5mb3JFYWNoKHJlY29yZCA9PiB7XHJcbiAgICAgICAgcmVjb3JkLmNyZWF0ZWRPblVUQyA9IG5ldyBEYXRlKHJlY29yZC5jcmVhdGVkT25VVEMpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5ncmlkRGF0YSA9IGdldFJlc3BvbnNlLmFwaURhdGE7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLmVycm9yTG9nU2VydmljZS5zYXZlRXJyb3IoZXJyb3IpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5TaG93QWxsRXJyb3JzKGVycm9yLmVycm9yLm1lc3NhZ2UudXNlck1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWF1dG8gbWluLXctMCB3LWZ1bGxcIj5cclxuICAgIDwhLS0gZm9ybSBjb2RlIHN0YXJ0cyBoZXJlIC0tPlxyXG4gICAgPCEtLWNvbnRlbnQtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJzbTp3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCIgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnNob3dNb2RhbFwiPlxyXG5cclxuICAgICAgICA8IS0tZm9ybSBib2R5LS0+XHJcbiAgICAgICAgPGZvcm0gY2xhc3M9XCJmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlblwiIFtmb3JtR3JvdXBdPVwiY3VzdG9tZXJGYXJtRm9ybVwiPlxyXG4gICAgICAgICAgICA8IS0tIEN1c3RvbWVyIEZhcm0gc2VjdGlvbiBzdGFydCAgLS0+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbTpmbGV4IHB4LTggcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsIG1yLTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMuY2xpZW50TnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNsaWVudCBOdW1iZXI8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cImNsaWVudE51bWJlclwiIHBsYWNlaG9sZGVyPVwiQ2xpZW50IE51bWJlclwiIG1pbmxlbmd0aD1cIjNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIidjbGllbnROdW1iZXInXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjbGllbnROdW1iZXInKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmNsaWVudE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudCBOdW1iZXIgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjbGllbnROdW1iZXInKS5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTnVtYmVyIG11c3QgYmUgb2YgYXRsZWFzdCAzIGNoYXJhY3RlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGxcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleCBweC04IHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbCBtci00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLmN1c3RvbWVyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DbGllbnQgTmFtZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiY3VzdG9tZXJOYW1lXCIgcGxhY2Vob2xkZXI9XCJDbGllbnQgTmFtZVwiIHBhdHRlcm49XCJeW2EtekEtWiBdKiRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aD1cIjNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIidjdXN0b21lck5hbWUnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnJlcXVpcmVkQ3VzdG9tZXJGYXJtRmllbGRzLmN1c3RvbWVyTmFtZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgTmFtZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY3VzdG9tZXJGYXJtRm9ybS5nZXQoJ2N1c3RvbWVyTmFtZScpLmhhc0Vycm9yKCdwYXR0ZXJuJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2UgZW50ZXIgdmFsaWQgQ2xpZW50IG5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdjdXN0b21lck5hbWUnKS5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGllbnQgbmFtZSBtdXN0IGJlIG9mIGF0bGVhc3QgMyBjaGFyYWN0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMuZGVmYXVsdFdhcmVob3VzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EZWZhdWx0IFdhcmVob3VzZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgbWF0U2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiJ2RlZmF1bHRXYXJlaG91c2UnXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgd2FyZWhvdXNlIG9mIHdhcmVob3VzZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIndhcmVob3VzZS5kYXRhVmFsdWVcIj57e3dhcmVob3VzZS5kYXRhVGV4dH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgnZGVmYXVsdFdhcmVob3VzZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMuZGVmYXVsdFdhcmVob3VzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgV2FyZWhvdXNlIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtOmZsZXggcHgtOCBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGwgbXItNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24uYWxsb3dlZEN1c3RvbWVyRmFybUZpZWxkcy5wZXJzb25JbkNoYXJnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5QZXJzb24gSW4gQ2hhcmdlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJwZXJzb25JbkNoYXJnZVwiIHBsYWNlaG9sZGVyPVwiUGVyc29uIEluIENoYXJnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIncGVyc29uSW5DaGFyZ2UnXCIgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1c3RvbWVyRmFybUZvcm0uZ2V0KCdwZXJzb25JbkNoYXJnZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGN1c3RvbWVyRmFybUNvbmZpZ3VyYXRpb24ucmVxdWlyZWRDdXN0b21lckZhcm1GaWVsZHMucGVyc29uSW5DaGFyZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb24gSW4gQ2hhcmdlIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXgtYXV0byB3LWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLmFsbG93ZWRDdXN0b21lckZhcm1GaWVsZHMuZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGlzcGxheSBOYW1lPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaWQ9XCJkaXNwbGF5TmFtZVwiIHBsYWNlaG9sZGVyPVwiRGlzcGxheSBOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIidkaXNwbGF5TmFtZSdcIiAoY2hhbmdlKT1cImVtaXREYXRhVG9QYXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic206ZmxleCBweC04IHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleC1hdXRvIHctZnVsbCBtci00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLnByaW1hcnlWZXRJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5QcmltYXJ5IFZldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwicHJpbWFyeVZldElkXCIgcGxhY2Vob2xkZXI9XCJQcmltYXJ5IFZldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIncHJpbWFyeVZldElkJ1wiIChjaGFuZ2UpPVwiZW1pdERhdGFUb1BhcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21lckZhcm1Gb3JtLmdldCgncHJpbWFyeVZldElkJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5yZXF1aXJlZEN1c3RvbWVyRmFybUZpZWxkcy5wcmltYXJ5VmV0SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmltYXJ5IFZldCBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4LWF1dG8gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tZXJGYXJtQ29uZmlndXJhdGlvbi5hbGxvd2VkQ3VzdG9tZXJGYXJtRmllbGRzLlBJQ1RhdHRvb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5QSUMvVGF0dG9vIChpZiBhcHBsaWNhYmxlKTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGlkPVwiUElDVGF0dG9vXCIgcGxhY2Vob2xkZXI9XCJQSUMvVGF0dG9vXCIgW2Zvcm1Db250cm9sTmFtZV09XCInUElDVGF0dG9vJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJlbWl0RGF0YVRvUGFyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gQ3VzdG9tZXIgRmFybSBzZWN0aW9uIEVuZCAgLS0+XHJcblxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBmb3JtIGNvZGUgZW5kcyBoZXJlIC0tPlxyXG5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJjdXN0b21lckZhcm1Db25maWd1cmF0aW9uLnNob3dHcmlkXCI+XHJcbiAgICA8bGliLWtlbmRvLWdyaWQtdmlldyBbY29uZmlndXJhdGlvbl09XCJncmlkQ29uZmlndXJhdGlvblwiIChldmVudHMpPVwiaGFuZGxlR3JpZEV2ZW50cygkZXZlbnQpXCI+PC9saWIta2VuZG8tZ3JpZC12aWV3PlxyXG4gIDwvZGl2PlxyXG4iXX0=
@@ -340,7 +340,6 @@ class CustomerFarmComponent {
340
340
  }
341
341
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {
342
342
  this.customerFarmForm.get('clientNumber').addValidators(Validators.required);
343
- this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));
344
343
  this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));
345
344
  }
346
345
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {
@@ -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\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
1
+ {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
@@ -319,7 +319,6 @@ class CustomerFarmComponent {
319
319
  }
320
320
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {
321
321
  this.customerFarmForm.get('clientNumber').addValidators(Validators.required);
322
- this.customerFarmForm.get('clientNumber').addValidators(Validators.pattern('^[a-zA-Z ]*$'));
323
322
  this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));
324
323
  }
325
324
  if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {
@@ -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\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
1
+ {"version":3,"file":"qubesense-customer-farm.mjs","sources":["../../../projects/customer-farm/src/lib/dependencies/customer-farm-api-urls.ts","../../../projects/customer-farm/src/lib/customer-farm.service.ts","../../../projects/customer-farm/src/lib/dependencies/customer-farm-model.ts","../../../projects/customer-farm/src/lib/customer-farm.component.ts","../../../projects/customer-farm/src/lib/customer-farm.component.html","../../../projects/customer-farm/src/lib/customer-farm.module.ts","../../../projects/customer-farm/src/public-api.ts","../../../projects/customer-farm/src/qubesense-customer-farm.ts"],"sourcesContent":["export class CustomerFarmApiUrls {\r\n //api Url string for get data by Id\r\n getCustomerFarmByIdUrl: string = 'api/CustomerFarm/GetById';\r\n \r\n //api Url string for insert Customer data\r\n insertCustomerFarmDataUrl: string = 'api/CustomerFarm/Create';\r\n\r\n //api Url string for update Customer record\r\n updateCustomerFarmDataUrl: string = 'api/CustomerFarm/Update';\r\n\r\n //api Url string for delete Customer record\r\n deleteCustomerFarmDataUrl: string = 'api/CustomerFarm/Delete';\r\n\r\n //api Url string for get Customer list\r\n getCustomerFarmListUrl: string = 'api/CustomerFarm/GetAll';\r\n \r\n //api Url string for get Customer dropdown list\r\n getCustomerFarmDropdownListUrl: string = 'api/CustomerFarm/GetDropdownList';\r\n\r\n //api Url string for get Warehouse dropdown list\r\n getWarehouseDropdownListUrl: string = 'api/CustomerFarm/GetWarehouseDropdownList';\r\n\r\n //api Url string for get Customer dropdown list\r\n getcustomerlistbykeyword: string = 'api/CustomerFarm/SearchCustomer';\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerFarmApiUrls } from './dependencies/customer-farm-api-urls';\r\nimport { CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerFarmService {\r\n\r\n constructor(private dataAccessService: DataAccessService) { }\r\n\r\n customerFarmApiUrls = new CustomerFarmApiUrls();\r\n\r\n private customerNameSource = new BehaviorSubject<string>('');\r\n currentCustomerName = this.customerNameSource.asObservable();\r\n\r\n updateCustomerName(customerName: string) {\r\n this.customerNameSource.next(customerName);\r\n }\r\n\r\n /**\r\n * service for get customer data by Id\r\n * \r\n * @param customerGUID \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetDataById(customerGUID: string): Promise<WebApiResult> {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmByIdUrl + '/' + customerGUID;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for inserting customer data into database\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async InsertData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.insertCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.InsertData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for update customer Data\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async UpdateData(customerFarmModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.updateCustomerFarmDataUrl;\r\n const resultResponse = await this.dataAccessService.UpdateData(url, customerFarmModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for delete customer data by GUID\r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response message from Database\r\n */\r\n public async DeleteData(recordId: any) {\r\n try {\r\n const url = this.customerFarmApiUrls.deleteCustomerFarmDataUrl + '/' + recordId;\r\n const resultResponse = await this.dataAccessService.DeleteData(url);\r\n return resultResponse;\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer grid \r\n * \r\n * @param customerFarmModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\n public async GetListData(customerDataModel: CustomerFarmModel) {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmListUrl;\r\n const resultResponse = await this.dataAccessService.GetListData(url, customerDataModel);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * service for get data for customer DropDown List\r\n * \r\n * @returns \r\n */\r\n public async GetCustomersDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getCustomerFarmDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetCustomerListByKeyword(value:string) {\r\n try {\r\n const url = this.customerFarmApiUrls.getcustomerlistbykeyword + '/' + value;\r\n const resultResponse = await this.dataAccessService.GetDataById(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async GetWarehouseDropdownList() {\r\n try {\r\n const url = this.customerFarmApiUrls.getWarehouseDropdownListUrl;\r\n const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n return resultResponse;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n","export class CustomerFarmModel {\r\n formCode: string = null;\r\n formId: string = '';\r\n recordId: string = null;\r\n customerId: string = null;\r\n clientNumber: string = '';\r\n customerName: string = '';\r\n defaultWarehouse: string = '';\r\n personInCharge: string = '';\r\n displayName: string = '';\r\n primaryVetId: string = '';\r\n PICTattoo: string = '';\r\n isActive: boolean = true;\r\n isDeleted: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmConfigrationModel {\r\n formCode: string = null;\r\n customerId: string = null;\r\n defaultView: boolean = false;\r\n showModal: boolean = false;\r\n showGrid: boolean = false;\r\n isSearchable: boolean = false;\r\n showClientData: boolean = false;\r\n customerData: CustomerFarmModel = null;\r\n userMessages: boolean = false;\r\n requiredCustomerFarmSection: boolean = false;\r\n allowedCustomerFarmSection: boolean = false;\r\n requiredCustomerFarmFields: RequiredCustomerFarmFields = new RequiredCustomerFarmFields();\r\n allowedCustomerFarmFields: AllowedCustomerFarmFields = new AllowedCustomerFarmFields();\r\n customerFarmGridConfigration: CustomerFarmGridConfigration = new CustomerFarmGridConfigration();\r\n}\r\n\r\nexport class RequiredCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n customerId: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n displayName: boolean = true;\r\n PICTattoo: boolean = false;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class AllowedCustomerFarmFields {\r\n clientNumber: boolean = true;\r\n customerName: boolean = true;\r\n defaultWarehouse: boolean = true;\r\n personInCharge: boolean = true;\r\n primaryVetId: boolean = true;\r\n PICTattoo: boolean = true;\r\n displayName: boolean = true;\r\n profileImageURL: boolean = false;\r\n}\r\n\r\nexport class CustomerFarmGridConfigration {\r\n formCodeForJsonHeader: string = null;\r\n formCodeForGridPermission: string = null;\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CustomerFarmConfigrationModel, CustomerFarmModel } from './dependencies/customer-farm-model';\r\nimport { ApplicationRoleMenusService, ErrorLogService, GridEventsModel, JsonFormsService, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerFarmService } from './customer-farm.service';\r\n\r\n@Component({\r\n selector: 'lib-customer-farm',\r\n templateUrl: './customer-farm.component.html',\r\n styleUrls: ['./customer-farm.component.scss']\r\n})\r\nexport class CustomerFarmComponent implements OnInit {\r\n @Output() customerFarmData = new EventEmitter<any>();\r\n @Input() public customerFarmConfiguration: CustomerFarmConfigrationModel = new CustomerFarmConfigrationModel();\r\n customerFarmForm: FormGroup;\r\n userMessages: string[] = [];\r\n public gridData: any[] = [];\r\n gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n hideButtons = false;\r\n isViewCall = false;\r\n speciesList: any[] = [];\r\n warehouseList: any[] = [];\r\n filteredCustomers: [];\r\n\r\n permission: any = [];\r\n userData: any = [];\r\n HideAddButton: boolean;\r\n\r\n\r\n constructor(private customerFarmService: CustomerFarmService,\r\n private jsonForms: JsonFormsService,\r\n private applicationRoleMenusService: ApplicationRoleMenusService,\r\n private formBuilder: FormBuilder,\r\n private errorLogService: ErrorLogService,\r\n private toastr: ToastrNotificationService\r\n ) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DeclareForm();\r\n if (this.customerFarmConfiguration.showGrid) {\r\n this.gridConfiguration.formCodeForJsonHeader = 'CUFA';\r\n this.gridConfiguration.formCodeForGridPermissions = this.customerFarmConfiguration.customerFarmGridConfigration.formCodeForGridPermission;\r\n this.gridConfiguration.showModal = true;\r\n await this.permissionMethod();\r\n //this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false }; \r\n this.GetListData();\r\n //this.getWarehouseList();\r\n }\r\n this.getWarehouseList();\r\n\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe((value) => {\r\n this.customerFarmService.updateCustomerName(value);\r\n });\r\n }\r\n\r\n public async permissionMethod() {\r\n this.userData = JSON.parse(localStorage.getItem(\"sessionUser\"));\r\n const getResponse = await this.applicationRoleMenusService.GetAssignedRoleAuth(this.userData.sessionUser.userEmail, this.gridConfiguration.formCodeForGridPermissions);\r\n this.permission = getResponse.apiData[0];\r\n this.HideAddButton = this.permission.canAdd == false ? true : false;\r\n }\r\n\r\n DeclareForm() {\r\n this.customerFarmForm = this.formBuilder.group({\r\n recordId: [null],\r\n customerId: [null],\r\n clientNumber: [null],\r\n customerName: [null],\r\n defaultWarehouse: [null],\r\n personInCharge: [null],\r\n displayName: [null],\r\n primaryVetId: [null],\r\n PICTattoo: [null],\r\n isActive: [true]\r\n });\r\n this.onChanges();\r\n\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.customerName) {\r\n this.customerFarmForm.get('customerName').addValidators(Validators.required);\r\n this.customerFarmForm.get('customerName').addValidators(Validators.pattern('^[a-zA-Z ]*$'));\r\n this.customerFarmForm.get('customerName').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.clientNumber) {\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.required);\r\n this.customerFarmForm.get('clientNumber').addValidators(Validators.minLength(3));\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse) {\r\n this.customerFarmForm.get('defaultWarehouse').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.personInCharge) {\r\n this.customerFarmForm.get('personInCharge').addValidators(Validators.required);\r\n }\r\n if (this.customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId) {\r\n this.customerFarmForm.get('primaryVetId').addValidators(Validators.required);\r\n }\r\n }\r\n\r\n ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n onChanges(): void {\r\n this.customerFarmForm.get('customerName').valueChanges.subscribe(val => {\r\n this.customerFarmForm.patchValue({\r\n displayName: val\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * edit data list item using data item GUID\r\n *\r\n * @param customerId\r\n *\r\n * gets customer GUID from gridData and passes it to this function\r\n */\r\n async EditData(customerId: string) {\r\n const getResponse = await this.customerFarmService.GetDataById(customerId);\r\n this.customerFarmForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n this.customerFarmForm.controls['customerId'].setValue(getResponse.apiData.customerId);\r\n this.customerFarmForm.controls['clientNumber'].setValue(getResponse.apiData.clientNumber);\r\n this.customerFarmForm.controls['customerName'].setValue(getResponse.apiData.customerName);\r\n this.customerFarmForm.controls['defaultWarehouse'].setValue(getResponse.apiData.defaultWarehouse);\r\n this.customerFarmForm.controls['personInCharge'].setValue(getResponse.apiData.personInCharge);\r\n this.customerFarmForm.controls['displayName'].setValue(getResponse.apiData.displayName);\r\n this.customerFarmForm.controls['primaryVetId'].setValue(getResponse.apiData.primaryVetId);\r\n this.customerFarmForm.controls['PICTattoo'].setValue(getResponse.apiData.picTattoo);\r\n this.customerFarmForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * this method converts all form inputs into model class\r\n *\r\n * @returns model with new form values\r\n */\r\n ConvertFormToModel() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel.recordId = this.customerFarmForm.value.recordId;\r\n customerFarmModel.clientNumber = this.customerFarmForm.value.clientNumber;\r\n customerFarmModel.customerName = this.customerFarmForm.value.customerName;\r\n customerFarmModel.defaultWarehouse = this.customerFarmForm.value.defaultWarehouse;\r\n customerFarmModel.personInCharge = this.customerFarmForm.value.personInCharge;\r\n customerFarmModel.displayName = this.customerFarmForm.value.displayName;\r\n customerFarmModel.primaryVetId = this.customerFarmForm.value.primaryVetId;\r\n customerFarmModel.PICTattoo = this.customerFarmForm.value.PICTattoo;\r\n customerFarmModel.customerId = this.customerFarmConfiguration.customerId;\r\n customerFarmModel.formCode = this.customerFarmConfiguration.formCode;\r\n\r\n return customerFarmModel;\r\n }\r\n\r\n /**\r\n * @description\r\n * clear form data\r\n */\r\n ClearForm() {\r\n this.DeclareForm();\r\n }\r\n\r\n emitDataToParent() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n this.customerFarmData.emit(customerFarmModel);\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Insert customer data into database\r\n */\r\n public async InsertData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.InsertData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * update customer data into database\r\n */\r\n public async UpdateData() {\r\n let customerFarmModel = new CustomerFarmModel();\r\n customerFarmModel = this.ConvertFormToModel();\r\n const getResponse = await this.customerFarmService.UpdateData(customerFarmModel);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n *\r\n * Delete customer data into database\r\n */\r\n public async DeleteData(value) {\r\n const getResponse = await this.customerFarmService.DeleteData(value);\r\n this.userMessages = getResponse.message.userMessage;\r\n if (this.customerFarmConfiguration.userMessages) {\r\n this.toastr.ShowSuccess(this.userMessages.toString());\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * \r\n * Grid events calls\r\n */\r\n handleGridEvents(gridEvents: GridEventsModel) {\r\n gridEvents.editRecord.subscribe((recordId) => {\r\n this.hideButtons = false;\r\n this.isViewCall = false;\r\n this.EditData(recordId);\r\n this.customerFarmForm.enable();\r\n });\r\n gridEvents.deleteRecord.subscribe((recordId) => {\r\n this.DeleteData(recordId);\r\n });\r\n gridEvents.viewRecord.subscribe(async (recordId) => {\r\n this.EditData(recordId);\r\n this.customerFarmForm.disable();\r\n\r\n });\r\n }\r\n\r\n public async getWarehouseList() {\r\n try {\r\n const getResponse = await this.customerFarmService.GetWarehouseDropdownList();\r\n this.warehouseList = getResponse.apiData;\r\n }\r\n catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @description\r\n * get data for Customer grid list\r\n */\r\n public async GetListData() {\r\n const customerFarmModel = new CustomerFarmModel();\r\n try {\r\n const getResponse = await this.customerFarmService.GetListData(customerFarmModel);\r\n getResponse.apiData.forEach(record => {\r\n record.createdOnUTC = new Date(record.createdOnUTC);\r\n });\r\n this.gridData = getResponse.apiData;\r\n } catch (error) {\r\n this.errorLogService.saveError(error);\r\n this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n <!-- form code starts here -->\r\n <!--content-->\r\n <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerFarmConfiguration.showModal\">\r\n\r\n <!--form body-->\r\n <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerFarmForm\">\r\n <!-- Customer Farm section start -->\r\n\r\n <div class=\"sm:flex\">\r\n <div class=\"w-full\">\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.clientNumber\">\r\n <mat-label>Client Number</mat-label>\r\n <input matInput id=\"clientNumber\" placeholder=\"Client Number\" minlength=\"3\" [formControlName]=\"'clientNumber'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('clientNumber').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.clientNumber\">\r\n Client Number is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('clientNumber').hasError('minlength')\">\r\n Client Number must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <div class=\"flex-auto w-full\"></div>\r\n </div>\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.customerName\">\r\n <mat-label>Client Name</mat-label>\r\n <input matInput id=\"customerName\" placeholder=\"Client Name\" pattern=\"^[a-zA-Z ]*$\"\r\n minlength=\"3\" [formControlName]=\"'customerName'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('customerName').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.customerName \">\r\n Client Name is required\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('pattern')\">\r\n Please enter valid Client name\r\n </mat-error>\r\n <mat-error *ngIf=\"customerFarmForm.get('customerName').hasError('minlength')\">\r\n Client name must be of atleast 3 characters\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.defaultWarehouse\">\r\n <mat-label>Default Warehouse</mat-label>\r\n <mat-select matSelect [formControlName]=\"'defaultWarehouse'\" (selectionChange)=\"emitDataToParent()\">\r\n <mat-option *ngFor=\"let warehouse of warehouseList\"\r\n [value]=\"warehouse.dataValue\">{{warehouse.dataText}}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('defaultWarehouse').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.defaultWarehouse\">\r\n Default Warehouse is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.personInCharge\">\r\n <mat-label>Person In Charge</mat-label>\r\n <input matInput id=\"personInCharge\" placeholder=\"Person In Charge\"\r\n [formControlName]=\"'personInCharge'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('personInCharge').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.personInCharge\">\r\n Person In Charge is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.displayName\">\r\n <mat-label>Display Name</mat-label>\r\n <input matInput id=\"displayName\" placeholder=\"Display Name\"\r\n [formControlName]=\"'displayName'\" (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"sm:flex px-8 pt-4\">\r\n <mat-form-field class=\"flex-auto w-full mr-4\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.primaryVetId\">\r\n <mat-label>Primary Vet</mat-label>\r\n <input matInput id=\"primaryVetId\" placeholder=\"Primary Vet\"\r\n [formControlName]=\"'primaryVetId'\" (change)=\"emitDataToParent()\">\r\n <mat-error\r\n *ngIf=\"customerFarmForm.get('primaryVetId').hasError('required') && customerFarmConfiguration.requiredCustomerFarmFields.primaryVetId\">\r\n Primary Vet is required\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-auto w-full\"\r\n *ngIf=\"customerFarmConfiguration.allowedCustomerFarmFields.PICTattoo\">\r\n <mat-label>PIC/Tattoo (if applicable)</mat-label>\r\n <input matInput id=\"PICTattoo\" placeholder=\"PIC/Tattoo\" [formControlName]=\"'PICTattoo'\"\r\n (change)=\"emitDataToParent()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- Customer Farm section End -->\r\n\r\n </form>\r\n </div>\r\n <!-- form code ends here -->\r\n\r\n</div>\r\n<div *ngIf=\"customerFarmConfiguration.showGrid\">\r\n <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n </div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CustomerFarmComponent } from './customer-farm.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule, SharedModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { KendoGridViewModule } from '@qubesense/base-services';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerFarmComponent\r\n ],\r\n imports: [\r\n MatIconModule,\r\n MatInputModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CommonModule,\r\n GridModule,\r\n ButtonsModule,\r\n MatGridListModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatOptionModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n ExcelModule,\r\n MatStepperModule,\r\n CdkStepperModule,\r\n KendoGridViewModule\r\n ],\r\n exports: [\r\n CustomerFarmComponent\r\n ]\r\n})\r\nexport class CustomerFarmModule { }\r\n","/*\r\n * Public API Surface of customer-farm\r\n */\r\n\r\nexport * from './lib/customer-farm.service';\r\nexport * from './lib/customer-farm.component';\r\nexport * from './lib/customer-farm.module';\r\nexport * from './lib/dependencies/customer-farm-api-urls';\r\nexport * from './lib/dependencies/customer-farm-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.CustomerFarmService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qubesense/customer-farm",
3
3
  "license": "qubesense",
4
- "version": "0.2.4",
4
+ "version": "0.2.5",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^14.1.0",
7
7
  "@angular/core": "^14.1.0"