nuxeo-development-framework 1.3.4 → 1.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -61,7 +61,9 @@ export class DepartmentFormComponent {
61
61
  }, (err) => {
62
62
  this.loading = false;
63
63
  this.dialogRef.close(false);
64
- this.toastr.show('error', 'error', 'error');
64
+ this.toastr.show('error', 'error', err.ret.message ?
65
+ `errors.${err.ret.code}`
66
+ : 'genericError');
65
67
  });
66
68
  }
67
69
  else {
@@ -73,7 +75,9 @@ export class DepartmentFormComponent {
73
75
  this.toastr.show('success', 'success', 'success');
74
76
  }, (err) => {
75
77
  this.loading = false;
76
- this.toastr.show('error', 'error', 'error');
78
+ this.toastr.show('error', 'error', err.ret.message ?
79
+ `errors.${err.ret.code}`
80
+ : 'genericError');
77
81
  });
78
82
  }
79
83
  }
@@ -104,7 +108,9 @@ export class DepartmentFormComponent {
104
108
  this.toastr.show('success', 'success', 'success');
105
109
  }, (err) => {
106
110
  this.loading = false;
107
- this.toastr.show('error', 'error', 'error');
111
+ this.toastr.show('error', 'error', err.ret.message ?
112
+ `errors.${err.ret.code}`
113
+ : 'genericError');
108
114
  });
109
115
  }
110
116
  }
@@ -121,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
121
127
  type: Inject,
122
128
  args: [MAT_DIALOG_DATA]
