@provoly/hypervisor 0.0.60 → 0.0.62

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 (73) hide show
  1. package/esm2022/src/lib/event/detail/event-detail.component.mjs +17 -64
  2. package/esm2022/src/lib/event/filters/choice/choice-filter.component.mjs +2 -1
  3. package/esm2022/src/lib/event/filters/date/date-filter.component.mjs +2 -1
  4. package/esm2022/src/lib/event/filters/hvy-unit-filter.class.mjs +6 -3
  5. package/esm2022/src/lib/event/filters/on/click/event-filters.component.mjs +35 -0
  6. package/esm2022/src/lib/event/filters/on/immediate/immediate-filters.component.mjs +40 -0
  7. package/esm2022/src/lib/event/filters/text/text-filter.component.mjs +35 -0
  8. package/esm2022/src/lib/event/list/event-list.component.mjs +3 -2
  9. package/esm2022/src/lib/event/public-api.mjs +4 -2
  10. package/esm2022/src/lib/general/i18n/en.translations.mjs +22 -5
  11. package/esm2022/src/lib/general/i18n/fr.translations.mjs +17 -4
  12. package/esm2022/src/lib/general/pad-id.function.mjs +6 -0
  13. package/esm2022/src/lib/general/procedure-actions/procedure-actions.component.mjs +90 -0
  14. package/esm2022/src/lib/general/public-api.mjs +2 -1
  15. package/esm2022/src/lib/hypervisor.module.mjs +21 -8
  16. package/esm2022/src/lib/model/event/hyp-event.interface.mjs +1 -1
  17. package/esm2022/src/lib/model/procedure/hyp-procedure-model.interface.mjs +1 -1
  18. package/esm2022/src/lib/model/procedure/hyp-procedure.interface.mjs +1 -1
  19. package/esm2022/src/lib/procedure/model-detail/procedure-model-detail.component.mjs +87 -0
  20. package/esm2022/src/lib/procedure/model-list/procedure-column-order.component.mjs +23 -0
  21. package/esm2022/src/lib/procedure/model-list/procedure-list.component.mjs +56 -0
  22. package/esm2022/src/lib/procedure/public-api.mjs +4 -3
  23. package/esm2022/src/lib/store/event/event.actions.mjs +1 -1
  24. package/esm2022/src/lib/store/event/event.effects.mjs +3 -3
  25. package/esm2022/src/lib/store/event/event.reducer.mjs +1 -1
  26. package/esm2022/src/lib/store/event/event.service.mjs +6 -2
  27. package/esm2022/src/lib/store/procedure/procedure.actions.mjs +5 -3
  28. package/esm2022/src/lib/store/procedure/procedure.effects.mjs +2 -1
  29. package/esm2022/src/lib/store/procedure/procedure.reducer.mjs +14 -6
  30. package/esm2022/src/lib/store/procedure/procedure.selectors.mjs +4 -4
  31. package/esm2022/src/lib/store/procedure/procedure.service.mjs +23 -12
  32. package/fesm2022/provoly-hypervisor.mjs +380 -137
  33. package/fesm2022/provoly-hypervisor.mjs.map +1 -1
  34. package/package.json +1 -1
  35. package/src/lib/event/detail/event-detail.component.d.ts +5 -14
  36. package/src/lib/event/filters/hvy-unit-filter.class.d.ts +3 -1
  37. package/src/lib/event/filters/{event-filters.component.d.ts → on/click/event-filters.component.d.ts} +1 -1
  38. package/src/lib/event/filters/on/immediate/immediate-filters.component.d.ts +15 -0
  39. package/src/lib/event/filters/text/text-filter.component.d.ts +14 -0
  40. package/src/lib/event/list/event-list.component.d.ts +1 -1
  41. package/src/lib/event/public-api.d.ts +3 -1
  42. package/src/lib/general/i18n/en.translations.d.ts +18 -1
  43. package/src/lib/general/i18n/fr.translations.d.ts +14 -1
  44. package/src/lib/general/pad-id.function.d.ts +3 -0
  45. package/src/lib/general/procedure-actions/procedure-actions.component.d.ts +31 -0
  46. package/src/lib/general/public-api.d.ts +1 -0
  47. package/src/lib/hypervisor.module.d.ts +17 -13
  48. package/src/lib/model/event/hyp-event-detail.interface.d.ts +1 -1
  49. package/src/lib/model/event/hyp-event.interface.d.ts +1 -1
  50. package/src/lib/model/procedure/hyp-procedure-model.interface.d.ts +3 -2
  51. package/src/lib/model/procedure/hyp-procedure.interface.d.ts +3 -3
  52. package/src/lib/procedure/model-detail/procedure-model-detail.component.d.ts +35 -0
  53. package/src/lib/procedure/{list → model-list}/procedure-list.component.d.ts +9 -4
  54. package/src/lib/procedure/public-api.d.ts +3 -2
  55. package/src/lib/store/event/event.actions.d.ts +8 -8
  56. package/src/lib/store/event/event.effects.d.ts +2 -2
  57. package/src/lib/store/event/event.reducer.d.ts +1 -1
  58. package/src/lib/store/event/event.selectors.d.ts +1 -1
  59. package/src/lib/store/event/event.service.d.ts +5 -5
  60. package/src/lib/store/procedure/procedure.actions.d.ts +15 -5
  61. package/src/lib/store/procedure/procedure.effects.d.ts +5 -0
  62. package/src/lib/store/procedure/procedure.reducer.d.ts +1 -1
  63. package/src/lib/store/procedure/procedure.selectors.d.ts +1 -1
  64. package/src/lib/store/procedure/procedure.service.d.ts +1 -0
  65. package/styles/components/_index.scss +1 -0
  66. package/styles/components/_o-hvy-event-detail.scss +4 -0
  67. package/styles/components/_o-hvy-event-filters.scss +17 -0
  68. package/styles/components/_o-hvy-procedure-detail.scss +43 -0
  69. package/styles/components/_o-hvy-procedure-list.scss +6 -11
  70. package/esm2022/src/lib/event/filters/event-filters.component.mjs +0 -35
  71. package/esm2022/src/lib/procedure/list/procedure-column-order.component.mjs +0 -24
  72. package/esm2022/src/lib/procedure/list/procedure-list.component.mjs +0 -57
  73. /package/src/lib/procedure/{list → model-list}/procedure-column-order.component.d.ts +0 -0
