@provoly/hypervisor 1.8.6 → 1.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -106,12 +106,12 @@ export class ProcedureAssociationModalComponent extends SubscriptionnerDirective
106
106
  this.dialog.close();
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureAssociationModalComponent, deps: [{ token: i1.Store }, { token: i2.ProcedureService }, { token: i3.PryDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureAssociationModalComponent, selector: "hvy-procedure-association-modal", inputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div>\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i5.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureAssociationModalComponent, selector: "hvy-procedure-association-modal", inputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div class=\"asso-eve\">\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i5.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureAssociationModalComponent, decorators: [{
112
112
  type: Component,
113
- args: [{ selector: 'hvy-procedure-association-modal', template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div>\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n" }]
113
+ args: [{ selector: 'hvy-procedure-association-modal', template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div class=\"asso-eve\">\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n" }]
114
114
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ProcedureService }, { type: i3.PryDialogRef }], propDecorators: { events: [{
115
115
  type: Input
116
116
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFzc29jaWF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L3Byb2NlZHVyZS1hc3NvY2lhdGlvbi1tb2RhbC9wcm9jZWR1cmUtYXNzb2NpYXRpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvcHJvY2VkdXJlLWFzc29jaWF0aW9uLW1vZGFsL3Byb2NlZHVyZS1hc3NvY2lhdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakgsT0FBTyxFQUFnQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFXdEQsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHdCQUF3QjtJQWM5RSxJQUFhLE1BQU0sQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsZ0JB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LElBQUksQ0FBQyxvQkFBMEMsQ0FBQyxFQUFFO1lBQ2hFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUN4RCxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0F2SFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsNEhDdEIvQyw0OEZBZ0VBOzsyRkQxQ2Esa0NBQWtDO2tCQUo5QyxTQUFTOytCQUNFLGlDQUFpQztvSUFpQjlCLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIFN1YmplY3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBQcnlEaWFsb2dSZWYsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBFdmVudEFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5hY3Rpb25zJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1wcm9jZWR1cmUtbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2NlZHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9wcm9jZWR1cmUvcHJvY2VkdXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnLi4vLi4vbW9kZWwvZG9tYWlucy5jb25zdGFudCc7XG5pbXBvcnQgeyBwYWRJZCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcGFkLWlkLmZ1bmN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZyBleHRlbmRzIEh5cFByb2NlZHVyZU1vZGVsIHtcbiAgaW5pdGlhbDogc3RyaW5nO1xuICBodG1sOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtYXNzb2NpYXRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2VkdXJlLWFzc29jaWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVBc3NvY2lhdGlvbk1vZGFsQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgc2VsZWN0ZWRFdmVudHMkOiBPYnNlcnZhYmxlPEh5cEV2ZW50RGV0YWlsc1tdPjtcblxuICBzZWxlY3RlZERvbWFpbj86IHN0cmluZztcbiAgc2VsZWN0ZWRQcm9jZWR1cmVJbkNvbWJvQm94PzogSHlwUHJvY2VkdXJlTW9kZWw7XG4gIG9uRG9tYWluU2VsZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcblxuICBwcm9jZWR1cmVTZWxlY3RWYWx1ZT86IHN0cmluZyB8IEh5cFByb2NlZHVyZU1vZGVsO1xuICBvblByb2NlZHVyZVNlYXJjaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcm9jZWR1cmVzJDogT2JzZXJ2YWJsZTxIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZ1tdPjtcbiAgZXZlbnRzRnJvbUlucHV0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SHlwRXZlbnREZXRhaWxzW10gfCBudWxsPihudWxsKTtcbiAgZXZlbnRzRm9yQWN0aW9uOiBIeXBFdmVudERldGFpbHNbXSA9IFtdO1xuICBkaXNhYmxlVmFsaWRCdXR0b24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNldCBldmVudHMoZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSkge1xuICAgIHRoaXMuZXZlbnRzRnJvbUlucHV0JC5uZXh0KGV2ZW50cyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHByb2NlZHVyZVNlcnZpY2U6IFByb2NlZHVyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFByeURpYWxvZ1JlZjxQcm9jZWR1cmVBc3NvY2lhdGlvbk1vZGFsQ29tcG9uZW50PlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWRFdmVudHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmV2ZW50c0Zyb21JbnB1dCQsXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zZWxlY3RlZEV2ZW50cylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZXZlbnRzRnJvbUlucHV0LCBldmVudHNGcm9tU2VsZWN0XSkgPT4gKGV2ZW50c0Zyb21JbnB1dCAhPT0gbnVsbCA/IGV2ZW50c0Zyb21JbnB1dCA6IGV2ZW50c0Zyb21TZWxlY3QpKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWRFdmVudHMkLnN1YnNjcmliZSgoZXZlbnRzKSA9PiAodGhpcy5ldmVudHNGb3JBY3Rpb24gPSBldmVudHMpKSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50cyQuc3Vic2NyaWJlKChldmVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZG9tYWlucyA9IFsuLi5uZXcgU2V0KGV2ZW50cy5tYXAoKGV2KSA9PiBldi5kb21haW4pKV07XG4gICAgICAgIGlmIChkb21haW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREb21haW4gPSBkb21haW5zWzBdO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnByb2NlZHVyZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm9uRG9tYWluU2VsZWN0JC5waXBlKHN0YXJ0V2l0aCgpKSxcbiAgICAgIHRoaXMub25Qcm9jZWR1cmVTZWFyY2gkLnBpcGUoc3RhcnRXaXRoKCksIGRlYm91bmNlVGltZSg1MDApKVxuICAgIF0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFtfLCBfX10pID0+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoID1cbiAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZS5sZW5ndGggPiAyID9cbiAgICAgICAgICAgIHRoaXMuY2xlYW5Qcm9jZWR1cmVOYW1lRm9yQ29tYm9Cb3hTZWFyY2godGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSkgOlxuICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSA9PT0gJ29iamVjdCcgP1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUubmFtZSA6XG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2NlZHVyZVNlcnZpY2UuZ2V0VG9wMTBCeVVzYWdlKHRoaXMuc2VsZWN0ZWREb21haW4sIHNlYXJjaCkucGlwZShcbiAgICAgICAgICBtYXAoKHByb2NlZHVyZXMpID0+XG4gICAgICAgICAgICBwcm9jZWR1cmVzLm1hcCgocHJvYykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWdleCA9IFJlZ0V4cChgKCR7c2VhcmNofSlgID8/ICcoLy0vLS8pJywgJ2dpZCcpO1xuICAgICAgICAgICAgICBjb25zdCBodG1sID0gYCR7cGFkSWQuZm4ocHJvYy5pZCl9IC0gJHtwcm9jLm5hbWV9ICgke3Byb2MuY3JlYXRvcn0pYDtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5wcm9jLFxuICAgICAgICAgICAgICAgIGluaXRpYWw6IGh0bWwsXG4gICAgICAgICAgICAgICAgaHRtbDogaHRtbC5yZXBsYWNlQWxsKHJlZ2V4LCAobWF0Y2hlZDogc3RyaW5nLCBjYXB0dXJlMTogc3RyaW5nKSA9PiBgPGI+JHtjYXB0dXJlMX08L2I+YClcbiAgICAgICAgICAgICAgfSBhcyBIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm9jZWR1cmUgY2F0YWxvZyBwcm9ibGVtJyk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApO1xuICB9XG5cbiAgb25Eb21haW5DaGFuZ2UoKSB7XG4gICAgdGhpcy5vbkRvbWFpblNlbGVjdCQubmV4dCgpO1xuICAgIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBjbGVhblByb2NlZHVyZU5hbWVGb3JDb21ib0JveFNlYXJjaChwcm9jZWR1cmU6IHN0cmluZyl7XG4gICAgY29uc3QgaW5kZXhPZlRpcmV0ID0gcHJvY2VkdXJlLmluZGV4T2YoJy0nKTtcbiAgICBjb25zdCBpbmRleE9mQ3JlYXRvciA9IHByb2NlZHVyZS5sYXN0SW5kZXhPZignKCcpO1xuICAgIGlmKGluZGV4T2ZUaXJldCAhPT0gLTEgJiYgaW5kZXhPZkNyZWF0b3IgIT09IC0xKSB7XG4gICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmUuc3Vic3RyaW5nKGluZGV4T2ZUaXJldCArIDIsIGluZGV4T2ZDcmVhdG9yIC0gMSk7XG4gICAgfSBlbHNlIGlmIChpbmRleE9mVGlyZXQgIT09IC0xKSB7XG4gICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmUuc3Vic3RyaW5nKGluZGV4T2ZUaXJldCArIDIpO1xuICAgIH0gZWxzZSBpZihpbmRleE9mQ3JlYXRvciAhPT0gLTEpIHtcbiAgICAgIHByb2NlZHVyZSA9IHByb2NlZHVyZS5zdWJzdHJpbmcoMCwgaW5kZXhPZkNyZWF0b3IgLSAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIHNlbGVjdGVkUHJvY2VkdXJlQ2hhbmdlKCRldmVudDogc3RyaW5nIHwgSHlwUHJvY2VkdXJlTW9kZWwpIHtcbiAgICAvLyB3aGVuIGNob29zZSBhIHByb2NlZHVyZVxuICAgIGlmKHR5cGVvZiAkZXZlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvY2VkdXJlSW5Db21ib0JveCA9ICRldmVudDtcbiAgICAgIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUgPSAkZXZlbnQ7XG4gICAgICAvLyB3aGVuIGNsaWNrIG9uIGNob29zZW4gcHJvY2VkdXJlXG4gICAgfSBlbHNlIGlmKCh0aGlzLnNlbGVjdGVkUHJvY2VkdXJlSW5Db21ib0JveCBhcyBIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZyk/Lmh0bWwgPT09ICRldmVudCkge1xuICAgICAgICB0aGlzLnByb2NlZHVyZVNlbGVjdFZhbHVlID0gdGhpcy5zZWxlY3RlZFByb2NlZHVyZUluQ29tYm9Cb3g7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb2NlZHVyZVNlbGVjdFZhbHVlID0gJGV2ZW50O1xuICAgICAgfVxuICAgIHRoaXMuZGlzYWJsZVZhbGlkQnV0dG9uID0gdHlwZW9mIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUgIT09ICdvYmplY3QnO1xuICAgIHRoaXMub25Qcm9jZWR1cmVTZWFyY2gkLm5leHQoKTtcbiAgfVxuXG4gIGFzc29jaWF0ZVByb2NlZHVyZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRXZlbnRBY3Rpb25zLmFzc29jaWF0ZVByb2NlZHVyZSh7XG4gICAgICAgIHByb2NlZHVyZUlkOiAodGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSBhcyBIeXBQcm9jZWR1cmVNb2RlbCkuaWQsXG4gICAgICAgIGV2ZW50SWRzOiB0aGlzLmV2ZW50c0ZvckFjdGlvbi5tYXAoKGV2ZW50KSA9PiBldmVudC5pZClcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBET01BSU5TID0gRE9NQUlOUy52YWx1ZXM7XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWwgdS1kaXNwbGF5LWZsZXggLWNvbHVtbiAtYWxpZ24tY2VudGVyXCI+XG4gIDxoMz57eyAnQGh2eS5hc3NvY2lhdGlvbk1vZGFsLnRpdGxlJyB8IGkxOG4gfX08L2gzPlxuICA8c3BhbiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19kZXNjcmlwdGlvblwiPnt7ICdAaHZ5LmFzc29jaWF0aW9uTW9kYWwuZGVzY3JpcHRpb24nIHwgaTE4biB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19jb250ZW50IHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LXNwYWNlLWJldHdlZW5cIj5cbiAgICBAaWYgKHNlbGVjdGVkRXZlbnRzJCB8IGFzeW5jOyBhcyBzZWxlY3RlZEV2ZW50cykge1xuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsPsOJdsOpbmVtZW50cyBsacOpcyAoe3sgc2VsZWN0ZWRFdmVudHMubGVuZ3RoIH19KSA6PC9sYWJlbD5cbiAgICAgICAgPHVsIGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2V2ZW50c1wiPlxuICAgICAgICAgIEBmb3IgKGV2ZW50IG9mIHNlbGVjdGVkRXZlbnRzOyB0cmFjayBldmVudC5pZCkge1xuICAgICAgICAgICAgPGxpIGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2V2ZW50IHUtZGlzcGxheS1mbGV4IC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGh2eS1pY29uLWRpc3BsYXkgW2V2ZW50XT1cImV2ZW50XCI+PC9odnktaWNvbi1kaXNwbGF5PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2V2ZW50LWRldGFpbCB1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1hc3NvY2lhdGlvbi1tb2RhbF9fZXZlbnQtbmFtZVwiPnt7IGV2ZW50Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChldmVudC5lcXVpcG1lbnQpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2VxdWlwbWVudC1uYW1lXCI+e3sgZXZlbnQuZXF1aXBtZW50Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1hc3NvY2lhdGlvbi1tb2RhbF9fZm9ybVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWw+e3sgJ0BodnkuYXNzb2NpYXRpb25Nb2RhbC5jYXRlZ29yeUZpbHRlcicgfCBpMThuIH19IDo8L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIFtpdGVtc109XCJET01BSU5TXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRG9tYWluXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRvbWFpbkNoYW5nZSgpXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BodnkuYXNzb2NpYXRpb25Nb2RhbC5kb21haW5QbGFjZWhvbGRlcicgfCBpMThuXCJcbiAgICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5ldmVudC5kb21haW4uXCJcbiAgICAgICAgICBpZD1cImNhdGVnb3J5LWZpbHRlclwiXG4gICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGZvcj1cInByb2NlZHVyZS1maWx0ZXJcIlxuICAgICAgICAgID57eyAnQGh2eS5hc3NvY2lhdGlvbk1vZGFsLnNlYXJjaFByb2NlZHVyZScgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJ0ZXh0LWVycm9yXCI+Kjwvc3Bhbj4gOlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIFtpdGVtc109XCJwcm9jZWR1cmVzJCB8IGFzeW5jXCJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJpbml0aWFsXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInByb2NlZHVyZVNlbGVjdFZhbHVlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZFByb2NlZHVyZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInRydWVcIlxuICAgICAgICAgIFtleHRlcm5hbEF1dG9jb21wbGV0ZVNlcnZpY2VdPVwidHJ1ZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LmFzc29jaWF0aW9uTW9kYWwucHJvY2VkdXJlUGxhY2Vob2xkZXInIHwgaTE4blwiXG4gICAgICAgICAgaWQ9XCJwcm9jZWR1cmUtZmlsdGVyXCJcbiAgICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGVPcHRpb25cIlxuICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlT3B0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIml0ZW0uaHRtbFwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19idXR0b25zIHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlVmFsaWRCdXR0b25cIiAoY2xpY2spPVwiYXNzb2NpYXRlUHJvY2VkdXJlKClcIj5cbiAgICAgIHt7ICdAaHZ5LmFjdGlvbi52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+e3sgJ0BodnkuYWN0aW9uLmNhbmNlbCcgfCBpMThuIH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFzc29jaWF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L3Byb2NlZHVyZS1hc3NvY2lhdGlvbi1tb2RhbC9wcm9jZWR1cmUtYXNzb2NpYXRpb24tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvcHJvY2VkdXJlLWFzc29jaWF0aW9uLW1vZGFsL3Byb2NlZHVyZS1hc3NvY2lhdGlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakgsT0FBTyxFQUFnQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFXdEQsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHdCQUF3QjtJQWM5RSxJQUFhLE1BQU0sQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsZ0JB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LElBQUksQ0FBQyxvQkFBMEMsQ0FBQyxFQUFFO1lBQ2hFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUN4RCxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0F2SFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsNEhDdEIvQywrOUZBZ0VBOzsyRkQxQ2Esa0NBQWtDO2tCQUo5QyxTQUFTOytCQUNFLGlDQUFpQztvSUFpQjlCLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIFN1YmplY3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBQcnlEaWFsb2dSZWYsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBFdmVudEFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5hY3Rpb25zJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1wcm9jZWR1cmUtbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2NlZHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9wcm9jZWR1cmUvcHJvY2VkdXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnLi4vLi4vbW9kZWwvZG9tYWlucy5jb25zdGFudCc7XG5pbXBvcnQgeyBwYWRJZCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcGFkLWlkLmZ1bmN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZyBleHRlbmRzIEh5cFByb2NlZHVyZU1vZGVsIHtcbiAgaW5pdGlhbDogc3RyaW5nO1xuICBodG1sOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtYXNzb2NpYXRpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2VkdXJlLWFzc29jaWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVBc3NvY2lhdGlvbk1vZGFsQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgc2VsZWN0ZWRFdmVudHMkOiBPYnNlcnZhYmxlPEh5cEV2ZW50RGV0YWlsc1tdPjtcblxuICBzZWxlY3RlZERvbWFpbj86IHN0cmluZztcbiAgc2VsZWN0ZWRQcm9jZWR1cmVJbkNvbWJvQm94PzogSHlwUHJvY2VkdXJlTW9kZWw7XG4gIG9uRG9tYWluU2VsZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcblxuICBwcm9jZWR1cmVTZWxlY3RWYWx1ZT86IHN0cmluZyB8IEh5cFByb2NlZHVyZU1vZGVsO1xuICBvblByb2NlZHVyZVNlYXJjaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcm9jZWR1cmVzJDogT2JzZXJ2YWJsZTxIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZ1tdPjtcbiAgZXZlbnRzRnJvbUlucHV0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SHlwRXZlbnREZXRhaWxzW10gfCBudWxsPihudWxsKTtcbiAgZXZlbnRzRm9yQWN0aW9uOiBIeXBFdmVudERldGFpbHNbXSA9IFtdO1xuICBkaXNhYmxlVmFsaWRCdXR0b24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNldCBldmVudHMoZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSkge1xuICAgIHRoaXMuZXZlbnRzRnJvbUlucHV0JC5uZXh0KGV2ZW50cyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHByb2NlZHVyZVNlcnZpY2U6IFByb2NlZHVyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFByeURpYWxvZ1JlZjxQcm9jZWR1cmVBc3NvY2lhdGlvbk1vZGFsQ29tcG9uZW50PlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWRFdmVudHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmV2ZW50c0Zyb21JbnB1dCQsXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zZWxlY3RlZEV2ZW50cylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZXZlbnRzRnJvbUlucHV0LCBldmVudHNGcm9tU2VsZWN0XSkgPT4gKGV2ZW50c0Zyb21JbnB1dCAhPT0gbnVsbCA/IGV2ZW50c0Zyb21JbnB1dCA6IGV2ZW50c0Zyb21TZWxlY3QpKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWRFdmVudHMkLnN1YnNjcmliZSgoZXZlbnRzKSA9PiAodGhpcy5ldmVudHNGb3JBY3Rpb24gPSBldmVudHMpKSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50cyQuc3Vic2NyaWJlKChldmVudHMpID0+IHtcbiAgICAgICAgY29uc3QgZG9tYWlucyA9IFsuLi5uZXcgU2V0KGV2ZW50cy5tYXAoKGV2KSA9PiBldi5kb21haW4pKV07XG4gICAgICAgIGlmIChkb21haW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREb21haW4gPSBkb21haW5zWzBdO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnByb2NlZHVyZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm9uRG9tYWluU2VsZWN0JC5waXBlKHN0YXJ0V2l0aCgpKSxcbiAgICAgIHRoaXMub25Qcm9jZWR1cmVTZWFyY2gkLnBpcGUoc3RhcnRXaXRoKCksIGRlYm91bmNlVGltZSg1MDApKVxuICAgIF0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFtfLCBfX10pID0+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoID1cbiAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZS5sZW5ndGggPiAyID9cbiAgICAgICAgICAgIHRoaXMuY2xlYW5Qcm9jZWR1cmVOYW1lRm9yQ29tYm9Cb3hTZWFyY2godGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSkgOlxuICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSA9PT0gJ29iamVjdCcgP1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUubmFtZSA6XG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2NlZHVyZVNlcnZpY2UuZ2V0VG9wMTBCeVVzYWdlKHRoaXMuc2VsZWN0ZWREb21haW4sIHNlYXJjaCkucGlwZShcbiAgICAgICAgICBtYXAoKHByb2NlZHVyZXMpID0+XG4gICAgICAgICAgICBwcm9jZWR1cmVzLm1hcCgocHJvYykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWdleCA9IFJlZ0V4cChgKCR7c2VhcmNofSlgID8/ICcoLy0vLS8pJywgJ2dpZCcpO1xuICAgICAgICAgICAgICBjb25zdCBodG1sID0gYCR7cGFkSWQuZm4ocHJvYy5pZCl9IC0gJHtwcm9jLm5hbWV9ICgke3Byb2MuY3JlYXRvcn0pYDtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5wcm9jLFxuICAgICAgICAgICAgICAgIGluaXRpYWw6IGh0bWwsXG4gICAgICAgICAgICAgICAgaHRtbDogaHRtbC5yZXBsYWNlQWxsKHJlZ2V4LCAobWF0Y2hlZDogc3RyaW5nLCBjYXB0dXJlMTogc3RyaW5nKSA9PiBgPGI+JHtjYXB0dXJlMX08L2I+YClcbiAgICAgICAgICAgICAgfSBhcyBIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm9jZWR1cmUgY2F0YWxvZyBwcm9ibGVtJyk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApO1xuICB9XG5cbiAgb25Eb21haW5DaGFuZ2UoKSB7XG4gICAgdGhpcy5vbkRvbWFpblNlbGVjdCQubmV4dCgpO1xuICAgIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBjbGVhblByb2NlZHVyZU5hbWVGb3JDb21ib0JveFNlYXJjaChwcm9jZWR1cmU6IHN0cmluZyl7XG4gICAgY29uc3QgaW5kZXhPZlRpcmV0ID0gcHJvY2VkdXJlLmluZGV4T2YoJy0nKTtcbiAgICBjb25zdCBpbmRleE9mQ3JlYXRvciA9IHByb2NlZHVyZS5sYXN0SW5kZXhPZignKCcpO1xuICAgIGlmKGluZGV4T2ZUaXJldCAhPT0gLTEgJiYgaW5kZXhPZkNyZWF0b3IgIT09IC0xKSB7XG4gICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmUuc3Vic3RyaW5nKGluZGV4T2ZUaXJldCArIDIsIGluZGV4T2ZDcmVhdG9yIC0gMSk7XG4gICAgfSBlbHNlIGlmIChpbmRleE9mVGlyZXQgIT09IC0xKSB7XG4gICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmUuc3Vic3RyaW5nKGluZGV4T2ZUaXJldCArIDIpO1xuICAgIH0gZWxzZSBpZihpbmRleE9mQ3JlYXRvciAhPT0gLTEpIHtcbiAgICAgIHByb2NlZHVyZSA9IHByb2NlZHVyZS5zdWJzdHJpbmcoMCwgaW5kZXhPZkNyZWF0b3IgLSAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIHNlbGVjdGVkUHJvY2VkdXJlQ2hhbmdlKCRldmVudDogc3RyaW5nIHwgSHlwUHJvY2VkdXJlTW9kZWwpIHtcbiAgICAvLyB3aGVuIGNob29zZSBhIHByb2NlZHVyZVxuICAgIGlmKHR5cGVvZiAkZXZlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvY2VkdXJlSW5Db21ib0JveCA9ICRldmVudDtcbiAgICAgIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUgPSAkZXZlbnQ7XG4gICAgICAvLyB3aGVuIGNsaWNrIG9uIGNob29zZW4gcHJvY2VkdXJlXG4gICAgfSBlbHNlIGlmKCh0aGlzLnNlbGVjdGVkUHJvY2VkdXJlSW5Db21ib0JveCBhcyBIeXBQcm9jZWR1cmVNb2RlbFdpdGhNYXRjaGluZyk/Lmh0bWwgPT09ICRldmVudCkge1xuICAgICAgICB0aGlzLnByb2NlZHVyZVNlbGVjdFZhbHVlID0gdGhpcy5zZWxlY3RlZFByb2NlZHVyZUluQ29tYm9Cb3g7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb2NlZHVyZVNlbGVjdFZhbHVlID0gJGV2ZW50O1xuICAgICAgfVxuICAgIHRoaXMuZGlzYWJsZVZhbGlkQnV0dG9uID0gdHlwZW9mIHRoaXMucHJvY2VkdXJlU2VsZWN0VmFsdWUgIT09ICdvYmplY3QnO1xuICAgIHRoaXMub25Qcm9jZWR1cmVTZWFyY2gkLm5leHQoKTtcbiAgfVxuXG4gIGFzc29jaWF0ZVByb2NlZHVyZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRXZlbnRBY3Rpb25zLmFzc29jaWF0ZVByb2NlZHVyZSh7XG4gICAgICAgIHByb2NlZHVyZUlkOiAodGhpcy5wcm9jZWR1cmVTZWxlY3RWYWx1ZSBhcyBIeXBQcm9jZWR1cmVNb2RlbCkuaWQsXG4gICAgICAgIGV2ZW50SWRzOiB0aGlzLmV2ZW50c0ZvckFjdGlvbi5tYXAoKGV2ZW50KSA9PiBldmVudC5pZClcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBET01BSU5TID0gRE9NQUlOUy52YWx1ZXM7XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWwgdS1kaXNwbGF5LWZsZXggLWNvbHVtbiAtYWxpZ24tY2VudGVyXCI+XG4gIDxoMz57eyAnQGh2eS5hc3NvY2lhdGlvbk1vZGFsLnRpdGxlJyB8IGkxOG4gfX08L2gzPlxuICA8c3BhbiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19kZXNjcmlwdGlvblwiPnt7ICdAaHZ5LmFzc29jaWF0aW9uTW9kYWwuZGVzY3JpcHRpb24nIHwgaTE4biB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19jb250ZW50IHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LXNwYWNlLWJldHdlZW5cIj5cbiAgICBAaWYgKHNlbGVjdGVkRXZlbnRzJCB8IGFzeW5jOyBhcyBzZWxlY3RlZEV2ZW50cykge1xuICAgICAgPGRpdiBjbGFzcz1cImFzc28tZXZlXCI+XG4gICAgICAgIDxsYWJlbD7DiXbDqW5lbWVudHMgbGnDqXMgKHt7IHNlbGVjdGVkRXZlbnRzLmxlbmd0aCB9fSkgOjwvbGFiZWw+XG4gICAgICAgIDx1bCBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19ldmVudHNcIj5cbiAgICAgICAgICBAZm9yIChldmVudCBvZiBzZWxlY3RlZEV2ZW50czsgdHJhY2sgZXZlbnQuaWQpIHtcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19ldmVudCB1LWRpc3BsYXktZmxleCAtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxodnktaWNvbi1kaXNwbGF5IFtldmVudF09XCJldmVudFwiPjwvaHZ5LWljb24tZGlzcGxheT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19ldmVudC1kZXRhaWwgdS1kaXNwbGF5LWZsZXggLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2V2ZW50LW5hbWVcIj57eyBldmVudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoZXZlbnQuZXF1aXBtZW50KSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm8taHZ5LWFzc29jaWF0aW9uLW1vZGFsX19lcXVpcG1lbnQtbmFtZVwiPnt7IGV2ZW50LmVxdWlwbWVudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktYXNzb2NpYXRpb24tbW9kYWxfX2Zvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgPGxhYmVsPnt7ICdAaHZ5LmFzc29jaWF0aW9uTW9kYWwuY2F0ZWdvcnlGaWx0ZXInIHwgaTE4biB9fSA6PC9sYWJlbD5cbiAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwiRE9NQUlOU1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERvbWFpblwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Eb21haW5DaGFuZ2UoKVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LmFzc29jaWF0aW9uTW9kYWwuZG9tYWluUGxhY2Vob2xkZXInIHwgaTE4blwiXG4gICAgICAgICAgaTE4blByZWZpeD1cIkBodnkuZXZlbnQuZG9tYWluLlwiXG4gICAgICAgICAgaWQ9XCJjYXRlZ29yeS1maWx0ZXJcIlxuICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJwcm9jZWR1cmUtZmlsdGVyXCJcbiAgICAgICAgICA+e3sgJ0BodnkuYXNzb2NpYXRpb25Nb2RhbC5zZWFyY2hQcm9jZWR1cmUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwidGV4dC1lcnJvclwiPio8L3NwYW4+IDpcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwicHJvY2VkdXJlcyQgfCBhc3luY1wiXG4gICAgICAgICAgYmluZExhYmVsPVwiaW5pdGlhbFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJwcm9jZWR1cmVTZWxlY3RWYWx1ZVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRQcm9jZWR1cmVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCJcbiAgICAgICAgICBbZXh0ZXJuYWxBdXRvY29tcGxldGVTZXJ2aWNlXT1cInRydWVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQGh2eS5hc3NvY2lhdGlvbk1vZGFsLnByb2NlZHVyZVBsYWNlaG9sZGVyJyB8IGkxOG5cIlxuICAgICAgICAgIGlkPVwicHJvY2VkdXJlLWZpbHRlclwiXG4gICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZU9wdGlvbiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWNvbHVtblwiPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLmh0bWxcIj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1hc3NvY2lhdGlvbi1tb2RhbF9fYnV0dG9ucyB1LWRpc3BsYXktZmxleCAtanVzdGlmeS1jZW50ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVZhbGlkQnV0dG9uXCIgKGNsaWNrKT1cImFzc29jaWF0ZVByb2NlZHVyZSgpXCI+XG4gICAgICB7eyAnQGh2eS5hY3Rpb24udmFsaWRhdGUnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPnt7ICdAaHZ5LmFjdGlvbi5jYW5jZWwnIHwgaTE4biB9fTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -9,10 +9,10 @@ export class HvyEmailActionParameterComponent extends HvyBaseParameterActionComp
9
9
  super();
10
10
  }
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyEmailActionParameterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyEmailActionParameterComponent, selector: "hvy-email-action-parameter", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyEmailActionParameterComponent, selector: "hvy-email-action-parameter", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n maxlength=\"70\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyEmailActionParameterComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'hvy-email-action-parameter', template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\n" }]
16
+ args: [{ selector: 'hvy-email-action-parameter', template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n maxlength=\"70\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\n" }]
17
17
  }], ctorParameters: () => [] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLXBhcmFtZXRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL2VtYWlsL2VtYWlsLWFjdGlvbi1wYXJhbWV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9lbWFpbC9lbWFpbC1hY3Rpb24tcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFPckYsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLCtCQUErQzthQUM1RixZQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsMENBQTBDLENBQUMsQUFBekQsQ0FBMEQ7SUFDeEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7OEdBSlUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MseUZDUjdDLG9oQkFpQkE7OzJGRFRhLGdDQUFnQztrQkFKNUMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXBhcmFtZXRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEh5cEVtYWlsQWN0aW9uIH0gZnJvbSAnLi9lbWFpbC1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZW1haWwtYWN0aW9uLXBhcmFtZXRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1hY3Rpb24tcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlFbWFpbEFjdGlvblBhcmFtZXRlckNvbXBvbmVudCBleHRlbmRzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwRW1haWxBY3Rpb24+IHtcbiAgc3RhdGljIFBBVFRFUk4gPSBuZXcgUmVnRXhwKC9eXFx3KyhbLi1dXFx3KykqQFxcdysoWy4tXVxcdyspKihcXC5cXHd7MiwzfSkrLyk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPnt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucXVlc3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fTwvcD5cbiAgPGlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIFsobmdNb2RlbCldPVwiX2FjdGlvbi5uYW1lXCJcbiAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgbWF4bGVuZ3RoPVwiMzBcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnBsYWNlaG9sZGVyLm5hbWUnIHwgaTE4blwiXG4gIC8+XG4gIDxwIGNsYXNzPVwidG9cIj57eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLmF0JyB8IGkxOG4gfX08L3A+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbKG5nTW9kZWwpXT1cIl9hY3Rpb24uZW1haWxcIlxuICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ0BodnkucHJvY2VkdXJlLmFjdGlvbi5wbGFjZWhvbGRlci5lbWFpbCcgfCBpMThuXCJcbiAgLz5cbjwvZGl2PlxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLXBhcmFtZXRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL2VtYWlsL2VtYWlsLWFjdGlvbi1wYXJhbWV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9lbWFpbC9lbWFpbC1hY3Rpb24tcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFPckYsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLCtCQUErQzthQUM1RixZQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsMENBQTBDLENBQUMsQUFBekQsQ0FBMEQ7SUFDeEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7OEdBSlUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MseUZDUjdDLDBpQkFrQkE7OzJGRFZhLGdDQUFnQztrQkFKNUMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXBhcmFtZXRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEh5cEVtYWlsQWN0aW9uIH0gZnJvbSAnLi9lbWFpbC1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZW1haWwtYWN0aW9uLXBhcmFtZXRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1hY3Rpb24tcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlFbWFpbEFjdGlvblBhcmFtZXRlckNvbXBvbmVudCBleHRlbmRzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwRW1haWxBY3Rpb24+IHtcbiAgc3RhdGljIFBBVFRFUk4gPSBuZXcgUmVnRXhwKC9eXFx3KyhbLi1dXFx3KykqQFxcdysoWy4tXVxcdyspKihcXC5cXHd7MiwzfSkrLyk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPnt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucXVlc3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fTwvcD5cbiAgPGlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIFsobmdNb2RlbCldPVwiX2FjdGlvbi5uYW1lXCJcbiAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgbWF4bGVuZ3RoPVwiMzBcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnBsYWNlaG9sZGVyLm5hbWUnIHwgaTE4blwiXG4gIC8+XG4gIDxwIGNsYXNzPVwidG9cIj57eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLmF0JyB8IGkxOG4gfX08L3A+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBbKG5nTW9kZWwpXT1cIl9hY3Rpb24uZW1haWxcIlxuICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICBtYXhsZW5ndGg9XCI3MFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucGxhY2Vob2xkZXIuZW1haWwnIHwgaTE4blwiXG4gIC8+XG48L2Rpdj5cbiJdfQ==