123
129
  }] }, { type: i1.MatDialogRef }, { type: i2.CustomToastrService }, { type: i3.DepartmentApiService }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZGVwYXJ0bWVudC1mb3JtL2RlcGFydG1lbnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2RlcGFydG1lbnQtZm9ybS9kZXBhcnRtZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWF6RSxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQ2tDLElBQUksRUFDN0IsU0FBZ0QsRUFDL0MsTUFBMkIsRUFDM0IsMkJBQWlEO1FBSHpCLFNBQUksR0FBSixJQUFJLENBQUE7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBdUM7UUFDL0MsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFzQjtRQVQzRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTbkIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM3QixLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxD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SUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDOztvSEExR1UsdUJBQXVCLGtCQU94QixlQUFlO3dHQVBkLHVCQUF1QiwyRENmcEMscWpIQW9HQTsyRkRyRmEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNoRDs7MEJBUUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRyZWV2aWV3SXRlbSB9IGZyb20gJ25neC10cmVldmlldyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9zZXJ2aWNlcy9kZXBhcnRtZW50LW1hbmFnZW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtZGVwYXJ0bWVudC1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVwYXJ0bWVudC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZXBhcnRtZW50LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgZGVwSWQ7XHJcbiAgdXBkYXRlTW9kZSA9IGZhbHNlO1xyXG4gIGRlcENvZGU7XHJcbiAgaXRlbTogVHJlZXZpZXdJdGVtO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERlcGFydG1lbnRGb3JtQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgdG9hc3RyOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2U6IERlcGFydG1lbnRBcGlTZXJ2aWNlLFxyXG4gICkge31cclxuICBkZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgdGl0bGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCAsVmFsaWRhdG9ycy5wYXR0ZXJuKG5ldyBSZWdFeHAoXCJeXFxcXFMqJFwiKSldKSxcclxuICAgIGFnZW5jeUNvZGU6IG5ldyBGb3JtQ29udHJvbCgndGRmJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBhcmFiaWNOYW1lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBlbmdsaXNoTmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgZGVwdFR5cGVlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgaXNBbGxvd1JlY0V4dGVybmFsOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgLy8gbWFuYWdlcjogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVwSWQgPSB0aGlzLmRhdGEuZGVwSWQ7XHJcbiAgICB0aGlzLnVwZGF0ZU1vZGUgPSB0aGlzLmRhdGEudXBkYXRlTW9kZTtcclxuICAgIHRoaXMuZGVwQ29kZSA9IHRoaXMuZGF0YS5kZXBDb2RlO1xyXG4gICAgdGhpcy5pdGVtID0gdGhpcy5kYXRhLml0ZW07XHJcbiAgICBpZiAodGhpcy51cGRhdGVNb2RlKSB7XHJcbiAgICAgIHRoaXMuZ2V0RGVwYXJ0bWVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyTnVsbFZhbHVlcyhmb3JtVmFsdWUpIHtcclxuICAgIGNvbnN0IGZpbHRlcmVkID0ge307XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gZm9ybVZhbHVlKSB7XHJcbiAgICAgIGlmIChmb3JtVmFsdWVba2V5XSkge1xyXG4gICAgICAgIGZpbHRlcmVkW2tleV0gPSBmb3JtVmFsdWVba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcmVkO1xyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRlcE9iaiA9IHRoaXMuZmlsdGVyTnVsbFZhbHVlcyh0aGlzLmRlcGFydG1lbnRGb3JtLnZhbHVlKTtcclxuICAgIGlmICh0aGlzLmRlcElkID09PSAncm9vdCcpIHtcclxuICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UuY3JlYXRlRGVwYXJ0bWVudEluUm9vdChkZXBPYmopLnN1YnNjcmliZShcclxuICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpO1xyXG4gICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnc3VjY2VzcycsICdzdWNjZXNzJywgJ3N1Y2Nlc3MnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnZXJyb3InLCAnZXJyb3InLCAnZXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVEZXBhcnRtZW50KGRlcE9iaiwgdGhpcy5kZXBJZClcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ3N1Y2Nlc3MnLCAnc3VjY2VzcycsICdzdWNjZXNzJyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnZXJyb3InLCAnZXJyb3InLCAnZXJyb3InKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBkZXBhcnRtZW50Rm9ybVBvcHVsYXRlKGRlcGFydG1lbnQpIHtcclxuICAgIHRoaXMuZGVwYXJ0bWVudEZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIHRpdGxlOiBkZXBhcnRtZW50LnRpdGxlLFxyXG4gICAgICBhcmFiaWNOYW1lOiBkZXBhcnRtZW50LmFyYWJpY05hbWUsXHJcbiAgICAgIGVuZ2xpc2hOYW1lOiBkZXBhcnRtZW50LmVuZ2xpc2hOYW1lLFxyXG4gICAgICBkZXB0VHlwZWU6IGRlcGFydG1lbnQuZGVwdFR5cGVlLFxyXG4gICAgICBkZXNjcmlwdGlvbjogZGVwYXJ0bWVudC5kZXNjcmlwdGlvbixcclxuICAgICAgaXNBbGxvd1JlY0V4dGVybmFsOiBkZXBhcnRtZW50LmlzQWxsb3dSZWNFeHRlcm5hbCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXREZXBhcnRtZW50KCkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2VcclxuICAgICAgLmdldERlcGFydG1lbnQodGhpcy5kZXBJZClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kZXBhcnRtZW50Rm9ybVBvcHVsYXRlKHJlcy5wcm9wZXJ0aWVzKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZVxyXG4gICAgICAudXBkYXRlRGVwYXJ0bWVudCh0aGlzLmRlcGFydG1lbnRGb3JtLnZhbHVlLCB0aGlzLmRlcElkKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdzdWNjZXNzJywgJ3N1Y2Nlc3MnLCAnc3VjY2VzcycpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdlcnJvcicsICdlcnJvcicsICdlcnJvcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBTZXREaXJSdGwgY2xhc3M9XCJ2b2MtZm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2b2MtZm9ybS1oZWRhZXJcIj5cclxuICAgIHt7XHJcbiAgICAgIFwiZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uXCIgKyAodXBkYXRlTW9kZSA/IFwidXBkYXRlSGVhZGVyXCIgOiBcImhlYWRlclwiKVxyXG4gICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICB9fVxyXG4gIDwvZGl2PlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZGVwYXJ0bWVudEZvcm1cIiBjbGFzcz1cInJvdyB2b2MtZm9ybS1ib2R5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLTEyXCI+XHJcbiAgICAgIDxhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgIFtsYWJlbF09XCInZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0udGl0bGUnXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwidXBkYXRlTW9kZVwiXHJcbiAgICAgICAgW3ByZXZlbnRTcGFjZV09XCJ0cnVlXCJcclxuICAgICAgPjwvYXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbT5cclxuICAgICAgPGRpdiBjbGFzcz1cImhpbnQtbXNnXCI+e3sgXCJkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5oaW50TXNnXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8YXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbVxyXG4gICAgICBjbGFzcz1cImNvbC1sZy02IGNvbC0xMlwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImFnZW5jeUNvZGVcIlxyXG4gICAgICBbbGFiZWxdPVwiJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLkFnZW5jeUNvZGUnXCJcclxuICAgID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+IC0tPlxyXG4gICAgPGFwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW1cclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTJcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcmFiaWNOYW1lXCJcclxuICAgICAgW2xhYmVsXT1cIidkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5BcmFiaWNOYW1lJ1wiXHJcbiAgICA+PC9hcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtPlxyXG4gICAgPGFwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW1cclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTJcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmdsaXNoTmFtZVwiXHJcbiAgICAgIFtsYWJlbF09XCInZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uRW5nbGlzaE5hbWUnXCJcclxuICAgID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+XHJcbiAgICA8YXBwLWR5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW1cclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTJcIlxyXG4gICAgICBbbGFiZWxdPVwiJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLmRlcHRUeXBlZSdcIlxyXG4gICAgICBbYmluZExhYmVsXT1cIidsYWJlbCdcIlxyXG4gICAgICBbYmluZFZhbHVlXT1cIidpZCdcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdWT0NBQlVMQVJZLlNFTEVDVF9JVEVNJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICAgICAgW2Nsb3NlT25TZWxlY3RdPVwidHJ1ZVwiXHJcbiAgICAgIFtoaWRlU2VsZWN0ZWRJdGVtc109XCJmYWxzZVwiXHJcbiAgICAgIFt2b2NhYnVsYXJ5VHlwZV09XCInVk9DX0RlcGFydG1lbnRUeXBlJ1wiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlcHRUeXBlZVwiXHJcbiAgICA+XHJcbiAgICA8L2FwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtPlxyXG4gICAgPGFwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW1cclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTJcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgIFtsYWJlbF09XCInZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uRGVzY3JpcHRpb24nXCJcclxuICAgID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+XHJcbiAgICA8IS0tIDxjdHMtZHluYW1pYy1mb3JtLXNlbGVjdC11c2Vyc1xyXG4gICAgICBjbGFzcz1cImNvbC1sZy02IGNvbC0xMlwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1hbmFnZXJcIlxyXG4gICAgICBbYmluZFZhbHVlXT1cIlwiXHJcbiAgICAgIFtiaW5kTGFiZWxdPVwiXCJcclxuICAgICAgW2xhYmVsXT1cIidkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5NYW5hZ2VyJ1wiXHJcbiAgICAgIFtkZXB0VGl0bGVdPVwiJ2FsbCdcIlxyXG4gICAgICBbYmluZFZhbHVlXT1cIidwcm9wZXJ0aWVzLnVzZXJuYW1lJ1wiXHJcbiAgICA+PC9jdHMtZHluYW1pYy1mb3JtLXNlbGVjdC11c2Vycz4gLS0+XHJcblxyXG4gICAgPGN0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbVxyXG4gICAgICBjbGFzcz1cImNvbC1sZy02IGNvbC0xMiBpc0FsbG93UmVjRXh0ZXJuYWxcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJpc0FsbG93UmVjRXh0ZXJuYWxcIlxyXG4gICAgICBbbGFiZWxdPVwiJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLmlzQWxsb3dSZWNFeHRlcm5hbCdcIlxyXG4gICAgPjwvY3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtPlxyXG4gIDwvZm9ybT5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwIGQtZmxleCBmbGV4LXJvdy1yZXZlcnNlXCI+XHJcbiAgICA8Y3RzLWJ1dHRvblxyXG4gICAgICBbdGhlbWVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICBzaXplPVwiJ3JlZ3VsYXInXCJcclxuICAgICAgY2xhc3M9XCJ2b2MtZm9ybS1jbG9zZVwiXHJcbiAgICAgIG1hdC1kaWFsb2ctY2xvc2VcclxuICAgID5cclxuICAgICAge3sgXCJCVVRUT05TLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvY3RzLWJ1dHRvbj5cclxuICAgIDxjdHMtYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiIXVwZGF0ZU1vZGVcIlxyXG4gICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgc2l6ZT1cIidyZWd1bGFyJ1wiXHJcbiAgICAgIFt0aGVtZV09XCIncHJpbWFyeSdcIlxyXG4gICAgICBjbGFzcz1cInZvYy1mb3JtLXN1Ym1pdFwiXHJcbiAgICAgIChvbkNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkZXBhcnRtZW50Rm9ybS5pbnZhbGlkXCJcclxuICAgID5cclxuICAgICAge3sgXCJCVVRUT05TLlNBVkVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9jdHMtYnV0dG9uPlxyXG4gICAgPGN0cy1idXR0b25cclxuICAgICAgKm5nSWY9XCJ1cGRhdGVNb2RlXCJcclxuICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgIHNpemU9XCIncmVndWxhcidcIlxyXG4gICAgICBbdGhlbWVdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgY2xhc3M9XCJ2b2MtZm9ybS1zdWJtaXRcIlxyXG4gICAgICAob25DbGljayk9XCJ1cGRhdGUoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkZXBhcnRtZW50Rm9ybS5pbnZhbGlkXCJcclxuICAgID5cclxuICAgICAge3sgXCJCVVRUT05TLlVQREFURVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2N0cy1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZGVwYXJ0bWVudC1mb3JtL2RlcGFydG1lbnQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2RlcGFydG1lbnQtZm9ybS9kZXBhcnRtZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWF6RSxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQ2tDLElBQUksRUFDN0IsU0FBZ0QsRUFDL0MsTUFBMkIsRUFDM0IsMkJBQWlEO1FBSHpCLFNBQUksR0FBSixJQUFJLENBQUE7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBdUM7UUFDL0MsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFzQjtRQVQzRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTbkIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUM3QixLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxD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O0lBQ1AsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsMkJBQTJCO2FBQzdCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDdkQsU0FBUyxDQUNSLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDZixVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUN4QixDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDOztvSEFuSFUsdUJBQXVCLGtCQU94QixlQUFlO3dHQVBkLHVCQUF1QiwyRENmcEMscWpIQW9HQTsyRkRyRmEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNoRDs7MEJBUUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRyZWV2aWV3SXRlbSB9IGZyb20gJ25neC10cmVldmlldyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9zZXJ2aWNlcy9kZXBhcnRtZW50LW1hbmFnZW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvc2VydmljZXMvZGVwYXJ0bWVudC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtZGVwYXJ0bWVudC1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVwYXJ0bWVudC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZXBhcnRtZW50LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgZGVwSWQ7XHJcbiAgdXBkYXRlTW9kZSA9IGZhbHNlO1xyXG4gIGRlcENvZGU7XHJcbiAgaXRlbTogVHJlZXZpZXdJdGVtO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERlcGFydG1lbnRGb3JtQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgdG9hc3RyOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkZXBhcnRtZW50TWFuYWdlbWVudFNlcnZpY2U6IERlcGFydG1lbnRBcGlTZXJ2aWNlLFxyXG4gICkgeyB9XHJcbiAgZGVwYXJ0bWVudEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihuZXcgUmVnRXhwKFwiXlxcXFxTKiRcIikpXSksXHJcbiAgICBhZ2VuY3lDb2RlOiBuZXcgRm9ybUNvbnRyb2woJ3RkZicsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgYXJhYmljTmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgZW5nbGlzaE5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIGRlcHRUeXBlZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIGlzQWxsb3dSZWNFeHRlcm5hbDogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcclxuICAgIC8vIG1hbmFnZXI6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlcElkID0gdGhpcy5kYXRhLmRlcElkO1xyXG4gICAgdGhpcy51cGRhdGVNb2RlID0gdGhpcy5kYXRhLnVwZGF0ZU1vZGU7XHJcbiAgICB0aGlzLmRlcENvZGUgPSB0aGlzLmRhdGEuZGVwQ29kZTtcclxuICAgIHRoaXMuaXRlbSA9IHRoaXMuZGF0YS5pdGVtO1xyXG4gICAgaWYgKHRoaXMudXBkYXRlTW9kZSkge1xyXG4gICAgICB0aGlzLmdldERlcGFydG1lbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlck51bGxWYWx1ZXMoZm9ybVZhbHVlKSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZCA9IHt9O1xyXG4gICAgZm9yIChsZXQga2V5IGluIGZvcm1WYWx1ZSkge1xyXG4gICAgICBpZiAoZm9ybVZhbHVlW2tleV0pIHtcclxuICAgICAgICBmaWx0ZXJlZFtrZXldID0gZm9ybVZhbHVlW2tleV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJlZDtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBkZXBPYmogPSB0aGlzLmZpbHRlck51bGxWYWx1ZXModGhpcy5kZXBhcnRtZW50Rm9ybS52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5kZXBJZCA9PT0gJ3Jvb3QnKSB7XHJcbiAgICAgIHRoaXMuZGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmNyZWF0ZURlcGFydG1lbnRJblJvb3QoZGVwT2JqKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ3N1Y2Nlc3MnLCAnc3VjY2VzcycsICdzdWNjZXNzJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2Vycm9yJywgJ2Vycm9yJyxcclxuICAgICAgICAgICAgZXJyLnJldC5tZXNzYWdlID9cclxuICAgICAgICAgICAgICBgZXJyb3JzLiR7ZXJyLnJldC5jb2RlfWBcclxuICAgICAgICAgICAgICA6ICdnZW5lcmljRXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVEZXBhcnRtZW50KGRlcE9iaiwgdGhpcy5kZXBJZClcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ3N1Y2Nlc3MnLCAnc3VjY2VzcycsICdzdWNjZXNzJyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnZXJyb3InLCAnZXJyb3InLFxyXG4gICAgICAgICAgICAgIGVyci5yZXQubWVzc2FnZSA/XHJcbiAgICAgICAgICAgICAgICBgZXJyb3JzLiR7ZXJyLnJldC5jb2RlfWBcclxuICAgICAgICAgICAgICAgIDogJ2dlbmVyaWNFcnJvcicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlcGFydG1lbnRGb3JtUG9wdWxhdGUoZGVwYXJ0bWVudCkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50Rm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgdGl0bGU6IGRlcGFydG1lbnQudGl0bGUsXHJcbiAgICAgIGFyYWJpY05hbWU6IGRlcGFydG1lbnQuYXJhYmljTmFtZSxcclxuICAgICAgZW5nbGlzaE5hbWU6IGRlcGFydG1lbnQuZW5nbGlzaE5hbWUsXHJcbiAgICAgIGRlcHRUeXBlZTogZGVwYXJ0bWVudC5kZXB0VHlwZWUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBkZXBhcnRtZW50LmRlc2NyaXB0aW9uLFxyXG4gICAgICBpc0FsbG93UmVjRXh0ZXJuYWw6IGRlcGFydG1lbnQuaXNBbGxvd1JlY0V4dGVybmFsLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldERlcGFydG1lbnQoKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRNYW5hZ2VtZW50U2VydmljZVxyXG4gICAgICAuZ2V0RGVwYXJ0bWVudCh0aGlzLmRlcElkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmRlcGFydG1lbnRGb3JtUG9wdWxhdGUocmVzLnByb3BlcnRpZXMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgdXBkYXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlXHJcbiAgICAgIC51cGRhdGVEZXBhcnRtZW50KHRoaXMuZGVwYXJ0bWVudEZvcm0udmFsdWUsIHRoaXMuZGVwSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ3N1Y2Nlc3MnLCAnc3VjY2VzcycsICdzdWNjZXNzJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2Vycm9yJywgJ2Vycm9yJyxcclxuICAgICAgICAgICAgZXJyLnJldC5tZXNzYWdlID9cclxuICAgICAgICAgICAgICBgZXJyb3JzLiR7ZXJyLnJldC5jb2RlfWBcclxuICAgICAgICAgICAgICA6ICdnZW5lcmljRXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgU2V0RGlyUnRsIGNsYXNzPVwidm9jLWZvcm1cIj5cclxuICA8ZGl2IGNsYXNzPVwidm9jLWZvcm0taGVkYWVyXCI+XHJcbiAgICB7e1xyXG4gICAgICBcImRlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLlwiICsgKHVwZGF0ZU1vZGUgPyBcInVwZGF0ZUhlYWRlclwiIDogXCJoZWFkZXJcIilcclxuICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgfX1cclxuICA8L2Rpdj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRlcGFydG1lbnRGb3JtXCIgY2xhc3M9XCJyb3cgdm9jLWZvcm0tYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGNvbC0xMlwiPlxyXG4gICAgICA8YXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbVxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcclxuICAgICAgICBbbGFiZWxdPVwiJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLnRpdGxlJ1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInVwZGF0ZU1vZGVcIlxyXG4gICAgICAgIFtwcmV2ZW50U3BhY2VdPVwidHJ1ZVwiXHJcbiAgICAgID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoaW50LW1zZ1wiPnt7IFwiZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uaGludE1zZ1wiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gPGFwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW1cclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTJcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZ2VuY3lDb2RlXCJcclxuICAgICAgW2xhYmVsXT1cIidkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5BZ2VuY3lDb2RlJ1wiXHJcbiAgICA+PC9hcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtPiAtLT5cclxuICAgIDxhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtXHJcbiAgICAgIGNsYXNzPVwiY29sLWxnLTYgY29sLTEyXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXJhYmljTmFtZVwiXHJcbiAgICAgIFtsYWJlbF09XCInZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uQXJhYmljTmFtZSdcIlxyXG4gICAgPjwvYXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbT5cclxuICAgIDxhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtXHJcbiAgICAgIGNsYXNzPVwiY29sLWxnLTYgY29sLTEyXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5nbGlzaE5hbWVcIlxyXG4gICAgICBbbGFiZWxdPVwiJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLkVuZ2xpc2hOYW1lJ1wiXHJcbiAgICA+PC9hcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtPlxyXG4gICAgPGFwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtXHJcbiAgICAgIGNsYXNzPVwiY29sLWxnLTYgY29sLTEyXCJcclxuICAgICAgW2xhYmVsXT1cIidkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5kZXB0VHlwZWUnXCJcclxuICAgICAgW2JpbmRMYWJlbF09XCInbGFiZWwnXCJcclxuICAgICAgW2JpbmRWYWx1ZV09XCInaWQnXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnVk9DQUJVTEFSWS5TRUxFQ1RfSVRFTScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgIFtjbG9zZU9uU2VsZWN0XT1cInRydWVcIlxyXG4gICAgICBbaGlkZVNlbGVjdGVkSXRlbXNdPVwiZmFsc2VcIlxyXG4gICAgICBbdm9jYWJ1bGFyeVR5cGVdPVwiJ1ZPQ19EZXBhcnRtZW50VHlwZSdcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXB0VHlwZWVcIlxyXG4gICAgPlxyXG4gICAgPC9hcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbT5cclxuICAgIDxhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtXHJcbiAgICAgIGNsYXNzPVwiY29sLWxnLTYgY29sLTEyXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICBbbGFiZWxdPVwiJ2RlcGFydG1lbnRfbWFuYWdlbWVudC5mb3JtLkRlc2NyaXB0aW9uJ1wiXHJcbiAgICA+PC9hcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtPlxyXG4gICAgPCEtLSA8Y3RzLWR5bmFtaWMtZm9ybS1zZWxlY3QtdXNlcnNcclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTJcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJtYW5hZ2VyXCJcclxuICAgICAgW2JpbmRWYWx1ZV09XCJcIlxyXG4gICAgICBbYmluZExhYmVsXT1cIlwiXHJcbiAgICAgIFtsYWJlbF09XCInZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uTWFuYWdlcidcIlxyXG4gICAgICBbZGVwdFRpdGxlXT1cIidhbGwnXCJcclxuICAgICAgW2JpbmRWYWx1ZV09XCIncHJvcGVydGllcy51c2VybmFtZSdcIlxyXG4gICAgPjwvY3RzLWR5bmFtaWMtZm9ybS1zZWxlY3QtdXNlcnM+IC0tPlxyXG5cclxuICAgIDxjdHMtZHluYW1pYy1mb3JtLXNsaWRlLXRvZ2dsZWl0ZW1cclxuICAgICAgY2xhc3M9XCJjb2wtbGctNiBjb2wtMTIgaXNBbGxvd1JlY0V4dGVybmFsXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNBbGxvd1JlY0V4dGVybmFsXCJcclxuICAgICAgW2xhYmVsXT1cIidkZXBhcnRtZW50X21hbmFnZW1lbnQuZm9ybS5pc0FsbG93UmVjRXh0ZXJuYWwnXCJcclxuICAgID48L2N0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbT5cclxuICA8L2Zvcm0+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cCBkLWZsZXggZmxleC1yb3ctcmV2ZXJzZVwiPlxyXG4gICAgPGN0cy1idXR0b25cclxuICAgICAgW3RoZW1lXT1cIidkYW5nZXInXCJcclxuICAgICAgc2l6ZT1cIidyZWd1bGFyJ1wiXHJcbiAgICAgIGNsYXNzPVwidm9jLWZvcm0tY2xvc2VcIlxyXG4gICAgICBtYXQtZGlhbG9nLWNsb3NlXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiQlVUVE9OUy5DTE9TRVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2N0cy1idXR0b24+XHJcbiAgICA8Y3RzLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cIiF1cGRhdGVNb2RlXCJcclxuICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgIHNpemU9XCIncmVndWxhcidcIlxyXG4gICAgICBbdGhlbWVdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgY2xhc3M9XCJ2b2MtZm9ybS1zdWJtaXRcIlxyXG4gICAgICAob25DbGljayk9XCJzYXZlKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGVwYXJ0bWVudEZvcm0uaW52YWxpZFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiQlVUVE9OUy5TQVZFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvY3RzLWJ1dHRvbj5cclxuICAgIDxjdHMtYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwidXBkYXRlTW9kZVwiXHJcbiAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICBzaXplPVwiJ3JlZ3VsYXInXCJcclxuICAgICAgW3RoZW1lXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgIGNsYXNzPVwidm9jLWZvcm0tc3VibWl0XCJcclxuICAgICAgKG9uQ2xpY2spPVwidXBkYXRlKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGVwYXJ0bWVudEZvcm0uaW52YWxpZFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiQlVUVE9OUy5VUERBVEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9jdHMtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -67,7 +67,7 @@ export class PdftronComponent {
67
67
  forceClientSideInit: true,
68
68
  streaming: true,
69
69
  licenseKey: this.environment.pdftronLicenceKey,
70
- annotationUser: this.nuxeo.nuxeoClient.user.properties.username,
70
+ annotationUser: this.nuxeo.nuxeoClient.user.properties.firstName + ' ' + this.nuxeo.nuxeoClient.user.properties.lastName,
71
71
  disabledElements: ['downloadButton', 'printButton'],
72
72
  }, this.viewerRef.nativeElement).then((instance) => __awaiter(this, void 0, void 0, function* () {
73
73
  this.isArabic ? instance.setLanguage('ar') : instance.setLanguage('en');
@@ -406,4 +406,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
406
406
  }], SignatureEvent: [{
407
407
  type: Output
408
408
  }] } });
