@provoly/hypervisor 0.0.123 → 0.0.124

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.
@@ -1,4 +1,4 @@
1
- import { Component, ContentChildren, Input } from '@angular/core';
1
+ import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { SubscriptionnerDirective } from '@provoly/dashboard';
3
3
  import { EventActions } from '../../../../store/event/event.actions';
4
4
  import * as i0 from "@angular/core";
@@ -9,6 +9,7 @@ export class EventFiltersComponent extends SubscriptionnerDirective {
9
9
  super();
10
10
  this.store = store;
11
11
  this.filterSet = 'global';
12
+ this.filtered = new EventEmitter();
12
13
  }
13
14
  ngAfterViewInit() {
14
15
  this.filters.forEach((filter) => (filter.filterSet = this.filterSet));
@@ -16,12 +17,14 @@ export class EventFiltersComponent extends SubscriptionnerDirective {
16
17
  filter() {
17
18
  const filters = this.filters.map((filter) => filter.getParams()).reduce((p, c) => ({ ...p, ...c }), {});
18
19
  this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
20
+ this.filtered.next();
19
21
  }
20
22
  reset() {
21
23
  this.store.dispatch(EventActions.filter({ filters: {}, filterSet: this.filterSet }));
24
+ this.filtered.next();
22
25
  }
23
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventFiltersComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: EventFiltersComponent, selector: "hvy-event-filters", inputs: { filterSet: "filterSet" }, queries: [{ propertyName: "filters", predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-filters\">\n <ng-content></ng-content>\n <div class=\"o-hvy-event-filters__buttons\">\n <button (click)=\"reset()\" class=\"a-btn a-btn--secondary\" [title]=\"'@hvy.event.filter.reset' | i18n\">\n <pry-icon iconSvg=\"reset_filter_event\"></pry-icon>\n </button>\n <button (click)=\"filter()\" class=\"a-btn a-btn--primary\">\n {{ '@hvy.event.filter.name' | i18n }}\n <pry-icon iconSvg=\"event_filter\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: EventFiltersComponent, selector: "hvy-event-filters", inputs: { filterSet: "filterSet" }, outputs: { filtered: "filtered" }, queries: [{ propertyName: "filters", predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-filters\">\n <ng-content></ng-content>\n <div class=\"o-hvy-event-filters__buttons\">\n <button (click)=\"reset()\" class=\"a-btn a-btn--secondary\" [title]=\"'@hvy.event.filter.reset' | i18n\">\n <pry-icon iconSvg=\"reset_filter_event\"></pry-icon>\n </button>\n <button (click)=\"filter()\" class=\"a-btn a-btn--primary\">\n {{ '@hvy.event.filter.name' | i18n }}\n <pry-icon iconSvg=\"event_filter\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
25
28
  }
26
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventFiltersComponent, decorators: [{
27
30
  type: Component,
@@ -31,5 +34,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
31
34
  }], filters: [{
32
35
  type: ContentChildren,
33
36
  args: ['filter', { descendants: true }]
37
+ }], filtered: [{
38
+ type: Output
34
39
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL29uL2NsaWNrL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9vbi9jbGljay9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBTXJFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx3QkFBd0I7SUFJakUsWUFBb0IsS0FBWTtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQU87UUFIdkIsY0FBUyxHQUFHLFFBQVEsQ0FBQztJQUs5QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FuQlUscUJBQXFCO2tHQUFyQixxQkFBcUIsc01DVmxDLHFmQVlBOzsyRkRGYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COzBFQUlwQixTQUFTO3NCQUFqQixLQUFLO2dCQUM0QyxPQUFPO3NCQUF4RCxlQUFlO3VCQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh2eVVuaXRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9odnktdW5pdC1maWx0ZXIuY2xhc3MnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBFdmVudEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9ldmVudC9ldmVudC5hY3Rpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtZmlsdGVycy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRGaWx0ZXJzQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGZpbHRlclNldCA9ICdnbG9iYWwnO1xuICBAQ29udGVudENoaWxkcmVuKCdmaWx0ZXInLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGZpbHRlcnMhOiBRdWVyeUxpc3Q8SHZ5VW5pdEZpbHRlckNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IChmaWx0ZXIuZmlsdGVyU2V0ID0gdGhpcy5maWx0ZXJTZXQpKTtcbiAgfVxuXG4gIGZpbHRlcigpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5maWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiBmaWx0ZXIuZ2V0UGFyYW1zKCkpLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmZpbHRlcih7IGZpbHRlcnMsIGZpbHRlclNldDogdGhpcy5maWx0ZXJTZXQgfSkpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuZmlsdGVyKHsgZmlsdGVyczoge30sIGZpbHRlclNldDogdGhpcy5maWx0ZXJTZXQgfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktZXZlbnQtZmlsdGVyc1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1maWx0ZXJzX19idXR0b25zXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIFt0aXRsZV09XCInQGh2eS5ldmVudC5maWx0ZXIucmVzZXQnIHwgaTE4blwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJyZXNldF9maWx0ZXJfZXZlbnRcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImZpbHRlcigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAge3sgJ0BodnkuZXZlbnQuZmlsdGVyLm5hbWUnIHwgaTE4biB9fVxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJldmVudF9maWx0ZXJcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL29uL2NsaWNrL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9vbi9jbGljay9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFNckUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHdCQUF3QjtJQUtqRSxZQUFvQixLQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUp2QixjQUFTLEdBQUcsUUFBUSxDQUFDO1FBRXBCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSTlDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs4R0F0QlUscUJBQXFCO2tHQUFyQixxQkFBcUIseU9DVmxDLHFmQVlBOzsyRkRGYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COzBFQUlwQixTQUFTO3NCQUFqQixLQUFLO2dCQUM0QyxPQUFPO3NCQUF4RCxlQUFlO3VCQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBQ3RDLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIdnlVbml0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaHZ5LXVuaXQtZmlsdGVyLmNsYXNzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1ldmVudC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50RmlsdGVyc0NvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBmaWx0ZXJTZXQgPSAnZ2xvYmFsJztcbiAgQENvbnRlbnRDaGlsZHJlbignZmlsdGVyJywgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBmaWx0ZXJzITogUXVlcnlMaXN0PEh2eVVuaXRGaWx0ZXJDb21wb25lbnQ+O1xuICBAT3V0cHV0KCkgZmlsdGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IChmaWx0ZXIuZmlsdGVyU2V0ID0gdGhpcy5maWx0ZXJTZXQpKTtcbiAgfVxuXG4gIGZpbHRlcigpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5maWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiBmaWx0ZXIuZ2V0UGFyYW1zKCkpLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmZpbHRlcih7IGZpbHRlcnMsIGZpbHRlclNldDogdGhpcy5maWx0ZXJTZXQgfSkpO1xuICAgIHRoaXMuZmlsdGVyZWQubmV4dCgpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuZmlsdGVyKHsgZmlsdGVyczoge30sIGZpbHRlclNldDogdGhpcy5maWx0ZXJTZXQgfSkpO1xuICAgIHRoaXMuZmlsdGVyZWQubmV4dCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktZXZlbnQtZmlsdGVyc1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1maWx0ZXJzX19idXR0b25zXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIFt0aXRsZV09XCInQGh2eS5ldmVudC5maWx0ZXIucmVzZXQnIHwgaTE4blwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJyZXNldF9maWx0ZXJfZXZlbnRcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImZpbHRlcigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAge3sgJ0BodnkuZXZlbnQuZmlsdGVyLm5hbWUnIHwgaTE4biB9fVxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJldmVudF9maWx0ZXJcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,16 +1,16 @@
1
1
  import { createAction, props } from '@ngrx/store';
2
2
  export const EventActions = {
3
3
  load: createAction('[Event] Load Events', props()),
4
- loadSuccess: createAction('[Event Api] (bus) Load Events Success', props()),
4
+ loadSuccess: createAction('[Event Api] Load Events Success', props()),
5
5
  loadFailure: createAction('[Event Api] Load Events Failure', props()),
6
6
  filter: createAction('[Event Api] Set filters', props()),
7
7
  select: createAction('[Event Api] Select', props()),
8
8
  get: createAction('[Event] Load specific Event', props()),
9
9
  getForProcedure: createAction('[Event] Load specific Event for procedure', props()),
10
- getSuccess: createAction('[Event Api] (bus) Get Events/Procedure Success', props()),
10
+ getSuccess: createAction('[Event Api] Get Events/Procedure Success', props()),
11
11
  getFailure: createAction('[Event Api] Get Events/Procedure Failure', props()),
12
12
  getTooltipInfo: createAction('[Event] Load tooltip info', props()),
13
- getTooltipInfoSuccess: createAction('[Event Api] (bus) Load tooltip info Success', props()),
13
+ getTooltipInfoSuccess: createAction('[Event Api] Load tooltip info Success', props()),
14
14
  getTooltipInfoFailure: createAction('[Event Api] Load tooltip info Failure', props()),
15
15
  save: createAction('[Event] Save Event', props()),
16
16
  saveProcedure: createAction('[Event] Save Procedure and linked Events', props()),
@@ -26,4 +26,4 @@ export const EventActions = {
26
26
  associateProcedureFailure: createAction('[Event] Associate Procedure to Event Failure', props()),
27
27
  export: createAction('[Event] Export events', props())
28
28
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3RFLFdBQVcsRUFBRSxZQUFZLENBQ3ZCLHVDQUF1QyxFQUN2QyxLQUFLLEVBR0QsQ0FDTDtJQUNELFdBQVcsRUFBRSxZQUFZLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ3hGLE1BQU0sRUFBRSxZQUFZLENBQUMseUJBQXlCLEVBQUUsS0FBSyxFQUErRCxDQUFDO0lBQ3JILE1BQU0sRUFBRSxZQUFZLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUEwQyxDQUFDO0lBQzNGLEdBQUcsRUFBRSxZQUFZLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ3pFLGVBQWUsRUFBRSxZQUFZLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ25HLFVBQVUsRUFBRSxZQUFZLENBQ3RCLGdEQUFnRCxFQUNoRCxLQUFLLEVBR0QsQ0FDTDtJQUNELFVBQVUsRUFBRSxZQUFZLENBQUMsMENBQTBDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ2hHLGNBQWMsRUFBRSxZQUFZLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxFQUFvQixDQUFDO0lBQ3BGLHFCQUFxQixFQUFFLFlBQVksQ0FDakMsNkNBQTZDLEVBQzdDLEtBQUssRUFFRCxDQUNMO0lBQ0QscUJBQXFCLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssRUFBcUIsQ0FBQztJQUN4RyxJQUFJLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBOEIsQ0FBQztJQUM3RSxhQUFhLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBK0IsQ0FBQztJQUM3RyxtQkFBbUIsRUFBRSxZQUFZLENBQy9CLGdDQUFnQyxFQUNoQyxLQUFLLEVBQWdELENBQ3REO0lBQ0QsV0FBVyxFQUFFLFlBQVksQ0FDdkIsc0JBQXNCLEVBQ3RCLEtBQUssRUFBNEUsQ0FDbEY7SUFDRCxXQUFXLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUMxRSxNQUFNLEVBQUUsWUFBWSxDQUNsQixrQ0FBa0MsRUFDbEMsS0FBSyxFQUtELENBQ0w7SUFDRCxhQUFhLEVBQUUsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBeUQsQ0FBQztJQUNwSCxhQUFhLEVBQUUsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUM3RSxJQUFJLEVBQUUsWUFBWSxDQUFDLCtCQUErQixFQUFFLEtBQUssRUFBb0MsQ0FBQztJQUM5RixrQkFBa0IsRUFBRSxZQUFZLENBQzlCLHNDQUFzQyxFQUN0QyxLQUFLLEVBQStDLENBQ3JEO0lBQ0QseUJBQXlCLEVBQUUsWUFBWSxDQUNyQyw4Q0FBOEMsRUFDOUMsS0FBSyxFQUErQixDQUNyQztJQUNELHlCQUF5QixFQUFFLFlBQVksQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDbkgsTUFBTSxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLEVBQXlCLENBQUM7Q0FDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBQcm9jZWR1cmUgfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnRUb29sdGlwIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXRvb2x0aXAuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEV2ZW50QWN0aW9ucyA9IHtcbiAgbG9hZDogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgRXZlbnRzJywgcHJvcHM8eyBuZXh0PzogYm9vbGVhbiB9PigpKSxcbiAgbG9hZFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50IEFwaV0gKGJ1cykgTG9hZCBFdmVudHMgU3VjY2VzcycsXG4gICAgcHJvcHM8e1xuICAgICAgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXTtcbiAgICAgIHN0YXJ0aW5nRnJvbT86IG51bWJlcjtcbiAgICB9PigpXG4gICksXG4gIGxvYWRGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIExvYWQgRXZlbnRzIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBzdHJpbmcgfT4oKSksXG4gIGZpbHRlcjogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBTZXQgZmlsdGVycycsIHByb3BzPHsgZmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9OyBmaWx0ZXJTZXQ6IHN0cmluZyB9PigpKSxcbiAgc2VsZWN0OiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIFNlbGVjdCcsIHByb3BzPHsgY3VtdWxhdGl2ZTogYm9vbGVhbjsgaWRzOiBudW1iZXJbXSB9PigpKSxcbiAgZ2V0OiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gTG9hZCBzcGVjaWZpYyBFdmVudCcsIHByb3BzPHsgaWQ6IG51bWJlciB9PigpKSxcbiAgZ2V0Rm9yUHJvY2VkdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gTG9hZCBzcGVjaWZpYyBFdmVudCBmb3IgcHJvY2VkdXJlJywgcHJvcHM8eyBpZDogbnVtYmVyIH0+KCkpLFxuICBnZXRTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tFdmVudCBBcGldIChidXMpIEdldCBFdmVudHMvUHJvY2VkdXJlIFN1Y2Nlc3MnLFxuICAgIHByb3BzPHtcbiAgICAgIGV2ZW50PzogSHlwRXZlbnREZXRhaWxzO1xuICAgICAgcHJvY2VkdXJlPzogSHlwUHJvY2VkdXJlO1xuICAgIH0+KClcbiAgKSxcbiAgZ2V0RmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBHZXQgRXZlbnRzL1Byb2NlZHVyZSBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxuICBnZXRUb29sdGlwSW5mbzogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgdG9vbHRpcCBpbmZvJywgcHJvcHM8eyBuYW1lOiBzdHJpbmcgfT4oKSksXG4gIGdldFRvb2x0aXBJbmZvU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgICdbRXZlbnQgQXBpXSAoYnVzKSBMb2FkIHRvb2x0aXAgaW5mbyBTdWNjZXNzJyxcbiAgICBwcm9wczx7XG4gICAgICBldmVudDogSHlwRXZlbnRUb29sdGlwO1xuICAgIH0+KClcbiAgKSxcbiAgZ2V0VG9vbHRpcEluZm9GYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIExvYWQgdG9vbHRpcCBpbmZvIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBzdHJpbmcgfT4oKSksXG4gIHNhdmU6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBTYXZlIEV2ZW50JywgcHJvcHM8eyBldmVudDogSHlwRXZlbnREZXRhaWxzIH0+KCkpLFxuICBzYXZlUHJvY2VkdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gU2F2ZSBQcm9jZWR1cmUgYW5kIGxpbmtlZCBFdmVudHMnLCBwcm9wczx7IHByb2NlZHVyZTogSHlwUHJvY2VkdXJlIH0+KCkpLFxuICBhZGRFdmVudFRvUHJvY2VkdXJlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tFdmVudF0gQWRkIGV2ZW50IHRvIHByb2NlZHVyZScsXG4gICAgcHJvcHM8eyBldmVudElkOiBudW1iZXI7IHByb2NlZHVyZTogSHlwUHJvY2VkdXJlIH0+KClcbiAgKSxcbiAgc2F2ZVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50XSBTYXZlIHN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgZXZlbnQ/OiBIeXBFdmVudERldGFpbHM7IHByb2NlZHVyZT86IEh5cFByb2NlZHVyZTsgY3JlYXRpb246IGJvb2xlYW4gfT4oKVxuICApLFxuICBzYXZlRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIFNhdmUgZmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcbiAgc3RhdHVzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tFdmVudF0gQ2xvc2UgRXZlbnQgb3IgUHJvY2VkdXJlJyxcbiAgICBwcm9wczx7XG4gICAgICB0YXJnZXRTdGF0dXM6IHN0cmluZztcbiAgICAgIGV2ZW50PzogSHlwRXZlbnREZXRhaWxzO1xuICAgICAgcHJvY2VkdXJlPzogSHlwUHJvY2VkdXJlO1xuICAgICAgY29tbWVudDogc3RyaW5nO1xuICAgIH0+KClcbiAgKSxcbiAgc3RhdHVzU3VjY2VzczogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIENsb3NlIHN1Y2Nlc3MnLCBwcm9wczx7IGV2ZW50PzogSHlwRXZlbnREZXRhaWxzOyBwcm9jZWR1cmU/OiBIeXBQcm9jZWR1cmUgfT4oKSksXG4gIHN0YXR1c0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBDbG9zZSBmYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuICBzb3J0OiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gc2V0IGxvZyBldmVudCBzb3J0aW5nJywgcHJvcHM8eyBmaWVsZDogc3RyaW5nOyBvcmRlcjogc3RyaW5nIH0+KCkpLFxuICBhc3NvY2lhdGVQcm9jZWR1cmU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50XSBBc3NvY2lhdGUgUHJvY2VkdXJlIHRvIEV2ZW50JyxcbiAgICBwcm9wczx7IHByb2NlZHVyZUlkOiBudW1iZXI7IGV2ZW50SWRzOiBudW1iZXJbXSB9PigpXG4gICksXG4gIGFzc29jaWF0ZVByb2NlZHVyZVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50XSBBc3NvY2lhdGUgUHJvY2VkdXJlIHRvIEV2ZW50IFN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgcHJvY2VkdXJlOiBIeXBQcm9jZWR1cmUgfT4oKVxuICApLFxuICBhc3NvY2lhdGVQcm9jZWR1cmVGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gQXNzb2NpYXRlIFByb2NlZHVyZSB0byBFdmVudCBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxuICBleHBvcnQ6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBFeHBvcnQgZXZlbnRzJywgcHJvcHM8eyBhcmNoaXZlZDogYm9vbGVhbiB9PigpKVxufTtcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3RFLFdBQVcsRUFBRSxZQUFZLENBQ3ZCLGlDQUFpQyxFQUNqQyxLQUFLLEVBR0QsQ0FDTDtJQUNELFdBQVcsRUFBRSxZQUFZLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ3hGLE1BQU0sRUFBRSxZQUFZLENBQUMseUJBQXlCLEVBQUUsS0FBSyxFQUErRCxDQUFDO0lBQ3JILE1BQU0sRUFBRSxZQUFZLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUEwQyxDQUFDO0lBQzNGLEdBQUcsRUFBRSxZQUFZLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ3pFLGVBQWUsRUFBRSxZQUFZLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ25HLFVBQVUsRUFBRSxZQUFZLENBQ3RCLDBDQUEwQyxFQUMxQyxLQUFLLEVBR0QsQ0FDTDtJQUNELFVBQVUsRUFBRSxZQUFZLENBQUMsMENBQTBDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ2hHLGNBQWMsRUFBRSxZQUFZLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxFQUFvQixDQUFDO0lBQ3BGLHFCQUFxQixFQUFFLFlBQVksQ0FDakMsdUNBQXVDLEVBQ3ZDLEtBQUssRUFFRCxDQUNMO0lBQ0QscUJBQXFCLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssRUFBcUIsQ0FBQztJQUN4RyxJQUFJLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBOEIsQ0FBQztJQUM3RSxhQUFhLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBK0IsQ0FBQztJQUM3RyxtQkFBbUIsRUFBRSxZQUFZLENBQy9CLGdDQUFnQyxFQUNoQyxLQUFLLEVBQWdELENBQ3REO0lBQ0QsV0FBVyxFQUFFLFlBQVksQ0FDdkIsc0JBQXNCLEVBQ3RCLEtBQUssRUFBNEUsQ0FDbEY7SUFDRCxXQUFXLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUMxRSxNQUFNLEVBQUUsWUFBWSxDQUNsQixrQ0FBa0MsRUFDbEMsS0FBSyxFQUtELENBQ0w7SUFDRCxhQUFhLEVBQUUsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBeUQsQ0FBQztJQUNwSCxhQUFhLEVBQUUsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUM3RSxJQUFJLEVBQUUsWUFBWSxDQUFDLCtCQUErQixFQUFFLEtBQUssRUFBb0MsQ0FBQztJQUM5RixrQkFBa0IsRUFBRSxZQUFZLENBQzlCLHNDQUFzQyxFQUN0QyxLQUFLLEVBQStDLENBQ3JEO0lBQ0QseUJBQXlCLEVBQUUsWUFBWSxDQUNyQyw4Q0FBOEMsRUFDOUMsS0FBSyxFQUErQixDQUNyQztJQUNELHlCQUF5QixFQUFFLFlBQVksQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDbkgsTUFBTSxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLEVBQXlCLENBQUM7Q0FDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBQcm9jZWR1cmUgfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnRUb29sdGlwIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXRvb2x0aXAuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEV2ZW50QWN0aW9ucyA9IHtcbiAgbG9hZDogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgRXZlbnRzJywgcHJvcHM8eyBuZXh0PzogYm9vbGVhbiB9PigpKSxcbiAgbG9hZFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50IEFwaV0gTG9hZCBFdmVudHMgU3VjY2VzcycsXG4gICAgcHJvcHM8e1xuICAgICAgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXTtcbiAgICAgIHN0YXJ0aW5nRnJvbT86IG51bWJlcjtcbiAgICB9PigpXG4gICksXG4gIGxvYWRGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIExvYWQgRXZlbnRzIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBzdHJpbmcgfT4oKSksXG4gIGZpbHRlcjogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBTZXQgZmlsdGVycycsIHByb3BzPHsgZmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9OyBmaWx0ZXJTZXQ6IHN0cmluZyB9PigpKSxcbiAgc2VsZWN0OiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIFNlbGVjdCcsIHByb3BzPHsgY3VtdWxhdGl2ZTogYm9vbGVhbjsgaWRzOiBudW1iZXJbXSB9PigpKSxcbiAgZ2V0OiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gTG9hZCBzcGVjaWZpYyBFdmVudCcsIHByb3BzPHsgaWQ6IG51bWJlciB9PigpKSxcbiAgZ2V0Rm9yUHJvY2VkdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gTG9hZCBzcGVjaWZpYyBFdmVudCBmb3IgcHJvY2VkdXJlJywgcHJvcHM8eyBpZDogbnVtYmVyIH0+KCkpLFxuICBnZXRTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tFdmVudCBBcGldIEdldCBFdmVudHMvUHJvY2VkdXJlIFN1Y2Nlc3MnLFxuICAgIHByb3BzPHtcbiAgICAgIGV2ZW50PzogSHlwRXZlbnREZXRhaWxzO1xuICAgICAgcHJvY2VkdXJlPzogSHlwUHJvY2VkdXJlO1xuICAgIH0+KClcbiAgKSxcbiAgZ2V0RmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBHZXQgRXZlbnRzL1Byb2NlZHVyZSBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxuICBnZXRUb29sdGlwSW5mbzogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgdG9vbHRpcCBpbmZvJywgcHJvcHM8eyBuYW1lOiBzdHJpbmcgfT4oKSksXG4gIGdldFRvb2x0aXBJbmZvU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgICdbRXZlbnQgQXBpXSBMb2FkIHRvb2x0aXAgaW5mbyBTdWNjZXNzJyxcbiAgICBwcm9wczx7XG4gICAgICBldmVudDogSHlwRXZlbnRUb29sdGlwO1xuICAgIH0+KClcbiAgKSxcbiAgZ2V0VG9vbHRpcEluZm9GYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIExvYWQgdG9vbHRpcCBpbmZvIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBzdHJpbmcgfT4oKSksXG4gIHNhdmU6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBTYXZlIEV2ZW50JywgcHJvcHM8eyBldmVudDogSHlwRXZlbnREZXRhaWxzIH0+KCkpLFxuICBzYXZlUHJvY2VkdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gU2F2ZSBQcm9jZWR1cmUgYW5kIGxpbmtlZCBFdmVudHMnLCBwcm9wczx7IHByb2NlZHVyZTogSHlwUHJvY2VkdXJlIH0+KCkpLFxuICBhZGRFdmVudFRvUHJvY2VkdXJlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tFdmVudF0gQWRkIGV2ZW50IHRvIHByb2NlZHVyZScsXG4gICAgcHJvcHM8eyBldmVudElkOiBudW1iZXI7IHByb2NlZHVyZTogSHlwUHJvY2VkdXJlIH0+KClcbiAgKSxcbiAgc2F2ZVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50XSBTYXZlIHN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgZXZlbnQ/OiBIeXBFdmVudERldGFpbHM7IHByb2NlZHVyZT86IEh5cFByb2NlZHVyZTsgY3JlYXRpb246IGJvb2xlYW4gfT4oKVxuICApLFxuICBzYXZlRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIFNhdmUgZmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcbiAgc3RhdHVzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tFdmVudF0gQ2xvc2UgRXZlbnQgb3IgUHJvY2VkdXJlJyxcbiAgICBwcm9wczx7XG4gICAgICB0YXJnZXRTdGF0dXM6IHN0cmluZztcbiAgICAgIGV2ZW50PzogSHlwRXZlbnREZXRhaWxzO1xuICAgICAgcHJvY2VkdXJlPzogSHlwUHJvY2VkdXJlO1xuICAgICAgY29tbWVudDogc3RyaW5nO1xuICAgIH0+KClcbiAgKSxcbiAgc3RhdHVzU3VjY2VzczogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIENsb3NlIHN1Y2Nlc3MnLCBwcm9wczx7IGV2ZW50PzogSHlwRXZlbnREZXRhaWxzOyBwcm9jZWR1cmU/OiBIeXBQcm9jZWR1cmUgfT4oKSksXG4gIHN0YXR1c0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBDbG9zZSBmYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuICBzb3J0OiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gc2V0IGxvZyBldmVudCBzb3J0aW5nJywgcHJvcHM8eyBmaWVsZDogc3RyaW5nOyBvcmRlcjogc3RyaW5nIH0+KCkpLFxuICBhc3NvY2lhdGVQcm9jZWR1cmU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50XSBBc3NvY2lhdGUgUHJvY2VkdXJlIHRvIEV2ZW50JyxcbiAgICBwcm9wczx7IHByb2NlZHVyZUlkOiBudW1iZXI7IGV2ZW50SWRzOiBudW1iZXJbXSB9PigpXG4gICksXG4gIGFzc29jaWF0ZVByb2NlZHVyZVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0V2ZW50XSBBc3NvY2lhdGUgUHJvY2VkdXJlIHRvIEV2ZW50IFN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgcHJvY2VkdXJlOiBIeXBQcm9jZWR1cmUgfT4oKVxuICApLFxuICBhc3NvY2lhdGVQcm9jZWR1cmVGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gQXNzb2NpYXRlIFByb2NlZHVyZSB0byBFdmVudCBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxuICBleHBvcnQ6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBFeHBvcnQgZXZlbnRzJywgcHJvcHM8eyBhcmNoaXZlZDogYm9vbGVhbiB9PigpKVxufTtcbiJdfQ==
@@ -34,16 +34,16 @@ const DOMAINS = {
34
34
 
35
35
  const EventActions = {
36
36
  load: createAction('[Event] Load Events', props()),
37
- loadSuccess: createAction('[Event Api] (bus) Load Events Success', props()),
37
+ loadSuccess: createAction('[Event Api] Load Events Success', props()),
38
38
  loadFailure: createAction('[Event Api] Load Events Failure', props()),
39
39
  filter: createAction('[Event Api] Set filters', props()),
40
40
  select: createAction('[Event Api] Select', props()),
41
41
  get: createAction('[Event] Load specific Event', props()),
42
42
  getForProcedure: createAction('[Event] Load specific Event for procedure', props()),
43
- getSuccess: createAction('[Event Api] (bus) Get Events/Procedure Success', props()),
43
+ getSuccess: createAction('[Event Api] Get Events/Procedure Success', props()),
44
44
  getFailure: createAction('[Event Api] Get Events/Procedure Failure', props()),
45
45
  getTooltipInfo: createAction('[Event] Load tooltip info', props()),
46
- getTooltipInfoSuccess: createAction('[Event Api] (bus) Load tooltip info Success', props()),
46
+ getTooltipInfoSuccess: createAction('[Event Api] Load tooltip info Success', props()),
47
47
  getTooltipInfoFailure: createAction('[Event Api] Load tooltip info Failure', props()),
48
48
  save: createAction('[Event] Save Event', props()),
49
49
  saveProcedure: createAction('[Event] Save Procedure and linked Events', props()),
@@ -1578,6 +1578,7 @@ class EventDetailComponent extends SubscriptionnerDirective {
1578
1578
  this.equipmentSelectValue = [];
1579
1579
  this.onEventSearch$ = new Subject();
1580
1580
  this.eventSelectValue = [];
1581
+ this.parentName = [];
1581
1582
  this.padId = padId;
1582
1583
  this.subCategories = [undefined, ...HypEventSubCategory.values['ANOMALY']];
1583
1584
  this.equipmentsEvents = [];
@@ -1601,7 +1602,7 @@ class EventDetailComponent extends SubscriptionnerDirective {
1601
1602
  const search = typeof this.eventSelectValue[index] === 'string' && this.eventSelectValue[index].length > 2
1602
1603
  ? this.eventSelectValue[index]
1603
1604
  : undefined;
1604
- return this.eventService.list().pipe(map$1((events) => events.map((event) => {
1605
+ return this.eventService.search(search).pipe(map$1((events) => events.map((event) => {
1605
1606
  const regex = RegExp(`(${search})` ?? '(/-/-/)', 'gid');
1606
1607
  const html = `${padId.fn(event.id)} - ${event.name}`;
1607
1608
  return {
@@ -1910,6 +1911,7 @@ class EventDetailComponent extends SubscriptionnerDirective {
1910
1911
  this.eventSelectValue[index] = $event;
1911
1912
  this.onEventSearch$.next(index);
1912
1913
  if (typeof $event === 'object') {
1914
+ this.parentName[index] = `${padId.fn($event.id)} - ${$event.name}`;
1913
1915
  if (this._events[index].parent?.id !== $event.id) {
1914
1916
  if (!this.eventModifications[index]) {
1915
1917
  this.eventModifications[index] = {};
@@ -1928,6 +1930,9 @@ class EventDetailComponent extends SubscriptionnerDirective {
1928
1930
  }
1929
1931
  }
1930
1932
  }
1933
+ else {
1934
+ this.parentName[index] = $event;
1935
+ }
1931
1936
  }
1932
1937
  addOneEvent() {
1933
1938
  const ref = this.pryDialog.open(HvyEventAddEventComponent, {
@@ -1944,11 +1949,11 @@ class EventDetailComponent extends SubscriptionnerDirective {
1944
1949
  });
1945
1950
  }
1946
1951
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventDetailComponent, deps: [{ token: EquipmentService }, { token: i1$1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i1$3.PryI18nService }, { token: i1$3.PryDialogService }, { token: HypCommentsService }, { token: EventService }], target: i0.ɵɵFactoryTarget.Component }); }
1947
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: EventDetailComponent, selector: "hvy-event-detail", inputs: { title: "title", me: "me", readonly: "readonly", readonlyProcedure: "readonlyProcedure", enableEditActions: "enableEditActions", events: "events", procedure: "procedure", cancelModifications: "cancelModifications", equipmentName: "equipmentName" }, outputs: { modifiedEvents: "modifiedEvents", modifiedProcedure: "modifiedProcedure", eventErrors: "eventErrors", addedEvent: "addedEvent", comfirmDialogOpened: "comfirmDialogOpened" }, 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 }}</h1>\n @if (procedure) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\"></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\" (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\">\n @if (procedure && !readonly) {\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\">\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 (comments$ && comments$ | async; as comments) {\n @if (comments[event.id]?.length ?? 0 > 0) {\n <span>{{\n ((comments[event.id]?.length ?? 0) > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: comments[event.id]?.length }\n }}</span>\n }\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"event.status !== 'DONE'\"\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>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }} : {{ event.address }}</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 <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 @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 <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 @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }} :</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 <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\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]=\"256\"\n ></textarea>\n </td>\n <td></td>\n </tr>\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 ></textarea>\n </td>\n <td></td>\n </tr>\n @if (event.category !== 'MANIFESTATION') {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }} :</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 }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"equipments$ | async\"\n bindLabel=\"name\"\n [(ngModel)]=\"equipmentSelectValue[idx]\"\n (ngModelChange)=\"selectedEquipmentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n [class.-error]=\"hasError('equipment', idx)\"\n [disabled]=\"accessValue.eqName\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\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 </td>\n <td>\n @if (event.equipment && event.equipment.id.length > 0) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand\"\n #detailHoverIcon\n (mouseenter)=\"toggleDetailsTooltip(idx)\"\n (mouseleave)=\"toggleDetailsTooltip(idx)\"\n ></pry-icon>\n }\n </td>\n </tr>\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 <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 <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"name\"\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=\"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 <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 <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 </td>\n <td></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }} :</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 <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }} :</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 <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 <hvy-comments\n [comments]=\"(comments$ | async) ? (comments$ | async)![event.id] : []\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"readonly\"\n [type]=\"'events'\"\n [me]=\"me\"\n ></hvy-comments>\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>{{ procedure.description }}</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 [readonly]=\"readonlyProcedure || readonly\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n [me]=\"me\"\n [events]=\"this.events\"\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>\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ 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$4.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$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1$3.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"] }, { 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", "displayEmpty", "comments", "trigger"], outputs: ["commented"] }, { kind: "component", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "enableEditActions", "events", "actions"], outputs: ["modified"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }, { kind: "pipe", type: ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
1952
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: EventDetailComponent, selector: "hvy-event-detail", inputs: { title: "title", me: "me", readonly: "readonly", readonlyProcedure: "readonlyProcedure", enableEditActions: "enableEditActions", events: "events", procedure: "procedure", cancelModifications: "cancelModifications", equipmentName: "equipmentName" }, outputs: { modifiedEvents: "modifiedEvents", modifiedProcedure: "modifiedProcedure", eventErrors: "eventErrors", addedEvent: "addedEvent", comfirmDialogOpened: "comfirmDialogOpened" }, 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 }}</h1>\n @if (procedure) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\"></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\" (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\">\n @if (procedure && !readonly) {\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\">\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 (comments$ && comments$ | async; as comments) {\n @if (comments[event.id]?.length ?? 0 > 0) {\n <span>{{\n ((comments[event.id]?.length ?? 0) > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: comments[event.id]?.length }\n }}</span>\n }\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"event.status !== 'DONE'\"\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>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }} : {{ event.address }}</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 <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 @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 <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 @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }} :</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 <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\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]=\"256\"\n ></textarea>\n </td>\n <td></td>\n </tr>\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 ></textarea>\n </td>\n <td></td>\n </tr>\n @if (event.category !== 'MANIFESTATION') {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }} :</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 }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"equipments$ | async\"\n bindLabel=\"name\"\n [(ngModel)]=\"equipmentSelectValue[idx]\"\n (ngModelChange)=\"selectedEquipmentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n [class.-error]=\"hasError('equipment', idx)\"\n [disabled]=\"accessValue.eqName\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\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 </td>\n <td>\n @if (equipmentsEvents[idx].events || equipmentsEvents[idx].services) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand\"\n #detailHoverIcon\n (mouseenter)=\"toggleDetailsTooltip(idx)\"\n (mouseleave)=\"toggleDetailsTooltip(idx)\"\n [width]=\"18\"\n [height]=\"18\"\n ></pry-icon>\n }\n </td>\n </tr>\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 <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 <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"name\"\n [(ngModel)]=\"parentName[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=\"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 <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 <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 </td>\n <td></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }} :</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 <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }} :</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 <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 <hvy-comments\n [comments]=\"(comments$ | async) ? (comments$ | async)![event.id] : []\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"readonly\"\n [type]=\"'events'\"\n [me]=\"me\"\n ></hvy-comments>\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>{{ procedure.description }}</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 [readonly]=\"readonlyProcedure || readonly\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n [me]=\"me\"\n [events]=\"this.events\"\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>\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ 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$4.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$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1$3.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"] }, { 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", "displayEmpty", "comments", "trigger"], outputs: ["commented"] }, { kind: "component", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "enableEditActions", "events", "actions"], outputs: ["modified"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }, { kind: "pipe", type: ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
1948
1953
  }
1949
1954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventDetailComponent, decorators: [{
1950
1955
  type: Component,
1951
- 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 }}</h1>\n @if (procedure) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\"></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\" (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\">\n @if (procedure && !readonly) {\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\">\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 (comments$ && comments$ | async; as comments) {\n @if (comments[event.id]?.length ?? 0 > 0) {\n <span>{{\n ((comments[event.id]?.length ?? 0) > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: comments[event.id]?.length }\n }}</span>\n }\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"event.status !== 'DONE'\"\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>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }} : {{ event.address }}</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 <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 @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 <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 @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }} :</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 <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\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]=\"256\"\n ></textarea>\n </td>\n <td></td>\n </tr>\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 ></textarea>\n </td>\n <td></td>\n </tr>\n @if (event.category !== 'MANIFESTATION') {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }} :</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 }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"equipments$ | async\"\n bindLabel=\"name\"\n [(ngModel)]=\"equipmentSelectValue[idx]\"\n (ngModelChange)=\"selectedEquipmentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n [class.-error]=\"hasError('equipment', idx)\"\n [disabled]=\"accessValue.eqName\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\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 </td>\n <td>\n @if (event.equipment && event.equipment.id.length > 0) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand\"\n #detailHoverIcon\n (mouseenter)=\"toggleDetailsTooltip(idx)\"\n (mouseleave)=\"toggleDetailsTooltip(idx)\"\n ></pry-icon>\n }\n </td>\n </tr>\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 <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 <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"name\"\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=\"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 <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 <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 </td>\n <td></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }} :</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 <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }} :</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 <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 <hvy-comments\n [comments]=\"(comments$ | async) ? (comments$ | async)![event.id] : []\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"readonly\"\n [type]=\"'events'\"\n [me]=\"me\"\n ></hvy-comments>\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>{{ procedure.description }}</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 [readonly]=\"readonlyProcedure || readonly\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n [me]=\"me\"\n [events]=\"this.events\"\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>\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ 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" }]
1956
+ 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 }}</h1>\n @if (procedure) {\n <button class=\"add-button\" [disabled]=\"readonly\" (click)=\"addOneEvent()\">\n <pry-icon iconSvg=\"add\"></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\" (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\">\n @if (procedure && !readonly) {\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\">\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 (comments$ && comments$ | async; as comments) {\n @if (comments[event.id]?.length ?? 0 > 0) {\n <span>{{\n ((comments[event.id]?.length ?? 0) > 1 ? '@hvy.event.comment.heads' : '@hvy.event.comment.head')\n | i18n: { nb: comments[event.id]?.length }\n }}</span>\n }\n }\n </div>\n <hvy-status-display\n [item]=\"event\"\n [modifiable]=\"event.status !== 'DONE'\"\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>{{ '@hvy.event.log.event.description' | i18n }} : {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }} : {{ event.address }}</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 <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 @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 <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 @if (event.category === 'ANOMALY') {\n <tr>\n <td>{{ '@hvy.event.subCategory.name' | i18n }} :</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 <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\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]=\"256\"\n ></textarea>\n </td>\n <td></td>\n </tr>\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 ></textarea>\n </td>\n <td></td>\n </tr>\n @if (event.category !== 'MANIFESTATION') {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }} :</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 }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"equipments$ | async\"\n bindLabel=\"name\"\n [(ngModel)]=\"equipmentSelectValue[idx]\"\n (ngModelChange)=\"selectedEquipmentChange($event, idx)\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n [placeholder]=\"'@hvy.event.equipmentPlaceholder' | i18n\"\n id=\"procedure-filter\"\n [template]=\"templateOption\"\n [class.-error]=\"hasError('equipment', idx)\"\n [disabled]=\"accessValue.eqName\"\n class=\"o-hvy-events-detail__events__event__content__equipment\"\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 </td>\n <td>\n @if (equipmentsEvents[idx].events || equipmentsEvents[idx].services) {\n <pry-icon\n iconSvg=\"i\"\n class=\"-hand\"\n #detailHoverIcon\n (mouseenter)=\"toggleDetailsTooltip(idx)\"\n (mouseleave)=\"toggleDetailsTooltip(idx)\"\n [width]=\"18\"\n [height]=\"18\"\n ></pry-icon>\n }\n </td>\n </tr>\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 <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 <tr>\n <td>{{ '@hvy.event.parentEvent.name' | i18n }} :</td>\n <td>\n <pry-select\n [items]=\"events$ | async\"\n bindLabel=\"name\"\n [(ngModel)]=\"parentName[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=\"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 <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 <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 </td>\n <td></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }} :</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 <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }} :</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 <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 <hvy-comments\n [comments]=\"(comments$ | async) ? (comments$ | async)![event.id] : []\"\n (commented)=\"updateComment(event, $event)\"\n [readonly]=\"readonly\"\n [type]=\"'events'\"\n [me]=\"me\"\n ></hvy-comments>\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>{{ procedure.description }}</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 [readonly]=\"readonlyProcedure || readonly\"\n [enableEditActions]=\"enableEditActions\"\n [actions]=\"procedure.actions\"\n (modified)=\"modifiedActions($event)\"\n [me]=\"me\"\n [events]=\"this.events\"\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>\n @for (event of changeStatusContext.events; track event.id) {\n <li>{{ 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" }]
1952
1957
  }], ctorParameters: () => [{ type: EquipmentService }, { type: i1$1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i1$3.PryI18nService }, { type: i1$3.PryDialogService }, { type: HypCommentsService }, { type: EventService }], propDecorators: { modifiedEvents: [{
1953
1958
  type: Output
1954
1959
  }], modifiedProcedure: [{
@@ -2146,6 +2151,7 @@ class EventFiltersComponent extends SubscriptionnerDirective {
2146
2151
  super();
2147
2152
  this.store = store;
2148
2153
  this.filterSet = 'global';
2154
+ this.filtered = new EventEmitter();
2149
2155
  }
2150
2156
  ngAfterViewInit() {
2151
2157
  this.filters.forEach((filter) => (filter.filterSet = this.filterSet));
@@ -2153,12 +2159,14 @@ class EventFiltersComponent extends SubscriptionnerDirective {
2153
2159
  filter() {
2154
2160
  const filters = this.filters.map((filter) => filter.getParams()).reduce((p, c) => ({ ...p, ...c }), {});
2155
2161
  this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
2162
+ this.filtered.next();
2156
2163
  }
2157
2164
  reset() {
2158
2165
  this.store.dispatch(EventActions.filter({ filters: {}, filterSet: this.filterSet }));
2166
+ this.filtered.next();
2159
2167
  }
2160
2168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventFiltersComponent, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: EventFiltersComponent, selector: "hvy-event-filters", inputs: { filterSet: "filterSet" }, queries: [{ propertyName: "filters", predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-filters\">\n <ng-content></ng-content>\n <div class=\"o-hvy-event-filters__buttons\">\n <button (click)=\"reset()\" class=\"a-btn a-btn--secondary\" [title]=\"'@hvy.event.filter.reset' | i18n\">\n <pry-icon iconSvg=\"reset_filter_event\"></pry-icon>\n </button>\n <button (click)=\"filter()\" class=\"a-btn a-btn--primary\">\n {{ '@hvy.event.filter.name' | i18n }}\n <pry-icon iconSvg=\"event_filter\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }] }); }
2169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: EventFiltersComponent, selector: "hvy-event-filters", inputs: { filterSet: "filterSet" }, outputs: { filtered: "filtered" }, queries: [{ propertyName: "filters", predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-filters\">\n <ng-content></ng-content>\n <div class=\"o-hvy-event-filters__buttons\">\n <button (click)=\"reset()\" class=\"a-btn a-btn--secondary\" [title]=\"'@hvy.event.filter.reset' | i18n\">\n <pry-icon iconSvg=\"reset_filter_event\"></pry-icon>\n </button>\n <button (click)=\"filter()\" class=\"a-btn a-btn--primary\">\n {{ '@hvy.event.filter.name' | i18n }}\n <pry-icon iconSvg=\"event_filter\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1$3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$3.I18nPipe, name: "i18n" }] }); }
2162
2170
  }
2163
2171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventFiltersComponent, decorators: [{
2164
2172
  type: Component,
@@ -2168,6 +2176,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
2168
2176
  }], filters: [{
2169
2177
  type: ContentChildren,
2170
2178
  args: ['filter', { descendants: true }]
2179
+ }], filtered: [{
2180
+ type: Output
2171
2181
  }] } });
2172
2182
 
2173
2183
  class ImmediateFiltersComponent extends SubscriptionnerDirective {