@provoly/hypervisor 0.0.15 → 0.0.17

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.
Files changed (34) hide show
  1. package/assets/svgs/event_filter.svg +5 -0
  2. package/assets/svgs/reset_filter_event.svg +13 -0
  3. package/esm2022/src/lib/event/detail/event-detail.component.mjs +49 -5
  4. package/esm2022/src/lib/event/filters/choice/choice-filter.component.mjs +118 -12
  5. package/esm2022/src/lib/event/filters/event-filters.component.mjs +6 -6
  6. package/esm2022/src/lib/event/list/event-list.component.mjs +20 -4
  7. package/esm2022/src/lib/event-summary/list/event-summary-list.component.mjs +3 -3
  8. package/esm2022/src/lib/event-summary/page/event-summary-page.component.mjs +11 -7
  9. package/esm2022/src/lib/general/i18n/en.translations.mjs +16 -3
  10. package/esm2022/src/lib/general/i18n/fr.translations.mjs +19 -12
  11. package/esm2022/src/lib/hypervisor.module.mjs +11 -3
  12. package/esm2022/src/lib/model/event/hyp-event-category.type.mjs +6 -4
  13. package/esm2022/src/lib/store/event/event.actions.mjs +1 -2
  14. package/esm2022/src/lib/store/event/event.effects.mjs +2 -2
  15. package/esm2022/src/lib/store/event/event.reducer.mjs +6 -4
  16. package/esm2022/src/lib/store/event/event.service.mjs +2 -2
  17. package/fesm2022/provoly-hypervisor.mjs +267 -69
  18. package/fesm2022/provoly-hypervisor.mjs.map +1 -1
  19. package/package.json +1 -1
  20. package/src/lib/event/detail/event-detail.component.d.ts +14 -0
  21. package/src/lib/event/filters/choice/choice-filter.component.d.ts +38 -4
  22. package/src/lib/event/list/event-list.component.d.ts +4 -0
  23. package/src/lib/event-summary/page/event-summary-page.component.d.ts +11 -3
  24. package/src/lib/general/i18n/en.translations.d.ts +15 -2
  25. package/src/lib/general/i18n/fr.translations.d.ts +7 -0
  26. package/src/lib/hypervisor.module.d.ts +1 -1
  27. package/src/lib/model/event/hyp-event-category.type.d.ts +3 -1
  28. package/src/lib/store/event/event.actions.d.ts +0 -6
  29. package/styles/components/_m-hvy-event-summary-item.scss +2 -0
  30. package/styles/components/_o-hvy-event-detail.scss +11 -4
  31. package/styles/components/_o-hvy-event-filters.scss +65 -0
  32. package/styles/components/_o-hvy-event-summary-list.scss +32 -19
  33. package/styles/components/_o-hvy-event-summary-page.scss +9 -5
  34. package/styles/components/_o-hvy-events-table.scss +17 -3
@@ -1,35 +1,141 @@
1
- import { Component, forwardRef, Input } from '@angular/core';
1
+ import { Component, computed, forwardRef, Input, signal, TemplateRef, ViewChild, } from '@angular/core';
2
2
  import { HvyUnitFilterComponent } from '../hvy-unit-filter.class';
3
3
  import { EventSelectors } from '../../../store/event/event.selectors';
4
+ import { OverlayConfig } from '@angular/cdk/overlay';
5
+ import { TemplatePortal } from '@angular/cdk/portal';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@ngrx/store";
6
- import * as i2 from "@angular/common";
8
+ import * as i2 from "@angular/cdk/overlay";
9
+ import * as i3 from "@provoly/dashboard";
10
+ import * as i4 from "@provoly/dashboard/components/checkbox";
11
+ import * as i5 from "@angular/forms";
7
12
  export class ChoiceFilterComponent extends HvyUnitFilterComponent {
8
- constructor(store) {
13
+ static { this.idCounter = 0; }
14
+ constructor(store, overlay, viewContainerRef, i18nService, ref) {
9
15
  super();
10
16
  this.store = store;
17
+ this.overlay = overlay;
18
+ this.viewContainerRef = viewContainerRef;
19
+ this.i18nService = i18nService;
20
+ this.ref = ref;
21
+ this.id = -1;
11
22
  this.prop = 'no-prop-defined';
12
- this.value = [];
23
+ this.label = 'no-label-defined';
24
+ this.i18nPrefix = 'no-prefix-defined.';
25
+ this.value = signal([]);
13
26
  this.choices = [];
27
+ this.inhibate = false;
28
+ this.displayValue = computed(() => {
29
+ if (this.allSelected()) {
30
+ return this.i18nService.instant('@hvy.event.filter.choice.all');
31
+ }
32
+ if (this.value().length > 1) {
33
+ return `(${this.value().length})`;
34
+ }
35
+ if (this.value().length === 1) {
36
+ return this.i18nService.instant(this.i18nPrefix + this.value()[0]);
37
+ }
38
+ return '';
39
+ });
40
+ this.id = ChoiceFilterComponent.idCounter++;
41
+ }
42
+ ngAfterViewInit() {
14
43
  this.subscriptions.add(this.store.select(EventSelectors.filters).subscribe(filters => {
15
- this.value = filters[this.prop] ?? [];
44
+ this.assignValue(filters.hasOwnProperty(this.prop) ?
45
+ filters[this.prop].length === 1 && filters[this.prop][0] === '' ? [] : filters[this.prop] : this.allValues());
16
46
  }));
17
47
  }
18
48
  getParams() {
19
- return { [this.prop]: this.value };
49
+ if (this.value().length === this.allValues().length) {
50
+ return {};
51
+ }
52
+ return { [this.prop]: this.value().length === 0 ? [''] : this.value() };
20
53
  }
21
54
  reset() {
22
- this.value = [];
55
+ this.assignValue([]);
56
+ }
57
+ toggleModal() {
58
+ if (!this.overlayRef) {
59
+ this.triggerInhibate();
60
+ this.overlayRef = this.overlay.create(new OverlayConfig({
61
+ hasBackdrop: true,
62
+ backdropClass: 'backdrop',
63
+ panelClass: ['m-context-menu-wrapper', 'o-choice-filter-popup'],
64
+ }));
65
+ this.overlayRef.backdropClick().subscribe(() => this.toggleModal());
66
+ this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));
67
+ const contextMenu = document.querySelector('.o-choice-filter-popup');
68
+ if (!!contextMenu) {
69
+ const rect = this.ref.nativeElement.getBoundingClientRect();
70
+ contextMenu.style.left = rect.x + 'px';
71
+ contextMenu.style.top = rect.bottom + 'px';
72
+ }
73
+ }
74
+ else {
75
+ this.overlayRef.dispose();
76
+ this.overlayRef = undefined;
77
+ }
78
+ }
79
+ clickAll() {
80
+ if (this.allSelected()) {
81
+ this.assignValue([]);
82
+ }
83
+ else {
84
+ this.assignValue(this.allValues());
85
+ }
86
+ }
87
+ toggle(elt) {
88
+ const isSelected = this.isSelected(elt);
89
+ const eltSubKeys = !elt.children ? [elt.key] : elt.children.map(ch => ch.key);
90
+ if (!isSelected) {
91
+ this.assignValue([...new Set([...this.value(), ...eltSubKeys])]);
92
+ }
93
+ else {
94
+ this.assignValue(this.value().filter(v => !eltSubKeys.includes(v)));
95
+ }
96
+ }
97
+ allSelected() {
98
+ return this.choices.map(choice => this.isSelected(choice)).reduce((p, c) => p && c, true);
99
+ }
100
+ isSelected(choice) {
101
+ if (!choice.children) {
102
+ return this.value().includes(choice.key);
103
+ }
104
+ else {
105
+ return choice.children.map(child => this.isSelected(child)).reduce((p, c) => p && c, true);
106
+ }
23
107
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChoiceFilterComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ChoiceFilterComponent, selector: "hvy-choice-filter", inputs: { prop: "prop", choices: "choices" }, providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-choice-filters\">\n CHOICE: {{ value | json }}\n</div>\n", dependencies: [{ kind: "pipe", type: i2.JsonPipe, name: "json" }] }); }
108
+ allValues() {
109
+ return this.choices
110
+ .map(choice => !choice.children ? [choice.key] : choice.children.map(child => child.key))
111
+ .reduce((p, c) => [...p, ...c], []);
112
+ }
113
+ assignValue(value) {
114
+ if (!this.inhibate) {
115
+ this.triggerInhibate();
116
+ this.value.set(value);
117
+ }
118
+ }
119
+ triggerInhibate() {
120
+ this.inhibate = true;
121
+ setTimeout(() => this.inhibate = false, 50);
122
+ }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChoiceFilterComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.PryI18nService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ChoiceFilterComponent, selector: "hvy-choice-filter", inputs: { prop: "prop", label: "label", i18nPrefix: "i18nPrefix", choices: "choices" }, providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button (click)=\"toggleModal()\" #button class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== ('@hvy.event.filter.choice.all' | i18n)\" [class.-focus]=\"overlayRef\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }}:</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{id}}\">{{ displayValue() }}</span>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"manage-account\"\n tabindex=\"-1\"\n id=\"account-menu\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ '@hvy.event.filter.choice.all' | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices;track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children;track child.key) {\n <pry-checkbox [ngModel]=\"isSelected(child)\" (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\">\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
26
125
  }