409
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBMkIsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQXdDM0IsWUFDUyxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLFVBQXNCLEVBQ3RCLGtCQUF1QyxFQUNoQixXQUFXO1FBTm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUF4Q25DLGtCQUFhLEdBQUcsS0FBSyxDQUFDLENB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Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRU4sTUFBTTtzQkFETCxNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViVmlld2VyLCB7IENvcmVDb250cm9scyB9IGZyb20gJ0BwZGZ0cm9uL3dlYnZpZXdlcic7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFBkZnRyb25TZXJ2aWNlIH0gZnJvbSAnLi9wZGZ0cm9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUFBfQkFTRV9IUkVGIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2VjdXJlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3NlY3VyZS5waXBlJztcclxuaW1wb3J0IHsgVGhyb3dTdG10IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBBIHJldXNhYmxlIGZpbGUgdmlld2VyIGJhc2VkIG9uIFBERlRyb24gTGlicmFyeVxyXG4gKiBAdGl0bGVcclxuICogUERGVHJvbiBWaWV3ZXJcclxuICogQGV4YW1wbGVcclxuICogPGFwcC1wZGZ0cm9uXHJcbiAqICAgW2ZpbGVEYXRhXT1cImZpbGVEYXRhXCJcclxuICogICBbZWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtkb2NJZF09XCJmaWxlSWRcIlxyXG4gKiAgIFtmaWxlVGl0bGVdPVwiZmlsZS50aXRsZVwiXHJcbiAqID5cclxuICogPC9hcHAtcGRmdHJvbj5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBkZnRyb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGZ0cm9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZGZ0cm9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbU2VjdXJlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZ0cm9uQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdmaWxlVmlld2VyJykgdmlld2VyUmVmOiBFbGVtZW50UmVmO1xyXG4gIHdlYlZpZXdlckluc3RhbmNlO1xyXG4gIC8qKiBEaXNhYmxlL0VuYWJsZSBBbm5vdGF0aW9uICovXHJcbiAgQElucHV0KClcclxuICBlZGl0TW9kZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhY3Rpb25DbGlja2VkID0gZmFsc2U7IC8vIHVzZWQgdG8ga25vdyBpZiB0aGVyZSBpcyBhY3Rpb24gY2xpY2tlZCBvdXRzaWRlIHRvIHN0YXJ0IGVkaXQgbW9kZSBvciBub3RcclxuICBpc0RvY3VtZW50TG9hZGluZzogYm9vbGVhbjtcclxuICBpc0ZldGNoaW5nOiBib29sZWFuO1xyXG4gIC8qKiBEb2N1bWVudCB0aXRsZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZVRpdGxlOiBzdHJpbmc7XHJcbiAgLyoqIERvY3VtZW50IElEICovXHJcbiAgQElucHV0KClcclxuICBkb2NJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9wZGYnO1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZURhdGE7XHJcbiAgQElucHV0KClcclxuICBmaXRNb2RlOiAnRml0V2lkdGgnIHwgJ0ZpdFBhZ2UnIHwgJ1pvb20nID0gJ0ZpdFdpZHRoJztcclxuICBASW5wdXQoKVxyXG4gIGF1dGhIZWFkZXI6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGZpbGVVUkw6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGNvcnJlc3BvbmRhbmNlO1xyXG5cclxuICBASW5wdXQoKSBzZWNyZWN5UHJvcGVydHk7IC8vIHVzZWQgdG8gYWRkIHdhdGVybWFyayBhY29yZGluZyBjZXJ0YWluIHNlY3JlY3kgbGV2ZWxcclxuICBASW5wdXQoKSBlZGl0aW5nVHlwZTtcclxuICBASW5wdXQoKSB1c2VyU2lnbmF0dXJlcztcclxuICBAT3V0cHV0KClcclxuICBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIFNpZ25hdHVyZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyB1c2VkIHRvIGV4cG9ydCBzaWduYXR1cmUgdG8gb3V0c2lkZVxyXG4gIGZpcnN0VGltZUxvYWQgPSB0cnVlOyAvL2ZsYWdlIHRvIGNvbnRyb2wgaW1wb3J0aW5nIHNpZ25hdHVyZXMgaW4gdGhlIGZpcnN0IHRpbWUgbG9hZCBvbmx5XHJcbiAgZmlyc3RTaWduYXR1cmVMb2FkID0gdHJ1ZTsgLy8gZmxhZ2UgdG8gcGFzcyBmaXJzdCBsb2FkIG9mIGltcG9ydGVkIHNpZ25hdHVyZXMgd2l0aG91dCBlbWl0dGluZyB0aGUgZXZlbnQgXHJcbiAgbmV3U2lnbkNyZWF0aW9uID0gZmFsc2U7IC8vIGZsYWdlIHRvIGluZGljYXRlIHNpZ25hdHVyZSBjcmVhdGlvbiBpcyBjcmVhdGVkIG9yIGNob29zZWQgZnJvbSBzdG9yZWQgb25lc1xyXG4gIHRyYW5zZWxhdGlvblN1YnNjcml0aW9uIDogU3Vic2NyaXB0aW9uO1xyXG4gIGlzQXJhYmljO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBkZnRyb25TZXJ2aWNlOiBQZGZ0cm9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW86IE51eGVvU2VydmljZSxcclxuICAgIEBJbmplY3QoQVBQX0JBU0VfSFJFRikgcHJpdmF0ZSBiYXNlSHJlZjogc3RyaW5nLFxyXG4gICAgcHJpdmF0ZSBzZWN1cmVQaXBlOiBTZWN1cmVQaXBlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2UgOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnRcclxuICApIHsgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudHJhbnNlbGF0aW9uU3Vic2NyaXRpb24gPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5pc0FyYWJpYyA9IHJlcyA7XHJcbiAgICB9KVxyXG4gICB9XHJcblxyXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLnBwdCcpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcucHB0eCcpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLmRvYycpKSB7XHJcbiAgICAgIHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9tc3dvcmQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLmRvY3gnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPVxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc7XHJcbiAgICB9XHJcbiAgICBXZWJWaWV3ZXIoXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiB0aGlzLmJhc2VIcmVmICsgJy9hc3NldHMvcGRmdHJvbnMnLFxyXG4gICAgICAgIGZvcmNlQ2xpZW50U2lkZUluaXQ6IHRydWUsXHJcbiAgICAgICAgc3RyZWFtaW5nOiB0cnVlLFxyXG4gICAgICAgIGxpY2Vuc2VLZXk6IHRoaXMuZW52aXJvbm1lbnQucGRmdHJvbkxpY2VuY2VLZXksXHJcbiAgICAgICAgYW5ub3RhdGlvblVzZXI6IHRoaXMubnV4ZW8ubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnVzZXJuYW1lLFxyXG4gICAgICAgIGRpc2FibGVkRWxlbWVudHM6IFsnZG93bmxvYWRCdXR0b24nLCAncHJpbnRCdXR0b24nXSxcclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMudmlld2VyUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICkudGhlbihhc3luYyAoaW5zdGFuY2UpID0+IHtcclxuICAgICAgdGhpcy5pc0FyYWJpYyA/IGluc3RhbmNlLnNldExhbmd1YWdlKCdhcicpIDogaW5zdGFuY2Uuc2V0TGFuZ3VhZ2UoJ2VuJykgO1xyXG4gICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IGluc3RhbmNlO1xyXG4gICAgICBcclxuICAgICAgdGhpcy5hZGRQcmludEJ1dHRvbigpO1xyXG4gICAgICB0aGlzLmFkZERvd25sb2FkQnV0dG9uKCk7XHJcbiAgICAgIHRoaXMuaW1wb3J0U2lnbmF0dXJlKCk7XHJcbiAgICAgIHRoaXMuZXhwb3J0aW5nU2lnbmF0dXJlKCk7XHJcbiAgICAgIHRoaXMuZGVsZXRlQW5ub3RhdGlvbigpO1xyXG4gICAgICB0aGlzLmV4cG9ydGluZ1NhdmVkU2lnbmF0dXJlKCk7XHJcbiAgICAgIHRoaXMubG9hZERvY3VtZW50KCk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbXBvcnRTaWduYXR1cmUoKSB7XHJcbiAgICBjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG4gICAgY29uc3Qgc2lnbmF0dXJlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKTtcclxuXHJcbiAgICBkb2N1bWVudFZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCAoKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMuZmlyc3RUaW1lTG9hZCl7XHJcbiAgICAgICAgc2lnbmF0dXJlVG9vbC5pbXBvcnRTaWduYXR1cmVzKFsuLi50aGlzLnVzZXJTaWduYXR1cmVzXSk7XHJcbiAgICAgICAgdGhpcy5maXJzdFRpbWVMb2FkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydGluZ1NhdmVkU2lnbmF0dXJlKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IFNpZ25hdHVyZUNyZWF0ZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJylcclxuICAgIFNpZ25hdHVyZUNyZWF0ZVRvb2wub24oJ3NpZ25hdHVyZVNhdmVkJywgKGFubm90YXRpb24pID0+IHtcclxuICAgICAgaWYoIXRoaXMuZmlyc3RTaWduYXR1cmVMb2FkKXtcclxuICAgICAgICBjb25zb2xlLmxvZygnc2lnbmF0dXJlIHNhdmVkIHRyaWdlcmVkJyk7XHJcbiAgICAgICAgdGhpcy5uZXdTaWduQ3JlYXRpb24gPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmlyc3RTaWduYXR1cmVMb2FkID0gZmFsc2U7XHJcbiAgICB9KTs7XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydGluZ1NpZ25hdHVyZSgpIHtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcbiAgICBjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpXHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdhbm5vdGF0aW9uQWRkZWQnLCAoYW5ub3RhdGlvbikgPT4ge1xyXG4gICAgICBpZiAoYW5ub3RhdGlvbiAmJiB0aGlzLm5ld1NpZ25DcmVhdGlvbikge1xyXG4gICAgICAgIHRoaXMubmV3U2lnbkNyZWF0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5leHRyYWN0QW5vdGF0aW9uKGFubm90YXRpb24gLCBkb2N1bWVudFZpZXdlcik7XHJcbiAgICAgICAgY29uc29sZS5sb2coYW5ub3RhdGlvbilcclxuICAgICAgfVxyXG4gICAgfSk7O1xyXG4gIH1cclxuXHJcbiAgZXh0cmFjdEFub3RhdGlvbihhbm5vdGF0aW9uICwgZG9jdW1lbnRWaWV3ZXIpe1xyXG4gICAgaWYoYW5ub3RhdGlvblsnaW1hZ2UnXSl7XHJcbiAgICAgIC8vIGNvbnZlcnQgYmFzZTY0IHNpZ25hdHVyZSBpbnRvIGZpbGUgYW5kIGVtaXQgaXQgdG8gb3V0IHNpZGUgXHJcbiAgICAgIGxldCBiYXNlNjRJbWcgPSBhbm5vdGF0aW9uWydpbWFnZSddWydjdXJyZW50U3JjJ107XHJcbiAgICAgIHZhciBhcnIgPSBiYXNlNjRJbWcuc3BsaXQoJywnKSxcclxuICAgICAgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pOy8pWzFdLFxyXG4gICAgICBic3RyID0gYXRvYihhcnJbMV0pLCBcclxuICAgICAgbiA9IGJzdHIubGVuZ3RoLCBcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKTtcclxuICAgICAgd2hpbGUobi0tKXtcclxuICAgICAgICAgIHU4YXJyW25dID0gYnN0ci5jaGFyQ29kZUF0KG4pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuYW1lID0gbWltZS5yZXBsYWNlKCcvJyAsICcuJylcclxuICAgICAgbGV0IG15RmlsZSA9IG5ldyBGaWxlKFt1OGFycl0sICdteVNpZ25hdHVyZS5wbmcnLCB7dHlwZTptaW1lfSk7XHJcbiAgICAgIHRoaXMuU2lnbmF0dXJlRXZlbnQuZW1pdCh7IGRhdGE6IG15RmlsZSwgZXZlbnROYW1lOiAnZXhwb3J0JyB9KTtcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5leHRyYWN0QW5ub3RhdGlvblNpZ25hdHVyZShhbm5vdGF0aW9uICwgZG9jdW1lbnRWaWV3ZXIpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBleHRyYWN0QW5ub3RhdGlvblNpZ25hdHVyZShhbm5vdGF0aW9uLCBkb2NWaWV3ZXIpIHtcclxuICAgIC8vIENyZWF0ZSBhIG5ldyBDYW52YXMgdG8gZHJhdyB0aGUgQW5ub3RhdGlvbiBvblxyXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAvLyBSZWZlcmVuY2UgdGhlIGFubm90YXRpb24gZnJvbSB0aGUgRG9jdW1lbnRcclxuICAgIGNvbnN0IHBhZ2VNYXRyaXggPSBkb2NWaWV3ZXIuZ2V0RG9jdW1lbnQoKS5nZXRQYWdlTWF0cml4KGFubm90YXRpb24uUGFnZU51bWJlcik7XHJcbiAgICAvLyBTZXQgdGhlIGhlaWdodCAmIHdpZHRoIG9mIHRoZSBjYW52YXMgdG8gbWF0Y2ggdGhlIGFubm90YXRpb25cclxuICAgIGNhbnZhcy5oZWlnaHQgPSBhbm5vdGF0aW9uLkhlaWdodDtcclxuICAgIGNhbnZhcy53aWR0aCA9IGFubm90YXRpb24uV2lkdGg7XHJcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgIC8vIFRyYW5zbGF0ZSB0aGUgQW5ub3RhdGlvbiB0byB0aGUgdG9wIFRvcCBMZWZ0IENvcm5lciBvZiB0aGUgQ2FudmFzIGllICgwLCAwKVxyXG4gICAgY3R4LnRyYW5zbGF0ZSgtYW5ub3RhdGlvbi5YLCAtYW5ub3RhdGlvbi5ZKTtcclxuICAgIC8vIERyYXcgdGhlIEFubm90YXRpb24gb250byB0aGUgQ2FudmFzXHJcbiAgICBhbm5vdGF0aW9uLmRyYXcoY3R4LCBwYWdlTWF0cml4KTtcclxuICAgIC8vIENvbnZlcnQgdGhlIENhbnZhcyB0byBhIEJsb2IgT2JqZWN0IGZvciBVcGxvYWRcclxuICAgIGNhbnZhcy50b0Jsb2IoKGJsb2IpID0+IHtcclxuICAgICAgLy8gQ2FsbCB5b3VyIEJsb2IgU3RvcmFnZSBVcGxvYWQgRnVuY3Rpb25cclxuICAgICAgbGV0IG5hbWUgPSBibG9iLnR5cGUucmVwbGFjZSgnLycgLCAnLicpXHJcbiAgICAgIGxldCBteUZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIG5hbWUpO1xyXG4gICAgICB0aGlzLlNpZ25hdHVyZUV2ZW50LmVtaXQoeyBkYXRhOiBteUZpbGUsIGV2ZW50TmFtZTogJ2V4cG9ydCcgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUFubm90YXRpb24oKSB7XHJcbiAgICBjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG4gICAgY29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKTtcclxuICAgIFNpZ25hdHVyZUNyZWF0ZVRvb2wub24oJ3NpZ25hdHVyZURlbGV0ZWQnLCAoYW5ub3RhdGlvbiwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ3RoZXJlIHdlcmUgYW5ub3RhdGlvbnMgZGVsZXRlZCcpO1xyXG4gICAgICB0aGlzLnVzZXJTaWduYXR1cmVzLnNwbGljZShpbmRleCAsIDEpO1xyXG4gICAgICB0aGlzLlNpZ25hdHVyZUV2ZW50LmVtaXQoeyBkYXRhOiB7IHNpZ25hdHVyZTogYW5ub3RhdGlvbiwgaW5kZXg6IGluZGV4IH0sIGV2ZW50TmFtZTogJ2RlbGV0ZScgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgYWRkRG93bmxvYWRCdXR0b24oKSB7XHJcbiAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEhlYWRlckl0ZW1zKChoZWFkZXIpID0+IHtcclxuICAgICAgaGVhZGVyLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG4gICAgICAgIGltZzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cImJpIGJpLWZpbGUtZWFybWFyay1hcnJvdy1kb3duXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPiA8cGF0aCBkPVwiTTguNSA2LjVhLjUuNSAwIDAgMC0xIDB2My43OTNMNi4zNTQgOS4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwyIDJhLjUuNSAwIDAgMCAuNzA4IDBsMi0yYS41LjUgMCAwIDAtLjcwOC0uNzA4TDguNSAxMC4yOTNWNi41elwiLz4gPHBhdGggZD1cIk0xNCAxNFY0LjVMOS41IDBINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yek05LjUgM0ExLjUgMS41IDAgMCAwIDExIDQuNWgyVjE0YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJhMSAxIDAgMCAxIDEtMWg1LjV2MnpcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogdGhpcy5pc0FyYWJpYyA/ICfYqtmG2LLZitmEJyA6ICdEb3dubG9hZCcsXHJcbiAgICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBEb2N1bWVudFZpZXdlciwgQW5ub3RhdGlvbk1hbmFnZXIsIFNhdmVPcHRpb25zIH0gPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkNvcmVDb250cm9scztcclxuICAgICAgICAgIC8vIGNvbnN0IHhmZGZTdHJpbmcgPSBhd2FpdCBBbm5vdGF0aW9uTWFuYWdlci5leHBvcnRBbm5vdGF0aW9ucygpO1xyXG4gICAgICAgICAgY29uc3Qgc2F2ZU9wdGlvbnMgPSBTYXZlT3B0aW9ucztcclxuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLmNvcnJlc3BvbmRhbmNlLnRpdGxlID8gdGhpcy5jb3JyZXNwb25kYW5jZS50aXRsZSA6ICdteURvY3VtZW50LnBkZicsXHJcbiAgICAgICAgICAgIC8vIHhmZGZTdHJpbmcsXHJcbiAgICAgICAgICAgIGZsYWdzOiBzYXZlT3B0aW9ucy5MSU5FQVJJWkVELFxyXG4gICAgICAgICAgICBkb3dubG9hZFR5cGU6ICdwZGYnXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuZG93bmxvYWRQZGYob3B0aW9ucyk7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50cy5uZXh0KCdkb3dubG9hZCcpO1xyXG4gICAgICAgICAgLy8gbGV0IHVybCA9IHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllcy5jb250ZW50LmRhdGE7XHJcbiAgICAgICAgICAvLyBsZXQgZmlsZU5hbWUgPSB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXMuY29udGVudC5uYW1lO1xyXG4gICAgICAgICAgLy8gaWYgKHVybCAmJiBmaWxlTmFtZSkge1xyXG4gICAgICAgICAgLy8gICBsZXQgc2FmZVVybCA9IHRoaXMuc2VjdXJlUGlwZS50cmFuc2Zvcm0odXJsKTtcclxuICAgICAgICAgIC8vICAgc2FmZVVybC5zdWJzY3JpYmUoKHVybDogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgIC8vICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgICAgICAvLyAgICAgbGluay5ocmVmID0gdXJsLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk7XHJcbiAgICAgICAgICAvLyAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgICAgICAgLy8gICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAvLyAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgLy8gICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAvLyAgICAgdGhpcy5ldmVudHMubmV4dCgnZG93bmxvYWQnKTtcclxuICAgICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZFByaW50QnV0dG9uKCkge1xyXG4gICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRIZWFkZXJJdGVtcygoaGVhZGVyKSA9PiB7XHJcbiAgICAgIGhlYWRlci5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnYWN0aW9uQnV0dG9uJyxcclxuICAgICAgICBpbWc6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNhYmIwYzQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5pY29uIC0gaGVhZGVyIC0gcHJpbnQgLSBsaW5lPC90aXRsZT48cGF0aCBjbGFzcz1cImNscy0xXCIgZD1cIk0yMCw2SDE4VjJINlY2SDRBMiwyLDAsMCwwLDIsOHY5YTIsMiwwLDAsMCwyLDJINnYzSDE4VjE5aDJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyMCw2Wk04LDRoOFY2SDhabTgsMTZIOFYxNmg4Wm00LTNIMThWMTRINnYzSDRWOEgyMFptLTQtN2gydjJIMTZabS0zLDBoMnYySDEzWlwiPjwvcGF0aD48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmlzQXJhYmljID8gXCLYt9io2KfYudipXCIgOiAnUHJpbnQnLFxyXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UucHJpbnQoKTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ3ByaW50Jyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZFdhdGVybWFyaygpIHtcclxuICAgIGNvbnN0IHVzZXJpbmZvID0gdGhpcy5udXhlby5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXM7XHJcbiAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmFkZFdhdGVybWFyayhcclxuICAgICAgYCR7dXNlcmluZm8udXNlcm5hbWV9ICAgIGBcclxuICAgICAgLy8gYCR7dXNlcmluZm8uZmlyc3ROYW1lfSAke1xyXG4gICAgICAvLyAgIHVzZXJpbmZvLmxhc3ROYW1lXHJcbiAgICAgIC8vIH0gYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvYWREb2N1bWVudCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSB8fCAoIXRoaXMuZmlsZURhdGEgJiYgIXRoaXMuZmlsZVVSTCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkb2NWaWV3ZXIsIGFubm90TWFuYWdlciwgQW5ub3RhdGlvbnMgfSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2U7XHJcbiAgICBkb2NWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICBsZXQgZml0TW9kZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuRml0TW9kZS5GaXRXaWR0aDtcclxuICAgICAgaWYgKHRoaXMuZml0TW9kZSA9PT0gJ0ZpdFBhZ2UnKSB7XHJcbiAgICAgICAgZml0TW9kZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuRml0TW9kZS5GaXRQYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZml0TW9kZSA9PT0gJ1pvb20nKSB7XHJcbiAgICAgICAgZml0TW9kZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuRml0TW9kZS5ab29tO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0Rml0TW9kZShmaXRNb2RlKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLmVkaXRNb2RlKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KHRydWUpO1xyXG4gICAgICAvLyBpbnN0YW5jZS5lbmFibGVUb29scyhbXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWxlVVJMICYmIHRoaXMuZmlsZVVSTC5sZW5ndGgpIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQodGhpcy5maWxlVVJMLCB7XHJcbiAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZVRpdGxlLFxyXG4gICAgICAgIGN1c3RvbUhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246IHRoaXMuYXV0aEhlYWRlcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmxvYWREb2N1bWVudChcclxuICAgICAgICBuZXcgQmxvYihbbmV3IFVpbnQ4QXJyYXkodGhpcy5maWxlRGF0YSldLCB7IHR5cGU6IHRoaXMuRE9DVU1FTlRfVFlQRSB9KSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlbmFtZTogdGhpcy5maWxlVGl0bGUsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNGZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgLy8gaWYgd2UgbmVlZCB0byBjaGVjayBvbiBzZWNyZWN5IGxldmVsIGZvciBhZGRpbmcgd2F0ZXIgbWFyayBvciBub3QgXHJcbiAgICBpZiAodGhpcy5lbnZpcm9ubWVudC5lbmFibGVWaWV3ZXJXYXRlck1hcmsgJiYgdGhpcy5zZWNyZWN5UHJvcGVydHkpIHtcclxuICAgICAgLy8gY2hlY2sgZm9yIHNlY3JlY3kgbGV2ZWwgYmVmb3IgYWRkaW5nIHdhdGVybWFya1xyXG4gICAgICBpZiAodGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAmJiB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICE9PSAnTm9ybWFsJykge1xyXG4gICAgICAgIHRoaXMuYWRkV2F0ZXJtYXJrKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5lbnZpcm9ubWVudC5lbmFibGVWaWV3ZXJXYXRlck1hcmsgJiYgIXRoaXMuc2VjcmVjeVByb3BlcnR5KSB7XHJcbiAgICAgIHRoaXMuYWRkV2F0ZXJtYXJrKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBleHBvcnRBc0Jsb2IoKTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICBjb25zdCBkb2MgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXREb2N1bWVudCgpO1xyXG4gICAgY29uc3QgeGZkZlN0cmluZyA9XHJcbiAgICAgIGF3YWl0IHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZG9jLmdldEZpbGVEYXRhKHtcclxuICAgICAgLy8gc2F2ZXMgdGhlIGRvY3VtZW50IHdpdGggYW5ub3RhdGlvbnMgaW4gaXRcclxuICAgICAgeGZkZlN0cmluZyxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2Fycl0sIHsgdHlwZTogdGhpcy5ET0NVTUVOVF9UWVBFIH0pO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShibG9iKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUVkaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYWN0aW9uQ2xpY2tlZCkge1xyXG4gICAgICAvLyBhY3Rpb24gY2xpY2tlZCBpcyBub3QgY2xpY2tlZCB0aGVuIG5vIHVwZGF0ZSBtb2RlIG9wZW5lZFxyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtRWRpdCcsXHJcbiAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICBdKTtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBlZGl0IG1vZGUgb3BlbmVkIGFuZCBtdXN0IGJlIHdoZW4gYWN0aW9uIGlzIGNsaWNrZWRcclxuICAgICAgaWYgKHRoaXMuZWRpdGluZ1R5cGUpIHtcclxuICAgICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgbGV0IGdyb3VwIDtcclxuICAgICAgICBpZih0aGlzLmVkaXRpbmdUeXBlID09PSAnc2lnbkRvYycpe1xyXG4gICAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0J1xyXG4gICAgICAgICAgXSk7XHJcblxyXG4gICAgICAgIH1lbHNlIGlmKHRoaXMuZWRpdGluZ1R5cGUgPT09ICdhbm5vdGF0ZScpe1xyXG4gICAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuICAgICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkoZmFsc2UpO1xyXG4gICAgICAvLyB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldFRvb2xiYXJHcm91cCgndG9vbGJhckdyb3VwLUFubm90YXRlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUVkaXQoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNoYW5nZXMudXJsRmlsZUNvbnRlbnQgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgJiZcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgIT09XHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5jdXJyZW50VmFsdWVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBkZlRyb25FdmVudChldmVudCkge1xyXG4gICAgaWYgKHRoaXNbZXZlbnQuYWN0aW9uXSkge1xyXG4gICAgICAvLyBtZXRob2QgZXhpc3RzIGluIHRoZSBjb21wb25lbnRcclxuICAgICAgLy8gIHRoaXNbZXZlbnQuYWN0aW9uXShldmVudC5wYXJhbXMpOyAvLyBjYWxsIGl0XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLndlYlZpZXdlckluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuY2xvc2VEb2N1bWVudCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkb2N1bWVudCBjbG9zZWQhJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID8gdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZmlsZVZpZXdlciBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCI+PC9kaXY+XHJcbiJdfQ==
409
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBMkIsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQXdDM0IsWUFDUyxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLFVBQXNCLEVBQ3RCLGtCQUF1QyxFQUNoQixXQUFXO1FBTm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUF4Q25DLGtCQUFhLEdBQUcsS0FBSyxDQUFDLENB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QUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVOLE1BQU07c0JBREwsTUFBTTtnQkFFRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFdlYlZpZXdlciwgeyBDb3JlQ29udHJvbHMgfSBmcm9tICdAcGRmdHJvbi93ZWJ2aWV3ZXInO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZGZ0cm9uU2VydmljZSB9IGZyb20gJy4vcGRmdHJvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVBQX0JBU0VfSFJFRiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlY3VyZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9zZWN1cmUucGlwZSc7XHJcbmltcG9ydCB7IFRocm93U3RtdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogQSByZXVzYWJsZSBmaWxlIHZpZXdlciBiYXNlZCBvbiBQREZUcm9uIExpYnJhcnlcclxuICogQHRpdGxlXHJcbiAqIFBERlRyb24gVmlld2VyXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtcGRmdHJvblxyXG4gKiAgIFtmaWxlRGF0YV09XCJmaWxlRGF0YVwiXHJcbiAqICAgW2VkaXRNb2RlXT1cImZhbHNlXCJcclxuICogICBbZG9jSWRdPVwiZmlsZUlkXCJcclxuICogICBbZmlsZVRpdGxlXT1cImZpbGUudGl0bGVcIlxyXG4gKiA+XHJcbiAqIDwvYXBwLXBkZnRyb24+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wZGZ0cm9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGRmdHJvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGRmdHJvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1NlY3VyZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGRmdHJvbkNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZVZpZXdlcicpIHZpZXdlclJlZjogRWxlbWVudFJlZjtcclxuICB3ZWJWaWV3ZXJJbnN0YW5jZTtcclxuICAvKiogRGlzYWJsZS9FbmFibGUgQW5ub3RhdGlvbiAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWN0aW9uQ2xpY2tlZCA9IGZhbHNlOyAvLyB1c2VkIHRvIGtub3cgaWYgdGhlcmUgaXMgYWN0aW9uIGNsaWNrZWQgb3V0c2lkZSB0byBzdGFydCBlZGl0IG1vZGUgb3Igbm90XHJcbiAgaXNEb2N1bWVudExvYWRpbmc6IGJvb2xlYW47XHJcbiAgaXNGZXRjaGluZzogYm9vbGVhbjtcclxuICAvKiogRG9jdW1lbnQgdGl0bGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGZpbGVUaXRsZTogc3RyaW5nO1xyXG4gIC8qKiBEb2N1bWVudCBJRCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZG9jSWQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIERPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vcGRmJztcclxuICBASW5wdXQoKVxyXG4gIGZpbGVEYXRhO1xyXG4gIEBJbnB1dCgpXHJcbiAgZml0TW9kZTogJ0ZpdFdpZHRoJyB8ICdGaXRQYWdlJyB8ICdab29tJyA9ICdGaXRXaWR0aCc7XHJcbiAgQElucHV0KClcclxuICBhdXRoSGVhZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBmaWxlVVJMOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBjb3JyZXNwb25kYW5jZTtcclxuXHJcbiAgQElucHV0KCkgc2VjcmVjeVByb3BlcnR5OyAvLyB1c2VkIHRvIGFkZCB3YXRlcm1hcmsgYWNvcmRpbmcgY2VydGFpbiBzZWNyZWN5IGxldmVsXHJcbiAgQElucHV0KCkgZWRpdGluZ1R5cGU7XHJcbiAgQElucHV0KCkgdXNlclNpZ25hdHVyZXM7XHJcbiAgQE91dHB1dCgpXHJcbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBTaWduYXR1cmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gdXNlZCB0byBleHBvcnQgc2lnbmF0dXJlIHRvIG91dHNpZGVcclxuICBmaXJzdFRpbWVMb2FkID0gdHJ1ZTsgLy9mbGFnZSB0byBjb250cm9sIGltcG9ydGluZyBzaWduYXR1cmVzIGluIHRoZSBmaXJzdCB0aW1lIGxvYWQgb25seVxyXG4gIGZpcnN0U2lnbmF0dXJlTG9hZCA9IHRydWU7IC8vIGZsYWdlIHRvIHBhc3MgZmlyc3QgbG9hZCBvZiBpbXBvcnRlZCBzaWduYXR1cmVzIHdpdGhvdXQgZW1pdHRpbmcgdGhlIGV2ZW50IFxyXG4gIG5ld1NpZ25DcmVhdGlvbiA9IGZhbHNlOyAvLyBmbGFnZSB0byBpbmRpY2F0ZSBzaWduYXR1cmUgY3JlYXRpb24gaXMgY3JlYXRlZCBvciBjaG9vc2VkIGZyb20gc3RvcmVkIG9uZXNcclxuICB0cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuICBpc0FyYWJpYztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwZGZ0cm9uU2VydmljZTogUGRmdHJvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KEFQUF9CQVNFX0hSRUYpIHByaXZhdGUgYmFzZUhyZWY6IHN0cmluZyxcclxuICAgIHByaXZhdGUgc2VjdXJlUGlwZTogU2VjdXJlUGlwZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlIDogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSByZXMgO1xyXG4gICAgfSlcclxuICAgfVxyXG5cclxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5wcHQnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLnBwdHgnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPVxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2MnKSkge1xyXG4gICAgICB0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vbXN3b3JkJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2N4JykpIHtcclxuICAgICAgdGhpcy5ET0NVTUVOVF9UWVBFID1cclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnO1xyXG4gICAgfVxyXG4gICAgV2ViVmlld2VyKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogdGhpcy5iYXNlSHJlZiArICcvYXNzZXRzL3BkZnRyb25zJyxcclxuICAgICAgICBmb3JjZUNsaWVudFNpZGVJbml0OiB0cnVlLFxyXG4gICAgICAgIHN0cmVhbWluZzogdHJ1ZSxcclxuICAgICAgICBsaWNlbnNlS2V5OiB0aGlzLmVudmlyb25tZW50LnBkZnRyb25MaWNlbmNlS2V5LFxyXG4gICAgICAgIGFubm90YXRpb25Vc2VyOiB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5maXJzdE5hbWUgKyAnICcgKyB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5sYXN0TmFtZSxcclxuICAgICAgICBkaXNhYmxlZEVsZW1lbnRzOiBbJ2Rvd25sb2FkQnV0dG9uJywgJ3ByaW50QnV0dG9uJ10sXHJcblxyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICApLnRoZW4oYXN5bmMgKGluc3RhbmNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPyBpbnN0YW5jZS5zZXRMYW5ndWFnZSgnYXInKSA6IGluc3RhbmNlLnNldExhbmd1YWdlKCdlbicpIDtcclxuICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuYWRkUHJpbnRCdXR0b24oKTtcclxuICAgICAgdGhpcy5hZGREb3dubG9hZEJ1dHRvbigpO1xyXG4gICAgICB0aGlzLmltcG9ydFNpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmV4cG9ydGluZ1NpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmRlbGV0ZUFubm90YXRpb24oKTtcclxuICAgICAgdGhpcy5leHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpO1xyXG4gICAgICB0aGlzLmxvYWREb2N1bWVudCgpO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW1wb3J0U2lnbmF0dXJlKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IHNpZ25hdHVyZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcblxyXG4gICAgZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICBpZih0aGlzLmZpcnN0VGltZUxvYWQpe1xyXG4gICAgICAgIHNpZ25hdHVyZVRvb2wuaW1wb3J0U2lnbmF0dXJlcyhbLi4udGhpcy51c2VyU2lnbmF0dXJlc10pO1xyXG4gICAgICAgIHRoaXMuZmlyc3RUaW1lTG9hZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICBleHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpIHtcclxuICAgIGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcbiAgICBjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpXHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdzaWduYXR1cmVTYXZlZCcsIChhbm5vdGF0aW9uKSA9PiB7XHJcbiAgICAgIGlmKCF0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3NpZ25hdHVyZSBzYXZlZCB0cmlnZXJlZCcpO1xyXG4gICAgICAgIHRoaXMubmV3U2lnbkNyZWF0aW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCA9IGZhbHNlO1xyXG4gICAgfSk7O1xyXG4gIH1cclxuICBcclxuICBleHBvcnRpbmdTaWduYXR1cmUoKSB7XHJcbiAgICBjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG4gICAgY29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKVxyXG4gICAgU2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignYW5ub3RhdGlvbkFkZGVkJywgKGFubm90YXRpb24pID0+IHtcclxuICAgICAgaWYgKGFubm90YXRpb24gJiYgdGhpcy5uZXdTaWduQ3JlYXRpb24pIHtcclxuICAgICAgICB0aGlzLm5ld1NpZ25DcmVhdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXh0cmFjdEFub3RhdGlvbihhbm5vdGF0aW9uICwgZG9jdW1lbnRWaWV3ZXIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGFubm90YXRpb24pXHJcbiAgICAgIH1cclxuICAgIH0pOztcclxuICB9XHJcblxyXG4gIGV4dHJhY3RBbm90YXRpb24oYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKXtcclxuICAgIGlmKGFubm90YXRpb25bJ2ltYWdlJ10pe1xyXG4gICAgICAvLyBjb252ZXJ0IGJhc2U2NCBzaWduYXR1cmUgaW50byBmaWxlIGFuZCBlbWl0IGl0IHRvIG91dCBzaWRlIFxyXG4gICAgICBsZXQgYmFzZTY0SW1nID0gYW5ub3RhdGlvblsnaW1hZ2UnXVsnY3VycmVudFNyYyddO1xyXG4gICAgICB2YXIgYXJyID0gYmFzZTY0SW1nLnNwbGl0KCcsJyksXHJcbiAgICAgIG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxcclxuICAgICAgYnN0ciA9IGF0b2IoYXJyWzFdKSwgXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCwgXHJcbiAgICAgIHU4YXJyID0gbmV3IFVpbnQ4QXJyYXkobik7XHJcbiAgICAgIHdoaWxlKG4tLSl7XHJcbiAgICAgICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmFtZSA9IG1pbWUucmVwbGFjZSgnLycgLCAnLicpXHJcbiAgICAgIGxldCBteUZpbGUgPSBuZXcgRmlsZShbdThhcnJdLCAnbXlTaWduYXR1cmUucG5nJywge3R5cGU6bWltZX0pO1xyXG4gICAgICB0aGlzLlNpZ25hdHVyZUV2ZW50LmVtaXQoeyBkYXRhOiBteUZpbGUsIGV2ZW50TmFtZTogJ2V4cG9ydCcgfSk7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiAsIGRvY3VtZW50Vmlld2VyKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiwgZG9jVmlld2VyKSB7XHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgQ2FudmFzIHRvIGRyYXcgdGhlIEFubm90YXRpb24gb25cclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgLy8gUmVmZXJlbmNlIHRoZSBhbm5vdGF0aW9uIGZyb20gdGhlIERvY3VtZW50XHJcbiAgICBjb25zdCBwYWdlTWF0cml4ID0gZG9jVmlld2VyLmdldERvY3VtZW50KCkuZ2V0UGFnZU1hdHJpeChhbm5vdGF0aW9uLlBhZ2VOdW1iZXIpO1xyXG4gICAgLy8gU2V0IHRoZSBoZWlnaHQgJiB3aWR0aCBvZiB0aGUgY2FudmFzIHRvIG1hdGNoIHRoZSBhbm5vdGF0aW9uXHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gYW5ub3RhdGlvbi5IZWlnaHQ7XHJcbiAgICBjYW52YXMud2lkdGggPSBhbm5vdGF0aW9uLldpZHRoO1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAvLyBUcmFuc2xhdGUgdGhlIEFubm90YXRpb24gdG8gdGhlIHRvcCBUb3AgTGVmdCBDb3JuZXIgb2YgdGhlIENhbnZhcyBpZSAoMCwgMClcclxuICAgIGN0eC50cmFuc2xhdGUoLWFubm90YXRpb24uWCwgLWFubm90YXRpb24uWSk7XHJcbiAgICAvLyBEcmF3IHRoZSBBbm5vdGF0aW9uIG9udG8gdGhlIENhbnZhc1xyXG4gICAgYW5ub3RhdGlvbi5kcmF3KGN0eCwgcGFnZU1hdHJpeCk7XHJcbiAgICAvLyBDb252ZXJ0IHRoZSBDYW52YXMgdG8gYSBCbG9iIE9iamVjdCBmb3IgVXBsb2FkXHJcbiAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgIC8vIENhbGwgeW91ciBCbG9iIFN0b3JhZ2UgVXBsb2FkIEZ1bmN0aW9uXHJcbiAgICAgIGxldCBuYW1lID0gYmxvYi50eXBlLnJlcGxhY2UoJy8nICwgJy4nKVxyXG4gICAgICBsZXQgbXlGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lKTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogbXlGaWxlLCBldmVudE5hbWU6ICdleHBvcnQnIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBbm5vdGF0aW9uKCkge1xyXG4gICAgY29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuICAgIGNvbnN0IFNpZ25hdHVyZUNyZWF0ZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcbiAgICBTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdzaWduYXR1cmVEZWxldGVkJywgKGFubm90YXRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGVyZSB3ZXJlIGFubm90YXRpb25zIGRlbGV0ZWQnKTtcclxuICAgICAgdGhpcy51c2VyU2lnbmF0dXJlcy5zcGxpY2UoaW5kZXggLCAxKTtcclxuICAgICAgdGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogeyBzaWduYXR1cmU6IGFubm90YXRpb24sIGluZGV4OiBpbmRleCB9LCBldmVudE5hbWU6ICdkZWxldGUnIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGFkZERvd25sb2FkQnV0dG9uKCkge1xyXG4gICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRIZWFkZXJJdGVtcygoaGVhZGVyKSA9PiB7XHJcbiAgICAgIGhlYWRlci5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnYWN0aW9uQnV0dG9uJyxcclxuICAgICAgICBpbWc6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgY2xhc3M9XCJiaSBiaS1maWxlLWVhcm1hcmstYXJyb3ctZG93blwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj4gPHBhdGggZD1cIk04LjUgNi41YS41LjUgMCAwIDAtMSAwdjMuNzkzTDYuMzU0IDkuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMiAyYS41LjUgMCAwIDAgLjcwOCAwbDItMmEuNS41IDAgMCAwLS43MDgtLjcwOEw4LjUgMTAuMjkzVjYuNXpcIi8+IDxwYXRoIGQ9XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuaXNBcmFiaWMgPyAn2KrZhtiy2YrZhCcgOiAnRG93bmxvYWQnLFxyXG4gICAgICAgIG9uQ2xpY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgRG9jdW1lbnRWaWV3ZXIsIEFubm90YXRpb25NYW5hZ2VyLCBTYXZlT3B0aW9ucyB9ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5Db3JlQ29udHJvbHM7XHJcbiAgICAgICAgICAvLyBjb25zdCB4ZmRmU3RyaW5nID0gYXdhaXQgQW5ub3RhdGlvbk1hbmFnZXIuZXhwb3J0QW5ub3RhdGlvbnMoKTtcclxuICAgICAgICAgIGNvbnN0IHNhdmVPcHRpb25zID0gU2F2ZU9wdGlvbnM7XHJcbiAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICBmaWxlbmFtZTogdGhpcy5jb3JyZXNwb25kYW5jZS50aXRsZSA/IHRoaXMuY29ycmVzcG9uZGFuY2UudGl0bGUgOiAnbXlEb2N1bWVudC5wZGYnLFxyXG4gICAgICAgICAgICAvLyB4ZmRmU3RyaW5nLFxyXG4gICAgICAgICAgICBmbGFnczogc2F2ZU9wdGlvbnMuTElORUFSSVpFRCxcclxuICAgICAgICAgICAgZG93bmxvYWRUeXBlOiAncGRmJ1xyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmRvd25sb2FkUGRmKG9wdGlvbnMpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHMubmV4dCgnZG93bmxvYWQnKTtcclxuICAgICAgICAgIC8vIGxldCB1cmwgPSB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXMuY29udGVudC5kYXRhO1xyXG4gICAgICAgICAgLy8gbGV0IGZpbGVOYW1lID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQubmFtZTtcclxuICAgICAgICAgIC8vIGlmICh1cmwgJiYgZmlsZU5hbWUpIHtcclxuICAgICAgICAgIC8vICAgbGV0IHNhZmVVcmwgPSB0aGlzLnNlY3VyZVBpcGUudHJhbnNmb3JtKHVybCk7XHJcbiAgICAgICAgICAvLyAgIHNhZmVVcmwuc3Vic2NyaWJlKCh1cmw6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICAvLyAgICAgbGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuaHJlZiA9IHVybC5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5O1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgICAgICAgIC8vICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgICAgICAgLy8gICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICAgIC8vICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgICAgICAgLy8gICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Rvd25sb2FkJyk7XHJcbiAgICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRQcmludEJ1dHRvbigpIHtcclxuICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG4gICAgICBoZWFkZXIucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2FjdGlvbkJ1dHRvbicsXHJcbiAgICAgICAgaW1nOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojYWJiMGM0O308L3N0eWxlPjwvZGVmcz48dGl0bGU+aWNvbiAtIGhlYWRlciAtIHByaW50IC0gbGluZTwvdGl0bGU+PHBhdGggY2xhc3M9XCJjbHMtMVwiIGQ9XCJNMjAsNkgxOFYySDZWNkg0QTIsMiwwLDAsMCwyLDh2OWEyLDIsMCwwLDAsMiwySDZ2M0gxOFYxOWgyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjAsNlpNOCw0aDhWNkg4Wm04LDE2SDhWMTZoOFptNC0zSDE4VjE0SDZ2M0g0VjhIMjBabS00LTdoMnYySDE2Wm0tMywwaDJ2MkgxM1pcIj48L3BhdGg+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogdGhpcy5pc0FyYWJpYyA/IFwi2LfYqNin2LnYqVwiIDogJ1ByaW50JyxcclxuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLnByaW50KCk7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50cy5uZXh0KCdwcmludCcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRXYXRlcm1hcmsoKSB7XHJcbiAgICBjb25zdCB1c2VyaW5mbyA9IHRoaXMubnV4ZW8ubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzO1xyXG4gICAgdGhpcy5wZGZ0cm9uU2VydmljZS5hZGRXYXRlcm1hcmsoXHJcbiAgICAgIGAke3VzZXJpbmZvLnVzZXJuYW1lfSAgICBgXHJcbiAgICAgIC8vIGAke3VzZXJpbmZvLmZpcnN0TmFtZX0gJHtcclxuICAgICAgLy8gICB1c2VyaW5mby5sYXN0TmFtZVxyXG4gICAgICAvLyB9IGBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2FkRG9jdW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMud2ViVmlld2VySW5zdGFuY2UgfHwgKCF0aGlzLmZpbGVEYXRhICYmICF0aGlzLmZpbGVVUkwpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZG9jVmlld2VyLCBhbm5vdE1hbmFnZXIsIEFubm90YXRpb25zIH0gPSB0aGlzLndlYlZpZXdlckluc3RhbmNlO1xyXG4gICAgZG9jVmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsICgpID0+IHtcclxuICAgICAgbGV0IGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuRml0V2lkdGg7XHJcbiAgICAgIGlmICh0aGlzLmZpdE1vZGUgPT09ICdGaXRQYWdlJykge1xyXG4gICAgICAgIGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuRml0UGFnZTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpdE1vZGUgPT09ICdab29tJykge1xyXG4gICAgICAgIGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuWm9vbTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEZpdE1vZGUoZml0TW9kZSk7XHJcbiAgICB9KTtcclxuICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seSh0cnVlKTtcclxuICAgICAgLy8gaW5zdGFuY2UuZW5hYmxlVG9vbHMoW10pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsZVVSTCAmJiB0aGlzLmZpbGVVUkwubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UubG9hZERvY3VtZW50KHRoaXMuZmlsZVVSTCwge1xyXG4gICAgICAgIGZpbGVuYW1lOiB0aGlzLmZpbGVUaXRsZSxcclxuICAgICAgICBjdXN0b21IZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmF1dGhIZWFkZXIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQoXHJcbiAgICAgICAgbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KHRoaXMuZmlsZURhdGEpXSwgeyB0eXBlOiB0aGlzLkRPQ1VNRU5UX1RZUEUgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZVRpdGxlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgIC8vIGlmIHdlIG5lZWQgdG8gY2hlY2sgb24gc2VjcmVjeSBsZXZlbCBmb3IgYWRkaW5nIHdhdGVyIG1hcmsgb3Igbm90IFxyXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlVmlld2VyV2F0ZXJNYXJrICYmIHRoaXMuc2VjcmVjeVByb3BlcnR5KSB7XHJcbiAgICAgIC8vIGNoZWNrIGZvciBzZWNyZWN5IGxldmVsIGJlZm9yIGFkZGluZyB3YXRlcm1hcmtcclxuICAgICAgaWYgKHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1t0aGlzLnNlY3JlY3lQcm9wZXJ0eV0gJiYgdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAhPT0gJ05vcm1hbCcpIHtcclxuICAgICAgICB0aGlzLmFkZFdhdGVybWFyaygpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlVmlld2VyV2F0ZXJNYXJrICYmICF0aGlzLnNlY3JlY3lQcm9wZXJ0eSkge1xyXG4gICAgICB0aGlzLmFkZFdhdGVybWFyaygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhwb3J0QXNCbG9iKCk6IFByb21pc2U8QmxvYj4ge1xyXG4gICAgY29uc3QgZG9jID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0RG9jdW1lbnQoKTtcclxuICAgIGNvbnN0IHhmZGZTdHJpbmcgPVxyXG4gICAgICBhd2FpdCB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5leHBvcnRBbm5vdGF0aW9ucygpO1xyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGRvYy5nZXRGaWxlRGF0YSh7XHJcbiAgICAgIC8vIHNhdmVzIHRoZSBkb2N1bWVudCB3aXRoIGFubm90YXRpb25zIGluIGl0XHJcbiAgICAgIHhmZGZTdHJpbmcsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGRhdGEpO1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJdLCB7IHR5cGU6IHRoaXMuRE9DVU1FTlRfVFlQRSB9KTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYmxvYik7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFZGl0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmFjdGlvbkNsaWNrZWQpIHtcclxuICAgICAgLy8gYWN0aW9uIGNsaWNrZWQgaXMgbm90IGNsaWNrZWQgdGhlbiBubyB1cGRhdGUgbW9kZSBvcGVuZWRcclxuICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kaXNhYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUVkaXQnLFxyXG4gICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAndG9vbGJhckdyb3VwLUFubm90YXRlJyxcclxuICAgICAgXSk7XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gZWRpdCBtb2RlIG9wZW5lZCBhbmQgbXVzdCBiZSB3aGVuIGFjdGlvbiBpcyBjbGlja2VkXHJcbiAgICAgIGlmICh0aGlzLmVkaXRpbmdUeXBlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kaXNhYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIGxldCBncm91cCA7XHJcbiAgICAgICAgaWYodGhpcy5lZGl0aW5nVHlwZSA9PT0gJ3NpZ25Eb2MnKXtcclxuICAgICAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgICAndG9vbGJhckdyb3VwLUluc2VydCdcclxuICAgICAgICAgIF0pO1xyXG5cclxuICAgICAgICB9ZWxzZSBpZih0aGlzLmVkaXRpbmdUeXBlID09PSAnYW5ub3RhdGUnKXtcclxuICAgICAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgICAndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtRWRpdCcsXHJcbiAgICAgICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG4gICAgICAgICAgJ3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuICAgICAgICAgICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KGZhbHNlKTtcclxuICAgICAgLy8gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRUb29sYmFyR3JvdXAoJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMud2ViVmlld2VySW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy50b2dnbGVFZGl0KCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjaGFuZ2VzLnVybEZpbGVDb250ZW50ICYmXHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5wcmV2aW91c1ZhbHVlICYmXHJcbiAgICAgICAgY2hhbmdlcy51cmxGaWxlQ29udGVudC5wcmV2aW91c1ZhbHVlICE9PVxyXG4gICAgICAgIGNoYW5nZXMudXJsRmlsZUNvbnRlbnQuY3VycmVudFZhbHVlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwZGZUcm9uRXZlbnQoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzW2V2ZW50LmFjdGlvbl0pIHtcclxuICAgICAgLy8gbWV0aG9kIGV4aXN0cyBpbiB0aGUgY29tcG9uZW50XHJcbiAgICAgIC8vICB0aGlzW2V2ZW50LmFjdGlvbl0oZXZlbnQucGFyYW1zKTsgLy8gY2FsbCBpdFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmNsb3NlRG9jdW1lbnQoKS50aGVuKCgpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZG9jdW1lbnQgY2xvc2VkIScpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA/IHRoaXMudHJhbnNlbGF0aW9uU3Vic2NyaXRpb24udW5zdWJzY3JpYmUoKSA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2ZpbGVWaWV3ZXIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiPjwvZGl2PlxyXG4iXX0=
@@ -6646,7 +6646,9 @@ class DepartmentFormComponent {
6646
6646
  }, (err) => {
6647
6647
  this.loading = false;
6648
6648
  this.dialogRef.close(false);
6649
- this.toastr.show('error', 'error', 'error');
6649
+ this.toastr.show('error', 'error', err.ret.message ?
6650
+ `errors.${err.ret.code}`
6651
+ : 'genericError');
6650
6652
  });