@@ -14,3 +14,4 @@
14
14
  @use "./o-hvy-column-order" as *;
15
15
  @use "./o-hvy-event-filters" as *;
16
16
  @use "./o-hvy-procedure-list" as *;
17
+ @use "./o-hvy-procedure-detail" as *;
@@ -264,3 +264,7 @@
264
264
  background-color: #183C6B;
265
265
  opacity: 0.7;
266
266
  }
267
+
268
+ .-done {
269
+ text-decoration: line-through;
270
+ }
@@ -84,3 +84,20 @@
84
84
  margin-right: toRem(10);
85
85
  }
86
86
  }
87
+
88
+ .o-hvy-text-filters {
89
+ position: relative;
90
+
91
+ &__search-input.a-form-field {
92
+ padding-left: toRem(60);
93
+ }
94
+
95
+ &__search-icon {
96
+ position: absolute;
97
+ top: 5px;
98
+ left: 20px;
99
+ &__filter {
100
+ margin-left: auto;
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,43 @@
1
+ @use 'node_modules/@provoly/dashboard/styles/abstracts' as *;
2
+ @use 'node_modules/@provoly/dashboard/styles-theme/abstracts-theme/variables.theme' as *;
3
+
4
+ .o-hvy-procedure-detail {
5
+ display: flex;
6
+ flex-direction: column;
7
+ height: 100%;
8
+
9
+ &__container {
10
+ flex: 1 1;
11
+ overflow: auto;
12
+
13
+ &__scrollable {
14
+ display: flex;
15
+ flex-direction: row;
16
+ gap: toRem(20);
17
+ }
18
+ }
19
+
20
+ &__form {
21
+ flex: 1 1;
22
+ display: flex;
23
+ flex-direction: column;
24
+ height: fit-content;
25
+ margin: toRem(10);
26
+ padding: toRem(20);
27
+
28
+ background-color: white;
29
+ border: 1px solid themed($theme-map, 'color', 'primary', 400);
30
+ }
31
+
32
+ &__actions {
33
+ flex: 1 1;
34
+ display: flex;
35
+ flex-direction: column;
36
+ height: fit-content;
37
+ margin: toRem(10);
38
+ padding: toRem(20);
39
+
40
+ background-color: white;
41
+ border: 1px solid themed($theme-map, 'color', 'primary', 400);
42
+ }
43
+ }
@@ -1,15 +1,10 @@
1
1
  .o-procedure-list {
2
- &__search {
3
- position: relative;
4
- }
5
-
6
- &__search-input.a-form-field {
7
- padding-left: 60px;
8
- }
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
9
5
 
10
- &__search-icon {
11
- position: absolute;
12
- top: 5px;
13
- left: 20px;
6
+ &__table {
7
+ display: flex;
8
+ overflow: auto;
14
9
  }
15
10
  }
@@ -1,35 +0,0 @@
1
- import { Component, ContentChildren, Input } from '@angular/core';
2
- import { SubscriptionnerDirective } from '@provoly/dashboard';
3
- import { EventActions } from '../../store/event/event.actions';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@ngrx/store";
6
- import * as i2 from "@provoly/dashboard";
7
- export class EventFiltersComponent extends SubscriptionnerDirective {
8
- constructor(store) {
9
- super();
10
- this.store = store;
11
- this.filterSet = 'global';
12
- }
13
- ngAfterViewInit() {
14
- this.filters.forEach((filter) => (filter.filterSet = this.filterSet));
15
- }
16
- filter() {
17
- const filters = this.filters.map((filter) => filter.getParams()).reduce((p, c) => ({ ...p, ...c }), {});
18
- this.store.dispatch(EventActions.filter({ filters, filterSet: this.filterSet }));
19
- }
20
- reset() {
21
- this.store.dispatch(EventActions.filter({ filters: {}, filterSet: this.filterSet }));
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventFiltersComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: EventFiltersComponent, selector: "hvy-event-filters", inputs: { filterSet: "filterSet" }, queries: [{ propertyName: "filters", predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-filters\">\n <ng-content></ng-content>\n <div class=\"o-hvy-event-filters__buttons\">\n <button (click)=\"reset()\" class=\"a-btn a-btn--secondary\" [title]=\"'@hvy.event.filter.reset' | i18n\">\n <pry-icon iconSvg=\"reset_filter_event\"></pry-icon>\n </button>\n <button (click)=\"filter()\" class=\"a-btn a-btn--primary\">\n {{ '@hvy.event.filter.name' | i18n }}\n <pry-icon iconSvg=\"event_filter\"></pry-icon>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventFiltersComponent, decorators: [{
27
- type: Component,
28
- 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\" [title]=\"'@hvy.event.filter.reset' | i18n\">\n <pry-icon iconSvg=\"reset_filter_event\"></pry-icon>\n </button>\n <button (click)=\"filter()\" class=\"a-btn a-btn--primary\">\n {{ '@hvy.event.filter.name' | i18n }}\n <pry-icon iconSvg=\"event_filter\"></pry-icon>\n </button>\n </div>\n</div>\n" }]
29
- }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { filterSet: [{
30
- type: Input
31
- }], filters: [{
32
- type: ContentChildren,
33
- args: ['filter', { descendants: true }]
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9ldmVudC9maWx0ZXJzL2V2ZW50LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZmlsdGVycy9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBTS9ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx3QkFBd0I7SUFJakUsWUFBb0IsS0FBWTtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQU87UUFIdkIsY0FBUyxHQUFHLFFBQVEsQ0FBQztJQUs5QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FuQlUscUJBQXFCO2tHQUFyQixxQkFBcUIsc01DVmxDLHFmQVlBOzsyRkRGYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COzBFQUlwQixTQUFTO3NCQUFqQixLQUFLO2dCQUM0QyxPQUFPO3NCQUF4RCxlQUFlO3VCQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh2eVVuaXRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2h2eS11bml0LWZpbHRlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktZXZlbnQtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBFdmVudEZpbHRlcnNDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZmlsdGVyU2V0ID0gJ2dsb2JhbCc7XG4gIEBDb250ZW50Q2hpbGRyZW4oJ2ZpbHRlcicsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgZmlsdGVycyE6IFF1ZXJ5TGlzdDxIdnlVbml0RmlsdGVyQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4gKGZpbHRlci5maWx0ZXJTZXQgPSB0aGlzLmZpbHRlclNldCkpO1xuICB9XG5cbiAgZmlsdGVyKCkge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMubWFwKChmaWx0ZXIpID0+IGZpbHRlci5nZXRQYXJhbXMoKSkucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChFdmVudEFjdGlvbnMuZmlsdGVyKHsgZmlsdGVycywgZmlsdGVyU2V0OiB0aGlzLmZpbHRlclNldCB9KSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEV2ZW50QWN0aW9ucy5maWx0ZXIoeyBmaWx0ZXJzOiB7fSwgZmlsdGVyU2V0OiB0aGlzLmZpbHRlclNldCB9KSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudC1maWx0ZXJzXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50LWZpbHRlcnNfX2J1dHRvbnNcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJyZXNldCgpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgW3RpdGxlXT1cIidAaHZ5LmV2ZW50LmZpbHRlci5yZXNldCcgfCBpMThuXCI+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInJlc2V0X2ZpbHRlcl9ldmVudFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZmlsdGVyKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICB7eyAnQGh2eS5ldmVudC5maWx0ZXIubmFtZScgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV2ZW50X2ZpbHRlclwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,24 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ColumnOrderComponent } from '../../general/column-order/column-order.component';
3
- import { ProcedureSelectors } from '../../store/procedure/procedure.selectors';
4
- import { ProcedureActions } from '../../store/procedure/procedure.actions';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngrx/store";
7
- import * as i2 from "@provoly/dashboard";
8
- export class ProcedureColumnOrderComponent extends ColumnOrderComponent {
9
- constructor(store) {
10
- super(store);
11
- this.subscriptions.add(this.store.select(ProcedureSelectors.sort).subscribe(sort => this.sortValue = sort));
12
- }
13
- sort(order) {
14
- throw Error('Sort not implemented.');
15
- this.store.dispatch(ProcedureActions.sort({ field: this.field, order }));
16
- }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureColumnOrderComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ProcedureColumnOrderComponent, selector: "hvy-procedure-column-order", usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }] }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureColumnOrderComponent, decorators: [{
21
- type: Component,
22
- args: [{ selector: 'hvy-procedure-column-order', template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n" }]
23
- }], ctorParameters: () => [{ type: i1.Store }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWNvbHVtbi1vcmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9wcm9jZWR1cmUvbGlzdC9wcm9jZWR1cmUtY29sdW1uLW9yZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvY29sdW1uLW9yZGVyL2NvbHVtbi1vcmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBTTNFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxvQkFBb0I7SUFDckUsWUFBWSxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUNwRixDQUFDO0lBQ0osQ0FBQztJQUVRLElBQUksQ0FBQyxLQUFhO1FBQ3pCLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7OEdBWFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIseUZDVjFDLDZkQVNBOzsyRkRDYSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbHVtbk9yZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9jb2x1bW4tb3JkZXIvY29sdW1uLW9yZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9jZWR1cmVTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9wcm9jZWR1cmUvcHJvY2VkdXJlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBQcm9jZWR1cmVBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvcHJvY2VkdXJlL3Byb2NlZHVyZS5hY3Rpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LXByb2NlZHVyZS1jb2x1bW4tb3JkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4uLy4uL2dlbmVyYWwvY29sdW1uLW9yZGVyL2NvbHVtbi1vcmRlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2NlZHVyZUNvbHVtbk9yZGVyQ29tcG9uZW50IGV4dGVuZHMgQ29sdW1uT3JkZXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KFByb2NlZHVyZVNlbGVjdG9ycy5zb3J0KS5zdWJzY3JpYmUoc29ydCA9PiB0aGlzLnNvcnRWYWx1ZSA9IHNvcnQpLFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBzb3J0KG9yZGVyOiBzdHJpbmcpIHtcbiAgICB0aHJvdyBFcnJvcignU29ydCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQcm9jZWR1cmVBY3Rpb25zLnNvcnQoeyBmaWVsZDogdGhpcy5maWVsZCwgb3JkZXIgfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktY29sdW1uLW9yZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1jb2x1bW4tb3JkZXJfX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1odnktY29sdW1uLW9yZGVyX19jaGV2cm9uc1wiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2FyZXRfdG9wXCIgKGNsaWNrKT1cInNvcnQoJ0FTQycpXCIgW2hlaWdodF09XCIxMFwiIFt3aWR0aF09XCIxMFwiIFtjbGFzcy4tYWN0aXZlXT1cImlzQWN0aXZlKCdBU0MnKVwiPjwvcHJ5LWljb24+XG4gICAgPHByeS1pY29uIGljb25Tdmc9XCJjYXJldF9ib3R0b21cIiAoY2xpY2spPVwic29ydCgnREVTQycpXCIgW2hlaWdodF09XCIxMFwiIFt3aWR0aF09XCIxMFwiIFtjbGFzcy4tYWN0aXZlXT1cImlzQWN0aXZlKCdERVNDJylcIj48L3ByeS1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,57 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ProcedureActions } from '../../store/procedure/procedure.actions';
3
- import { distinctUntilChanged, Subject, } from 'rxjs';
4
- import { debounceTime } from 'rxjs/operators';
5
- import { ProcedureSelectors } from '../../store/procedure/procedure.selectors';
6
- import { SubscriptionnerDirective } from '@provoly/dashboard';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@ngrx/store";
9
- import * as i2 from "@angular/router";
10
- import * as i3 from "../../general/infiniteScroll.service";
11
- import * as i4 from "@angular/forms";
12
- import * as i5 from "@provoly/dashboard";
13
- import * as i6 from "./procedure-column-order.component";
14
- import * as i7 from "@angular/common";
15
- export const PROCEDURE_LINK = {
16
- fn: (procedure, store) => ['./', procedure.id]
17
- };
18
- export class ProcedureListComponent extends SubscriptionnerDirective {
19
- constructor(store, el, router, scroll) {
20
- super();
21
- this.store = store;
22
- this.el = el;
23
- this.router = router;
24
- this.scroll = scroll;
25
- this.PROCEDURE_LINK = PROCEDURE_LINK;
26
- this.search = '';
27
- this.search$ = new Subject;
28
- this.store.dispatch(ProcedureActions.load({}));
29
- this.procedures$ = this.store.select(ProcedureSelectors.procedures);
30
- this.subscriptions.add(this.search$.pipe(debounceTime(300), distinctUntilChanged()).subscribe((search) => {
31
- throw Error('Search not implemented.');
32
- this.store.dispatch(ProcedureActions.search({ search }));
33
- }));
34
- }
35
- ngAfterViewInit() {
36
- this.subscriptions.add(this.scroll.isEndOfPage(this.el.nativeElement, ProcedureSelectors.noMoreProcedures)
37
- .subscribe(() => {
38
- this.store.dispatch(ProcedureActions.load({ next: true }));
39
- }));
40
- }
41
- emitSearch() {
42
- this.search$.next(this.search);
43
- }
44
- goTo(procedure) {
45
- return this.router.navigate(this.PROCEDURE_LINK.fn(procedure, this.store));
46
- }
47
- ngOnDestroy() {
48
- this.store.dispatch(ProcedureActions.search({ search: undefined }));
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureListComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }, { token: i2.Router }, { token: i3.InfiniteScrollService }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ProcedureListComponent, selector: "hvy-procedure-list", usesInheritance: true, ngImport: i0, template: "<div class=\"o-procedure-list\">\n <div class=\"m-form-label-field o-procedure-list__search\">\n <input class=\"a-form-field o-procedure-list__search-input\" type=\"text\" [(ngModel)]=\"search\" (ngModelChange)=\"emitSearch()\" placeholder=\"{{ '@hvy.action.search' | i18n }}...\">\n <pry-icon iconSvg=\"search\" class=\"o-procedure-list__search-icon\"></pry-icon>\n </div>\n <table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <hvy-procedure-column-order field=\"useCount\">{{ '@hvy.procedure.useCount' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"title\">{{ '@hvy.procedure.title' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"domain\">{{ '@hvy.procedure.domain' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creator\">{{ '@hvy.procedure.author' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"id\">{{ '@hvy.procedure.id' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"lastModificationDate\"><span>{{ '@hvy.event.lastModificationDate' | i18n }}</span></hvy-procedure-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (procedure of procedures$ | async; track procedure.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goTo(procedure)\">\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.useCount }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.name }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.domain }}</td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ procedure.creator }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.id }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.creationDate| date : 'dd/mm/YYYY HH:MM' }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.lastModificationDate | date : 'dd/mm/YYYY HH:MM' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"PROCEDURE_LINK.fn(procedure, store)\">> {{ '@hvy.action.consult' | i18n }}</a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.procedure.noContent' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.ProcedureColumnOrderComponent, selector: "hvy-procedure-column-order" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }, { kind: "pipe", type: i7.DatePipe, name: "date" }] }); }
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureListComponent, decorators: [{
54
- type: Component,
55
- args: [{ selector: 'hvy-procedure-list', template: "<div class=\"o-procedure-list\">\n <div class=\"m-form-label-field o-procedure-list__search\">\n <input class=\"a-form-field o-procedure-list__search-input\" type=\"text\" [(ngModel)]=\"search\" (ngModelChange)=\"emitSearch()\" placeholder=\"{{ '@hvy.action.search' | i18n }}...\">\n <pry-icon iconSvg=\"search\" class=\"o-procedure-list__search-icon\"></pry-icon>\n </div>\n <table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <hvy-procedure-column-order field=\"useCount\">{{ '@hvy.procedure.useCount' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"title\">{{ '@hvy.procedure.title' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"domain\">{{ '@hvy.procedure.domain' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creator\">{{ '@hvy.procedure.author' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"id\">{{ '@hvy.procedure.id' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"lastModificationDate\"><span>{{ '@hvy.event.lastModificationDate' | i18n }}</span></hvy-procedure-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (procedure of procedures$ | async; track procedure.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goTo(procedure)\">\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.useCount }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.name }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.domain }}</td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ procedure.creator }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.id }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.creationDate| date : 'dd/mm/YYYY HH:MM' }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.lastModificationDate | date : 'dd/mm/YYYY HH:MM' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"PROCEDURE_LINK.fn(procedure, store)\">> {{ '@hvy.action.consult' | i18n }}</a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.procedure.noContent' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n" }]
56
- }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }, { type: i2.Router }, { type: i3.InfiniteScrollService }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvcHJvY2VkdXJlL2xpc3QvcHJvY2VkdXJlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvcHJvY2VkdXJlL2xpc3QvcHJvY2VkdXJlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFHOUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLEVBQUUsRUFBRSxDQUFDLFNBQTRCLEVBQUUsS0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztDQUM5RSxDQUFDO0FBTUYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQU1sRSxZQUFzQixLQUFpQixFQUFVLEVBQWMsRUFBVSxNQUFjLEVBQVUsTUFBNkI7UUFDNUgsS0FBSyxFQUFFLENBQUM7UUFEWSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUo5SCxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBRyxJQUFJLE9BQWUsQ0FBQztRQUk1QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDZixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLG9CQUFvQixFQUFFLENBQ3ZCLENBQUMsU0FBUyxDQUNULENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDVCxNQUFNLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7YUFDaEYsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBNEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVRLFdBQVc7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQTNDVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpRkN2Qm5DLDQzRkE0REE7OzJGRHJDYSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFByb2NlZHVyZUFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9wcm9jZWR1cmUvcHJvY2VkdXJlLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvY2VkdXJlU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvcHJvY2VkdXJlL3Byb2NlZHVyZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgSHlwUHJvY2VkdXJlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsU2VydmljZSB9IGZyb20gJy4uLy4uL2dlbmVyYWwvaW5maW5pdGVTY3JvbGwuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBQUk9DRURVUkVfTElOSyA9IHtcbiAgZm46IChwcm9jZWR1cmU6IEh5cFByb2NlZHVyZU1vZGVsLCBzdG9yZTogU3RvcmU8YW55PikgPT4gWycuLycsIHByb2NlZHVyZS5pZF1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZWR1cmUtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2VkdXJlTGlzdENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByb2NlZHVyZXMkOiBPYnNlcnZhYmxlPEh5cFByb2NlZHVyZU1vZGVsW10+XG4gIFBST0NFRFVSRV9MSU5LID0gUFJPQ0VEVVJFX0xJTks7XG4gIHNlYXJjaDogc3RyaW5nID0gJyc7XG4gIHNlYXJjaCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBzY3JvbGw6IEluZmluaXRlU2Nyb2xsU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQcm9jZWR1cmVBY3Rpb25zLmxvYWQoe30pKTtcbiAgICB0aGlzLnByb2NlZHVyZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoUHJvY2VkdXJlU2VsZWN0b3JzLnByb2NlZHVyZXMpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VhcmNoJC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgIChzZWFyY2gpID0+IHtcbiAgICAgICAgICB0aHJvdyBFcnJvcignU2VhcmNoIG5vdCBpbXBsZW1lbnRlZC4nKVxuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUHJvY2VkdXJlQWN0aW9ucy5zZWFyY2goeyBzZWFyY2ggfSkpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNjcm9sbC5pc0VuZE9mUGFnZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIFByb2NlZHVyZVNlbGVjdG9ycy5ub01vcmVQcm9jZWR1cmVzKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFByb2NlZHVyZUFjdGlvbnMubG9hZCh7IG5leHQ6IHRydWUgfSkpO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBlbWl0U2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KHRoaXMuc2VhcmNoKTtcbiAgfVxuXG4gIGdvVG8ocHJvY2VkdXJlOiBIeXBQcm9jZWR1cmVNb2RlbCkge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLlBST0NFRFVSRV9MSU5LLmZuKHByb2NlZHVyZSwgdGhpcy5zdG9yZSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQcm9jZWR1cmVBY3Rpb25zLnNlYXJjaCh7IHNlYXJjaDogdW5kZWZpbmVkIH0pKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tcHJvY2VkdXJlLWxpc3RcIj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCBvLXByb2NlZHVyZS1saXN0X19zZWFyY2hcIj5cbiAgICA8aW5wdXQgY2xhc3M9XCJhLWZvcm0tZmllbGQgby1wcm9jZWR1cmUtbGlzdF9fc2VhcmNoLWlucHV0XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRTZWFyY2goKVwiIHBsYWNlaG9sZGVyPVwie3sgJ0BodnkuYWN0aW9uLnNlYXJjaCcgfCBpMThuIH19Li4uXCI+XG4gICAgPHByeS1pY29uIGljb25Tdmc9XCJzZWFyY2hcIiBjbGFzcz1cIm8tcHJvY2VkdXJlLWxpc3RfX3NlYXJjaC1pY29uXCI+PC9wcnktaWNvbj5cbiAgPC9kaXY+XG4gIDx0YWJsZSBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZVwiPlxuICAgIDx0aGVhZD5cbiAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2hlYWRlclwiPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LXByb2NlZHVyZS1jb2x1bW4tb3JkZXIgZmllbGQ9XCJ1c2VDb3VudFwiPnt7ICdAaHZ5LnByb2NlZHVyZS51c2VDb3VudCcgfCBpMThuIH19PC9odnktcHJvY2VkdXJlLWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktcHJvY2VkdXJlLWNvbHVtbi1vcmRlciBmaWVsZD1cInRpdGxlXCI+e3sgJ0BodnkucHJvY2VkdXJlLnRpdGxlJyB8IGkxOG4gfX08L2h2eS1wcm9jZWR1cmUtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1wcm9jZWR1cmUtY29sdW1uLW9yZGVyIGZpZWxkPVwiZG9tYWluXCI+e3sgJ0BodnkucHJvY2VkdXJlLmRvbWFpbicgfCBpMThuIH19PC9odnktcHJvY2VkdXJlLWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+XG4gICAgICAgIDxodnktcHJvY2VkdXJlLWNvbHVtbi1vcmRlciBmaWVsZD1cImNyZWF0b3JcIj57eyAnQGh2eS5wcm9jZWR1cmUuYXV0aG9yJyB8IGkxOG4gfX08L2h2eS1wcm9jZWR1cmUtY29sdW1uLW9yZGVyPlxuICAgICAgPC90aD5cbiAgICAgIDx0aD5cbiAgICAgICAgPGh2eS1wcm9jZWR1cmUtY29sdW1uLW9yZGVyIGZpZWxkPVwiaWRcIj57eyAnQGh2eS5wcm9jZWR1cmUuaWQnIHwgaTE4biB9fTwvaHZ5LXByb2NlZHVyZS1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LXByb2NlZHVyZS1jb2x1bW4tb3JkZXIgZmllbGQ9XCJjcmVhdGlvbkRhdGVcIj57eyAnQGh2eS5ldmVudC5jcmVhdGlvbkRhdGUnIHwgaTE4biB9fTwvaHZ5LXByb2NlZHVyZS1jb2x1bW4tb3JkZXI+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPlxuICAgICAgICA8aHZ5LXByb2NlZHVyZS1jb2x1bW4tb3JkZXIgZmllbGQ9XCJsYXN0TW9kaWZpY2F0aW9uRGF0ZVwiPjxzcGFuPnt7ICdAaHZ5LmV2ZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlJyB8IGkxOG4gfX08L3NwYW4+PC9odnktcHJvY2VkdXJlLWNvbHVtbi1vcmRlcj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+PC90aD5cbiAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgQGZvciAocHJvY2VkdXJlIG9mIHByb2NlZHVyZXMkIHwgYXN5bmM7IHRyYWNrIHByb2NlZHVyZS5pZCkge1xuICAgICAgICA8dHIgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVcIiAoY2xpY2spPVwiZ29Ubyhwcm9jZWR1cmUpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsXCI+e3sgcHJvY2VkdXJlLnVzZUNvdW50IH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxcIj57eyBwcm9jZWR1cmUubmFtZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsXCI+e3sgcHJvY2VkdXJlLmRvbWFpbiB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiby1odnktZXZlbnRzLXRhYmxlX19saW5lX19jZWxsIC1jZW50ZXJlZFwiPnt7IHByb2NlZHVyZS5jcmVhdG9yIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJvLWh2eS1ldmVudHMtdGFibGVfX2xpbmVfX2NlbGxcIj57eyBwcm9jZWR1cmUuaWQgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPnt7IHByb2NlZHVyZS5jcmVhdGlvbkRhdGV8IGRhdGUgOiAnZGQvbW0vWVlZWSBISDpNTScgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPnt7IHByb2NlZHVyZS5sYXN0TW9kaWZpY2F0aW9uRGF0ZSB8IGRhdGUgOiAnZGQvbW0vWVlZWSBISDpNTScgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fbGluZV9fY2VsbFwiPlxuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiUFJPQ0VEVVJFX0xJTksuZm4ocHJvY2VkdXJlLCBzdG9yZSlcIj4+IHt7ICdAaHZ5LmFjdGlvbi5jb25zdWx0JyB8IGkxOG4gfX08L2E+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm8taHZ5LWV2ZW50cy10YWJsZV9fZW1wdHlcIiBjb2xzcGFuPVwiNTBcIj5cbiAgICAgICAgICAgIDxkaXY+e3sgJ0BodnkucHJvY2VkdXJlLm5vQ29udGVudCcgfCBpMThuIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgfVxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==