@@ -473,11 +473,11 @@ class ProcedureAssociationModalComponent extends SubscriptionnerDirective {
473
473
  this.dialog.close();
474
474
  }
475
475
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureAssociationModalComponent, deps: [{ token: i1$1.Store }, { token: ProcedureService }, { token: i1$2.PryDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
476
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureAssociationModalComponent, selector: "hvy-procedure-association-modal", inputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div>\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n", dependencies: [{ 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.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }] }); }
476
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureAssociationModalComponent, selector: "hvy-procedure-association-modal", inputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div class=\"asso-eve\">\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n", dependencies: [{ 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.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }] }); }
477
477
  }
478
478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureAssociationModalComponent, decorators: [{
479
479
  type: Component,
480
- args: [{ selector: 'hvy-procedure-association-modal', template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div>\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n" }]
480
+ args: [{ selector: 'hvy-procedure-association-modal', template: "<div class=\"o-hvy-association-modal u-display-flex -column -align-center\">\n <h3>{{ '@hvy.associationModal.title' | i18n }}</h3>\n <span class=\"o-hvy-association-modal__description\">{{ '@hvy.associationModal.description' | i18n }}</span>\n <div class=\"o-hvy-association-modal__content u-display-flex -justify-space-between\">\n @if (selectedEvents$ | async; as selectedEvents) {\n <div class=\"asso-eve\">\n <label>\u00C9v\u00E9nements li\u00E9s ({{ selectedEvents.length }}) :</label>\n <ul class=\"o-hvy-association-modal__events\">\n @for (event of selectedEvents; track event.id) {\n <li class=\"o-hvy-association-modal__event u-display-flex -align-center\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <div class=\"o-hvy-association-modal__event-detail u-display-flex -column\">\n <span class=\"o-hvy-association-modal__event-name\">{{ event.name }}</span>\n @if (event.equipment) {\n <span class=\"o-hvy-association-modal__equipment-name\">{{ event.equipment.name }}</span>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n }\n <div class=\"o-hvy-association-modal__form\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.associationModal.categoryFilter' | i18n }} :</label>\n <pry-select\n [items]=\"DOMAINS\"\n [(ngModel)]=\"selectedDomain\"\n (ngModelChange)=\"onDomainChange()\"\n [placeholder]=\"'@hvy.associationModal.domainPlaceholder' | i18n\"\n i18nPrefix=\"@hvy.event.domain.\"\n id=\"category-filter\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"procedure-filter\"\n >{{ '@hvy.associationModal.searchProcedure' | i18n }}<span class=\"text-error\">*</span> :\n </label>\n <pry-select\n [items]=\"procedures$ | async\"\n bindLabel=\"initial\"\n [(ngModel)]=\"procedureSelectValue\"\n (ngModelChange)=\"selectedProcedureChange($event)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.associationModal.procedurePlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"u-display-flex -column\">\n <span [innerHTML]=\"item.html\"></span>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"disableValidButton\" (click)=\"associateProcedure()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n" }]
481
481
  }], ctorParameters: () => [{ type: i1$1.Store }, { type: ProcedureService }, { type: i1$2.PryDialogRef }], propDecorators: { events: [{
482
482
  type: Input
483
483
  }] } });