6651
6653
  }
6652
6654
  else {
@@ -6658,7 +6660,9 @@ class DepartmentFormComponent {
6658
6660
  this.toastr.show('success', 'success', 'success');
6659
6661
  }, (err) => {
6660
6662
  this.loading = false;
6661
- this.toastr.show('error', 'error', 'error');
6663
+ this.toastr.show('error', 'error', err.ret.message ?
6664
+ `errors.${err.ret.code}`
6665
+ : 'genericError');
6662
6666
  });
6663
6667
  }
6664
6668
  }
@@ -6689,7 +6693,9 @@ class DepartmentFormComponent {
6689
6693
  this.toastr.show('success', 'success', 'success');
6690
6694
  }, (err) => {
6691
6695
  this.loading = false;
6692
- this.toastr.show('error', 'error', 'error');
6696
+ this.toastr.show('error', 'error', err.ret.message ?
6697
+ `errors.${err.ret.code}`
6698
+ : 'genericError');
6693
6699
  });
6694
6700
  }
6695
6701
  }
@@ -9642,7 +9648,9 @@ class ConfirmCallerDialogComponent {
9642
9648
  this.toastr.show('success', this.data.toastrTitle, this.data.toastrMsg);
9643
9649
  }, (error) => {
9644
9650
  this.calling = false;
9645
- this.toastr.show('error', 'Error', 'genericError');
9651
+ this.toastr.show('error', 'Error', error.ret.message ?
9652
+ `errors.${error.ret.code}`
9653
+ : 'genericError');
9646
9654
  });
