@provoly/hypervisor 2.4.4 → 2.4.6
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.
- package/esm2022/src/lib/event/detail/event-detail.component.mjs +3 -3
- package/esm2022/src/lib/general/procedure-actions/action-parameters/service/create-service.component.mjs +2 -2
- package/fesm2022/provoly-hypervisor.mjs +3 -3
- package/fesm2022/provoly-hypervisor.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -94,7 +94,7 @@ export class HvyCreateServiceComponent extends SubscriptionnerDirective {
|
|
|
94
94
|
this.filteredTypes = [...this.allowedTypes];
|
|
95
95
|
}
|
|
96
96
|
else {
|
|
97
|
-
this.filteredTypes = this.allowedTypes.filter((t) => t.name.toLowerCase().includes(value.toLowerCase()));
|
|
97
|
+
this.filteredTypes = this.allowedTypes.filter((t) => t.name.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").includes(value.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "")));
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
onTypeChange($event) {
|
|
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
169
169
|
type: Inject,
|
|
170
170
|
args: [PRY_DIALOG_DATA]
|
|
171
171
|
}] }, { type: i2.ServiceService }, { type: i1.PryI18nService }] });
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9zZXJ2aWNlL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvc2VydmljZS9jcmVhdGUtc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFnQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQW9CN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHdCQUF3QjtJQW9CckUsWUFDVSxNQUErQyxFQUN2QixJQUE2RCxFQUNyRixjQUE4QixFQUM5QixXQUEyQjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQUxBLFdBQU0sR0FBTixNQUFNLENBQXlDO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQXlEO1FBQ3JGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUF2QnJDLFdBQU0sR0FBMkI7WUFDL0IsS0FBSyxFQUFFLFFBQVE7WUFD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QUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ3RGLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN2RyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBL0tVLHlCQUF5Qiw4Q0FzQjFCLGVBQWU7a0dBdEJkLHlCQUF5QixpRkMzQnRDLGl0SUEyRkE7OzJGRGhFYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkF5QjNCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQUllfRElBTE9HX0RBVEEsIFByeURpYWxvZ1JlZiwgUHJ5STE4blNlcnZpY2UsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIeXBFcXVpcG1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9oeXAtZXF1aXBtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBTZXJ2aWNlQWN0aW9uIH0gZnJvbSAnLi9zZXJ2aWNlLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIeXBTZXJ2aWNlVHlwZSwgU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvZG9tYWlucy5jb25zdGFudCc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIEh5cENyZWF0ZVNlcnZpY2VSZXN1bHQgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZXF1aXBtZW50OiBzdHJpbmc7XG4gIGRvbWFpbjogc3RyaW5nO1xuICBwcmlvcml0eTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGd0aT86IHN0cmluZztcbiAgZ3RyPzogc3RyaW5nO1xuICBndHJwPzogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWNyZWF0ZS1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgcmVzdWx0OiBIeXBDcmVhdGVTZXJ2aWNlUmVzdWx0ID0ge1xuICAgIHZhbHVlOiAnY2FuY2VsJyxcbiAgICBuYW1lOiAnJyxcbiAgICBkb21haW46ICcnLFxuICAgIHByaW9yaXR5OiAnJyxcbiAgICBlcXVpcG1lbnQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJ1xuICB9O1xuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIHR5cGVzOiBIeXBTZXJ2aWNlVHlwZVtdID0gW107XG4gIHByaW9yaXRpZXMgPSBbJzEtTUlORVVSJywgJzItTUFKRVVSJywgJzMtQkxPUVVBTlQnXTtcbiAgZG9tYWlucyA9IERPTUFJTlMudmFsdWVzO1xuICBlcXVpcG1lbnRzOiAoSHlwRXF1aXBtZW50IHwgeyBkaXNwbGF5TmFtZTogc3RyaW5nIH0pW10gPSBbXTtcbiAgYWxsb3dlZFR5cGVzOiBIeXBTZXJ2aWNlVHlwZVtdID0gW107XG4gIGZpbHRlcmVkVHlwZXM6IEh5cFNlcnZpY2VUeXBlW10gPSBbXTtcbiAgdHlwZVNlYXJjaCA9ICcnO1xuICBwcml2YXRlIHR5cGVTZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBQcnlEaWFsb2dSZWY8SHZ5Q3JlYXRlU2VydmljZUNvbXBvbmVudD4sXG4gICAgQEluamVjdChQUllfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IGFjdGlvbjogSHlwU2VydmljZUFjdGlvbjsgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSB9LFxuICAgIHByaXZhdGUgc2VydmljZVNlcnZpY2U6IFNlcnZpY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZXN1bHQubmFtZSA9XG4gICAgICB0aGlzLmRhdGEuZXZlbnRzICYmIHRoaXMuZGF0YS5ldmVudHMubGVuZ3RoID4gMCA/IHRoaXMuZGF0YS5ldmVudHNbMF0ubmFtZSA6IHRoaXMuZGF0YS5hY3Rpb24ubmFtZTtcbiAgICB0aGlzLmVxdWlwbWVudHMgPSBbXG4gICAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0Bodnkuc2VydmljZS5ub0VxdWlwJyksXG4gICAgICAgIGlkOiAnX19OT19FUVVJUE1FTlRfXydcbiAgICAgIH0sXG4gICAgICAuLi50aGlzLmRhdGEuZXZlbnRzXG4gICAgICAgIC5maWx0ZXIoKGV2KSA9PiAhIWV2LmVxdWlwbWVudClcbiAgICAgICAgLm1hcCgoZXYpID0+ICh7XG4gICAgICAgICAgLi4uZXYuZXF1aXBtZW50LFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJHtldi5lcXVpcG1lbnQ/Lm5hbWV9IC0gJHt0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0BodnkuZXZlbnQuZmFtaWx5LicgKyBldi5lcXVpcG1lbnQ/LmZhbWlseSl9YFxuICAgICAgICB9KSlcbiAgICBdLmZpbHRlcigob2JqLCBpbmRleCwgYXJyKSA9PlxuICAgIHtcbiAgICAgIHJldHVybiBhcnIuZmluZEluZGV4KG8gPT5cbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8pID09PSBKU09OLnN0cmluZ2lmeShvYmopXG4gICAgICB9KSA9PT0gaW5kZXhcbiAgICB9KSBhcyAoSHlwRXF1aXBtZW50IHwgeyBkaXNwbGF5TmFtZTogc3RyaW5nIH0pW107XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50eXBlU2VhcmNoU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLmFwcGx5VHlwZUZpbHRlcih2YWx1ZSkpXG4gICAgKTtcblxuICAgIHRoaXMuc2VydmljZVNlcnZpY2UudHlwZXMoKS5zdWJzY3JpYmUoKHR5cGVzKSA9PiB7XG4gICAgICB0aGlzLnR5cGVzID0gdHlwZXM7XG4gICAgICB0aGlzLnVwZGF0ZUFsbG93ZWRUeXBlcygpO1xuICAgIH0pO1xuXG4gICAgaWYodGhpcy5kYXRhLmV2ZW50cyAmJiB0aGlzLmRhdGEuZXZlbnRzLmxlbmd0aCA9PT0gMSAmJiAhIXRoaXMuZGF0YS5ldmVudHNbMF0uZXF1aXBtZW50KSB7XG4gICAgICB0aGlzLm9uRXF1aXBtZW50Q2hhbmdlKHRoaXMuZGF0YS5ldmVudHNbMF0uZXF1aXBtZW50LmlkKTtcbiAgICB9XG4gIH1cblxuICBhY3Rpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UodGhpcy5yZXN1bHQpO1xuICB9XG5cbiAgb25FcXVpcG1lbnRDaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC5lcXVpcG1lbnQgPSAkZXZlbnQ7XG4gICAgY29uc3QgZXF1aXBtZW50ID0gKFxuICAgICAgdGhpcy5lcXVpcG1lbnRzLmZpbHRlcigoZXF1aXBtZW50KSA9PiBlcXVpcG1lbnQuaGFzT3duUHJvcGVydHkoJ2RvbWFpbicpKSBhcyBIeXBFcXVpcG1lbnRbXVxuICAgICkuZmluZCgoZXF1aXApID0+IGVxdWlwLmlkID09PSAkZXZlbnQpO1xuICAgIGlmIChlcXVpcG1lbnQpIHtcbiAgICAgIHRoaXMucmVzdWx0LmRvbWFpbiA9IChlcXVpcG1lbnQgYXMgSHlwRXF1aXBtZW50KS5kb21haW47XG4gICAgfVxuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC5kZXNjcmlwdGlvbiA9ICRldmVudDtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBvblR5cGVJbnB1dEZvY3VzKCkge1xuICAgIGlmICghdGhpcy50eXBlU2VhcmNoKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSBbLi4udGhpcy5hbGxvd2VkVHlwZXNdO1xuICAgIH1cbiAgfVxuXG4gIG9uVHlwZVNlYXJjaENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucmVzdWx0LnR5cGUgJiYgdGhpcy5yZXN1bHQudHlwZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMucmVzdWx0LnR5cGUgPSAnJztcbiAgICAgIHRoaXMuY2hlY2soKTtcbiAgICB9XG4gICAgdGhpcy50eXBlU2VhcmNoU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUeXBlRmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSBbLi4udGhpcy5hbGxvd2VkVHlwZXNdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSB0aGlzLmFsbG93ZWRUeXBlcy5maWx0ZXIoKHQpID0+IHQubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcbiAgICB9XG4gIH1cblxuICBvblR5cGVDaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC50eXBlID0gJGV2ZW50O1xuICAgIHRoaXMudHlwZVNlYXJjaCA9ICRldmVudDtcbiAgICBjb25zdCB0eXBlVmFsdWUgPSB0aGlzLnR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUubmFtZSA9PT0gJGV2ZW50KSA/PyB7XG4gICAgICBndGk6ICctJyxcbiAgICAgIGd0cjogJy0nLFxuICAgICAgZ3RycDogJy0nXG4gICAgfTtcbiAgICB0aGlzLnJlc3VsdC5ndGkgPSAodHlwZVZhbHVlLmd0aSA/PyAnLScpICsgJyc7XG4gICAgdGhpcy5yZXN1bHQuZ3RyID0gKHR5cGVWYWx1ZS5ndHIgPz8gJy0nKSArICcnO1xuICAgIHRoaXMucmVzdWx0Lmd0cnAgPSAodHlwZVZhbHVlLmd0cnAgPz8gJy0nKSArICcnO1xuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uUHJpb3JpdHlDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlc3VsdC5wcmlvcml0eSA9ICRldmVudDtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBvbkRvbWFpbkNoYW5nZSgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0LmRvbWFpbiA9ICRldmVudDtcbiAgICB0aGlzLnVwZGF0ZUFsbG93ZWRUeXBlcygpO1xuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIGhhc0Vycm9yKHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5pbmNsdWRlcyh0eXBlKTtcbiAgfVxuXG4gIGNoZWNrKCkge1xuICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgaWYgKCF0aGlzLnJlc3VsdC5uYW1lIHx8IHRoaXMucmVzdWx0Lm5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCduYW1lJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQuZXF1aXBtZW50IHx8IHRoaXMucmVzdWx0LmVxdWlwbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ3RhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVzdWx0LmRlc2NyaXB0aW9uIHx8IHRoaXMucmVzdWx0LmRlc2NyaXB0aW9uLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5lcnJvcnMucHVzaCgnZGVzY3JpcHRpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlc3VsdC50eXBlIHx8IHRoaXMucmVzdWx0LnR5cGUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCd0eXBlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQucHJpb3JpdHkgfHwgdGhpcy5yZXN1bHQucHJpb3JpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCdwcmlvcml0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVzdWx0LmRvbWFpbiB8fCB0aGlzLnJlc3VsdC5kb21haW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCdkb21haW4nKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVESSgpIHtcbiAgICB0aGlzLmRpYWxvZy5jbG9zZSh7XG4gICAgICAuLi50aGlzLnJlc3VsdCxcbiAgICAgIGVxdWlwbWVudDogdGhpcy5yZXN1bHQuZXF1aXBtZW50ID09PSAnX19OT19FUVVJUE1FTlRfXycgPyBudWxsIDogdGhpcy5yZXN1bHQuZXF1aXBtZW50LFxuICAgICAgdmFsdWU6ICdvaydcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoeyB2YWx1ZTogJ2NhbmNlbCcgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFsbG93ZWRUeXBlcygpIHtcbiAgICB0aGlzLmFsbG93ZWRUeXBlcyA9IHRoaXMudHlwZXMuZmlsdGVyKFxuICAgICAgKHR5cGUpID0+ICF0aGlzLnJlc3VsdC5kb21haW4gfHwgdGhpcy5yZXN1bHQuZG9tYWluLmxlbmd0aCA9PT0gMCB8fCB0eXBlLmRvbWFpbiA9PT0gdGhpcy5yZXN1bHQuZG9tYWluXG4gICAgKTtcbiAgICB0aGlzLnJlc3VsdC50eXBlID0gJyc7XG4gICAgdGhpcy50eXBlU2VhcmNoID0gJyc7XG4gICAgdGhpcy5maWx0ZXJlZFR5cGVzID0gW107XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZVwiPlxuICA8aDM+e3sgJ0Bodnkuc2VydmljZS50aXRsZScgfCBpMThuIH19PC9oMz5cbiAgPHNwYW4+e3sgJ0Bodnkuc2VydmljZS5zdWJ0aXRsZScgfCBpMThuIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VfX3JlYXNvbiBtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS5yZWFzb24nIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgPGlucHV0IGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInJlc3VsdC5uYW1lXCIgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcignbmFtZScpXCIgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS50YXJnZXQnIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIFtpdGVtc109XCJlcXVpcG1lbnRzXCJcbiAgICAgIFtuZ01vZGVsXT1cInJlc3VsdC5lcXVpcG1lbnRcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FcXVpcG1lbnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJycgfCBpMThuXCJcbiAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ3RhcmdldCcpXCJcbiAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgIGJpbmRMYWJlbD1cImRpc3BsYXlOYW1lXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCBvLWh2eS1jcmVhdGUtc2VydmljZV9fcHJpb3JpdHktbmF0dXJlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsPnt7ICdAaHZ5LnNlcnZpY2UuZG9tYWluJyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cImRvbWFpbnNcIlxuICAgICAgICBbbmdNb2RlbF09XCJyZXN1bHQuZG9tYWluXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Eb21haW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGkxOG5cIlxuICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCdkb21haW4nKVwiXG4gICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LmV2ZW50LmRvbWFpbi5cIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS5wcmlvcml0eScgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIFtpdGVtc109XCJwcmlvcml0aWVzXCJcbiAgICAgICAgW25nTW9kZWxdPVwicmVzdWx0LnByaW9yaXR5XCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Qcmlvcml0eUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicnIHwgaTE4blwiXG4gICAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ3ByaW9yaXR5JylcIlxuICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5zZXJ2aWNlLnByaW9yaXRpZXMuXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsPnt7ICdAaHZ5LnNlcnZpY2UudHlwZScgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZCBuYXR1cmUtY29tYm8tYm94XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInR5cGVTZWFyY2hcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblR5cGVTZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvblR5cGVJbnB1dEZvY3VzKClcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInR5cGVBdXRvXCJcbiAgICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcigndHlwZScpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LnNlcnZpY2UubmF0dXJlX3BsYWNlaG9sZGVyJyB8IGkxOG5cIlxuICAgICAgLz5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICN0eXBlQXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJvblR5cGVDaGFuZ2UoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZmlsdGVyZWRUeXBlc1wiIFt2YWx1ZV09XCJ0eXBlLm5hbWVcIj57eyB0eXBlLm5hbWUgfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1odnktY3JlYXRlLXNlcnZpY2VfX2hvdXJzIG0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9faG91cnNfX2VsZW1lbnRcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJndGlcIj57eyAnQGh2eS5zZXJ2aWNlLmd0aScgfCBpMThuIH19IDo8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwiZ3RpXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIFtuZ01vZGVsXT1cInJlc3VsdC5ndGkgPz8gJy0nXCIgcmVhZG9ubHkgW2Rpc2FibGVkXT1cInRydWVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9faG91cnNfX2VsZW1lbnRcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJndHJcIj57eyAnQGh2eS5zZXJ2aWNlLmd0cicgfCBpMThuIH19IDo8L2xhYmVsPlxuICAgICAgPGlucHV0IGlkPVwiZ3RyXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIFtuZ01vZGVsXT1cInJlc3VsdC5ndHIgPz8gJy0nXCIgcmVhZG9ubHkgW2Rpc2FibGVkXT1cInRydWVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9faG91cnNfX2VsZW1lbnRcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJndHJwXCI+e3sgJ0Bodnkuc2VydmljZS5ndHJwJyB8IGkxOG4gfX0gOjwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJndHJwXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIFtuZ01vZGVsXT1cInJlc3VsdC5ndHJwID8/ICctJ1wiIHJlYWRvbmx5IFtkaXNhYmxlZF09XCJ0cnVlXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9fZGVzY3JpcHRpb24gbS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgPGxhYmVsIGZvcj1cImRlc2NyaXB0aW9uXCI+e3sgJ0Bodnkuc2VydmljZS5kZXNjcmlwdGlvbicgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICA8dGV4dGFyZWFcbiAgICAgIFtuZ01vZGVsXT1cInJlc3VsdC5kZXNjcmlwdGlvblwiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCdkZXNjcmlwdGlvbicpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbbWF4TGVuZ3RoXT1cIjI1NlwiXG4gICAgICBpZD1cImRlc2NyaXB0aW9uXCJcbiAgICA+PC90ZXh0YXJlYT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1hc3NvY2lhdGlvbi1tb2RhbF9fYnV0dG9ucyB1LWRpc3BsYXktZmxleCAtanVzdGlmeS1jZW50ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiBbZGlzYWJsZWRdPVwidGhpcy5lcnJvcnMubGVuZ3RoICE9PSAwXCIgKGNsaWNrKT1cImNyZWF0ZURJKClcIj5cbiAgICAgIHt7ICdAaHZ5LmFjdGlvbi52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+e3sgJ0BodnkuYWN0aW9uLmNhbmNlbCcgfCBpMThuIH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9zZXJ2aWNlL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvc2VydmljZS9jcmVhdGUtc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFnQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQW9CN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHdCQUF3QjtJQW9CckUsWUFDVSxNQUErQyxFQUN2QixJQUE2RCxFQUNyRixjQUE4QixFQUM5QixXQUEyQjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQUxBLFdBQU0sR0FBTixNQUFNLENBQXlDO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQXlEO1FBQ3JGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUF2QnJDLFdBQU0sR0FBMkI7WUFDL0IsS0FBSyxFQUFFLFFBQVE7WUFD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Q3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ3RGLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN2RyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBakxVLHlCQUF5Qiw4Q0FzQjFCLGVBQWU7a0dBdEJkLHlCQUF5QixpRkMzQnRDLGl0SUEyRkE7OzJGRGhFYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkF5QjNCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQUllfRElBTE9HX0RBVEEsIFByeURpYWxvZ1JlZiwgUHJ5STE4blNlcnZpY2UsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIeXBFcXVpcG1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9oeXAtZXF1aXBtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBTZXJ2aWNlQWN0aW9uIH0gZnJvbSAnLi9zZXJ2aWNlLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIeXBTZXJ2aWNlVHlwZSwgU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvZG9tYWlucy5jb25zdGFudCc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIEh5cENyZWF0ZVNlcnZpY2VSZXN1bHQgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZXF1aXBtZW50OiBzdHJpbmc7XG4gIGRvbWFpbjogc3RyaW5nO1xuICBwcmlvcml0eTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGd0aT86IHN0cmluZztcbiAgZ3RyPzogc3RyaW5nO1xuICBndHJwPzogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWNyZWF0ZS1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgcmVzdWx0OiBIeXBDcmVhdGVTZXJ2aWNlUmVzdWx0ID0ge1xuICAgIHZhbHVlOiAnY2FuY2VsJyxcbiAgICBuYW1lOiAnJyxcbiAgICBkb21haW46ICcnLFxuICAgIHByaW9yaXR5OiAnJyxcbiAgICBlcXVpcG1lbnQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJ1xuICB9O1xuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIHR5cGVzOiBIeXBTZXJ2aWNlVHlwZVtdID0gW107XG4gIHByaW9yaXRpZXMgPSBbJzEtTUlORVVSJywgJzItTUFKRVVSJywgJzMtQkxPUVVBTlQnXTtcbiAgZG9tYWlucyA9IERPTUFJTlMudmFsdWVzO1xuICBlcXVpcG1lbnRzOiAoSHlwRXF1aXBtZW50IHwgeyBkaXNwbGF5TmFtZTogc3RyaW5nIH0pW10gPSBbXTtcbiAgYWxsb3dlZFR5cGVzOiBIeXBTZXJ2aWNlVHlwZVtdID0gW107XG4gIGZpbHRlcmVkVHlwZXM6IEh5cFNlcnZpY2VUeXBlW10gPSBbXTtcbiAgdHlwZVNlYXJjaCA9ICcnO1xuICBwcml2YXRlIHR5cGVTZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBQcnlEaWFsb2dSZWY8SHZ5Q3JlYXRlU2VydmljZUNvbXBvbmVudD4sXG4gICAgQEluamVjdChQUllfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IGFjdGlvbjogSHlwU2VydmljZUFjdGlvbjsgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSB9LFxuICAgIHByaXZhdGUgc2VydmljZVNlcnZpY2U6IFNlcnZpY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZXN1bHQubmFtZSA9XG4gICAgICB0aGlzLmRhdGEuZXZlbnRzICYmIHRoaXMuZGF0YS5ldmVudHMubGVuZ3RoID4gMCA/IHRoaXMuZGF0YS5ldmVudHNbMF0ubmFtZSA6IHRoaXMuZGF0YS5hY3Rpb24ubmFtZTtcbiAgICB0aGlzLmVxdWlwbWVudHMgPSBbXG4gICAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0Bodnkuc2VydmljZS5ub0VxdWlwJyksXG4gICAgICAgIGlkOiAnX19OT19FUVVJUE1FTlRfXydcbiAgICAgIH0sXG4gICAgICAuLi50aGlzLmRhdGEuZXZlbnRzXG4gICAgICAgIC5maWx0ZXIoKGV2KSA9PiAhIWV2LmVxdWlwbWVudClcbiAgICAgICAgLm1hcCgoZXYpID0+ICh7XG4gICAgICAgICAgLi4uZXYuZXF1aXBtZW50LFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJHtldi5lcXVpcG1lbnQ/Lm5hbWV9IC0gJHt0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0BodnkuZXZlbnQuZmFtaWx5LicgKyBldi5lcXVpcG1lbnQ/LmZhbWlseSl9YFxuICAgICAgICB9KSlcbiAgICBdLmZpbHRlcigob2JqLCBpbmRleCwgYXJyKSA9PlxuICAgIHtcbiAgICAgIHJldHVybiBhcnIuZmluZEluZGV4KG8gPT5cbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8pID09PSBKU09OLnN0cmluZ2lmeShvYmopXG4gICAgICB9KSA9PT0gaW5kZXhcbiAgICB9KSBhcyAoSHlwRXF1aXBtZW50IHwgeyBkaXNwbGF5TmFtZTogc3RyaW5nIH0pW107XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50eXBlU2VhcmNoU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLmFwcGx5VHlwZUZpbHRlcih2YWx1ZSkpXG4gICAgKTtcblxuICAgIHRoaXMuc2VydmljZVNlcnZpY2UudHlwZXMoKS5zdWJzY3JpYmUoKHR5cGVzKSA9PiB7XG4gICAgICB0aGlzLnR5cGVzID0gdHlwZXM7XG4gICAgICB0aGlzLnVwZGF0ZUFsbG93ZWRUeXBlcygpO1xuICAgIH0pO1xuXG4gICAgaWYodGhpcy5kYXRhLmV2ZW50cyAmJiB0aGlzLmRhdGEuZXZlbnRzLmxlbmd0aCA9PT0gMSAmJiAhIXRoaXMuZGF0YS5ldmVudHNbMF0uZXF1aXBtZW50KSB7XG4gICAgICB0aGlzLm9uRXF1aXBtZW50Q2hhbmdlKHRoaXMuZGF0YS5ldmVudHNbMF0uZXF1aXBtZW50LmlkKTtcbiAgICB9XG4gIH1cblxuICBhY3Rpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UodGhpcy5yZXN1bHQpO1xuICB9XG5cbiAgb25FcXVpcG1lbnRDaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC5lcXVpcG1lbnQgPSAkZXZlbnQ7XG4gICAgY29uc3QgZXF1aXBtZW50ID0gKFxuICAgICAgdGhpcy5lcXVpcG1lbnRzLmZpbHRlcigoZXF1aXBtZW50KSA9PiBlcXVpcG1lbnQuaGFzT3duUHJvcGVydHkoJ2RvbWFpbicpKSBhcyBIeXBFcXVpcG1lbnRbXVxuICAgICkuZmluZCgoZXF1aXApID0+IGVxdWlwLmlkID09PSAkZXZlbnQpO1xuICAgIGlmIChlcXVpcG1lbnQpIHtcbiAgICAgIHRoaXMucmVzdWx0LmRvbWFpbiA9IChlcXVpcG1lbnQgYXMgSHlwRXF1aXBtZW50KS5kb21haW47XG4gICAgfVxuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdC5kZXNjcmlwdGlvbiA9ICRldmVudDtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBvblR5cGVJbnB1dEZvY3VzKCkge1xuICAgIGlmICghdGhpcy50eXBlU2VhcmNoKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSBbLi4udGhpcy5hbGxvd2VkVHlwZXNdO1xuICAgIH1cbiAgfVxuXG4gIG9uVHlwZVNlYXJjaENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucmVzdWx0LnR5cGUgJiYgdGhpcy5yZXN1bHQudHlwZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMucmVzdWx0LnR5cGUgPSAnJztcbiAgICAgIHRoaXMuY2hlY2soKTtcbiAgICB9XG4gICAgdGhpcy50eXBlU2VhcmNoU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUeXBlRmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSBbLi4udGhpcy5hbGxvd2VkVHlwZXNdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSB0aGlzLmFsbG93ZWRUeXBlcy5maWx0ZXIoKHQpID0+XG4gICAgICAgIHQubmFtZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZShcIk5GRFwiKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKS5pbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZShcIk5GRFwiKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKSkpO1xuICAgIH1cbiAgfVxuXG4gIG9uVHlwZUNoYW5nZSgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0LnR5cGUgPSAkZXZlbnQ7XG4gICAgdGhpcy50eXBlU2VhcmNoID0gJGV2ZW50O1xuICAgIGNvbnN0IHR5cGVWYWx1ZSA9IHRoaXMudHlwZXMuZmluZCgodHlwZSkgPT4gdHlwZS5uYW1lID09PSAkZXZlbnQpID8/IHtcbiAgICAgIGd0aTogJy0nLFxuICAgICAgZ3RyOiAnLScsXG4gICAgICBndHJwOiAnLSdcbiAgICB9O1xuICAgIHRoaXMucmVzdWx0Lmd0aSA9ICh0eXBlVmFsdWUuZ3RpID8/ICctJykgKyAnJztcbiAgICB0aGlzLnJlc3VsdC5ndHIgPSAodHlwZVZhbHVlLmd0ciA/PyAnLScpICsgJyc7XG4gICAgdGhpcy5yZXN1bHQuZ3RycCA9ICh0eXBlVmFsdWUuZ3RycCA/PyAnLScpICsgJyc7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgb25Qcmlvcml0eUNoYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVzdWx0LnByaW9yaXR5ID0gJGV2ZW50O1xuICAgIHRoaXMuY2hlY2soKTtcbiAgfVxuXG4gIG9uRG9tYWluQ2hhbmdlKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN1bHQuZG9tYWluID0gJGV2ZW50O1xuICAgIHRoaXMudXBkYXRlQWxsb3dlZFR5cGVzKCk7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgaGFzRXJyb3IodHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgY2hlY2soKSB7XG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICBpZiAoIXRoaXMucmVzdWx0Lm5hbWUgfHwgdGhpcy5yZXN1bHQubmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ25hbWUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlc3VsdC5lcXVpcG1lbnQgfHwgdGhpcy5yZXN1bHQuZXF1aXBtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5lcnJvcnMucHVzaCgndGFyZ2V0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQuZGVzY3JpcHRpb24gfHwgdGhpcy5yZXN1bHQuZGVzY3JpcHRpb24ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKCdkZXNjcmlwdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVzdWx0LnR5cGUgfHwgdGhpcy5yZXN1bHQudHlwZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ3R5cGUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJlc3VsdC5wcmlvcml0eSB8fCB0aGlzLnJlc3VsdC5wcmlvcml0eS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ3ByaW9yaXR5Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yZXN1bHQuZG9tYWluIHx8IHRoaXMucmVzdWx0LmRvbWFpbi5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goJ2RvbWFpbicpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZURJKCkge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlKHtcbiAgICAgIC4uLnRoaXMucmVzdWx0LFxuICAgICAgZXF1aXBtZW50OiB0aGlzLnJlc3VsdC5lcXVpcG1lbnQgPT09ICdfX05PX0VRVUlQTUVOVF9fJyA/IG51bGwgOiB0aGlzLnJlc3VsdC5lcXVpcG1lbnQsXG4gICAgICB2YWx1ZTogJ29rJ1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLmRpYWxvZy5jbG9zZSh7IHZhbHVlOiAnY2FuY2VsJyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQWxsb3dlZFR5cGVzKCkge1xuICAgIHRoaXMuYWxsb3dlZFR5cGVzID0gdGhpcy50eXBlcy5maWx0ZXIoXG4gICAgICAodHlwZSkgPT4gIXRoaXMucmVzdWx0LmRvbWFpbiB8fCB0aGlzLnJlc3VsdC5kb21haW4ubGVuZ3RoID09PSAwIHx8IHR5cGUuZG9tYWluID09PSB0aGlzLnJlc3VsdC5kb21haW5cbiAgICApO1xuICAgIHRoaXMucmVzdWx0LnR5cGUgPSAnJztcbiAgICB0aGlzLnR5cGVTZWFyY2ggPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkVHlwZXMgPSBbXTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlXCI+XG4gIDxoMz57eyAnQGh2eS5zZXJ2aWNlLnRpdGxlJyB8IGkxOG4gfX08L2gzPlxuICA8c3Bhbj57eyAnQGh2eS5zZXJ2aWNlLnN1YnRpdGxlJyB8IGkxOG4gfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9fcmVhc29uIG0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnJlYXNvbicgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICA8aW5wdXQgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicmVzdWx0Lm5hbWVcIiBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCduYW1lJylcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnRhcmdldCcgfCBpMThuIH19IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPiA6PC9sYWJlbD5cbiAgICA8cHJ5LXNlbGVjdFxuICAgICAgW2l0ZW1zXT1cImVxdWlwbWVudHNcIlxuICAgICAgW25nTW9kZWxdPVwicmVzdWx0LmVxdWlwbWVudFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkVxdWlwbWVudENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInJyB8IGkxOG5cIlxuICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcigndGFyZ2V0JylcIlxuICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgYmluZExhYmVsPVwiZGlzcGxheU5hbWVcIlxuICAgID48L3ByeS1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIG8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19wcmlvcml0eS1uYXR1cmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS5kb21haW4nIHwgaTE4biB9fSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gOjwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBbaXRlbXNdPVwiZG9tYWluc1wiXG4gICAgICAgIFtuZ01vZGVsXT1cInJlc3VsdC5kb21haW5cIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRvbWFpbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicnIHwgaTE4blwiXG4gICAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ2RvbWFpbicpXCJcbiAgICAgICAgaTE4blByZWZpeD1cIkBodnkuZXZlbnQuZG9tYWluLlwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgIDxsYWJlbD57eyAnQGh2eS5zZXJ2aWNlLnByaW9yaXR5JyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgW2l0ZW1zXT1cInByaW9yaXRpZXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJyZXN1bHQucHJpb3JpdHlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblByaW9yaXR5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJycgfCBpMThuXCJcbiAgICAgICAgW2NsYXNzLi1lcnJvcl09XCJoYXNFcnJvcigncHJpb3JpdHknKVwiXG4gICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LnNlcnZpY2UucHJpb3JpdGllcy5cIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWw+e3sgJ0Bodnkuc2VydmljZS50eXBlJyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIG5hdHVyZS1jb21iby1ib3hcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidHlwZVNlYXJjaFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHlwZVNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uVHlwZUlucHV0Rm9jdXMoKVwiXG4gICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwidHlwZUF1dG9cIlxuICAgICAgICBbY2xhc3MuLWVycm9yXT1cImhhc0Vycm9yKCd0eXBlJylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0Bodnkuc2VydmljZS5uYXR1cmVfcGxhY2Vob2xkZXInIHwgaTE4blwiXG4gICAgICAvPlxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3R5cGVBdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQub3B0aW9uLnZhbHVlKVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBmaWx0ZXJlZFR5cGVzXCIgW3ZhbHVlXT1cInR5cGUubmFtZVwiPnt7IHR5cGUubmFtZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jcmVhdGUtc2VydmljZV9faG91cnMgbS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3Vyc19fZWxlbWVudFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImd0aVwiPnt7ICdAaHZ5LnNlcnZpY2UuZ3RpJyB8IGkxOG4gfX0gOjwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJndGlcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW25nTW9kZWxdPVwicmVzdWx0Lmd0aSA/PyAnLSdcIiByZWFkb25seSBbZGlzYWJsZWRdPVwidHJ1ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3Vyc19fZWxlbWVudFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImd0clwiPnt7ICdAaHZ5LnNlcnZpY2UuZ3RyJyB8IGkxOG4gfX0gOjwvbGFiZWw+XG4gICAgICA8aW5wdXQgaWQ9XCJndHJcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW25nTW9kZWxdPVwicmVzdWx0Lmd0ciA/PyAnLSdcIiByZWFkb25seSBbZGlzYWJsZWRdPVwidHJ1ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19ob3Vyc19fZWxlbWVudFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImd0cnBcIj57eyAnQGh2eS5zZXJ2aWNlLmd0cnAnIHwgaTE4biB9fSA6PC9sYWJlbD5cbiAgICAgIDxpbnB1dCBpZD1cImd0cnBcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW25nTW9kZWxdPVwicmVzdWx0Lmd0cnAgPz8gJy0nXCIgcmVhZG9ubHkgW2Rpc2FibGVkXT1cInRydWVcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWNyZWF0ZS1zZXJ2aWNlX19kZXNjcmlwdGlvbiBtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICA8bGFiZWwgZm9yPVwiZGVzY3JpcHRpb25cIj57eyAnQGh2eS5zZXJ2aWNlLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX0gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IDo8L2xhYmVsPlxuICAgIDx0ZXh0YXJlYVxuICAgICAgW25nTW9kZWxdPVwicmVzdWx0LmRlc2NyaXB0aW9uXCJcbiAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgIFtjbGFzcy4tZXJyb3JdPVwiaGFzRXJyb3IoJ2Rlc2NyaXB0aW9uJylcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EZXNjcmlwdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYXhMZW5ndGhdPVwiMjU2XCJcbiAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgID48L3RleHRhcmVhPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19idXR0b25zIHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJ0aGlzLmVycm9ycy5sZW5ndGggIT09IDBcIiAoY2xpY2spPVwiY3JlYXRlREkoKVwiPlxuICAgICAge3sgJ0BodnkuYWN0aW9uLnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj57eyAnQGh2eS5hY3Rpb24uY2FuY2VsJyB8IGkxOG4gfX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1585,7 +1585,7 @@ class HvyCreateServiceComponent extends SubscriptionnerDirective {
|
|
|
1585
1585
|
this.filteredTypes = [...this.allowedTypes];
|
|
1586
1586
|
}
|
|
1587
1587
|
else {
|
|
1588
|
-
this.filteredTypes = this.allowedTypes.filter((t) => t.name.toLowerCase().includes(value.toLowerCase()));
|
|
1588
|
+
this.filteredTypes = this.allowedTypes.filter((t) => t.name.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").includes(value.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "")));
|
|
1589
1589
|
}
|
|
1590
1590
|
}
|
|
1591
1591
|
onTypeChange($event) {
|
|
@@ -2884,11 +2884,11 @@ class EventDetailComponent extends SubscriptionnerDirective {
|
|
|
2884
2884
|
this.tooltipRef.dialog = null;
|
|
2885
2885
|
}
|
|
2886
2886
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventDetailComponent, deps: [{ token: EquipmentService }, { token: i1$1.Store }, { token: i4.Overlay }, { token: i0.ViewContainerRef }, { token: i1$2.PryI18nService }, { token: i1$2.PryDialogService }, { token: HypCommentsService }, { token: EventService }, { token: i1$4.Actions }, { token: i1$3.FormBuilder }, { token: ProcedureService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2887
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventDetailComponent, selector: "hvy-event-detail", inputs: { placesChoices: "placesChoices", title: "title", equipmentFromMap: "equipmentFromMap", readonly: "readonly", readonlyProcedure: "readonlyProcedure", enableEditActions: "enableEditActions", readOnlyComment: "readOnlyComment", me: "me", events: "events", procedure: "procedure", cancelModifications: "cancelModifications" }, outputs: { modifiedEvents: "modifiedEvents", modifiedProcedure: "modifiedProcedure", eventErrors: "eventErrors", addedEvent: "addedEvent", removedEvent: "removedEvent", comfirmDialogOpened: "comfirmDialogOpened", commented: "commented" }, viewQueries: [{ propertyName: "confirmDialog", first: true, predicate: ["confirmDialog"], descendants: true, read: TemplateRef }, { propertyName: "detailHoverIcon", predicate: ["detailHoverIcon"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ title ?? '@hvy.event.detail' | i18n }} {{events.length > 1 ? '('+events.length+')': ''}}</h1>\n @if (procedure && canCloseSome) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n @if (events.length > 1) {\n @if (canCloseSome && !readonly) {\n <button class=\"a-btn a-btn--secondary -fix-right\" [disabled]=\"!canCloseSome || (!!procedure && calculatedProgress !== 100)\" (click)=\"closeAll()\">\n {{ (canCloseSome ? '@hvy.event.log.event.close' : '@hvy.event.log.event.closed') | i18n }}\n </button>\n }\n @if (!canCloseSome && closeComment && closeComment.length > 0) {\n <div class=\"a-tooltip\" [attr.data-tooltip]=\"closeComment\" data-tooltip-position=\"right\">\n <pry-icon iconSvg=\"i\" [height]=\"18\" [width]=\"18\">i</pry-icon>\n </div>\n }\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split event-detail-buttons-left\">\n @if (procedure && !readonly) {\n <button class=\"a-btn a-btn--secondary\" (click)=\"openChangeModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.modify' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openDeleteModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.delete' | i18n }}\n </button>\n }\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\" id=\"provoly-event-detail-container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events; track event.id; let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened[idx]\"\n class=\"-hand\"\n (click)=\"toggle(idx)\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <div class=\"o-hvy-events-detail__events__event__header__comment\">\n @if (event.commentCount > 0) {\n <span>{{\n (event.commentCount > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: event.commentCount }\n }}</span>\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split detail-remove-eve\">\n @if (showRemoveEveButton(event)) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"removeOneEvent(event)\">\n <pry-icon iconSvg=\"remove\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"(!!procedure && calculatedProgress === 100) || !procedure\"\n [readonly]=\"readonly\"\n (modified)=\"changeStatus($event, event)\"\n ></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n @if (!opened[idx]) {\n <div>\n {{ '@hvy.event.log.event.category' | i18n }} : {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n <div>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n } @else {\n @if (access(event); as accessValue) {\n <div class=\"o-hvy-events-detail__events__event__content__header\">\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <span class=\"required\">{{ '@hvy.event.log.event.mandatory' | i18n }}</span>\n </div>\n <table>\n <tbody>\n <!--identifiant-->\n @if (event.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(event.id)\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n }\n <!--nom-->\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name', idx)\"\n [value]=\"event.name\"\n (change)=\"modifyEvent(idx, 'name', $event)\"\n [readonly]=\"accessValue.name\"\n [maxLength]=\"50\"\n />\n </td>\n <td></td>\n </tr>\n <!--categorie-->\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.category\"\n [items]=\"categories(event)\"\n [class.-error]=\"hasError('category', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\"\n [disabled]=\"accessValue.category\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--sous categorie-->\n @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.subCategory\"\n [items]=\"subCategories\"\n [class.-error]=\"hasError('subCategory', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'subCategory', $event)\"\n i18nPrefix=\"@hvy.event.subCategory.\"\n [disabled]=\"accessValue.subCategory\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n }\n <!--criticite-->\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.criticality\"\n [items]=\"criticalities\"\n [class.-error]=\"hasError('criticality', idx)\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modifyEvent(idx, 'criticality', $event)\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"event.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'domain', $event)\"\n [disabled]=\"accessValue.domain\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--equipement-->\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td class=\"td-autocomplete\">\n <input type=\"text\" class=\"input-autocomplete\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"getEquipControl(idx)\"\n [ngClass]=\"{'equipment-disabled': event.status === 'DONE' || event.status === 'ARCHIVED'}\"\n #trigger=\"matAutocompleteTrigger\"\n [class.-error]=\"hasError('equipment', idx)\"/>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayEquipment.bind(this)\"\n (opened)=\"openAutocomplete(idx)\"\n (closed)=\"closeAutocomplete(idx)\"\n >\n @for (equipment of equipments$[idx] | async; track equipment) {\n <mat-option [value]=\"equipment\">\n {{equipment.name}} - {{'@hvy.event.family.' + equipment.family | i18n}}\n </mat-option>\n }\n </mat-autocomplete>\n\n <pry-icon\n class=\"a-pry-select__toggle autocomplete-chevron\"\n [iconSvg]=\"openedAutocomplete[idx]? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"10\"\n [height]=\"16\"\n (click)=\"openOrCloseAutocomplete($event, trigger, idx)\"\n ></pry-icon>\n </td>\n\n <td>\n @if (selectedEquipment[idx]) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand anchor-tooltip\"\n [ngClass]=\"'anchor-tooltip-'+ idx\"\n [style.anchor-name]=\"'--my-anchor' + idx\"\n #detailHoverIcon\n (click)=\"toggleDetailsTooltip(idx)\"\n [width]=\"18\"\n [height]=\"18\"\n ></pry-icon>\n }\n </td>\n </tr>\n <!--entite-->\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }} :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('equipment', idx)\"\n [value]=\"\n (event.equipment?.entity ? '@hvy.event.entity.' + event.equipment?.entity : '') | i18n\n \"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--adresse-->\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }} :</td>\n <td>\n <textarea\n [ngModel]=\"event.address\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('address', idx)\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modifyEvent(idx, 'address', $event)\"\n [maxLength]=\"256\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--ville-->\n <tr>\n <td>{{ '@hvy.event.district' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"placesChoices\"\n [ngModel]=\"event.district\"\n [bindValue]=\"'key'\"\n bindLabel=\"display\"\n i18nPrefix=\"@hvy.event.places.\"\n (ngModelChange)=\"modifyEvent(idx, 'district', $event)\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--evenement parent-->\n <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"displayName\"\n [ngModel]=\"eventSelectValue[idx]\"\n (ngModelChange)=\"selectedParentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.parentEvent.placeholder' | i18n\"\n id=\"parent\"\n [template]=\"templateParent\"\n [disabled]=\"accessValue.parent\"\n [class.-error]=\"hasError('parent', idx)\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\n ></pry-select>\n <ng-template #templateParent let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </td>\n <td></td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"event.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description', idx)\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modifyEvent(idx, 'description', $event)\"\n [maxLength]=\"1024\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--date debut-->\n <tr>\n <td>\n {{ '@hvy.event.startDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.startDate | forDateTimeLocal\"\n [class.-error]=\"hasError('startDate', idx)\"\n [readonly]=\"accessValue.startDate\"\n (change)=\"modifyEvent(idx, 'startDate', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--date fin-->\n <tr>\n <td>\n {{ '@hvy.event.endDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.endDate | forDateTimeLocal\"\n [class.-error]=\"hasError('endDate', idx)\"\n [readonly]=\"accessValue.endDate\"\n (change)=\"modifyEvent(idx, 'endDate', $event)\"\n />\n @if (hasError('endDate', idx) && event.endDate && event.startDate) {\n <span class=\"a-form-field -error\">{{ '@hvy.event.errorDate' | i18n }}</span>\n }\n </td>\n <td></td>\n </tr>\n <!--source-->\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n)\"\n [class.-error]=\"hasError('source', idx)\"\n [readonly]=\"accessValue.source\"\n (change)=\"modifyEvent(idx, 'source', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--ref\u00E9rence externe-->\n @if (event.externalSourceRef !== 'Hyperviseur') {\n <tr>\n <td>{{ '@hvy.event.externalId' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalId ?? '-'\"\n [readonly]=\"true\"\n />\n </td>\n <td></td>\n </tr>\n }\n <!--createur-->\n <tr>\n <td>{{ '@hvy.event.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"event.creator\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n <!--date creation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date cloture-->\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.closeDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n </tbody>\n </table>\n @if (event.id !== -1) {\n <hvy-comments\n [lastComment]=\"event.lastComment\"\n [commentCount]=\"event.commentCount\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"event.status === 'DONE' || event.status === 'ARCHIVED'\"\n [type]=\"'events'\"\n [me]=\"me?.sub\"\n [objectId]=\"event.id\"\n ></hvy-comments>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>\n {{ (events.length === 1 ? '@hvy.event.log.procedure.name1' : '@hvy.event.log.procedure.name') | i18n }}\n </h2>\n </div>\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__description\">\n <p>\n <span>{{ procedure.name }} :</span>\n {{ procedure.description }}\n </p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"calculatedProgress\"></hvy-progress-display>\n </div>\n <hvy-procedure-actions\n [procedureModificationsActions]=\"procedureModifications?.actions\"\n [initialActions] = this._procedure?.actions\n [readonly]=\"readonlyProcedure || readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n [disableSaveDIButton]=\"isEventModified()\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n (refreshActions)=\"refreshActions($event)\"\n [me]=\"me?.sub\"\n [events]=\"this.events\"\n (commented)=\"actionCommented($event)\"\n ></hvy-procedure-actions>\n } @else {\n @if (!readonly) {\n <button class=\"a-btn a-btn--secondary\" [disabled]=\"!canAssociateProcedure\" (click)=\"openAssociationModal()\">\n {{ '@hvy.action.associate' | i18n }}\n </button>\n } @else {\n <span class=\"o-hvy-events-detail__procedure__empty\">{{ '@hvy.event.log.procedure.none' | i18n }}</span>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #confirmDialog>\n <div\n class=\"o-hvy-close-confirm__dialog\"\n aria-labelledby=\"confirm\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <h2>\n {{\n (changeStatusContext.events.length === 1 ? '@hvy.event.close.oneTitle' : '@hvy.event.close.multiTitle') | i18n\n }}\n </h2>\n <p>{{ (changeStatusContext.events.length === 1 ? '@hvy.event.close.one' : '@hvy.event.close.multi') | i18n }}</p>\n <ul class=\"list-eve-close-modal\">\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ padId.fn(event.id) }} - {{ event.name }}</li>\n }\n </ul>\n <p class=\"o-hvy-close-confirm__dialog__comment-title\">\n {{ '@hvy.event.close.comment' | i18n }}<span class=\"required\">*</span> :\n </p>\n <div class=\"o-hvy-close-confirm__dialog__comment\">\n <textarea [(ngModel)]=\"changeStatusContext.comment\" class=\"a-form-field\" [maxLength]=\"255\"></textarea>\n </div>\n <div class=\"o-hvy-close-confirm__dialog__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"confirmedClose()\" [disabled]=\"confirmDisabled()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"toggleConfirm()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1$2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "directive", type: i5$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: StatusDisplayComponent, selector: "hvy-status-display", inputs: ["type", "readonly", "item", "modifiable"], outputs: ["modified"] }, { kind: "component", type: ProgressDisplayComponent, selector: "hvy-progress-display", inputs: ["progress"] }, { kind: "component", type: HvyCommentsComponent, selector: "hvy-comments", inputs: ["readonly", "me", "type", "objectId", "displayEmpty", "commentCount", "lastComment", "trigger"], outputs: ["commented"] }, { kind: "component", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "readOnlyComment", "enableEditActions", "events", "disableSaveDIButton", "initialActions", "procedureModificationsActions", "actions"], outputs: ["modified", "commented", "refreshActions"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }, { kind: "pipe", type: ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
|
|
2887
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: EventDetailComponent, selector: "hvy-event-detail", inputs: { placesChoices: "placesChoices", title: "title", equipmentFromMap: "equipmentFromMap", readonly: "readonly", readonlyProcedure: "readonlyProcedure", enableEditActions: "enableEditActions", readOnlyComment: "readOnlyComment", me: "me", events: "events", procedure: "procedure", cancelModifications: "cancelModifications" }, outputs: { modifiedEvents: "modifiedEvents", modifiedProcedure: "modifiedProcedure", eventErrors: "eventErrors", addedEvent: "addedEvent", removedEvent: "removedEvent", comfirmDialogOpened: "comfirmDialogOpened", commented: "commented" }, viewQueries: [{ propertyName: "confirmDialog", first: true, predicate: ["confirmDialog"], descendants: true, read: TemplateRef }, { propertyName: "detailHoverIcon", predicate: ["detailHoverIcon"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ title ?? '@hvy.event.detail' | i18n }} {{events.length > 1 ? '('+events.length+')': ''}}</h1>\n @if (procedure && canCloseSome) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n @if (events.length > 1) {\n @if (canCloseSome && !readonly) {\n <button class=\"a-btn a-btn--secondary -fix-right\" [disabled]=\"!canCloseSome || (!!procedure && calculatedProgress !== 100)\" (click)=\"closeAll()\">\n {{ (canCloseSome ? '@hvy.event.log.event.close' : '@hvy.event.log.event.closed') | i18n }}\n </button>\n }\n @if (!canCloseSome && closeComment && closeComment.length > 0) {\n <div class=\"a-tooltip\" [attr.data-tooltip]=\"closeComment\" data-tooltip-position=\"right\">\n <pry-icon iconSvg=\"i\" [height]=\"18\" [width]=\"18\">i</pry-icon>\n </div>\n }\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split event-detail-buttons-left\">\n @if (procedure && !readonly) {\n <button class=\"a-btn a-btn--secondary\" (click)=\"openChangeModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.modify' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openDeleteModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.delete' | i18n }}\n </button>\n }\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\" id=\"provoly-event-detail-container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events; track event.id; let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened[idx]\"\n class=\"-hand\"\n (click)=\"toggle(idx)\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <div class=\"o-hvy-events-detail__events__event__header__comment\">\n @if (event.commentCount > 0) {\n <span>{{\n (event.commentCount > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: event.commentCount }\n }}</span>\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split detail-remove-eve\">\n @if (showRemoveEveButton(event)) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"removeOneEvent(event)\">\n <pry-icon iconSvg=\"remove\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"((!!procedure && calculatedProgress === 100) || !procedure) && event.status !== 'ARCHIVED'\"\n [readonly]=\"readonly\"\n (modified)=\"changeStatus($event, event)\"\n ></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n @if (!opened[idx]) {\n <div>\n {{ '@hvy.event.log.event.category' | i18n }} : {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n <div>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n } @else {\n @if (access(event); as accessValue) {\n <div class=\"o-hvy-events-detail__events__event__content__header\">\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <span class=\"required\">{{ '@hvy.event.log.event.mandatory' | i18n }}</span>\n </div>\n <table>\n <tbody>\n <!--identifiant-->\n @if (event.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(event.id)\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n }\n <!--nom-->\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name', idx)\"\n [value]=\"event.name\"\n (change)=\"modifyEvent(idx, 'name', $event)\"\n [readonly]=\"accessValue.name\"\n [maxLength]=\"50\"\n />\n </td>\n <td></td>\n </tr>\n <!--categorie-->\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.category\"\n [items]=\"categories(event)\"\n [class.-error]=\"hasError('category', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\"\n [disabled]=\"accessValue.category\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--sous categorie-->\n @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.subCategory\"\n [items]=\"subCategories\"\n [class.-error]=\"hasError('subCategory', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'subCategory', $event)\"\n i18nPrefix=\"@hvy.event.subCategory.\"\n [disabled]=\"accessValue.subCategory\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n }\n <!--criticite-->\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.criticality\"\n [items]=\"criticalities\"\n [class.-error]=\"hasError('criticality', idx)\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modifyEvent(idx, 'criticality', $event)\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"event.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'domain', $event)\"\n [disabled]=\"accessValue.domain\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--equipement-->\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td class=\"td-autocomplete\">\n <input type=\"text\" class=\"input-autocomplete\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"getEquipControl(idx)\"\n [ngClass]=\"{'equipment-disabled': event.status === 'DONE' || event.status === 'ARCHIVED'}\"\n #trigger=\"matAutocompleteTrigger\"\n [class.-error]=\"hasError('equipment', idx)\"/>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayEquipment.bind(this)\"\n (opened)=\"openAutocomplete(idx)\"\n (closed)=\"closeAutocomplete(idx)\"\n >\n @for (equipment of equipments$[idx] | async; track equipment) {\n <mat-option [value]=\"equipment\">\n {{equipment.name}} - {{'@hvy.event.family.' + equipment.family | i18n}}\n </mat-option>\n }\n </mat-autocomplete>\n\n <pry-icon\n class=\"a-pry-select__toggle autocomplete-chevron\"\n [iconSvg]=\"openedAutocomplete[idx]? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"10\"\n [height]=\"16\"\n (click)=\"openOrCloseAutocomplete($event, trigger, idx)\"\n ></pry-icon>\n </td>\n\n <td>\n @if (selectedEquipment[idx]) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand anchor-tooltip\"\n [ngClass]=\"'anchor-tooltip-'+ idx\"\n [style.anchor-name]=\"'--my-anchor' + idx\"\n #detailHoverIcon\n (click)=\"toggleDetailsTooltip(idx)\"\n [width]=\"18\"\n [height]=\"18\"\n ></pry-icon>\n }\n </td>\n </tr>\n <!--entite-->\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }} :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('equipment', idx)\"\n [value]=\"\n (event.equipment?.entity ? '@hvy.event.entity.' + event.equipment?.entity : '') | i18n\n \"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--adresse-->\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }} :</td>\n <td>\n <textarea\n [ngModel]=\"event.address\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('address', idx)\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modifyEvent(idx, 'address', $event)\"\n [maxLength]=\"256\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--ville-->\n <tr>\n <td>{{ '@hvy.event.district' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"placesChoices\"\n [ngModel]=\"event.district\"\n [bindValue]=\"'key'\"\n bindLabel=\"display\"\n i18nPrefix=\"@hvy.event.places.\"\n (ngModelChange)=\"modifyEvent(idx, 'district', $event)\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--evenement parent-->\n <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"displayName\"\n [ngModel]=\"eventSelectValue[idx]\"\n (ngModelChange)=\"selectedParentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.parentEvent.placeholder' | i18n\"\n id=\"parent\"\n [template]=\"templateParent\"\n [disabled]=\"accessValue.parent\"\n [class.-error]=\"hasError('parent', idx)\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\n ></pry-select>\n <ng-template #templateParent let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </td>\n <td></td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"event.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description', idx)\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modifyEvent(idx, 'description', $event)\"\n [maxLength]=\"1024\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--date debut-->\n <tr>\n <td>\n {{ '@hvy.event.startDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.startDate | forDateTimeLocal\"\n [class.-error]=\"hasError('startDate', idx)\"\n [readonly]=\"accessValue.startDate\"\n (change)=\"modifyEvent(idx, 'startDate', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--date fin-->\n <tr>\n <td>\n {{ '@hvy.event.endDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.endDate | forDateTimeLocal\"\n [class.-error]=\"hasError('endDate', idx)\"\n [readonly]=\"accessValue.endDate\"\n (change)=\"modifyEvent(idx, 'endDate', $event)\"\n />\n @if (hasError('endDate', idx) && event.endDate && event.startDate) {\n <span class=\"a-form-field -error\">{{ '@hvy.event.errorDate' | i18n }}</span>\n }\n </td>\n <td></td>\n </tr>\n <!--source-->\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n)\"\n [class.-error]=\"hasError('source', idx)\"\n [readonly]=\"accessValue.source\"\n (change)=\"modifyEvent(idx, 'source', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--ref\u00E9rence externe-->\n @if (event.externalSourceRef !== 'Hyperviseur') {\n <tr>\n <td>{{ '@hvy.event.externalId' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalId ?? '-'\"\n [readonly]=\"true\"\n />\n </td>\n <td></td>\n </tr>\n }\n <!--createur-->\n <tr>\n <td>{{ '@hvy.event.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"event.creator\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n <!--date creation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date cloture-->\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.closeDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n </tbody>\n </table>\n @if (event.id !== -1) {\n <hvy-comments\n [lastComment]=\"event.lastComment\"\n [commentCount]=\"event.commentCount\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"event.status === 'DONE' || event.status === 'ARCHIVED'\"\n [type]=\"'events'\"\n [me]=\"me?.sub\"\n [objectId]=\"event.id\"\n ></hvy-comments>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>\n {{ (events.length === 1 ? '@hvy.event.log.procedure.name1' : '@hvy.event.log.procedure.name') | i18n }}\n </h2>\n </div>\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__description\">\n <p>\n <span>{{ procedure.name }} :</span>\n {{ procedure.description }}\n </p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"calculatedProgress\"></hvy-progress-display>\n </div>\n <hvy-procedure-actions\n [procedureModificationsActions]=\"procedureModifications?.actions\"\n [initialActions] = this._procedure?.actions\n [readonly]=\"readonlyProcedure || readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n [disableSaveDIButton]=\"isEventModified()\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n (refreshActions)=\"refreshActions($event)\"\n [me]=\"me?.sub\"\n [events]=\"this.events\"\n (commented)=\"actionCommented($event)\"\n ></hvy-procedure-actions>\n } @else {\n @if (!readonly) {\n <button class=\"a-btn a-btn--secondary\" [disabled]=\"!canAssociateProcedure\" (click)=\"openAssociationModal()\">\n {{ '@hvy.action.associate' | i18n }}\n </button>\n } @else {\n <span class=\"o-hvy-events-detail__procedure__empty\">{{ '@hvy.event.log.procedure.none' | i18n }}</span>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #confirmDialog>\n <div\n class=\"o-hvy-close-confirm__dialog\"\n aria-labelledby=\"confirm\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <h2>\n {{\n (changeStatusContext.events.length === 1 ? '@hvy.event.close.oneTitle' : '@hvy.event.close.multiTitle') | i18n\n }}\n </h2>\n <p>{{ (changeStatusContext.events.length === 1 ? '@hvy.event.close.one' : '@hvy.event.close.multi') | i18n }}</p>\n <ul class=\"list-eve-close-modal\">\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ padId.fn(event.id) }} - {{ event.name }}</li>\n }\n </ul>\n <p class=\"o-hvy-close-confirm__dialog__comment-title\">\n {{ '@hvy.event.close.comment' | i18n }}<span class=\"required\">*</span> :\n </p>\n <div class=\"o-hvy-close-confirm__dialog__comment\">\n <textarea [(ngModel)]=\"changeStatusContext.comment\" class=\"a-form-field\" [maxLength]=\"255\"></textarea>\n </div>\n <div class=\"o-hvy-close-confirm__dialog__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"confirmedClose()\" [disabled]=\"confirmDisabled()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"toggleConfirm()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1$2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "directive", type: i5$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: StatusDisplayComponent, selector: "hvy-status-display", inputs: ["type", "readonly", "item", "modifiable"], outputs: ["modified"] }, { kind: "component", type: ProgressDisplayComponent, selector: "hvy-progress-display", inputs: ["progress"] }, { kind: "component", type: HvyCommentsComponent, selector: "hvy-comments", inputs: ["readonly", "me", "type", "objectId", "displayEmpty", "commentCount", "lastComment", "trigger"], outputs: ["commented"] }, { kind: "component", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "readOnlyComment", "enableEditActions", "events", "disableSaveDIButton", "initialActions", "procedureModificationsActions", "actions"], outputs: ["modified", "commented", "refreshActions"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }, { kind: "pipe", type: ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
|
|
2888
2888
|
}
|
|
2889
2889
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EventDetailComponent, decorators: [{
|
|
2890
2890
|
type: Component,
|
|
2891
|
-
args: [{ selector: 'hvy-event-detail', template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ title ?? '@hvy.event.detail' | i18n }} {{events.length > 1 ? '('+events.length+')': ''}}</h1>\n @if (procedure && canCloseSome) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n @if (events.length > 1) {\n @if (canCloseSome && !readonly) {\n <button class=\"a-btn a-btn--secondary -fix-right\" [disabled]=\"!canCloseSome || (!!procedure && calculatedProgress !== 100)\" (click)=\"closeAll()\">\n {{ (canCloseSome ? '@hvy.event.log.event.close' : '@hvy.event.log.event.closed') | i18n }}\n </button>\n }\n @if (!canCloseSome && closeComment && closeComment.length > 0) {\n <div class=\"a-tooltip\" [attr.data-tooltip]=\"closeComment\" data-tooltip-position=\"right\">\n <pry-icon iconSvg=\"i\" [height]=\"18\" [width]=\"18\">i</pry-icon>\n </div>\n }\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split event-detail-buttons-left\">\n @if (procedure && !readonly) {\n <button class=\"a-btn a-btn--secondary\" (click)=\"openChangeModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.modify' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openDeleteModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.delete' | i18n }}\n </button>\n }\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\" id=\"provoly-event-detail-container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events; track event.id; let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened[idx]\"\n class=\"-hand\"\n (click)=\"toggle(idx)\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <div class=\"o-hvy-events-detail__events__event__header__comment\">\n @if (event.commentCount > 0) {\n <span>{{\n (event.commentCount > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: event.commentCount }\n }}</span>\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split detail-remove-eve\">\n @if (showRemoveEveButton(event)) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"removeOneEvent(event)\">\n <pry-icon iconSvg=\"remove\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"(!!procedure && calculatedProgress === 100) || !procedure\"\n [readonly]=\"readonly\"\n (modified)=\"changeStatus($event, event)\"\n ></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n @if (!opened[idx]) {\n <div>\n {{ '@hvy.event.log.event.category' | i18n }} : {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n <div>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n } @else {\n @if (access(event); as accessValue) {\n <div class=\"o-hvy-events-detail__events__event__content__header\">\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <span class=\"required\">{{ '@hvy.event.log.event.mandatory' | i18n }}</span>\n </div>\n <table>\n <tbody>\n <!--identifiant-->\n @if (event.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(event.id)\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n }\n <!--nom-->\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name', idx)\"\n [value]=\"event.name\"\n (change)=\"modifyEvent(idx, 'name', $event)\"\n [readonly]=\"accessValue.name\"\n [maxLength]=\"50\"\n />\n </td>\n <td></td>\n </tr>\n <!--categorie-->\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.category\"\n [items]=\"categories(event)\"\n [class.-error]=\"hasError('category', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\"\n [disabled]=\"accessValue.category\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--sous categorie-->\n @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.subCategory\"\n [items]=\"subCategories\"\n [class.-error]=\"hasError('subCategory', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'subCategory', $event)\"\n i18nPrefix=\"@hvy.event.subCategory.\"\n [disabled]=\"accessValue.subCategory\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n }\n <!--criticite-->\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.criticality\"\n [items]=\"criticalities\"\n [class.-error]=\"hasError('criticality', idx)\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modifyEvent(idx, 'criticality', $event)\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"event.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'domain', $event)\"\n [disabled]=\"accessValue.domain\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--equipement-->\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td class=\"td-autocomplete\">\n <input type=\"text\" class=\"input-autocomplete\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"getEquipControl(idx)\"\n [ngClass]=\"{'equipment-disabled': event.status === 'DONE' || event.status === 'ARCHIVED'}\"\n #trigger=\"matAutocompleteTrigger\"\n [class.-error]=\"hasError('equipment', idx)\"/>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayEquipment.bind(this)\"\n (opened)=\"openAutocomplete(idx)\"\n (closed)=\"closeAutocomplete(idx)\"\n >\n @for (equipment of equipments$[idx] | async; track equipment) {\n <mat-option [value]=\"equipment\">\n {{equipment.name}} - {{'@hvy.event.family.' + equipment.family | i18n}}\n </mat-option>\n }\n </mat-autocomplete>\n\n <pry-icon\n class=\"a-pry-select__toggle autocomplete-chevron\"\n [iconSvg]=\"openedAutocomplete[idx]? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"10\"\n [height]=\"16\"\n (click)=\"openOrCloseAutocomplete($event, trigger, idx)\"\n ></pry-icon>\n </td>\n\n <td>\n @if (selectedEquipment[idx]) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand anchor-tooltip\"\n [ngClass]=\"'anchor-tooltip-'+ idx\"\n [style.anchor-name]=\"'--my-anchor' + idx\"\n #detailHoverIcon\n (click)=\"toggleDetailsTooltip(idx)\"\n [width]=\"18\"\n [height]=\"18\"\n ></pry-icon>\n }\n </td>\n </tr>\n <!--entite-->\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }} :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('equipment', idx)\"\n [value]=\"\n (event.equipment?.entity ? '@hvy.event.entity.' + event.equipment?.entity : '') | i18n\n \"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--adresse-->\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }} :</td>\n <td>\n <textarea\n [ngModel]=\"event.address\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('address', idx)\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modifyEvent(idx, 'address', $event)\"\n [maxLength]=\"256\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--ville-->\n <tr>\n <td>{{ '@hvy.event.district' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"placesChoices\"\n [ngModel]=\"event.district\"\n [bindValue]=\"'key'\"\n bindLabel=\"display\"\n i18nPrefix=\"@hvy.event.places.\"\n (ngModelChange)=\"modifyEvent(idx, 'district', $event)\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--evenement parent-->\n <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"displayName\"\n [ngModel]=\"eventSelectValue[idx]\"\n (ngModelChange)=\"selectedParentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.parentEvent.placeholder' | i18n\"\n id=\"parent\"\n [template]=\"templateParent\"\n [disabled]=\"accessValue.parent\"\n [class.-error]=\"hasError('parent', idx)\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\n ></pry-select>\n <ng-template #templateParent let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </td>\n <td></td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"event.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description', idx)\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modifyEvent(idx, 'description', $event)\"\n [maxLength]=\"1024\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--date debut-->\n <tr>\n <td>\n {{ '@hvy.event.startDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.startDate | forDateTimeLocal\"\n [class.-error]=\"hasError('startDate', idx)\"\n [readonly]=\"accessValue.startDate\"\n (change)=\"modifyEvent(idx, 'startDate', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--date fin-->\n <tr>\n <td>\n {{ '@hvy.event.endDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.endDate | forDateTimeLocal\"\n [class.-error]=\"hasError('endDate', idx)\"\n [readonly]=\"accessValue.endDate\"\n (change)=\"modifyEvent(idx, 'endDate', $event)\"\n />\n @if (hasError('endDate', idx) && event.endDate && event.startDate) {\n <span class=\"a-form-field -error\">{{ '@hvy.event.errorDate' | i18n }}</span>\n }\n </td>\n <td></td>\n </tr>\n <!--source-->\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n)\"\n [class.-error]=\"hasError('source', idx)\"\n [readonly]=\"accessValue.source\"\n (change)=\"modifyEvent(idx, 'source', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--ref\u00E9rence externe-->\n @if (event.externalSourceRef !== 'Hyperviseur') {\n <tr>\n <td>{{ '@hvy.event.externalId' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalId ?? '-'\"\n [readonly]=\"true\"\n />\n </td>\n <td></td>\n </tr>\n }\n <!--createur-->\n <tr>\n <td>{{ '@hvy.event.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"event.creator\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n <!--date creation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date cloture-->\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.closeDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n </tbody>\n </table>\n @if (event.id !== -1) {\n <hvy-comments\n [lastComment]=\"event.lastComment\"\n [commentCount]=\"event.commentCount\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"event.status === 'DONE' || event.status === 'ARCHIVED'\"\n [type]=\"'events'\"\n [me]=\"me?.sub\"\n [objectId]=\"event.id\"\n ></hvy-comments>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>\n {{ (events.length === 1 ? '@hvy.event.log.procedure.name1' : '@hvy.event.log.procedure.name') | i18n }}\n </h2>\n </div>\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__description\">\n <p>\n <span>{{ procedure.name }} :</span>\n {{ procedure.description }}\n </p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"calculatedProgress\"></hvy-progress-display>\n </div>\n <hvy-procedure-actions\n [procedureModificationsActions]=\"procedureModifications?.actions\"\n [initialActions] = this._procedure?.actions\n [readonly]=\"readonlyProcedure || readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n [disableSaveDIButton]=\"isEventModified()\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n (refreshActions)=\"refreshActions($event)\"\n [me]=\"me?.sub\"\n [events]=\"this.events\"\n (commented)=\"actionCommented($event)\"\n ></hvy-procedure-actions>\n } @else {\n @if (!readonly) {\n <button class=\"a-btn a-btn--secondary\" [disabled]=\"!canAssociateProcedure\" (click)=\"openAssociationModal()\">\n {{ '@hvy.action.associate' | i18n }}\n </button>\n } @else {\n <span class=\"o-hvy-events-detail__procedure__empty\">{{ '@hvy.event.log.procedure.none' | i18n }}</span>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #confirmDialog>\n <div\n class=\"o-hvy-close-confirm__dialog\"\n aria-labelledby=\"confirm\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <h2>\n {{\n (changeStatusContext.events.length === 1 ? '@hvy.event.close.oneTitle' : '@hvy.event.close.multiTitle') | i18n\n }}\n </h2>\n <p>{{ (changeStatusContext.events.length === 1 ? '@hvy.event.close.one' : '@hvy.event.close.multi') | i18n }}</p>\n <ul class=\"list-eve-close-modal\">\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ padId.fn(event.id) }} - {{ event.name }}</li>\n }\n </ul>\n <p class=\"o-hvy-close-confirm__dialog__comment-title\">\n {{ '@hvy.event.close.comment' | i18n }}<span class=\"required\">*</span> :\n </p>\n <div class=\"o-hvy-close-confirm__dialog__comment\">\n <textarea [(ngModel)]=\"changeStatusContext.comment\" class=\"a-form-field\" [maxLength]=\"255\"></textarea>\n </div>\n <div class=\"o-hvy-close-confirm__dialog__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"confirmedClose()\" [disabled]=\"confirmDisabled()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"toggleConfirm()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
2891
|
+
args: [{ selector: 'hvy-event-detail', template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ title ?? '@hvy.event.detail' | i18n }} {{events.length > 1 ? '('+events.length+')': ''}}</h1>\n @if (procedure && canCloseSome) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n @if (events.length > 1) {\n @if (canCloseSome && !readonly) {\n <button class=\"a-btn a-btn--secondary -fix-right\" [disabled]=\"!canCloseSome || (!!procedure && calculatedProgress !== 100)\" (click)=\"closeAll()\">\n {{ (canCloseSome ? '@hvy.event.log.event.close' : '@hvy.event.log.event.closed') | i18n }}\n </button>\n }\n @if (!canCloseSome && closeComment && closeComment.length > 0) {\n <div class=\"a-tooltip\" [attr.data-tooltip]=\"closeComment\" data-tooltip-position=\"right\">\n <pry-icon iconSvg=\"i\" [height]=\"18\" [width]=\"18\">i</pry-icon>\n </div>\n }\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split event-detail-buttons-left\">\n @if (procedure && !readonly) {\n <button class=\"a-btn a-btn--secondary\" (click)=\"openChangeModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.modify' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openDeleteModal()\" [disabled]=\"readonlyProcedure\">\n {{ '@hvy.event.log.procedure.delete' | i18n }}\n </button>\n }\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\" id=\"provoly-event-detail-container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events; track event.id; let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened[idx]\"\n class=\"-hand\"\n (click)=\"toggle(idx)\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <div class=\"o-hvy-events-detail__events__event__header__comment\">\n @if (event.commentCount > 0) {\n <span>{{\n (event.commentCount > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: event.commentCount }\n }}</span>\n }\n </div>\n <div class=\"o-hvy-events-detail__header__split detail-remove-eve\">\n @if (showRemoveEveButton(event)) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"removeOneEvent(event)\">\n <pry-icon iconSvg=\"remove\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"((!!procedure && calculatedProgress === 100) || !procedure) && event.status !== 'ARCHIVED'\"\n [readonly]=\"readonly\"\n (modified)=\"changeStatus($event, event)\"\n ></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n @if (!opened[idx]) {\n <div>\n {{ '@hvy.event.log.event.category' | i18n }} : {{ '@hvy.event.category.' + event.category | i18n }}\n </div>\n <div>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n } @else {\n @if (access(event); as accessValue) {\n <div class=\"o-hvy-events-detail__events__event__content__header\">\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <span class=\"required\">{{ '@hvy.event.log.event.mandatory' | i18n }}</span>\n </div>\n <table>\n <tbody>\n <!--identifiant-->\n @if (event.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(event.id)\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n }\n <!--nom-->\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name', idx)\"\n [value]=\"event.name\"\n (change)=\"modifyEvent(idx, 'name', $event)\"\n [readonly]=\"accessValue.name\"\n [maxLength]=\"50\"\n />\n </td>\n <td></td>\n </tr>\n <!--categorie-->\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.category\"\n [items]=\"categories(event)\"\n [class.-error]=\"hasError('category', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\"\n [disabled]=\"accessValue.category\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--sous categorie-->\n @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.subCategory\"\n [items]=\"subCategories\"\n [class.-error]=\"hasError('subCategory', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'subCategory', $event)\"\n i18nPrefix=\"@hvy.event.subCategory.\"\n [disabled]=\"accessValue.subCategory\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n }\n <!--criticite-->\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [ngModel]=\"event.criticality\"\n [items]=\"criticalities\"\n [class.-error]=\"hasError('criticality', idx)\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modifyEvent(idx, 'criticality', $event)\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--metier-->\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"event.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain', idx)\"\n (ngModelChange)=\"modifyEvent(idx, 'domain', $event)\"\n [disabled]=\"accessValue.domain\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--equipement-->\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td class=\"td-autocomplete\">\n <input type=\"text\" class=\"input-autocomplete\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n [matAutocomplete]=\"auto\"\n [formControl]=\"getEquipControl(idx)\"\n [ngClass]=\"{'equipment-disabled': event.status === 'DONE' || event.status === 'ARCHIVED'}\"\n #trigger=\"matAutocompleteTrigger\"\n [class.-error]=\"hasError('equipment', idx)\"/>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayEquipment.bind(this)\"\n (opened)=\"openAutocomplete(idx)\"\n (closed)=\"closeAutocomplete(idx)\"\n >\n @for (equipment of equipments$[idx] | async; track equipment) {\n <mat-option [value]=\"equipment\">\n {{equipment.name}} - {{'@hvy.event.family.' + equipment.family | i18n}}\n </mat-option>\n }\n </mat-autocomplete>\n\n <pry-icon\n class=\"a-pry-select__toggle autocomplete-chevron\"\n [iconSvg]=\"openedAutocomplete[idx]? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"10\"\n [height]=\"16\"\n (click)=\"openOrCloseAutocomplete($event, trigger, idx)\"\n ></pry-icon>\n </td>\n\n <td>\n @if (selectedEquipment[idx]) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand anchor-tooltip\"\n [ngClass]=\"'anchor-tooltip-'+ idx\"\n [style.anchor-name]=\"'--my-anchor' + idx\"\n #detailHoverIcon\n (click)=\"toggleDetailsTooltip(idx)\"\n [width]=\"18\"\n [height]=\"18\"\n ></pry-icon>\n }\n </td>\n </tr>\n <!--entite-->\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }} :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('equipment', idx)\"\n [value]=\"\n (event.equipment?.entity ? '@hvy.event.entity.' + event.equipment?.entity : '') | i18n\n \"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--adresse-->\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }} :</td>\n <td>\n <textarea\n [ngModel]=\"event.address\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('address', idx)\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modifyEvent(idx, 'address', $event)\"\n [maxLength]=\"256\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--ville-->\n <tr>\n <td>{{ '@hvy.event.district' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"placesChoices\"\n [ngModel]=\"event.district\"\n [bindValue]=\"'key'\"\n bindLabel=\"display\"\n i18nPrefix=\"@hvy.event.places.\"\n (ngModelChange)=\"modifyEvent(idx, 'district', $event)\"\n [disabled]=\"adressDisabled[idx] || event.status === 'DONE'\"\n ></pry-select>\n </td>\n <td></td>\n </tr>\n <!--evenement parent-->\n <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"displayName\"\n [ngModel]=\"eventSelectValue[idx]\"\n (ngModelChange)=\"selectedParentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.parentEvent.placeholder' | i18n\"\n id=\"parent\"\n [template]=\"templateParent\"\n [disabled]=\"accessValue.parent\"\n [class.-error]=\"hasError('parent', idx)\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\n ></pry-select>\n <ng-template #templateParent let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </td>\n <td></td>\n </tr>\n <!--description-->\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"event.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description', idx)\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modifyEvent(idx, 'description', $event)\"\n [maxLength]=\"1024\"\n ></textarea>\n </td>\n <td></td>\n </tr>\n <!--date debut-->\n <tr>\n <td>\n {{ '@hvy.event.startDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.startDate | forDateTimeLocal\"\n [class.-error]=\"hasError('startDate', idx)\"\n [readonly]=\"accessValue.startDate\"\n (change)=\"modifyEvent(idx, 'startDate', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--date fin-->\n <tr>\n <td>\n {{ '@hvy.event.endDate' | i18n }}\n @if (event.category === 'MANIFESTATION') {\n <span class=\"required\">*</span>\n }\n :\n </td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.endDate | forDateTimeLocal\"\n [class.-error]=\"hasError('endDate', idx)\"\n [readonly]=\"accessValue.endDate\"\n (change)=\"modifyEvent(idx, 'endDate', $event)\"\n />\n @if (hasError('endDate', idx) && event.endDate && event.startDate) {\n <span class=\"a-form-field -error\">{{ '@hvy.event.errorDate' | i18n }}</span>\n }\n </td>\n <td></td>\n </tr>\n <!--source-->\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalSourceRef ?? ('@hvy.event.hypervisor' | i18n)\"\n [class.-error]=\"hasError('source', idx)\"\n [readonly]=\"accessValue.source\"\n (change)=\"modifyEvent(idx, 'source', $event)\"\n />\n </td>\n <td></td>\n </tr>\n <!--ref\u00E9rence externe-->\n @if (event.externalSourceRef !== 'Hyperviseur') {\n <tr>\n <td>{{ '@hvy.event.externalId' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"event.externalId ?? '-'\"\n [readonly]=\"true\"\n />\n </td>\n <td></td>\n </tr>\n }\n <!--createur-->\n <tr>\n <td>{{ '@hvy.event.creator' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"event.creator\" [readonly]=\"true\" />\n </td>\n <td></td>\n </tr>\n <!--date creation-->\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date modification-->\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n <!--date cloture-->\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"event.closeDate | forDateTimeLocal\"\n readonly\n />\n </td>\n <td></td>\n </tr>\n </tbody>\n </table>\n @if (event.id !== -1) {\n <hvy-comments\n [lastComment]=\"event.lastComment\"\n [commentCount]=\"event.commentCount\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"event.status === 'DONE' || event.status === 'ARCHIVED'\"\n [type]=\"'events'\"\n [me]=\"me?.sub\"\n [objectId]=\"event.id\"\n ></hvy-comments>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>\n {{ (events.length === 1 ? '@hvy.event.log.procedure.name1' : '@hvy.event.log.procedure.name') | i18n }}\n </h2>\n </div>\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__description\">\n <p>\n <span>{{ procedure.name }} :</span>\n {{ procedure.description }}\n </p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"calculatedProgress\"></hvy-progress-display>\n </div>\n <hvy-procedure-actions\n [procedureModificationsActions]=\"procedureModifications?.actions\"\n [initialActions] = this._procedure?.actions\n [readonly]=\"readonlyProcedure || readonly\"\n [readOnlyComment]=\"readOnlyComment\"\n [disableSaveDIButton]=\"isEventModified()\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n (refreshActions)=\"refreshActions($event)\"\n [me]=\"me?.sub\"\n [events]=\"this.events\"\n (commented)=\"actionCommented($event)\"\n ></hvy-procedure-actions>\n } @else {\n @if (!readonly) {\n <button class=\"a-btn a-btn--secondary\" [disabled]=\"!canAssociateProcedure\" (click)=\"openAssociationModal()\">\n {{ '@hvy.action.associate' | i18n }}\n </button>\n } @else {\n <span class=\"o-hvy-events-detail__procedure__empty\">{{ '@hvy.event.log.procedure.none' | i18n }}</span>\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #confirmDialog>\n <div\n class=\"o-hvy-close-confirm__dialog\"\n aria-labelledby=\"confirm\"\n tabindex=\"-1\"\n id=\"choice\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <h2>\n {{\n (changeStatusContext.events.length === 1 ? '@hvy.event.close.oneTitle' : '@hvy.event.close.multiTitle') | i18n\n }}\n </h2>\n <p>{{ (changeStatusContext.events.length === 1 ? '@hvy.event.close.one' : '@hvy.event.close.multi') | i18n }}</p>\n <ul class=\"list-eve-close-modal\">\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ padId.fn(event.id) }} - {{ event.name }}</li>\n }\n </ul>\n <p class=\"o-hvy-close-confirm__dialog__comment-title\">\n {{ '@hvy.event.close.comment' | i18n }}<span class=\"required\">*</span> :\n </p>\n <div class=\"o-hvy-close-confirm__dialog__comment\">\n <textarea [(ngModel)]=\"changeStatusContext.comment\" class=\"a-form-field\" [maxLength]=\"255\"></textarea>\n </div>\n <div class=\"o-hvy-close-confirm__dialog__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"confirmedClose()\" [disabled]=\"confirmDisabled()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"toggleConfirm()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
2892
2892
|
}], ctorParameters: () => [{ type: EquipmentService }, { type: i1$1.Store }, { type: i4.Overlay }, { type: i0.ViewContainerRef }, { type: i1$2.PryI18nService }, { type: i1$2.PryDialogService }, { type: HypCommentsService }, { type: EventService }, { type: i1$4.Actions }, { type: i1$3.FormBuilder }, { type: ProcedureService }], propDecorators: { placesChoices: [{
|
|
2893
2893
|
type: Input
|
|
2894
2894
|
}], modifiedEvents: [{
|