@@ -1272,11 +1272,11 @@ class HvyEmailActionParameterComponent extends HvyBaseParameterActionComponent {
1272
1272
  super();
1273
1273
  }
1274
1274
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyEmailActionParameterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyEmailActionParameterComponent, selector: "hvy-email-action-parameter", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }] }); }
1275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyEmailActionParameterComponent, selector: "hvy-email-action-parameter", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n maxlength=\"70\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }] }); }
1276
1276
  }
1277
1277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyEmailActionParameterComponent, decorators: [{
1278
1278
  type: Component,
1279
- args: [{ selector: 'hvy-email-action-parameter', template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\n" }]
1279
+ args: [{ selector: 'hvy-email-action-parameter', template: "<div class=\"param-line\">\n <p>{{ '@hvy.procedure.action.question.' + action.type | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.name\"\n class=\"a-form-field\"\n maxlength=\"30\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.name' | i18n\"\n />\n <p class=\"to\">{{ '@hvy.procedure.action.at' | i18n }}</p>\n <input\n type=\"text\"\n [(ngModel)]=\"_action.email\"\n class=\"a-form-field\"\n maxlength=\"70\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.email' | i18n\"\n />\n</div>\n" }]
1280
1280
  }], ctorParameters: () => [] });
1281
1281
 
1282
1282
  class HvyEmailActionDisplayComponent extends HvyBaseParameterActionComponent {