9647
9655
  }
9648
9656
  }
@@ -10304,7 +10312,9 @@ class DocumentsListComponent {
10304
10312
  }, (error) => {
10305
10313
  console.error(error);
10306
10314
  this.toastr
10307
- .show('error', 'error', error.message)
10315
+ .show('error', 'error', error.ret.message ?
10316
+ `errors.${error.ret.code}`
10317
+ : 'genericError')
10308
10318
  .onShown.subscribe(() => { });
10309
10319
  });
10310
10320
  }
@@ -11532,7 +11542,9 @@ class DocumentsComponent {
11532
11542
  this.documentConstants = DocumentsConstants;
11533
11543
  }
11534
11544
  onError(error) {
11535
- this.toastr.show('error', 'error', error ? error : 'genericError');
11545
+ this.toastr.show('error', 'error', error.ret.message ?
11546
+ `errors.${error.ret.code}`
11547
+ : 'genericError');
11536
11548
  }
11537
11549
  onSuccess(files) {
11538
11550
  this.toastr.show('success', 'success', 'documents.addSuccess');
@@ -16379,6 +16391,7 @@ class CommentItemComponent {
16379
16391
  this.translationSrvice = translationSrvice;
16380
16392
  this.dialog = dialog;
16381
16393
  this.loaderType = 'scroll';
16394
+ this.showCommentActions = true;
16382
16395
  this.lang = 'en';
16383
16396
  this.refreshCommentList = new EventEmitter();
16384
16397
  }
@@ -16421,7 +16434,7 @@ class CommentItemComponent {
16421
16434
  }
16422
16435
  }