27
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChoiceFilterComponent, decorators: [{
28
127
  type: Component,
29
- args: [{ selector: 'hvy-choice-filter', providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], template: "<div class=\"o-hvy-choice-filters\">\n CHOICE: {{ value | json }}\n</div>\n" }]
30
- }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { prop: [{
128
+ args: [{ selector: 'hvy-choice-filter', providers: [{ provide: HvyUnitFilterComponent, useExisting: forwardRef(() => ChoiceFilterComponent) }], template: "<button (click)=\"toggleModal()\" #button class=\"o-hvy-choice-filter -horizontal\"\n [class.-highlight]=\"displayValue() !== ('@hvy.event.filter.choice.all' | i18n)\" [class.-focus]=\"overlayRef\">\n <span class=\"o-hvy-choice-filter__label\">{{ label | i18n }}:</span>\n <span class=\"o-hvy-choice-filter__value\" type=\"text\" id=\"select_{{id}}\">{{ displayValue() }}</span>\n <pry-icon [iconSvg]=\"!!overlayRef ? 'chevron_top' : 'chevron_bottom'\" [width]=\"10\" [height]=\"10\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div\n class=\"m-context-menu o-hvy-choice-filter\"\n aria-labelledby=\"manage-account\"\n tabindex=\"-1\"\n id=\"account-menu\"\n role=\"menu\"\n aria-modal=\"true\"\n >\n <div class=\"o-hvy-choice-filter__all\">\n <pry-checkbox [ngModel]=\"allSelected()\" (ngModelChange)=\"clickAll()\">\n <span>{{ '@hvy.event.filter.choice.all' | i18n }}</span>\n </pry-checkbox>\n </div>\n @for (elt of choices;track elt.key) {\n @if (!elt.children) {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n } @else {\n <pry-checkbox [ngModel]=\"isSelected(elt)\" (ngModelChange)=\"toggle(elt)\" class=\"o-hvy-choice-filter__root\">\n <span>{{ i18nPrefix + elt.key | i18n }}</span>\n </pry-checkbox>\n @for (child of elt.children;track child.key) {\n <pry-checkbox [ngModel]=\"isSelected(child)\" (ngModelChange)=\"toggle(child)\"\n class=\"o-hvy-choice-filter__child\">\n <span>{{ i18nPrefix + child.key | i18n }}</span>\n </pry-checkbox>\n }\n }\n }\n </div>\n</ng-template>\n" }]
129
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i3.PryI18nService }, { type: i0.ElementRef }], propDecorators: { prop: [{
130
+ type: Input
131
+ }], label: [{
132
+ type: Input
133
+ }], i18nPrefix: [{
31
134
  type: Input
32
135
  }], choices: [{
33
136
  type: Input
137
+ }], template: [{
138
+ type: ViewChild,
139
+ args: ['template', { read: TemplateRef }]
34
140
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2Nob2ljZS9jaG9pY2UtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L2ZpbHRlcnMvY2hvaWNlL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBbUIsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFZdEUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHNCQUFzQjtJQUsvRCxZQUFvQixLQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUp2QixTQUFJLEdBQVcsaUJBQWlCLENBQUM7UUFDMUMsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNaLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBSXJDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkYsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVRLFNBQVM7UUFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRVEsS0FBSztRQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7OEdBbEJVLHFCQUFxQjtrR0FBckIscUJBQXFCLDBGQUZyQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLGlEQ2J4Ryw4RUFHQTs7MkZEWWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQixhQUVsQixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLEVBQUUsQ0FBQzswRUFHN0YsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUZpbHRlclBhcmFtcywgSHZ5VW5pdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2h2eS11bml0LWZpbHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuc2VsZWN0b3JzJztcblxuZXhwb3J0IHR5cGUgSHZ5Q2hvaWNlRmlsdGVyID0ge1xuICBrZXk6IHN0cmluZztcbiAgY2hpbGRyZW4/OiB7IGtleTogc3RyaW5nIH1bXVxufVtdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktY2hvaWNlLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaG9pY2UtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBIdnlVbml0RmlsdGVyQ29tcG9uZW50LCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaG9pY2VGaWx0ZXJDb21wb25lbnQpIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBDaG9pY2VGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBIdnlVbml0RmlsdGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHJvcDogc3RyaW5nID0gJ25vLXByb3AtZGVmaW5lZCc7XG4gIHZhbHVlOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBjaG9pY2VzOiBIdnlDaG9pY2VGaWx0ZXIgPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5maWx0ZXJzKS5zdWJzY3JpYmUoZmlsdGVycyA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gZmlsdGVyc1t0aGlzLnByb3BdID8/IFtdO1xuICAgIH0pKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFBhcmFtcygpOiBIdnlGaWx0ZXJQYXJhbXMge1xuICAgIHJldHVybiB7IFt0aGlzLnByb3BdOiB0aGlzLnZhbHVlIH07XG4gIH1cblxuICBvdmVycmlkZSByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gW107XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1jaG9pY2UtZmlsdGVyc1wiPlxuICBDSE9JQ0U6IHt7IHZhbHVlIHwganNvbiB9fVxuPC9kaXY+XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2Nob2ljZS9jaG9pY2UtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L2ZpbHRlcnMvY2hvaWNlL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBRVIsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFhckQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHNCQUFzQjthQUN4RCxjQUFTLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUF1QnJCLFlBQW9CLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQyxFQUFVLFdBQTJCLEVBQVUsR0FBZTtRQUNsSyxLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUF0QnBLLE9BQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNDLFNBQUksR0FBVyxpQkFBaUIsQ0FBQztRQUNqQyxVQUFLLEdBQVcsa0JBQWtCLENBQUM7UUFDbkMsZUFBVSxHQUFXLG9CQUFvQixDQUFDO1FBQ25ELFVBQUssR0FBNkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBR3ZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUlELElBQUksQ0FBQyxFQUFFLEdBQUcscUJBQXFCLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRVEsU0FBUztRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVRLEtBQUs7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDbkMsSUFBSSxhQUFhLENBQUM7Z0JBQ2hCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixhQUFhLEVBQUUsVUFBVTtnQkFDekIsVUFBVSxFQUFFLENBQUMsd0JBQXdCLEVBQUUsdUJBQXVCLENBQUM7YUFDaEUsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDakYsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBbUIsQ0FBQztZQUN2RixJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDNUQsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFrRDtRQUN2RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQXFEO1FBQzlELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RixDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWU7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQXJIVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixvSUFGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQywyR0FXdkUsV0FBVyxvREN2QzVDLDJ4REF3Q0E7OzJGRFZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUIsYUFFbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7cUxBSzdGLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRXdDLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBzaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUZpbHRlclBhcmFtcywgSHZ5VW5pdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2h2eS11bml0LWZpbHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgdHlwZSBIdnlDaG9pY2VGaWx0ZXIgPSB7XG4gIGtleTogc3RyaW5nO1xuICBjaGlsZHJlbj86IHsga2V5OiBzdHJpbmcgfVtdXG59W107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1jaG9pY2UtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nob2ljZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEh2eVVuaXRGaWx0ZXJDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENob2ljZUZpbHRlckNvbXBvbmVudCkgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENob2ljZUZpbHRlckNvbXBvbmVudCBleHRlbmRzIEh2eVVuaXRGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgc3RhdGljIGlkQ291bnRlciA9IDA7XG4gIGlkID0gLTE7XG4gIEBJbnB1dCgpIHByb3A6IHN0cmluZyA9ICduby1wcm9wLWRlZmluZWQnO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ25vLWxhYmVsLWRlZmluZWQnO1xuICBASW5wdXQoKSBpMThuUHJlZml4OiBzdHJpbmcgPSAnbm8tcHJlZml4LWRlZmluZWQuJztcbiAgdmFsdWU6IFdyaXRhYmxlU2lnbmFsPHN0cmluZ1tdPiA9IHNpZ25hbChbXSk7XG4gIEBJbnB1dCgpIGNob2ljZXM6IEh2eUNob2ljZUZpbHRlciA9IFtdO1xuICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgaW5oaWJhdGUgPSBmYWxzZTtcbiAgZGlzcGxheVZhbHVlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0BodnkuZXZlbnQuZmlsdGVyLmNob2ljZS5hbGwnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUoKS5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gYCgke3RoaXMudmFsdWUoKS5sZW5ndGh9KWA7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbHVlKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5pMThuU2VydmljZS5pbnN0YW50KHRoaXMuaTE4blByZWZpeCArIHRoaXMudmFsdWUoKVswXSk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZSwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBDaG9pY2VGaWx0ZXJDb21wb25lbnQuaWRDb3VudGVyKys7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5maWx0ZXJzKS5zdWJzY3JpYmUoZmlsdGVycyA9PiB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKGZpbHRlcnMuaGFzT3duUHJvcGVydHkodGhpcy5wcm9wKSA/XG4gICAgICAgIGZpbHRlcnNbdGhpcy5wcm9wXS5sZW5ndGggPT09IDEgJiYgZmlsdGVyc1t0aGlzLnByb3BdWzBdID09PSAnJyA/IFtdIDogZmlsdGVyc1t0aGlzLnByb3BdIDogdGhpcy5hbGxWYWx1ZXMoKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0UGFyYW1zKCk6IEh2eUZpbHRlclBhcmFtcyB7XG4gICAgaWYgKHRoaXMudmFsdWUoKS5sZW5ndGggPT09IHRoaXMuYWxsVmFsdWVzKCkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiB7IFt0aGlzLnByb3BdOiB0aGlzLnZhbHVlKCkubGVuZ3RoID09PSAwID8gWycnXSA6IHRoaXMudmFsdWUoKSB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5hc3NpZ25WYWx1ZShbXSk7XG4gIH1cblxuICB0b2dnbGVNb2RhbCgpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy50cmlnZ2VySW5oaWJhdGUoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUtd3JhcHBlcicsICdvLWNob2ljZS1maWx0ZXItcG9wdXAnXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVNb2RhbCgpKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgY29uc3QgY29udGV4dE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuby1jaG9pY2UtZmlsdGVyLXBvcHVwJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFjb250ZXh0TWVudSkge1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUubGVmdCA9IHJlY3QueCArICdweCc7XG4gICAgICAgIGNvbnRleHRNZW51LnN0eWxlLnRvcCA9IHJlY3QuYm90dG9tICsgJ3B4JztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjbGlja0FsbCgpIHtcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hc3NpZ25WYWx1ZSh0aGlzLmFsbFZhbHVlcygpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoZWx0OiB7IGtleTogc3RyaW5nOyBjaGlsZHJlbj86IHsga2V5OiBzdHJpbmcgfVtdIH0pIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkKGVsdCk7XG4gICAgY29uc3QgZWx0U3ViS2V5cyA9ICFlbHQuY2hpbGRyZW4gPyBbZWx0LmtleV0gOiBlbHQuY2hpbGRyZW4ubWFwKGNoID0+IGNoLmtleSk7XG4gICAgaWYgKCFpc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKFsuLi5uZXcgU2V0KFsuLi50aGlzLnZhbHVlKCksIC4uLmVsdFN1YktleXNdKV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFzc2lnblZhbHVlKHRoaXMudmFsdWUoKS5maWx0ZXIodiA9PiAhZWx0U3ViS2V5cy5pbmNsdWRlcyh2KSkpO1xuICAgIH1cbiAgfVxuXG4gIGFsbFNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNob2ljZXMubWFwKGNob2ljZSA9PiB0aGlzLmlzU2VsZWN0ZWQoY2hvaWNlKSkucmVkdWNlKChwLCBjKSA9PiBwICYmIGMsIHRydWUpO1xuICB9XG5cbiAgaXNTZWxlY3RlZChjaG9pY2U6IHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuPzogeyBrZXk6IHN0cmluZyB9W10gfSk6IGJvb2xlYW4ge1xuICAgIGlmICghY2hvaWNlLmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSgpLmluY2x1ZGVzKGNob2ljZS5rZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2hvaWNlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiB0aGlzLmlzU2VsZWN0ZWQoY2hpbGQpKS5yZWR1Y2UoKHAsIGMpID0+IHAgJiYgYywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgYWxsVmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLmNob2ljZXNcbiAgICAgIC5tYXAoY2hvaWNlID0+ICFjaG9pY2UuY2hpbGRyZW4gPyBbY2hvaWNlLmtleV0gOiBjaG9pY2UuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGNoaWxkLmtleSkpXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKTtcbiAgfVxuXG4gIGFzc2lnblZhbHVlKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIGlmICghdGhpcy5pbmhpYmF0ZSkge1xuICAgICAgdGhpcy50cmlnZ2VySW5oaWJhdGUoKTtcbiAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJJbmhpYmF0ZSgpIHtcbiAgICB0aGlzLmluaGliYXRlID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5oaWJhdGUgPSBmYWxzZSwgNTApO1xuICB9XG59XG4iLCI8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVNb2RhbCgpXCIgI2J1dHRvbiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXIgLWhvcml6b250YWxcIlxuICAgICAgICBbY2xhc3MuLWhpZ2hsaWdodF09XCJkaXNwbGF5VmFsdWUoKSAhPT0gKCdAaHZ5LmV2ZW50LmZpbHRlci5jaG9pY2UuYWxsJyB8IGkxOG4pXCIgW2NsYXNzLi1mb2N1c109XCJvdmVybGF5UmVmXCI+XG4gIDxzcGFuIGNsYXNzPVwiby1odnktY2hvaWNlLWZpbHRlcl9fbGFiZWxcIj57eyBsYWJlbCB8IGkxOG4gfX06PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX3ZhbHVlXCIgdHlwZT1cInRleHRcIiBpZD1cInNlbGVjdF97e2lkfX1cIj57eyBkaXNwbGF5VmFsdWUoKSB9fTwvc3Bhbj5cbiAgPHByeS1pY29uIFtpY29uU3ZnXT1cIiEhb3ZlcmxheVJlZiA/ICdjaGV2cm9uX3RvcCcgOiAnY2hldnJvbl9ib3R0b20nXCIgW3dpZHRoXT1cIjEwXCIgW2hlaWdodF09XCIxMFwiPjwvcHJ5LWljb24+XG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnUgby1odnktY2hvaWNlLWZpbHRlclwiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwibWFuYWdlLWFjY291bnRcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIGlkPVwiYWNjb3VudC1tZW51XCJcbiAgICByb2xlPVwibWVudVwiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX2FsbFwiPlxuICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJhbGxTZWxlY3RlZCgpXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2xpY2tBbGwoKVwiPlxuICAgICAgICA8c3Bhbj57eyAnQGh2eS5ldmVudC5maWx0ZXIuY2hvaWNlLmFsbCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPC9wcnktY2hlY2tib3g+XG4gICAgPC9kaXY+XG4gICAgQGZvciAoZWx0IG9mIGNob2ljZXM7dHJhY2sgZWx0LmtleSkge1xuICAgICAgQGlmICghZWx0LmNoaWxkcmVuKSB7XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiaXNTZWxlY3RlZChlbHQpXCIgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlKGVsdClcIiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX3Jvb3RcIj5cbiAgICAgICAgICA8c3Bhbj57eyBpMThuUHJlZml4ICsgZWx0LmtleSB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvcHJ5LWNoZWNrYm94PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiaXNTZWxlY3RlZChlbHQpXCIgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlKGVsdClcIiBjbGFzcz1cIm8taHZ5LWNob2ljZS1maWx0ZXJfX3Jvb3RcIj5cbiAgICAgICAgICA8c3Bhbj57eyBpMThuUHJlZml4ICsgZWx0LmtleSB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvcHJ5LWNoZWNrYm94PlxuICAgICAgICBAZm9yIChjaGlsZCBvZiBlbHQuY2hpbGRyZW47dHJhY2sgY2hpbGQua2V5KSB7XG4gICAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJpc1NlbGVjdGVkKGNoaWxkKVwiIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZShjaGlsZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvLWh2eS1jaG9pY2UtZmlsdGVyX19jaGlsZFwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaTE4blByZWZpeCArIGNoaWxkLmtleSB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9wcnktY2hlY2tib3g+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -12,20 +12,20 @@ export class EventFiltersComponent extends SubscriptionnerDirective {
12
12
  filter() {
13
13
  const filters = this.filters.map(filter => filter.getParams())
14
14
  .reduce((p, c) => ({ ...p, ...c }), {});
15
- this.store.dispatch(EventActions.setFilters({ filters }));
15
+ this.store.dispatch(EventActions.filter({ filters }));
16
16
  }
17
17
  reset() {
18
18
  this.filters.forEach(filter => filter.reset());
19
- this.store.dispatch(EventActions.setFilters({ filters: {} }));
19
+ this.store.dispatch(EventActions.filter({ filters: {} }));
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventFiltersComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: EventFiltersComponent, selector: "hvy-event-filters", queries: [{ propertyName: "filters", predicate: ["filter"] }], 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()\">\n <pry-icon iconSvg=\"reset\"></pry-icon>\n RESET\n </button>\n <button (click)=\"filter()\">\n <pry-icon iconSvg=\"filter\"></pry-icon>\n FILTRER\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"] }] }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: EventFiltersComponent, selector: "hvy-event-filters", 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\">\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" }] }); }
23
23
  }
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventFiltersComponent, decorators: [{
25
25
  type: Component,
26
- args: [{ selector: 'hvy-event-filters', template: "<div class=\"o-hvy-event-filters\">\n <ng-content></ng-content>\n <div class=\"o-hvy-event-filters__buttons\">\n <button (click)=\"reset()\">\n <pry-icon iconSvg=\"reset\"></pry-icon>\n RESET\n </button>\n <button (click)=\"filter()\">\n <pry-icon iconSvg=\"filter\"></pry-icon>\n FILTRER\n </button>\n </div>\n</div>\n" }]
26
+ args: [{ selector: 'hvy-event-filters', 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\">\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" }]
27
27
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { filters: [{
28
28
  type: ContentChildren,
29
- args: ['filter']
29
+ args: ['filter', { descendants: true }]
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQU0vRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBSWpFLFlBQW9CLEtBQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBRWhDLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDM0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOzhHQWpCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrSUNWbEMsb1dBYUE7OzJGREhhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBS0YsT0FBTztzQkFBakMsZUFBZTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh2eVVuaXRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2h2eS11bml0LWZpbHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZXZlbnQtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRGaWx0ZXJzQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcblxuICBAQ29udGVudENoaWxkcmVuKCdmaWx0ZXInKSBmaWx0ZXJzITogUXVlcnlMaXN0PEh2eVVuaXRGaWx0ZXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZpbHRlcigpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5maWx0ZXJzLm1hcChmaWx0ZXIgPT4gZmlsdGVyLmdldFBhcmFtcygpKVxuICAgICAgLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLnNldEZpbHRlcnMoeyBmaWx0ZXJzIH0pKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiBmaWx0ZXIucmVzZXQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuc2V0RmlsdGVycyh7IGZpbHRlcnM6IHt9IH0pKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LWZpbHRlcnNcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnQtZmlsdGVyc19fYnV0dG9uc1wiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInJlc2V0KClcIj5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwicmVzZXRcIj48L3ByeS1pY29uPlxuICAgICAgUkVTRVRcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJmaWx0ZXIoKVwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJmaWx0ZXJcIj48L3ByeS1pY29uPlxuICAgICAgRklMVFJFUlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQU0vRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBSWpFLFlBQW9CLEtBQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBRWhDLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDM0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQWpCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixrS0NWbEMsd2NBWUE7OzJGREZhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBS3FCLE9BQU87c0JBQXhELGVBQWU7dUJBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIdnlVbml0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9odnktdW5pdC1maWx0ZXIuY2xhc3MnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBFdmVudEFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5hY3Rpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50RmlsdGVyc0NvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG5cbiAgQENvbnRlbnRDaGlsZHJlbignZmlsdGVyJywgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBmaWx0ZXJzITogUXVlcnlMaXN0PEh2eVVuaXRGaWx0ZXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZpbHRlcigpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5maWx0ZXJzLm1hcChmaWx0ZXIgPT4gZmlsdGVyLmdldFBhcmFtcygpKVxuICAgICAgLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmZpbHRlcih7IGZpbHRlcnMgfSkpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IGZpbHRlci5yZXNldCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzOiB7fSB9KSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1maWx0ZXJzXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LWZpbHRlcnNfX2J1dHRvbnNcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJyZXNldCgpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInJlc2V0X2ZpbHRlcl9ldmVudFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZmlsdGVyKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICB7eyAnQGh2eS5ldmVudC5maWx0ZXIubmFtZScgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV2ZW50X2ZpbHRlclwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { EventActions } from '../../store/event/event.actions';
3
3
  import { EventSelectors } from '../../store/event/event.selectors';
4
- import { auditTime, filter, fromEvent, map, withLatestFrom } from 'rxjs';
4
+ import { auditTime, combineLatest, filter, fromEvent, map, withLatestFrom } from 'rxjs';
5
5
  import { SubscriptionnerDirective } from '@provoly/dashboard';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngrx/store";
@@ -24,9 +24,11 @@ export class EventListComponent extends SubscriptionnerDirective {
24
24
  this.el = el;
25
25
  this.EVENT_LINK = EVENT_LINK;
26
26
  this._store = this.store;
27
+ this._inhibate = false;
27
28
  this.store.dispatch(EventActions.load({}));
28
29
  this.events$ = this.store.select(EventSelectors.events);
29
30
  this.selectedIds$ = this.store.select(EventSelectors.selectedIds);
31
+ this.allSelected$ = combineLatest([this.events$, this.selectedIds$]).pipe(map(([events, selectedIds]) => events.filter(ev => !selectedIds.includes(ev.id)).length === 0));
30
32
  }
31
33
  ngAfterViewInit() {
32
34
  this.subscriptions.add(fromEvent(this.el.nativeElement, 'scroll')
@@ -40,15 +42,29 @@ export class EventListComponent extends SubscriptionnerDirective {
40
42
  }));
41
43
  }
42
44
  select(event, $event) {
45
+ this.inhibate();
43
46
  this.store.dispatch(EventActions.select({ ids: [event.id], cumulative: true }));
44
47
  $event.preventDefault();
45
48
  $event.stopPropagation();
46
49
  }
50
+ selectAll($event) {
51
+ if (!this._inhibate) {
52
+ this.inhibate();
53
+ const tmpSub = this.events$.subscribe(events => {
54
+ this.store.dispatch(EventActions.select({ ids: $event ? events.map(ev => ev.id) : [], cumulative: false }));
55
+ setTimeout(() => tmpSub.unsubscribe(), 10);
56
+ });
57
+ }
58
+ }
59
+ inhibate() {
60
+ this._inhibate = true;
61
+ setTimeout(() => this._inhibate = false, 100);
62
+ }
47
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventListComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventListComponent, selector: "hvy-event-list", usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th></th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"name\">{{ '@hvy.event.status.name' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"progress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async;track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"select(event, $event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: i2.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i6.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["event", "modifiable"], outputs: ["modified"] }, { kind: "component", type: i7.ColumnOrderComponent, selector: "hvy-column-order", inputs: ["field"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.I18nPipe, name: "i18n" }, { kind: "pipe", type: i10.PrySinceDatePipe, name: "sinceDate" }] }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventListComponent, selector: "hvy-event-list", usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <pry-checkbox [ngModel]=\"allSelected$|async\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"name\">{{ '@hvy.event.status.name' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"progress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async;track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"select(event, $event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: i2.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i6.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["event", "modifiable"], outputs: ["modified"] }, { kind: "component", type: i7.ColumnOrderComponent, selector: "hvy-column-order", inputs: ["field"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.I18nPipe, name: "i18n" }, { kind: "pipe", type: i10.PrySinceDatePipe, name: "sinceDate" }] }); }
49
65
  }
50
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventListComponent, decorators: [{
51
67
  type: Component,
52
- args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th></th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"name\">{{ '@hvy.event.status.name' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"progress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async;track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"select(event, $event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n" }]
68
+ args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <pry-checkbox [ngModel]=\"allSelected$|async\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"name\">{{ '@hvy.event.status.name' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"progress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async;track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"select(event, $event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n" }]
53
69
  }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9saXN0L2V2ZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvbGlzdC9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7OztBQUk5RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsRUFBRSxFQUFFLENBQUMsS0FBd0MsRUFBRSxLQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO0NBQ3RGLENBQUM7QUFNRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBTTlELFlBQW9CLEtBQWlCLEVBQVUsRUFBYztRQUMzRCxLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBSDdELGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFJbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7YUFDdkMsSUFBSTtRQUNILHNCQUFzQjtRQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUNiLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN0RSxDQUFDLENBQUMsRUFDRixjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQzlELE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxjQUFjLEdBQUcsR0FBRyxDQUFDLEVBQ3JFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FDZixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBc0IsRUFBRSxNQUFrQjtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQWxDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2RUNqQi9CLDYzRkFxRUE7OzJGRHBEYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCBPYnNlcnZhYmxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cEV2ZW50U3VtbWFyeSB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1zdW1tYXJ5LmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9MSU5LID0ge1xuICBmbjogKGV2ZW50OiBIeXBFdmVudERldGFpbHMgfCBIeXBFdmVudFN1bW1hcnksIHN0b3JlOiBTdG9yZTxhbnk+KSA9PiBbJy4vJywgZXZlbnQuaWRdLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBldmVudHMkOiBPYnNlcnZhYmxlPEh5cEV2ZW50RGV0YWlsc1tdPjtcbiAgc2VsZWN0ZWRJZHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgRVZFTlRfTElOSyA9IEVWRU5UX0xJTks7XG4gIF9zdG9yZSA9IHRoaXMuc3RvcmU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMubG9hZCh7fSkpO1xuICAgIHRoaXMuZXZlbnRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmV2ZW50cyk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zZWxlY3RlZElkcyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAvLyBBcmUgd2UgY2xvc2UgdG8gZW5kXG4gICAgICAgICAgbWFwKChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGUuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCAtIHRhcmdldC5zY3JvbGxUb3A7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRXZlbnRTZWxlY3RvcnMubm9Nb3JlRXZlbnRzKSksXG4gICAgICAgICAgZmlsdGVyKChbcmVtYW5pbmdTY3JvbGwsIG5vTW9yZV0pID0+ICFub01vcmUgJiYgcmVtYW5pbmdTY3JvbGwgPCAyMDApLFxuICAgICAgICAgIGF1ZGl0VGltZSgyMDApLFxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRBY3Rpb25zLmxvYWQoeyBuZXh0OiB0cnVlIH0pKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHNlbGVjdChldmVudDogSHlwRXZlbnREZXRhaWxzLCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5zZWxlY3QoeyBpZHM6IFtldmVudC5pZF0sIGN1bXVsYXRpdmU6IHRydWUgfSkpO1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlXCI+XG4gIDx0aGVhZD5cbiAgPHRyIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19oZWFkZXJcIj5cbiAgICA8dGg+PC90aD5cbiAgICA8dGg+e3sgJ0BodnkuZXZlbnQuY3JpdGljYWxpdHkubmFtZScgfCBpMThuIH19PC90aD5cbiAgICA8dGg+e3sgJ0BodnkuZXZlbnQubmFtZScgfCBpMThuIH19PC90aD5cbiAgICA8dGg+e3sgJ0BodnkuZXZlbnQuY2F0ZWdvcnkubmFtZScgfCBpMThuIH19PC90aD5cbiAgICA8dGg+e3sgJ0BodnkuZXZlbnQuYWRkcmVzcycgfCBpMThuIH19PC90aD5cbiAgICA8dGg+XG4gICAgICA8aHZ5LWNvbHVtbi1vcmRlciBmaWVsZD1cImNyZWF0aW9uRGF0ZVwiPnt7ICdAaHZ5LmV2ZW50LmNyZWF0aW9uRGF0ZScgfCBpMThuIH19PC9odnktY29sdW1uLW9yZGVyPlxuICAgIDwvdGg+XG4gICAgPHRoPlxuICAgICAgPGh2eS1jb2x1bW4tb3JkZXIgZmllbGQ9XCJsYXN0TW9kaWZpY2F0aW9uRGF0ZVwiPnt7ICdAaHZ5LmV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlJyB8IGkxOG4gfX08L2h2eS1jb2x1bW4tb3JkZXI+XG4gICAgPC90aD5cbiAgICA8dGg+XG4gICAgICA8aHZ5LWNvbHVtbi1vcmRlciBmaWVsZD1cIm5hbWVcIj57eyAnQGh2eS5ldmVudC5zdGF0dXMubmFtZScgfCBpMThuIH19PC9odnktY29sdW1uLW9yZGVyPlxuICAgIDwvdGg+XG4gICAgPHRoPlxuICAgICAgPGh2eS1jb2x1bW4tb3JkZXIgZmllbGQ9XCJwcm9ncmVzc1wiPnt7ICdAaHZ5LnByb2NlZHVyZS5wcm9ncmVzcycgfCBpMThuIH19PC9odnktY29sdW1uLW9yZGVyPlxuICAgIDwvdGg+XG4gICAgPHRoPjwvdGg+XG4gIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICBAZm9yIChldmVudCBvZiBldmVudHMkfGFzeW5jO3RyYWNrIGV2ZW50LmlkKSB7XG4gICAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVcIiAoY2xpY2spPVwic2VsZWN0KGV2ZW50LCAkZXZlbnQpXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPlxuICAgICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiKHNlbGVjdGVkSWRzJHxhc3luYykhLmluY2x1ZGVzKGV2ZW50LmlkKVwiPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkXCI+XG4gICAgICAgICAgPGh2eS1pY29uLWRpc3BsYXkgW2V2ZW50XT1cImV2ZW50XCI+PC9odnktaWNvbi1kaXNwbGF5PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19tYWluXCI+e3sgZXZlbnQubmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsX19uYW1lX19zdWJcIj57eyBldmVudC5lcXVpcG1lbnQ/Lm5hbWUgPyBldmVudC5lcXVpcG1lbnQ/Lm5hbWUgOiAnJyB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkXCI+e3sgJ0BodnkuZXZlbnQuY2F0ZWdvcnkuJyArIGV2ZW50LmNhdGVnb3J5IHwgaTE4biB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPnt7IGV2ZW50LmFkZHJlc3MgfX08L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxcIj57eyBldmVudC5jcmVhdGlvbkRhdGV8IHNpbmNlRGF0ZTogeyBvbmx5TG9jYWxlOiB0cnVlIH0gfX08L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxcIj57eyBldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSB8IHNpbmNlRGF0ZTogeyBvbmx5TG9jYWxlOiB0cnVlIH0gfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZFwiPlxuICAgICAgICAgIDxodnktc3RhdHVzLWRpc3BsYXkgW2V2ZW50XT1cImV2ZW50XCI+PC9odnktc3RhdHVzLWRpc3BsYXk+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCAtY2VudGVyZWRcIj5cbiAgICAgICAgICB7eyBldmVudC5wcm9jZWR1cmVQcm9ncmVzcyB9fSAlXG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIkVWRU5UX0xJTksuZm4oZXZlbnQsIF9zdG9yZSlcIj5cbiAgICAgICAgICAgID4ge3sgJ0BodnkuYWN0aW9uLmNvbnN1bHQnIHwgaTE4biB9fSBAaWYgKGV2ZW50LmxpbmtlZEV2ZW50cyA+IDEpIHtcbiAgICAgICAgICAgICh7eyBldmVudC5saW5rZWRFdmVudHMgfX0pXG4gICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgfSBAZW1wdHkge1xuICAgICAgPHRyPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2VtcHR5XCIgY29sc3Bhbj1cIjUwXCI+XG4gICAgICAgICAgPGRpdj57eyAnQGh2eS5ldmVudC5sb2cuZW1wdHknIHwgaTE4biB9fTwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIH1cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9saXN0L2V2ZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvbGlzdC9ldmVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7QUFJOUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLEVBQUUsRUFBRSxDQUFDLEtBQXdDLEVBQUUsS0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztDQUN0RixDQUFDO0FBTUYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHdCQUF3QjtJQVE5RCxZQUFvQixLQUFpQixFQUFVLEVBQWM7UUFDM0QsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUw3RCxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXBCLGNB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LEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0csVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQXREVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2RUNqQi9CLCsrRkF1RUE7OzJGRHREYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgRXZlbnRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCBPYnNlcnZhYmxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cEV2ZW50U3VtbWFyeSB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1zdW1tYXJ5LmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9MSU5LID0ge1xuICBmbjogKGV2ZW50OiBIeXBFdmVudERldGFpbHMgfCBIeXBFdmVudFN1bW1hcnksIHN0b3JlOiBTdG9yZTxhbnk+KSA9PiBbJy4vJywgZXZlbnQuaWRdLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBldmVudHMkOiBPYnNlcnZhYmxlPEh5cEV2ZW50RGV0YWlsc1tdPjtcbiAgc2VsZWN0ZWRJZHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgRVZFTlRfTElOSyA9IEVWRU5UX0xJTks7XG4gIF9zdG9yZSA9IHRoaXMuc3RvcmU7XG4gIGFsbFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgX2luaGliYXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMubG9hZCh7fSkpO1xuICAgIHRoaXMuZXZlbnRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmV2ZW50cyk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zZWxlY3RlZElkcyk7XG4gICAgdGhpcy5hbGxTZWxlY3RlZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmV2ZW50cyQsIHRoaXMuc2VsZWN0ZWRJZHMkXSkucGlwZShtYXAoKFtldmVudHMsIHNlbGVjdGVkSWRzXSkgPT4gZXZlbnRzLmZpbHRlcihldiA9PiAhc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZXYuaWQpKS5sZW5ndGggPT09IDApKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIEFyZSB3ZSBjbG9zZSB0byBlbmRcbiAgICAgICAgICBtYXAoKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5zY3JvbGxIZWlnaHQgLSB0YXJnZXQub2Zmc2V0SGVpZ2h0IC0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ub01vcmVFdmVudHMpKSxcbiAgICAgICAgICBmaWx0ZXIoKFtyZW1hbmluZ1Njcm9sbCwgbm9Nb3JlXSkgPT4gIW5vTW9yZSAmJiByZW1hbmluZ1Njcm9sbCA8IDIwMCksXG4gICAgICAgICAgYXVkaXRUaW1lKDIwMCksXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMubG9hZCh7IG5leHQ6IHRydWUgfSkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgc2VsZWN0KGV2ZW50OiBIeXBFdmVudERldGFpbHMsICRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaW5oaWJhdGUoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5zZWxlY3QoeyBpZHM6IFtldmVudC5pZF0sIGN1bXVsYXRpdmU6IHRydWUgfSkpO1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNlbGVjdEFsbCgkZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy5faW5oaWJhdGUpIHtcbiAgICAgIHRoaXMuaW5oaWJhdGUoKTtcbiAgICAgIGNvbnN0IHRtcFN1YiA9IHRoaXMuZXZlbnRzJC5zdWJzY3JpYmUoZXZlbnRzID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuc2VsZWN0KHsgaWRzOiAkZXZlbnQgPyBldmVudHMubWFwKGV2ID0+IGV2LmlkKSA6IFtdLCBjdW11bGF0aXZlOiBmYWxzZX0pKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0bXBTdWIudW5zdWJzY3JpYmUoKSwgMTApO1xuICAgICAgfSk7XG5cbiAgICB9XG4gIH1cblxuICBpbmhpYmF0ZSgpIHtcbiAgICB0aGlzLl9pbmhpYmF0ZSA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9pbmhpYmF0ZSA9IGZhbHNlLCAxMDApO1xuICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVcIj5cbiAgPHRoZWFkPlxuICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2hlYWRlclwiPlxuICAgIDx0aD5cbiAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiYWxsU2VsZWN0ZWQkfGFzeW5jXCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIj48L3ByeS1jaGVja2JveD5cbiAgICA8L3RoPlxuICAgIDx0aD57eyAnQGh2eS5ldmVudC5jcml0aWNhbGl0eS5uYW1lJyB8IGkxOG4gfX08L3RoPlxuICAgIDx0aD57eyAnQGh2eS5ldmVudC5uYW1lJyB8IGkxOG4gfX08L3RoPlxuICAgIDx0aD57eyAnQGh2eS5ldmVudC5jYXRlZ29yeS5uYW1lJyB8IGkxOG4gfX08L3RoPlxuICAgIDx0aD57eyAnQGh2eS5ldmVudC5hZGRyZXNzJyB8IGkxOG4gfX08L3RoPlxuICAgIDx0aD5cbiAgICAgIDxodnktY29sdW1uLW9yZGVyIGZpZWxkPVwiY3JlYXRpb25EYXRlXCI+e3sgJ0BodnkuZXZlbnQuY3JlYXRpb25EYXRlJyB8IGkxOG4gfX08L2h2eS1jb2x1bW4tb3JkZXI+XG4gICAgPC90aD5cbiAgICA8dGg+XG4gICAgICA8aHZ5LWNvbHVtbi1vcmRlciBmaWVsZD1cImxhc3RNb2RpZmljYXRpb25EYXRlXCI+e3sgJ0BodnkuZXZlbnQubGFzdE1vZGlmaWNhdGlvbkRhdGUnIHwgaTE4biB9fTwvaHZ5LWNvbHVtbi1vcmRlcj5cbiAgICA8L3RoPlxuICAgIDx0aD5cbiAgICAgIDxodnktY29sdW1uLW9yZGVyIGZpZWxkPVwibmFtZVwiPnt7ICdAaHZ5LmV2ZW50LnN0YXR1cy5uYW1lJyB8IGkxOG4gfX08L2h2eS1jb2x1bW4tb3JkZXI+XG4gICAgPC90aD5cbiAgICA8dGg+XG4gICAgICA8aHZ5LWNvbHVtbi1vcmRlciBmaWVsZD1cInByb2dyZXNzXCI+e3sgJ0BodnkucHJvY2VkdXJlLnByb2dyZXNzJyB8IGkxOG4gfX08L2h2eS1jb2x1bW4tb3JkZXI+XG4gICAgPC90aD5cbiAgICA8dGg+PC90aD5cbiAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIEBmb3IgKGV2ZW50IG9mIGV2ZW50cyR8YXN5bmM7dHJhY2sgZXZlbnQuaWQpIHtcbiAgICAgIDx0ciBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZVwiIChjbGljayk9XCJzZWxlY3QoZXZlbnQsICRldmVudClcIj5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsXCI+XG4gICAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCIoc2VsZWN0ZWRJZHMkfGFzeW5jKSEuaW5jbHVkZXMoZXZlbnQuaWQpXCI+PC9wcnktY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCAtY2VudGVyZWRcIj5cbiAgICAgICAgICA8aHZ5LWljb24tZGlzcGxheSBbZXZlbnRdPVwiZXZlbnRcIj48L2h2eS1pY29uLWRpc3BsYXk+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX21haW5cIj57eyBldmVudC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxfX25hbWVfX3N1YlwiPnt7IGV2ZW50LmVxdWlwbWVudD8ubmFtZSA/IGV2ZW50LmVxdWlwbWVudD8ubmFtZSA6ICcnIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbCAtY2VudGVyZWRcIj57eyAnQGh2eS5ldmVudC5jYXRlZ29yeS4nICsgZXZlbnQuY2F0ZWdvcnkgfCBpMThuIH19PC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsXCI+e3sgZXZlbnQuYWRkcmVzcyB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPnt7IGV2ZW50LmNyZWF0aW9uRGF0ZXwgc2luY2VEYXRlOiB7IG9ubHlMb2NhbGU6IHRydWUgfSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPnt7IGV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlIHwgc2luY2VEYXRlOiB7IG9ubHlMb2NhbGU6IHRydWUgfSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGwgLWNlbnRlcmVkXCI+XG4gICAgICAgICAgPGh2eS1zdGF0dXMtZGlzcGxheSBbZXZlbnRdPVwiZXZlbnRcIj48L2h2eS1zdGF0dXMtZGlzcGxheT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZFwiPlxuICAgICAgICAgIHt7IGV2ZW50LnByb2NlZHVyZVByb2dyZXNzIH19ICVcbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsXCI+XG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiRVZFTlRfTElOSy5mbihldmVudCwgX3N0b3JlKVwiPlxuICAgICAgICAgICAgPiB7eyAnQGh2eS5hY3Rpb24uY29uc3VsdCcgfCBpMThuIH19IEBpZiAoZXZlbnQubGlua2VkRXZlbnRzID4gMSkge1xuICAgICAgICAgICAgKHt7IGV2ZW50LmxpbmtlZEV2ZW50cyB9fSlcbiAgICAgICAgICB9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICB9IEBlbXB0eSB7XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fZW1wdHlcIiBjb2xzcGFuPVwiNTBcIj5cbiAgICAgICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5lbXB0eScgfCBpMThuIH19PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgfVxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -24,11 +24,11 @@ export class EventSummaryListComponent {
24
24
  this.store.dispatch(EventActions.filter({ filters: { status: [status] } }));
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventSummaryListComponent, deps: [{ token: i1.Store }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventSummaryListComponent, selector: "hvy-event-summary-list", inputs: { events: "events", totalEventCount: "totalEventCount", status: "status", consultLink: "consultLink", itemLinkBase: "itemLinkBase" }, ngImport: i0, template: "<div class=\"o-hvy-event-summary-list -hvy-{{status.toLowerCase()}}\">\n <div class=\"o-hvy-event-summary-list__header\">\n <h3 class=\"o-hvy-event-summary-list__title\">\n {{ '@hvy.eventSummary.statusLabels.' + status | i18n }}\n </h3>\n <span class=\"o-hvy-event-summary-list__counter\">\n {{ totalEventCount }}\n </span>\n </div>\n <div class=\"o-hvy-event-summary-list__content\">\n @for (event of events; track event.id) {\n <hvy-event-summary-item\n [event]=\"event\"\n [linkBase]=\"itemLinkBase\">\n </hvy-event-summary-item>\n } @empty {\n <span class=\"o-hvy-event-summary-list__no-content\">\n {{ '@hvy.eventSummary.noContent' | i18n }}\n </span>\n }\n </div>\n <div class=\"o-hvy-event-summary-list__footer\">\n <button class=\"o-hvy-event-summary-list__footer-button\" (click)=\"filterAndRoute(status)\">\n Consulter\n <pry-icon iconSvg=\"arrow\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.EventSummaryItemComponent, selector: "hvy-event-summary-item", inputs: ["event", "linkBase"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventSummaryListComponent, selector: "hvy-event-summary-list", inputs: { events: "events", totalEventCount: "totalEventCount", status: "status", consultLink: "consultLink", itemLinkBase: "itemLinkBase" }, ngImport: i0, template: "<div class=\"o-hvy-event-summary-list -hvy-{{status.toLowerCase()}}\">\n <div class=\"o-hvy-event-summary-list__header\">\n <h3 class=\"o-hvy-event-summary-list__title\">\n {{ '@hvy.eventSummary.statusLabels.' + status | i18n }}\n </h3>\n <span class=\"o-hvy-event-summary-list__counter\">\n {{ totalEventCount }}\n </span>\n </div>\n <div class=\"o-hvy-event-summary-list__content\">\n @for (event of events; track event.id) {\n <hvy-event-summary-item\n [event]=\"event\"\n [linkBase]=\"itemLinkBase\">\n </hvy-event-summary-item>\n } @empty {\n <span class=\"o-hvy-event-summary-list__no-content\">\n {{ '@hvy.eventSummary.noContent' | i18n }}\n </span>\n }\n </div>\n <div class=\"o-hvy-event-summary-list__footer\">\n <button class=\"o-hvy-event-summary-list__footer-button\" (click)=\"filterAndRoute(status)\">\n {{ '@hvy.action.consult' | i18n }}\n <pry-icon iconSvg=\"arrow\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.EventSummaryItemComponent, selector: "hvy-event-summary-item", inputs: ["event", "linkBase"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventSummaryListComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'hvy-event-summary-list', template: "<div class=\"o-hvy-event-summary-list -hvy-{{status.toLowerCase()}}\">\n <div class=\"o-hvy-event-summary-list__header\">\n <h3 class=\"o-hvy-event-summary-list__title\">\n {{ '@hvy.eventSummary.statusLabels.' + status | i18n }}\n </h3>\n <span class=\"o-hvy-event-summary-list__counter\">\n {{ totalEventCount }}\n </span>\n </div>\n <div class=\"o-hvy-event-summary-list__content\">\n @for (event of events; track event.id) {\n <hvy-event-summary-item\n [event]=\"event\"\n [linkBase]=\"itemLinkBase\">\n </hvy-event-summary-item>\n } @empty {\n <span class=\"o-hvy-event-summary-list__no-content\">\n {{ '@hvy.eventSummary.noContent' | i18n }}\n </span>\n }\n </div>\n <div class=\"o-hvy-event-summary-list__footer\">\n <button class=\"o-hvy-event-summary-list__footer-button\" (click)=\"filterAndRoute(status)\">\n Consulter\n <pry-icon iconSvg=\"arrow\"></pry-icon>\n </button>\n </div>\n</div>\n" }]
31
+ args: [{ selector: 'hvy-event-summary-list', template: "<div class=\"o-hvy-event-summary-list -hvy-{{status.toLowerCase()}}\">\n <div class=\"o-hvy-event-summary-list__header\">\n <h3 class=\"o-hvy-event-summary-list__title\">\n {{ '@hvy.eventSummary.statusLabels.' + status | i18n }}\n </h3>\n <span class=\"o-hvy-event-summary-list__counter\">\n {{ totalEventCount }}\n </span>\n </div>\n <div class=\"o-hvy-event-summary-list__content\">\n @for (event of events; track event.id) {\n <hvy-event-summary-item\n [event]=\"event\"\n [linkBase]=\"itemLinkBase\">\n </hvy-event-summary-item>\n } @empty {\n <span class=\"o-hvy-event-summary-list__no-content\">\n {{ '@hvy.eventSummary.noContent' | i18n }}\n </span>\n }\n </div>\n <div class=\"o-hvy-event-summary-list__footer\">\n <button class=\"o-hvy-event-summary-list__footer-button\" (click)=\"filterAndRoute(status)\">\n {{ '@hvy.action.consult' | i18n }}\n <pry-icon iconSvg=\"arrow\"></pry-icon>\n </button>\n </div>\n</div>\n" }]
32
32
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }], propDecorators: { events: [{
33
33
  type: Input
34
34
  }], totalEventCount: [{
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
40
40
  }], itemLinkBase: [{
41
41
  type: Input
42
42
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3VtbWFyeS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50LXN1bW1hcnkvbGlzdC9ldmVudC1zdW1tYXJ5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQtc3VtbWFyeS9saXN0L2V2ZW50LXN1bW1hcnktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQU8vRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQW9CLEtBQWlCLEVBQVUsTUFBYztRQUF6QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5wRCxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUMvQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzNCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBR3JDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOzhHQWxCVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qiw0TUNWdEMscStCQTRCQTs7MkZEbEJhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7K0ZBSXpCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgSHlwRXZlbnRTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LXN1bW1hcnktbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1zdW1tYXJ5LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50U3VtbWFyeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBldmVudHM6IEh5cEV2ZW50U3VtbWFyeVtdID0gW107XG4gIEBJbnB1dCgpIHRvdGFsRXZlbnRDb3VudCA9IDA7XG4gIEBJbnB1dCgpIHN0YXR1czogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbnN1bHRMaW5rOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBpdGVtTGlua0Jhc2U6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb25zdWx0TGluayA9IHRoaXMuY29uc3VsdExpbmsubGVuZ3RoID4gMCA/IHRoaXMuY29uc3VsdExpbmsgOiBbJ2V2ZW50cyddO1xuICAgIHRoaXMuaXRlbUxpbmtCYXNlID0gdGhpcy5pdGVtTGlua0Jhc2UubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUxpbmtCYXNlIDogWydldmVudHMnXTtcbiAgfVxuXG4gIGZpbHRlckFuZFJvdXRlKHN0YXR1czogc3RyaW5nKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWy4uLnRoaXMuY29uc3VsdExpbmtdKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzOiB7IHN0YXR1czogW3N0YXR1c10gfSB9KSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3QgLWh2eS17e3N0YXR1cy50b0xvd2VyQ2FzZSgpfX1cIj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktbGlzdF9faGVhZGVyXCI+XG4gICAgPGgzIGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1saXN0X190aXRsZVwiPlxuICAgICAge3sgJ0BodnkuZXZlbnRTdW1tYXJ5LnN0YXR1c0xhYmVscy4nICsgc3RhdHVzIHwgaTE4biB9fVxuICAgIDwvaDM+XG4gICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3RfX2NvdW50ZXJcIj5cbiAgICAgIHt7IHRvdGFsRXZlbnRDb3VudCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3RfX2NvbnRlbnRcIj5cbiAgICBAZm9yIChldmVudCBvZiBldmVudHM7IHRyYWNrIGV2ZW50LmlkKSB7XG4gICAgICA8aHZ5LWV2ZW50LXN1bW1hcnktaXRlbVxuICAgICAgICBbZXZlbnRdPVwiZXZlbnRcIlxuICAgICAgICBbbGlua0Jhc2VdPVwiaXRlbUxpbmtCYXNlXCI+XG4gICAgICA8L2h2eS1ldmVudC1zdW1tYXJ5LWl0ZW0+XG4gICAgfSBAZW1wdHkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3RfX25vLWNvbnRlbnRcIj5cbiAgICAgICAge3sgJ0BodnkuZXZlbnRTdW1tYXJ5Lm5vQ29udGVudCcgfCBpMThuIH19XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktbGlzdF9fZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktbGlzdF9fZm9vdGVyLWJ1dHRvblwiIChjbGljayk9XCJmaWx0ZXJBbmRSb3V0ZShzdGF0dXMpXCI+XG4gICAgICBDb25zdWx0ZXJcbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYXJyb3dcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3VtbWFyeS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50LXN1bW1hcnkvbGlzdC9ldmVudC1zdW1tYXJ5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQtc3VtbWFyeS9saXN0L2V2ZW50LXN1bW1hcnktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQU8vRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQW9CLEtBQWlCLEVBQVUsTUFBYztRQUF6QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5wRCxXQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUMvQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzNCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBR3JDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOzhHQWxCVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qiw0TUNWdEMsOC9CQTRCQTs7MkZEbEJhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7K0ZBSXpCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgSHlwRXZlbnRTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LXN1bW1hcnktbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1zdW1tYXJ5LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50U3VtbWFyeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBldmVudHM6IEh5cEV2ZW50U3VtbWFyeVtdID0gW107XG4gIEBJbnB1dCgpIHRvdGFsRXZlbnRDb3VudCA9IDA7XG4gIEBJbnB1dCgpIHN0YXR1czogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbnN1bHRMaW5rOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBpdGVtTGlua0Jhc2U6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb25zdWx0TGluayA9IHRoaXMuY29uc3VsdExpbmsubGVuZ3RoID4gMCA/IHRoaXMuY29uc3VsdExpbmsgOiBbJ2V2ZW50cyddO1xuICAgIHRoaXMuaXRlbUxpbmtCYXNlID0gdGhpcy5pdGVtTGlua0Jhc2UubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUxpbmtCYXNlIDogWydldmVudHMnXTtcbiAgfVxuXG4gIGZpbHRlckFuZFJvdXRlKHN0YXR1czogc3RyaW5nKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWy4uLnRoaXMuY29uc3VsdExpbmtdKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzOiB7IHN0YXR1czogW3N0YXR1c10gfSB9KSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3QgLWh2eS17e3N0YXR1cy50b0xvd2VyQ2FzZSgpfX1cIj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktbGlzdF9faGVhZGVyXCI+XG4gICAgPGgzIGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1saXN0X190aXRsZVwiPlxuICAgICAge3sgJ0BodnkuZXZlbnRTdW1tYXJ5LnN0YXR1c0xhYmVscy4nICsgc3RhdHVzIHwgaTE4biB9fVxuICAgIDwvaDM+XG4gICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3RfX2NvdW50ZXJcIj5cbiAgICAgIHt7IHRvdGFsRXZlbnRDb3VudCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3RfX2NvbnRlbnRcIj5cbiAgICBAZm9yIChldmVudCBvZiBldmVudHM7IHRyYWNrIGV2ZW50LmlkKSB7XG4gICAgICA8aHZ5LWV2ZW50LXN1bW1hcnktaXRlbVxuICAgICAgICBbZXZlbnRdPVwiZXZlbnRcIlxuICAgICAgICBbbGlua0Jhc2VdPVwiaXRlbUxpbmtCYXNlXCI+XG4gICAgICA8L2h2eS1ldmVudC1zdW1tYXJ5LWl0ZW0+XG4gICAgfSBAZW1wdHkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LWxpc3RfX25vLWNvbnRlbnRcIj5cbiAgICAgICAge3sgJ0BodnkuZXZlbnRTdW1tYXJ5Lm5vQ29udGVudCcgfCBpMThuIH19XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktbGlzdF9fZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktbGlzdF9fZm9vdGVyLWJ1dHRvblwiIChjbGljayk9XCJmaWx0ZXJBbmRSb3V0ZShzdGF0dXMpXCI+XG4gICAgICB7eyAnQGh2eS5hY3Rpb24uY29uc3VsdCcgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFycm93XCI+PC9wcnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -5,6 +5,7 @@ import { EventSelectors } from '../../store/event/event.selectors';
5
5
  import { map } from 'rxjs/operators';
6
6
  import { EventSummarySelectors } from '../../store/event-summary/event-summary.selectors';
7
7
  import { SubscriptionnerDirective } from '@provoly/dashboard';
8
+ import { HypEventStatus } from '../../model/event/hyp-event-status.type';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@ngrx/store";
10
11
  import * as i2 from "@angular/forms";
@@ -16,12 +17,16 @@ export class EventSummaryPageComponent extends SubscriptionnerDirective {
16
17
  super();
17
18
  this.store = store;
18
19
  this.pageTitle = '';
20
+ this.consultLink = [];
19
21
  this.summaries = {
20
22
  NEW: { events: [], count: 0 },
21
23
  IN_PROGRESS: { events: [], count: 0 },
22
24
  DONE: { events: [], count: 0 },
23
25
  };
24
- this.criticalityList = ["LOW", "MEDIUM", "HIGH", "ALL"];
26
+ this.criticalityList = [...HypEventStatus.values, 'ALL'];
27
+ this.criticalityOrder = (a, b) => {
28
+ return this.criticalityList.indexOf(a.key) - this.criticalityList.indexOf(b.key);
29
+ };
25
30
  this.store.dispatch(EventSummaryActions.load());
26
31
  this.selectedCriticality$ = this.store.select(EventSelectors.filters).pipe(map((filters) => filters['criticality']?.[0] ?? 'ALL'));
27
32
  this.subscriptions.add(this.store.select(EventSummarySelectors.summaries).subscribe((summaries) => {
@@ -33,16 +38,15 @@ export class EventSummaryPageComponent extends SubscriptionnerDirective {
33
38
  this.store.dispatch(EventActions.filter({ filters: { criticality: [$event] } }));
34
39
  this.store.dispatch(EventSummaryActions.load());
35
40
  }
36
- asIsOrder() {
37
- return 0;
38
- }
39
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventSummaryPageComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventSummaryPageComponent, selector: "hvy-event-summary-page", inputs: { pageTitle: "pageTitle" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-summary-page\">\n <div class=\"o-hvy-event-summary-page__header\">\n @if (pageTitle) {\n <h3 class=\"o-hvy-event-summary-page__title\">{{ pageTitle }}</h3>\n }\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\">\n <label class=\"a-label m-filter__label\" for=\"criticality-filter\">{{ '@hvy.event.criticality.name' | i18n }} :&nbsp;</label>\n <pry-select\n id=\"criticality-filter\"\n class=\"o-hvy-event-summary-page__filter\"\n [items]=\"criticalityList\"\n [ngModel]=\"selectedCriticality$ | async\"\n (ngModelChange)=\"filterByCriticality($event)\"\n [translate]=\"true\"\n i18nPrefix=\"@hvy.eventSummary.criticalityLabels.\"\n >\n </pry-select>\n </div>\n </div>\n <div class=\"o-hvy-event-summary-page__content\">\n @for (summaryList of summaries | keyvalue: asIsOrder; track summaryList.key) {\n <hvy-event-summary-list\n class=\"o-hvy-event-summary-page__summary-list\"\n [status]=\"summaryList.key\"\n [totalEventCount]=\"summaryList.value.count\"\n [events]=\"summaryList.value.events\">\n </hvy-event-summary-list>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i4.EventSummaryListComponent, selector: "hvy-event-summary-list", inputs: ["events", "totalEventCount", "status", "consultLink", "itemLinkBase"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventSummaryPageComponent, selector: "hvy-event-summary-page", inputs: { pageTitle: "pageTitle", consultLink: "consultLink" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-summary-page\">\n <div class=\"o-hvy-event-summary-page__header\">\n @if (pageTitle) {\n <h3 class=\"o-hvy-event-summary-page__title\">{{ pageTitle }}</h3>\n }\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\">\n <label class=\"a-label m-filter__label\" for=\"criticality-filter\">{{ '@hvy.event.criticality.name' | i18n }}\n :&nbsp;</label>\n <pry-select\n id=\"criticality-filter\"\n class=\"o-hvy-event-summary-page__filter\"\n [items]=\"criticalityList\"\n [ngModel]=\"selectedCriticality$ | async\"\n (ngModelChange)=\"filterByCriticality($event)\"\n [translate]=\"true\"\n i18nPrefix=\"@hvy.eventSummary.criticalityLabels.\"\n >\n </pry-select>\n </div>\n </div>\n <div class=\"o-hvy-event-summary-page__content\">\n <div class=\"o-hvy-event-summary-page__content__sub\">\n @for (summaryList of summaries | keyvalue: criticalityOrder;track summaryList.key) {\n <hvy-event-summary-list\n class=\"o-hvy-event-summary-page__summary-list\"\n [status]=\"summaryList.key\"\n [totalEventCount]=\"summaryList.value.count\"\n [events]=\"summaryList.value.events\"\n [consultLink]=\"consultLink\">\n </hvy-event-summary-list>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i4.EventSummaryListComponent, selector: "hvy-event-summary-list", inputs: ["events", "totalEventCount", "status", "consultLink", "itemLinkBase"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
41
43
  }
42
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventSummaryPageComponent, decorators: [{
43
45
  type: Component,
44
- args: [{ selector: 'hvy-event-summary-page', template: "<div class=\"o-hvy-event-summary-page\">\n <div class=\"o-hvy-event-summary-page__header\">\n @if (pageTitle) {\n <h3 class=\"o-hvy-event-summary-page__title\">{{ pageTitle }}</h3>\n }\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\">\n <label class=\"a-label m-filter__label\" for=\"criticality-filter\">{{ '@hvy.event.criticality.name' | i18n }} :&nbsp;</label>\n <pry-select\n id=\"criticality-filter\"\n class=\"o-hvy-event-summary-page__filter\"\n [items]=\"criticalityList\"\n [ngModel]=\"selectedCriticality$ | async\"\n (ngModelChange)=\"filterByCriticality($event)\"\n [translate]=\"true\"\n i18nPrefix=\"@hvy.eventSummary.criticalityLabels.\"\n >\n </pry-select>\n </div>\n </div>\n <div class=\"o-hvy-event-summary-page__content\">\n @for (summaryList of summaries | keyvalue: asIsOrder; track summaryList.key) {\n <hvy-event-summary-list\n class=\"o-hvy-event-summary-page__summary-list\"\n [status]=\"summaryList.key\"\n [totalEventCount]=\"summaryList.value.count\"\n [events]=\"summaryList.value.events\">\n </hvy-event-summary-list>\n }\n </div>\n</div>\n" }]
46
+ args: [{ selector: 'hvy-event-summary-page', template: "<div class=\"o-hvy-event-summary-page\">\n <div class=\"o-hvy-event-summary-page__header\">\n @if (pageTitle) {\n <h3 class=\"o-hvy-event-summary-page__title\">{{ pageTitle }}</h3>\n }\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\">\n <label class=\"a-label m-filter__label\" for=\"criticality-filter\">{{ '@hvy.event.criticality.name' | i18n }}\n :&nbsp;</label>\n <pry-select\n id=\"criticality-filter\"\n class=\"o-hvy-event-summary-page__filter\"\n [items]=\"criticalityList\"\n [ngModel]=\"selectedCriticality$ | async\"\n (ngModelChange)=\"filterByCriticality($event)\"\n [translate]=\"true\"\n i18nPrefix=\"@hvy.eventSummary.criticalityLabels.\"\n >\n </pry-select>\n </div>\n </div>\n <div class=\"o-hvy-event-summary-page__content\">\n <div class=\"o-hvy-event-summary-page__content__sub\">\n @for (summaryList of summaries | keyvalue: criticalityOrder;track summaryList.key) {\n <hvy-event-summary-list\n class=\"o-hvy-event-summary-page__summary-list\"\n [status]=\"summaryList.key\"\n [totalEventCount]=\"summaryList.value.count\"\n [events]=\"summaryList.value.events\"\n [consultLink]=\"consultLink\">\n </hvy-event-summary-list>\n }\n </div>\n </div>\n</div>\n" }]
45
47
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { pageTitle: [{
46
48
  type: Input
49
+ }], consultLink: [{
50
+ type: Input
47
51
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3VtbWFyeS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50LXN1bW1hcnkvcGFnZS9ldmVudC1zdW1tYXJ5LXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQtc3VtbWFyeS9wYWdlL2V2ZW50LXN1bW1hcnktcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQU05RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsd0JBQXdCO0lBVXJFLFlBQW9CLEtBQWlCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVQ1QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBc0I7WUFDN0IsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNyQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7U0FDL0IsQ0FBQztRQUVGLG9CQUFlLEdBQUcsQ0FBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUlsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN4RSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUN2RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3pFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYztRQUNoQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0EvQlUseUJBQXlCO2tHQUF6Qix5QkFBeUIseUhDZnRDLGl0Q0E4QkE7OzJGRGZhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBSXpCLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgSHlwRXZlbnRTdW1tYXJpZXMgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtc3VtbWFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXZlbnRTdW1tYXJ5QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50LXN1bW1hcnkvZXZlbnQtc3VtbWFyeS5hY3Rpb25zJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50U3VtbWFyeVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50LXN1bW1hcnkvZXZlbnQtc3VtbWFyeS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LXN1bW1hcnktcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1zdW1tYXJ5LXBhZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50U3VtbWFyeVBhZ2VDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBASW5wdXQoKSBwYWdlVGl0bGUgPSAnJztcbiAgc3VtbWFyaWVzOiBIeXBFdmVudFN1bW1hcmllcyA9IHtcbiAgICBORVc6IHsgZXZlbnRzOiBbXSwgY291bnQ6IDAgfSxcbiAgICBJTl9QUk9HUkVTUzogeyBldmVudHM6IFtdLCBjb3VudDogMCB9LFxuICAgIERPTkU6IHsgZXZlbnRzOiBbXSwgY291bnQ6IDAgfSxcbiAgfTtcbiAgc2VsZWN0ZWRDcml0aWNhbGl0eSQ6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgY3JpdGljYWxpdHlMaXN0ID0gWyBcIkxPV1wiLCBcIk1FRElVTVwiLCBcIkhJR0hcIiwgXCJBTExcIl07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55Pikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudFN1bW1hcnlBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zZWxlY3RlZENyaXRpY2FsaXR5JCA9IHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmZpbHRlcnMpLnBpcGUoXG4gICAgICBtYXAoKGZpbHRlcnMpID0+IGZpbHRlcnNbJ2NyaXRpY2FsaXR5J10/LlswXSA/PyAnQUxMJyksXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRXZlbnRTdW1tYXJ5U2VsZWN0b3JzLnN1bW1hcmllcykuc3Vic2NyaWJlKChzdW1tYXJpZXMpID0+IHtcbiAgICAgICAgdGhpcy5zdW1tYXJpZXMgPSBzdW1tYXJpZXM7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZmlsdGVyQnlDcml0aWNhbGl0eSgkZXZlbnQ6IHN0cmluZykge1xuICAgICRldmVudCA9PT0gJ0FMTCcgPyB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzOiB7IGNyaXRpY2FsaXR5OiBbXSB9IH0pKSA6XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzOiB7IGNyaXRpY2FsaXR5OiBbJGV2ZW50XSB9IH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50U3VtbWFyeUFjdGlvbnMubG9hZCgpKTtcbiAgfVxuXG4gIGFzSXNPcmRlcigpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktcGFnZVwiPlxuICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1wYWdlX19oZWFkZXJcIj5cbiAgICBAaWYgKHBhZ2VUaXRsZSkge1xuICAgICAgPGgzIGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1wYWdlX190aXRsZVwiPnt7IHBhZ2VUaXRsZSB9fTwvaDM+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJtLWZpbHRlcl9faW5wdXQtd3JhcHBlciBtLWZpbHRlcl9faW5wdXQtd3JhcHBlci0tZHJvcGRvd25cIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgbS1maWx0ZXJfX2xhYmVsXCIgZm9yPVwiY3JpdGljYWxpdHktZmlsdGVyXCI+e3sgJ0BodnkuZXZlbnQuY3JpdGljYWxpdHkubmFtZScgfCBpMThuIH19IDombmJzcDs8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgaWQ9XCJjcml0aWNhbGl0eS1maWx0ZXJcIlxuICAgICAgICBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktcGFnZV9fZmlsdGVyXCJcbiAgICAgICAgW2l0ZW1zXT1cImNyaXRpY2FsaXR5TGlzdFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkQ3JpdGljYWxpdHkkIHwgYXN5bmNcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJCeUNyaXRpY2FsaXR5KCRldmVudClcIlxuICAgICAgICBbdHJhbnNsYXRlXT1cInRydWVcIlxuICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5ldmVudFN1bW1hcnkuY3JpdGljYWxpdHlMYWJlbHMuXCJcbiAgICAgID5cbiAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LXBhZ2VfX2NvbnRlbnRcIj5cbiAgICBAZm9yIChzdW1tYXJ5TGlzdCBvZiBzdW1tYXJpZXMgfCBrZXl2YWx1ZTogYXNJc09yZGVyOyB0cmFjayBzdW1tYXJ5TGlzdC5rZXkpIHtcbiAgICAgIDxodnktZXZlbnQtc3VtbWFyeS1saXN0XG4gICAgICAgIGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1wYWdlX19zdW1tYXJ5LWxpc3RcIlxuICAgICAgICBbc3RhdHVzXT1cInN1bW1hcnlMaXN0LmtleVwiXG4gICAgICAgIFt0b3RhbEV2ZW50Q291bnRdPVwic3VtbWFyeUxpc3QudmFsdWUuY291bnRcIlxuICAgICAgICBbZXZlbnRzXT1cInN1bW1hcnlMaXN0LnZhbHVlLmV2ZW50c1wiPlxuICAgICAgPC9odnktZXZlbnQtc3VtbWFyeS1saXN0PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3VtbWFyeS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50LXN1bW1hcnkvcGFnZS9ldmVudC1zdW1tYXJ5LXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQtc3VtbWFyeS9wYWdlL2V2ZW50LXN1bW1hcnktcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7QUFPekUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHdCQUF3QjtJQVdyRSxZQUFvQixLQUFpQjtRQUNuQyxLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQVk7UUFWNUIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQ3BDLGNBQVMsR0FBc0I7WUFDN0IsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQzdCLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNyQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7U0FDL0IsQ0FBQztRQUVGLG9CQUFlLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFxQnBELHFCQUFnQixHQUFHLENBQUMsQ0FBa0UsRUFBRSxDQUd0RixFQUFVLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDO1FBdEJBLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQ3ZELENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQ2hDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBNUJVLHlCQUF5QjtrR0FBekIseUJBQXlCLHFKQ2pCdEMsaTJDQWtDQTs7MkZEakJhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBSXpCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvZXZlbnQvZXZlbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBIeXBFdmVudFN1bW1hcmllcywgSHlwRXZlbnRTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV2ZW50U3VtbWFyeUFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC1zdW1tYXJ5L2V2ZW50LXN1bW1hcnkuYWN0aW9ucyc7XG5pbXBvcnQgeyBFdmVudFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFN1bW1hcnlTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9ldmVudC1zdW1tYXJ5L2V2ZW50LXN1bW1hcnkuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBFdmVudFN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1zdGF0dXMudHlwZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1ldmVudC1zdW1tYXJ5LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtc3VtbWFyeS1wYWdlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRTdW1tYXJ5UGFnZUNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHBhZ2VUaXRsZSA9ICcnO1xuICBASW5wdXQoKSBjb25zdWx0TGluazogc3RyaW5nW10gPSBbXTtcbiAgc3VtbWFyaWVzOiBIeXBFdmVudFN1bW1hcmllcyA9IHtcbiAgICBORVc6IHsgZXZlbnRzOiBbXSwgY291bnQ6IDAgfSxcbiAgICBJTl9QUk9HUkVTUzogeyBldmVudHM6IFtdLCBjb3VudDogMCB9LFxuICAgIERPTkU6IHsgZXZlbnRzOiBbXSwgY291bnQ6IDAgfSxcbiAgfTtcbiAgc2VsZWN0ZWRDcml0aWNhbGl0eSQ6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgY3JpdGljYWxpdHlMaXN0ID0gWy4uLkh5cEV2ZW50U3RhdHVzLnZhbHVlcywgJ0FMTCddO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRXZlbnRTdW1tYXJ5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc2VsZWN0ZWRDcml0aWNhbGl0eSQgPSB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5maWx0ZXJzKS5waXBlKFxuICAgICAgbWFwKChmaWx0ZXJzKSA9PiBmaWx0ZXJzWydjcml0aWNhbGl0eSddPy5bMF0gPz8gJ0FMTCcpLFxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U3VtbWFyeVNlbGVjdG9ycy5zdW1tYXJpZXMpLnN1YnNjcmliZSgoc3VtbWFyaWVzKSA9PiB7XG4gICAgICAgIHRoaXMuc3VtbWFyaWVzID0gc3VtbWFyaWVzO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGZpbHRlckJ5Q3JpdGljYWxpdHkoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICAkZXZlbnQgPT09ICdBTEwnID8gdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuZmlsdGVyKHsgZmlsdGVyczogeyBjcml0aWNhbGl0eTogW10gfSB9KSkgOlxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuZmlsdGVyKHsgZmlsdGVyczogeyBjcml0aWNhbGl0eTogWyRldmVudF0gfSB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudFN1bW1hcnlBY3Rpb25zLmxvYWQoKSk7XG4gIH1cblxuICBjcml0aWNhbGl0eU9yZGVyID0gKGE6IEtleVZhbHVlPHN0cmluZywgeyBldmVudHM6IEh5cEV2ZW50U3VtbWFyeVtdOyBjb3VudDogbnVtYmVyOyB9PiwgYjogS2V5VmFsdWU8c3RyaW5nLCB7XG4gICAgZXZlbnRzOiBIeXBFdmVudFN1bW1hcnlbXTtcbiAgICBjb3VudDogbnVtYmVyO1xuICB9Pik6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3JpdGljYWxpdHlMaXN0LmluZGV4T2YoYS5rZXkpIC0gdGhpcy5jcml0aWNhbGl0eUxpc3QuaW5kZXhPZihiLmtleSk7XG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1wYWdlXCI+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LXBhZ2VfX2hlYWRlclwiPlxuICAgIEBpZiAocGFnZVRpdGxlKSB7XG4gICAgICA8aDMgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LXBhZ2VfX3RpdGxlXCI+e3sgcGFnZVRpdGxlIH19PC9oMz5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dC13cmFwcGVyIG0tZmlsdGVyX19pbnB1dC13cmFwcGVyLS1kcm9wZG93blwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBtLWZpbHRlcl9fbGFiZWxcIiBmb3I9XCJjcml0aWNhbGl0eS1maWx0ZXJcIj57eyAnQGh2eS5ldmVudC5jcml0aWNhbGl0eS5uYW1lJyB8IGkxOG4gfX1cbiAgICAgICAgOiZuYnNwOzwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBpZD1cImNyaXRpY2FsaXR5LWZpbHRlclwiXG4gICAgICAgIGNsYXNzPVwiby1odnktZXZlbnQtc3VtbWFyeS1wYWdlX19maWx0ZXJcIlxuICAgICAgICBbaXRlbXNdPVwiY3JpdGljYWxpdHlMaXN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRDcml0aWNhbGl0eSQgfCBhc3luY1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlckJ5Q3JpdGljYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgIFt0cmFuc2xhdGVdPVwidHJ1ZVwiXG4gICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LmV2ZW50U3VtbWFyeS5jcml0aWNhbGl0eUxhYmVscy5cIlxuICAgICAgPlxuICAgICAgPC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LXN1bW1hcnktcGFnZV9fY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LXBhZ2VfX2NvbnRlbnRfX3N1YlwiPlxuICAgICAgQGZvciAoc3VtbWFyeUxpc3Qgb2Ygc3VtbWFyaWVzIHwga2V5dmFsdWU6IGNyaXRpY2FsaXR5T3JkZXI7dHJhY2sgc3VtbWFyeUxpc3Qua2V5KSB7XG4gICAgICAgIDxodnktZXZlbnQtc3VtbWFyeS1saXN0XG4gICAgICAgICAgY2xhc3M9XCJvLWh2eS1ldmVudC1zdW1tYXJ5LXBhZ2VfX3N1bW1hcnktbGlzdFwiXG4gICAgICAgICAgW3N0YXR1c109XCJzdW1tYXJ5TGlzdC5rZXlcIlxuICAgICAgICAgIFt0b3RhbEV2ZW50Q291bnRdPVwic3VtbWFyeUxpc3QudmFsdWUuY291bnRcIlxuICAgICAgICAgIFtldmVudHNdPVwic3VtbWFyeUxpc3QudmFsdWUuZXZlbnRzXCJcbiAgICAgICAgICBbY29uc3VsdExpbmtdPVwiY29uc3VsdExpbmtcIj5cbiAgICAgICAgPC9odnktZXZlbnQtc3VtbWFyeS1saXN0PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19