16423
16436
  CommentItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CommentItemComponent, deps: [{ token: TranslationService$1 }, { token: i1$7.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
16424
- CommentItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CommentItemComponent, selector: "app-comment-item", inputs: { comment: "comment", loaderType: "loaderType" }, outputs: { refreshCommentList: "refreshCommentList" }, ngImport: i0, template: "<div class=\"comment-item\" SetRtl>\r\n\r\n <div class=\"comment-controls\" >\r\n <span class=\"bi bi-pencil contril-icon\" \r\n *permission=\"{name: 'updateComment', entity: comment}\"\r\n matTooltip=\"{{ 'BUTTONS.EDIT' | translate }}\"\r\n (click)=\"executeFunction('edit')\"\r\n ></span>\r\n\r\n <span class=\"bi bi-trash contril-icon\" \r\n *permission=\"{name: 'deleteComment', entity: comment}\"\r\n matTooltip=\"{{ 'BUTTONS.Delete' | translate }}\"\r\n (click)=\"executeFunction('delete')\"\r\n ></span>\r\n </div>\r\n\r\n <app-user-card [user]=\"comment.Commenter\" [diameter]=\"12\">\r\n <div class=\"lineOne\">\r\n {{ comment.Commenter.properties.firstName }}\r\n {{ comment.Commenter.properties.lastName }}\r\n </div>\r\n <div class=\"lineOnePart2\">\r\n <span class=\"date\" matTooltip='{{ comment?.creationDate | localizedDate:\r\n \"fullDate\"}}' matTooltipClass=\"tdf-tooltip\" TooltipPosition='below'>\r\n <span class=\"date-sperator px-1\">|</span>{{ comment?.creationDate | timeAgo : lang }}</span>\r\n </div>\r\n <div class=\"lineTwo\">\r\n <app-read-more class=\"comment-text\" [text]=\"comment?.text\" [wordCount]=\"loaderType === 'scroll' ? 20 : 60\">\r\n </app-read-more>\r\n </div>\r\n </app-user-card>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.comment-item{border:1px solid #d9dce2;padding:8px 4px;display:flex;position:relative}.comment-item:hover{background:#f5f6f8}.comment-item .comment-controls{position:absolute;right:5px}.comment-item .comment-controls .contril-icon{padding:0 5px;cursor:pointer}.date{color:#3c3cf0}.comment-text{color:#8f98aa}.comment-avatar{align-items:top;padding:0 4px;display:flex}.comment-avatar .avatar{width:40px;height:40px;display:block}.rtl .comment-controls{left:5px;right:auto}\n"], components: [{ type: UserCardComponent, selector: "app-user-card", inputs: ["user", "diameter"] }, { type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "charCount", "wordCount", "lineBreaks"] }], directives: [{ type: SetRtlDirective, selector: "[SetRtl]" }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "translate": i1$1.TranslatePipe, "localizedDate": LocalizedDatePipe, "timeAgo": TimeAgoPipe } });
16437
+ CommentItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CommentItemComponent, selector: "app-comment-item", inputs: { comment: "comment", loaderType: "loaderType", showCommentActions: "showCommentActions" }, outputs: { refreshCommentList: "refreshCommentList" }, ngImport: i0, template: "<div class=\"comment-item\" SetRtl>\r\n\r\n <div class=\"comment-controls\" *ngIf=\"showCommentActions\">\r\n <span class=\"bi bi-pencil contril-icon\" \r\n *permission=\"{name: 'updateComment', entity: comment}\"\r\n matTooltip=\"{{ 'BUTTONS.EDIT' | translate }}\"\r\n (click)=\"executeFunction('edit')\"\r\n ></span>\r\n\r\n <span class=\"bi bi-trash contril-icon\" \r\n *permission=\"{name: 'deleteComment', entity: comment}\"\r\n matTooltip=\"{{ 'BUTTONS.Delete' | translate }}\"\r\n (click)=\"executeFunction('delete')\"\r\n ></span>\r\n </div>\r\n\r\n <app-user-card [user]=\"comment.Commenter\" [diameter]=\"12\">\r\n <div class=\"lineOne\">\r\n {{ comment.Commenter.properties.firstName }}\r\n {{ comment.Commenter.properties.lastName }}\r\n </div>\r\n <div class=\"lineOnePart2\">\r\n <span class=\"date\" matTooltip='{{ comment?.creationDate | localizedDate:\r\n \"fullDate\"}}' matTooltipClass=\"tdf-tooltip\" TooltipPosition='below'>\r\n <span class=\"date-sperator px-1\">|</span>{{ comment?.creationDate | timeAgo : lang }}</span>\r\n </div>\r\n <div class=\"lineTwo\">\r\n <app-read-more class=\"comment-text\" [text]=\"comment?.text\" [wordCount]=\"loaderType === 'scroll' ? 20 : 60\">\r\n </app-read-more>\r\n </div>\r\n </app-user-card>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.comment-item{border:1px solid #d9dce2;padding:8px 4px;display:flex;position:relative}.comment-item:hover{background:#f5f6f8}.comment-item .comment-controls{position:absolute;right:5px}.comment-item .comment-controls .contril-icon{padding:0 5px;cursor:pointer}.date{color:#3c3cf0}.comment-text{color:#8f98aa}.comment-avatar{align-items:top;padding:0 4px;display:flex}.comment-avatar .avatar{width:40px;height:40px;display:block}.rtl .comment-controls{left:5px;right:auto}\n"], components: [{ type: UserCardComponent, selector: "app-user-card", inputs: ["user", "diameter"] }, { type: ReadMoreComponent, selector: "app-read-more", inputs: ["text", "charCount", "wordCount", "lineBreaks"] }], directives: [{ type: SetRtlDirective, selector: "[SetRtl]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "translate": i1$1.TranslatePipe, "localizedDate": LocalizedDatePipe, "timeAgo": TimeAgoPipe } });
16425
16438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CommentItemComponent, decorators: [{
16426
16439
  type: Component,
16427
16440
  args: [{
@@ -16433,6 +16446,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
16433
16446
  type: Input
16434
16447
  }], loaderType: [{
16435
16448
  type: Input
16449
+ }], showCommentActions: [{
16450
+ type: Input
16436
16451
  }], refreshCommentList: [{
16437
16452
  type: Output
16438
16453
  }] } });
@@ -16479,7 +16494,7 @@ class CommentsListComponent {
16479
16494
  }
16480
16495
  }
16481
16496
  CommentsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CommentsListComponent, deps: [{ token: CommentApiService }], target: i0.ɵɵFactoryTarget.Component });
16482
- CommentsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CommentsListComponent, selector: "app-comments-list", inputs: { entityId: "entityId", pageSize: "pageSize", loaderType: "loaderType" }, viewQueries: [{ propertyName: "scrollDiv", first: true, predicate: ["scrollDiv"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"scroll-div overflow-auto dark-scroll\"\r\n #scrollDiv\r\n infinite-scroll\r\n [scrollWindow]=\"false\"\r\n [infiniteScrollDistance]=\"distance\"\r\n [infiniteScrollDisabled]=\"infiniteScrollDisabled\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n (scrolled)=\"onScroll($event)\"\r\n>\r\n <app-comment-item\r\n [loaderType]=\"loaderType\"\r\n class=\"mb-2\"\r\n *ngFor=\"let comment of comments\"\r\n [comment]=\"comment\"\r\n (refreshCommentList)=\"refreshList()\"\r\n >\r\n </app-comment-item>\r\n <div *ngIf=\"fetching && loaderType === 'scroll'\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </div>\r\n <div\r\n class=\"button-wrapper\"\r\n *ngIf=\"!infiniteScrollDisabled && loaderType === 'button'\"\r\n >\r\n <cts-button\r\n [theme]=\"'outline-dark'\"\r\n [size]=\"'regular'\"\r\n (onClick)=\"onScroll($event)\"\r\n [loading]=\"fetching\"\r\n >\r\n {{ \"comment.loadMore\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"comments.length === 0 && !fetching\"\r\n class=\"No-Items flex justify-center\"\r\n>\r\n <cts-no-data [message]=\"'comment.nocomment'\"></cts-no-data>\r\n</div>\r\n", styles: [".text-style{color:#fff}.containerHeight{min-height:400px;max-height:auto}.titleStyle{font-size:24px}.padding-50{padding:50px}.p-20px{padding:20px}.mt-33{margin-top:33px}.mt-24px{margin-top:24px}.mb-20px{margin-bottom:20px}.mb-30{margin-bottom:30px}.mt-30{margin-top:30px}.avatar{width:40px;height:40px;border-radius:50%}.btn{width:123px;height:40px}.submibtn{width:171px;height:40px}.btnText{font-size:14px;color:#fff}.CardFont{font-size:14px}.border{border-width:1px}.gridContainer{display:grid;grid-template-columns:40px auto;grid-column-gap:5px;column-gap:5px;margin-bottom:20px}.container{height:110px}.mat-grid-tile{background-color:#00f}.avatarContainer{height:40px;width:40px}.col .containerHeight{min-height:260px;max-height:auto}.gap-40px{grid-row-gap:40px;row-gap:40px}.scroll-div{max-height:100%;display:flex;flex-direction:column;flex:1}.button-wrapper{width:150px}.comment-spinner{width:100%;display:grid;place-items:center}\n"], components: [{ type: CommentItemComponent, selector: "app-comment-item", inputs: ["comment", "loaderType"], outputs: ["refreshCommentList"] }, { type: i1$6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: ButtonComponent, selector: "cts-button", inputs: ["disabled", "loading", "size", "theme"], outputs: ["onClick"] }, { type: NoDataComponent, selector: "cts-no-data", inputs: ["message", "border"] }], directives: [{ type: i7$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1$1.TranslatePipe } });
16497
+ CommentsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CommentsListComponent, selector: "app-comments-list", inputs: { entityId: "entityId", pageSize: "pageSize", loaderType: "loaderType", showCommentActions: "showCommentActions" }, viewQueries: [{ propertyName: "scrollDiv", first: true, predicate: ["scrollDiv"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"scroll-div overflow-auto dark-scroll\"\r\n #scrollDiv\r\n infinite-scroll\r\n [scrollWindow]=\"false\"\r\n [infiniteScrollDistance]=\"distance\"\r\n [infiniteScrollDisabled]=\"infiniteScrollDisabled\"\r\n [infiniteScrollThrottle]=\"throttle\"\r\n (scrolled)=\"onScroll($event)\"\r\n>\r\n <app-comment-item\r\n [loaderType]=\"loaderType\"\r\n class=\"mb-2\"\r\n *ngFor=\"let comment of comments\"\r\n [comment]=\"comment\"\r\n [showCommentActions]=\"showCommentActions\"\r\n (refreshCommentList)=\"refreshList()\"\r\n >\r\n </app-comment-item>\r\n <div *ngIf=\"fetching && loaderType === 'scroll'\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </div>\r\n <div\r\n class=\"button-wrapper\"\r\n *ngIf=\"!infiniteScrollDisabled && loaderType === 'button'\"\r\n >\r\n <cts-button\r\n [theme]=\"'outline-dark'\"\r\n [size]=\"'regular'\"\r\n (onClick)=\"onScroll($event)\"\r\n [loading]=\"fetching\"\r\n >\r\n {{ \"comment.loadMore\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"comments.length === 0 && !fetching\"\r\n class=\"No-Items flex justify-center\"\r\n>\r\n <cts-no-data [message]=\"'comment.nocomment'\"></cts-no-data>\r\n</div>\r\n", styles: [".text-style{color:#fff}.containerHeight{min-height:400px;max-height:auto}.titleStyle{font-size:24px}.padding-50{padding:50px}.p-20px{padding:20px}.mt-33{margin-top:33px}.mt-24px{margin-top:24px}.mb-20px{margin-bottom:20px}.mb-30{margin-bottom:30px}.mt-30{margin-top:30px}.avatar{width:40px;height:40px;border-radius:50%}.btn{width:123px;height:40px}.submibtn{width:171px;height:40px}.btnText{font-size:14px;color:#fff}.CardFont{font-size:14px}.border{border-width:1px}.gridContainer{display:grid;grid-template-columns:40px auto;grid-column-gap:5px;column-gap:5px;margin-bottom:20px}.container{height:110px}.mat-grid-tile{background-color:#00f}.avatarContainer{height:40px;width:40px}.col .containerHeight{min-height:260px;max-height:auto}.gap-40px{grid-row-gap:40px;row-gap:40px}.scroll-div{max-height:100%;display:flex;flex-direction:column;flex:1}.button-wrapper{width:150px}.comment-spinner{width:100%;display:grid;place-items:center}\n"], components: [{ type: CommentItemComponent, selector: "app-comment-item", inputs: ["comment", "loaderType", "showCommentActions"], outputs: ["refreshCommentList"] }, { type: i1$6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: ButtonComponent, selector: "cts-button", inputs: ["disabled", "loading", "size", "theme"], outputs: ["onClick"] }, { type: NoDataComponent, selector: "cts-no-data", inputs: ["message", "border"] }], directives: [{ type: i7$1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1$1.TranslatePipe } });
16483
16498
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CommentsListComponent, decorators: [{
16484
16499
  type: Component,
16485
16500
  args: [{
@@ -16493,6 +16508,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
16493
16508
  type: Input
16494
16509
  }], loaderType: [{
16495
16510
  type: Input
16511
+ }], showCommentActions: [{
16512
+ type: Input
16496
16513
  }], scrollDiv: [{
16497
16514
  type: ViewChild,
16498
16515
  args: ['scrollDiv']
@@ -16520,6 +16537,7 @@ class CommentsDashletComponent {
16520
16537
  this.row = true;
16521
16538
  /** disable/enable add comment section */
16522
16539
  this.showaddcomment = true;
16540
+ this.showCommentActions = true;
16523
16541
  this.comments = [];
16524
16542
  this.throttle = 0;
16525
16543
  this.distance = 2;
@@ -16544,7 +16562,7 @@ class CommentsDashletComponent {
16544
16562
  }
16545
16563
  }
16546
16564
  CommentsDashletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CommentsDashletComponent, deps: [{ token: i1$1.TranslateService }, { token: CommentApiService }, { token: NuxeoService$1 }], target: i0.ɵɵFactoryTarget.Component });
16547
- CommentsDashletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CommentsDashletComponent, selector: "app-comments-dashlet", inputs: { entityId: "entityId", correspondence: "correspondence", row: "row", showaddcomment: "showaddcomment" }, viewQueries: [{ propertyName: "commentsList", first: true, predicate: CommentsListComponent, descendants: true }], ngImport: i0, template: "<div class=\"comments-container\">\r\n <div class=\"comments-title\">\r\n {{ \"comment.comment\" | translate }} ({{ commentsList?.totalRecords }})\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"comments-list-container\">\r\n <div class=\"adding-comment-section\" *ngIf=\"showaddcomment\">\r\n <div class=\"comment-box\" *permission=\"{\r\n name: 'comments',\r\n entity: correspondence , user: nuxeoService.nuxeoClient.user\r\n }\">\r\n <div class=\"comment-input\">\r\n <textarea\r\n class=\"comment-area\"\r\n name=\"description\"\r\n id=\"description\"\r\n type=\"text\"\r\n rows=\"3\"\r\n required\r\n matTextareaAutosize\r\n matAutosizeMinRows=\"5\"\r\n matAutosizeMaxRows=\"10\"\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"'comment.placeHolder' | translate\"\r\n #commentText=\"ngModel\"\r\n ></textarea>\r\n </div>\r\n <div class=\"add-container\">\r\n <div class=\"button-wrapper\">\r\n <cts-button\r\n [disabled]=\"!((comment?.trim())?.length)\"\r\n [loading]=\"saving\"\r\n [theme]=\"'green'\"\r\n [size]=\"'regular'\"\r\n (click)=\"onPost()\"\r\n >\r\n {{ \"comment.add\" | translate }}\r\n </cts-button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"comment-list\"\r\n [ngClass]=\"{ 'fix-height col-6': row, 'col-12': !row }\"\r\n >\r\n <app-comments-list\r\n [loaderType]=\"row ? 'scroll' : 'button'\"\r\n [pageSize]=\"row ? 4 : 9\"\r\n [entityId]=\"entityId\"\r\n >\r\n </app-comments-list>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.comments-container{padding:16px}.comments-container .comments-title{font-size:16px;font-weight:500;padding:12px;border-bottom:1px solid #d9dce2}.comments-container .comments-list-container .comment-box{display:flex;flex-direction:column}.comments-container .comments-list-container .comment-box .comment-input{padding:8px 15px 0}.comments-container .comments-list-container .comment-box .comment-area{border-radius:5px;padding:8px;width:100%;color:#465573;outline:none;border:1px solid #d9dce2;background-color:#8f98aa1a;resize:none}.comments-container .comments-list-container .comment-box .add-container{margin-inline-start:15px;display:flex;justify-content:flex-start;border-bottom:1px solid #d9dce2;padding-bottom:15px;padding-inline-end:15px}.comments-container .comments-list-container .comment-box .extra-actions-container{display:flex;justify-content:space-between!important;flex-wrap:wrap}.comments-container .comments-list-container .comment-box .extra-actions-container .button-wrapper{margin-bottom:10px}.comments-container .comments-list-container .comment-box .extra-actions-container .extra-actions{display:flex}.comments-container .comments-list-container .comment-box .extra-actions-container .submission-button{width:auto!important;padding:0 10px;min-width:80px}.comments-container .comments-list-container .comment-box .button-wrapper{align-items:flex-end;width:18%}.comments-container .comments-list-container .comment-list{margin-top:8px}.comments-container .comments-list-container .comment-list .fix-height{height:200px}.comments-container .revers-sections{display:flex;flex-direction:column-reverse}\n"], components: [{ type: ButtonComponent, selector: "cts-button", inputs: ["disabled", "loading", "size", "theme"], outputs: ["onClick"] }, { type: CommentsListComponent, selector: "app-comments-list", inputs: ["entityId", "pageSize", "loaderType"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i1$1.TranslatePipe } });
16565
+ CommentsDashletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: CommentsDashletComponent, selector: "app-comments-dashlet", inputs: { entityId: "entityId", correspondence: "correspondence", row: "row", showaddcomment: "showaddcomment", showCommentActions: "showCommentActions" }, viewQueries: [{ propertyName: "commentsList", first: true, predicate: CommentsListComponent, descendants: true }], ngImport: i0, template: "<div class=\"comments-container\">\r\n <div class=\"comments-title\">\r\n {{ \"comment.comment\" | translate }} ({{ commentsList?.totalRecords }})\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"comments-list-container\">\r\n <div class=\"adding-comment-section\" *ngIf=\"showaddcomment\">\r\n <div class=\"comment-box\" *permission=\"{\r\n name: 'comments',\r\n entity: correspondence , user: nuxeoService.nuxeoClient.user\r\n }\">\r\n <div class=\"comment-input\">\r\n <textarea\r\n class=\"comment-area\"\r\n name=\"description\"\r\n id=\"description\"\r\n type=\"text\"\r\n rows=\"3\"\r\n required\r\n matTextareaAutosize\r\n matAutosizeMinRows=\"5\"\r\n matAutosizeMaxRows=\"10\"\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"'comment.placeHolder' | translate\"\r\n #commentText=\"ngModel\"\r\n ></textarea>\r\n </div>\r\n <div class=\"add-container\">\r\n <div class=\"button-wrapper\">\r\n <cts-button\r\n [disabled]=\"!((comment?.trim())?.length)\"\r\n [loading]=\"saving\"\r\n [theme]=\"'green'\"\r\n [size]=\"'regular'\"\r\n (click)=\"onPost()\"\r\n >\r\n {{ \"comment.add\" | translate }}\r\n </cts-button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"comment-list\"\r\n [ngClass]=\"{ 'fix-height col-6': row, 'col-12': !row }\"\r\n >\r\n <app-comments-list\r\n [loaderType]=\"row ? 'scroll' : 'button'\"\r\n [pageSize]=\"row ? 4 : 9\"\r\n [entityId]=\"entityId\"\r\n [showCommentActions]=\"showCommentActions\"\r\n >\r\n </app-comments-list>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.comments-container{padding:16px}.comments-container .comments-title{font-size:16px;font-weight:500;padding:12px;border-bottom:1px solid #d9dce2}.comments-container .comments-list-container .comment-box{display:flex;flex-direction:column}.comments-container .comments-list-container .comment-box .comment-input{padding:8px 15px 0}.comments-container .comments-list-container .comment-box .comment-area{border-radius:5px;padding:8px;width:100%;color:#465573;outline:none;border:1px solid #d9dce2;background-color:#8f98aa1a;resize:none}.comments-container .comments-list-container .comment-box .add-container{margin-inline-start:15px;display:flex;justify-content:flex-start;border-bottom:1px solid #d9dce2;padding-bottom:15px;padding-inline-end:15px}.comments-container .comments-list-container .comment-box .extra-actions-container{display:flex;justify-content:space-between!important;flex-wrap:wrap}.comments-container .comments-list-container .comment-box .extra-actions-container .button-wrapper{margin-bottom:10px}.comments-container .comments-list-container .comment-box .extra-actions-container .extra-actions{display:flex}.comments-container .comments-list-container .comment-box .extra-actions-container .submission-button{width:auto!important;padding:0 10px;min-width:80px}.comments-container .comments-list-container .comment-box .button-wrapper{align-items:flex-end;width:18%}.comments-container .comments-list-container .comment-list{margin-top:8px}.comments-container .comments-list-container .comment-list .fix-height{height:200px}.comments-container .revers-sections{display:flex;flex-direction:column-reverse}\n"], components: [{ type: ButtonComponent, selector: "cts-button", inputs: ["disabled", "loading", "size", "theme"], outputs: ["onClick"] }, { type: CommentsListComponent, selector: "app-comments-list", inputs: ["entityId", "pageSize", "loaderType", "showCommentActions"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i1$1.TranslatePipe } });
16548
16566
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: CommentsDashletComponent, decorators: [{
16549
16567
  type: Component,
16550
16568
  args: [{
@@ -16560,6 +16578,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
16560
16578
  type: Input
16561
16579
  }], showaddcomment: [{
16562
16580
  type: Input
16581
+ }], showCommentActions: [{
16582
+ type: Input
16563
16583
  }], commentsList: [{
16564
16584
  type: ViewChild,
16565
16585
  args: [CommentsListComponent, { static: false }]
@@ -17567,7 +17587,9 @@ class CorrespondenceRelationComponent {
17567
17587
  this.corrrelationsvc.getUpdatedRelation.next();
17568
17588
  this.toastr.show('success', 'success', 'Realation Successfuly added');
17569
17589
  }, (err) => {
17570
- this.toastr.show('error', 'error', 'Failed to add relation');
17590
+ this.toastr.show('error', 'error', err.ret.message ?
17591
+ `errors.${err.ret.code}`
17592
+ : 'genericError');
17571
17593
  });
17572
17594
  }
17573
17595
  });
@@ -18021,7 +18043,7 @@ class PdftronComponent {
18021
18043
  forceClientSideInit: true,
18022
18044
  streaming: true,
18023
18045
  licenseKey: this.environment.pdftronLicenceKey,
18024
- annotationUser: this.nuxeo.nuxeoClient.user.properties.username,
18046
+ annotationUser: this.nuxeo.nuxeoClient.user.properties.firstName + ' ' + this.nuxeo.nuxeoClient.user.properties.lastName,
18025
18047
  disabledElements: ['downloadButton', 'printButton'],
18026
18048
  }, this.viewerRef.nativeElement).then((instance) => __awaiter(this, void 0, void 0, function* () {
18027
18049
  this.isArabic ? instance.setLanguage('ar') : instance.setLanguage('en');