@provoly/hypervisor 0.0.110 → 0.0.111

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 (21) hide show
  1. package/esm2022/src/lib/event/detail/event-detail.component.mjs +8 -5
  2. package/esm2022/src/lib/event/procedure-association-modal/procedure-association-modal.component.mjs +1 -1
  3. package/esm2022/src/lib/event-summary/page/event-summary-page.component.mjs +1 -1
  4. package/esm2022/src/lib/general/procedure-actions/action-parameters/email/email-action-display.component.mjs +3 -3
  5. package/esm2022/src/lib/general/procedure-actions/action-parameters/no-param/no-params-action-display.component.mjs +3 -3
  6. package/esm2022/src/lib/general/procedure-actions/action-parameters/other/other-action-display.component.mjs +3 -3
  7. package/esm2022/src/lib/general/procedure-actions/action-parameters/phone/phone-action-display.component.mjs +3 -3
  8. package/esm2022/src/lib/general/procedure-actions/action-parameters/service/create-service.component.mjs +1 -1
  9. package/esm2022/src/lib/general/procedure-actions/action-parameters/service/service-action-display.component.mjs +3 -3
  10. package/esm2022/src/lib/general/procedure-actions/procedure-actions.component.mjs +4 -4
  11. package/esm2022/src/lib/model/procedure/hyp-procedure.interface.mjs +1 -1
  12. package/esm2022/src/lib/procedure/model-detail/procedure-model-detail.component.mjs +1 -1
  13. package/esm2022/src/lib/store/event/event.service.mjs +10 -3
  14. package/fesm2022/provoly-hypervisor.mjs +31 -22
  15. package/fesm2022/provoly-hypervisor.mjs.map +1 -1
  16. package/package.json +2 -2
  17. package/src/lib/event/detail/event-detail.component.d.ts +1 -0
  18. package/src/lib/model/procedure/hyp-procedure.interface.d.ts +2 -0
  19. package/styles/components/_o-hvy-comments.scss +8 -1
  20. package/styles/components/_o-hvy-event-detail.scss +3 -2
  21. package/styles/components/_o-hvy-events-table.scss +4 -0
@@ -46,7 +46,7 @@ export class EventSummaryPageComponent extends SubscriptionnerDirective {
46
46
  this.store.dispatch(EventSummaryActions.load());
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventSummaryPageComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: EventSummaryPageComponent, selector: "hvy-event-summary-page", inputs: { pageTitle: "pageTitle", consultLink: "consultLink", doNotRedirectToDetail: "doNotRedirectToDetail" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-summary-page\">\n <div class=\"o-hvy-event-summary-page__header u-display-flex -justify-space-between\">\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\"\n >{{ '@hvy.event.criticality.name' | i18n }} :&nbsp;</label\n >\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 (summaryKey of statusList; track summaryKey) {\n @if (summaries[summaryKey]) {\n <hvy-event-summary-list\n class=\"o-hvy-event-summary-page__summary-list\"\n [status]=\"summaryKey\"\n [totalEventCount]=\"summaries[summaryKey].count ?? 0\"\n [events]=\"summaries[summaryKey].events\"\n [consultLink]=\"consultLink\"\n [doNotRedirectToDetail]=\"doNotRedirectToDetail\"\n >\n </hvy-event-summary-list>\n }\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", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i4.EventSummaryListComponent, selector: "hvy-event-summary-list", inputs: ["events", "totalEventCount", "status", "consultLink", "itemLinkBase", "doNotRedirectToDetail"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: EventSummaryPageComponent, selector: "hvy-event-summary-page", inputs: { pageTitle: "pageTitle", consultLink: "consultLink", doNotRedirectToDetail: "doNotRedirectToDetail" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-event-summary-page\">\n <div class=\"o-hvy-event-summary-page__header u-display-flex -justify-space-between\">\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\"\n >{{ '@hvy.event.criticality.name' | i18n }} :&nbsp;</label\n >\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 (summaryKey of statusList; track summaryKey) {\n @if (summaries[summaryKey]) {\n <hvy-event-summary-list\n class=\"o-hvy-event-summary-page__summary-list\"\n [status]=\"summaryKey\"\n [totalEventCount]=\"summaries[summaryKey].count ?? 0\"\n [events]=\"summaries[summaryKey].events\"\n [consultLink]=\"consultLink\"\n [doNotRedirectToDetail]=\"doNotRedirectToDetail\"\n >\n </hvy-event-summary-list>\n }\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", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i4.EventSummaryListComponent, selector: "hvy-event-summary-list", inputs: ["events", "totalEventCount", "status", "consultLink", "itemLinkBase", "doNotRedirectToDetail"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventSummaryPageComponent, decorators: [{
52
52
  type: Component,
@@ -7,10 +7,10 @@ export class HvyEmailActionDisplayComponent extends HvyBaseParameterActionCompon
7
7
  super();
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyEmailActionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyEmailActionDisplayComponent, selector: "hvy-email-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.at' | i18n }} <b>{{ action.email | i18n }}</b>\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyEmailActionDisplayComponent, selector: "hvy-email-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.at' | i18n }} <b>{{ action.email | i18n }}</b>\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyEmailActionDisplayComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'hvy-email-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.at' | i18n }} <b>{{ action.email | i18n }}</b>\n </p>\n</div>\n" }]
14
+ args: [{ selector: 'hvy-email-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.at' | i18n }} <b>{{ action.email | i18n }}</b>\n </p>\n</div>\n" }]
15
15
  }], ctorParameters: () => [] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9lbWFpbC9lbWFpbC1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL2VtYWlsL2VtYWlsLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVlyRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsK0JBQStDO0lBQ2pHO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVGQ2IzQyw0TkFNQTs7MkZET2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBFbWFpbEFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWVtYWlsLWFjdGlvbi1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtYWlsLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlFbWFpbEFjdGlvbkRpc3BsYXlDb21wb25lbnQgZXh0ZW5kcyBIdnlCYXNlUGFyYW1ldGVyQWN0aW9uQ29tcG9uZW50PEh5cEVtYWlsQWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fSA8Yj57eyBhY3Rpb24ubmFtZSB8IGkxOG4gfX08L2I+XG4gICAge3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi5hdCcgfCBpMThuIH19IDxiPnt7IGFjdGlvbi5lbWFpbCB8IGkxOG4gfX08L2I+XG4gIDwvcD5cbjwvZGl2PlxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9lbWFpbC9lbWFpbC1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL2VtYWlsL2VtYWlsLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVlyRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsK0JBQStDO0lBQ2pHO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVGQ2IzQyxxT0FNQTs7MkZET2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBFbWFpbEFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWVtYWlsLWFjdGlvbi1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtYWlsLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlFbWFpbEFjdGlvbkRpc3BsYXlDb21wb25lbnQgZXh0ZW5kcyBIdnlCYXNlUGFyYW1ldGVyQWN0aW9uQ29tcG9uZW50PEh5cEVtYWlsQWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucXVlc3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fSA8Yj57eyBhY3Rpb24ubmFtZSB8IGkxOG4gfX08L2I+XG4gICAge3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi5hdCcgfCBpMThuIH19IDxiPnt7IGFjdGlvbi5lbWFpbCB8IGkxOG4gfX08L2I+XG4gIDwvcD5cbjwvZGl2PlxuIl19
@@ -7,10 +7,10 @@ export class HvyNoParamsActionDisplayComponent extends HvyBaseParameterActionCom
7
7
  super();
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyNoParamsActionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyNoParamsActionDisplayComponent, selector: "hvy-no-params-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }}\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyNoParamsActionDisplayComponent, selector: "hvy-no-params-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }}\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyNoParamsActionDisplayComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'hvy-no-params-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }}\n </p>\n</div>\n" }]
14
+ args: [{ selector: 'hvy-no-params-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }}\n </p>\n</div>\n" }]
15
15
  }], ctorParameters: () => [] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcGFyYW1zLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvbm8tcGFyYW0vbm8tcGFyYW1zLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvbm8tcGFyYW0vbm8tcGFyYW1zLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQU9yRixNQUFNLE9BQU8saUNBQWtDLFNBQVEsK0JBQTBDO0lBQy9GO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLGlDQUFpQztrR0FBakMsaUNBQWlDLDJGQ1I5Qyw4R0FLQTs7MkZER2EsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LW5vLXBhcmFtcy1hY3Rpb24tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uby1wYXJhbXMtYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEh2eU5vUGFyYW1zQWN0aW9uRGlzcGxheUNvbXBvbmVudCBleHRlbmRzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwQWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fVxuICA8L3A+XG48L2Rpdj5cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcGFyYW1zLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvbm8tcGFyYW0vbm8tcGFyYW1zLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvbm8tcGFyYW0vbm8tcGFyYW1zLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQU9yRixNQUFNLE9BQU8saUNBQWtDLFNBQVEsK0JBQTBDO0lBQy9GO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLGlDQUFpQztrR0FBakMsaUNBQWlDLDJGQ1I5Qyx1SEFLQTs7MkZER2EsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNFLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LW5vLXBhcmFtcy1hY3Rpb24tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uby1wYXJhbXMtYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEh2eU5vUGFyYW1zQWN0aW9uRGlzcGxheUNvbXBvbmVudCBleHRlbmRzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwQWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucXVlc3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fVxuICA8L3A+XG48L2Rpdj5cbiJdfQ==
@@ -7,10 +7,10 @@ export class HvyOtherActionDisplayComponent extends HvyBaseParameterActionCompon
7
7
  super();
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyOtherActionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyOtherActionDisplayComponent, selector: "hvy-other-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }}: <b>{{ action.name | i18n }}</b>\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyOtherActionDisplayComponent, selector: "hvy-other-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} : <b>{{ action.name | i18n }}</b>\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyOtherActionDisplayComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'hvy-other-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }}: <b>{{ action.name | i18n }}</b>\n </p>\n</div>\n" }]
14
+ args: [{ selector: 'hvy-other-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} : <b>{{ action.name | i18n }}</b>\n </p>\n</div>\n" }]
15
15
  }], ctorParameters: () => [] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RoZXItYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9vdGhlci9vdGhlci1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL290aGVyL290aGVyLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVdyRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsK0JBQStDO0lBQ2pHO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVGQ1ozQywrSUFLQTs7MkZET2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBPdGhlckFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LW90aGVyLWFjdGlvbi1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL290aGVyLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlPdGhlckFjdGlvbkRpc3BsYXlDb21wb25lbnQgZXh0ZW5kcyBIdnlCYXNlUGFyYW1ldGVyQWN0aW9uQ29tcG9uZW50PEh5cE90aGVyQWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fTogPGI+e3sgYWN0aW9uLm5hbWUgfCBpMThuIH19PC9iPlxuICA8L3A+XG48L2Rpdj5cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RoZXItYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9vdGhlci9vdGhlci1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL290aGVyL290aGVyLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVdyRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsK0JBQStDO0lBQ2pHO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVGQ1ozQyx5SkFLQTs7MkZET2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBPdGhlckFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LW90aGVyLWFjdGlvbi1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL290aGVyLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlPdGhlckFjdGlvbkRpc3BsYXlDb21wb25lbnQgZXh0ZW5kcyBIdnlCYXNlUGFyYW1ldGVyQWN0aW9uQ29tcG9uZW50PEh5cE90aGVyQWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucXVlc3Rpb24uJyArIGFjdGlvbi50eXBlIHwgaTE4biB9fSA6IDxiPnt7IGFjdGlvbi5uYW1lIHwgaTE4biB9fTwvYj5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
@@ -7,10 +7,10 @@ export class HvyPhoneActionDisplayComponent extends HvyBaseParameterActionCompon
7
7
  super();
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyPhoneActionDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyPhoneActionDisplayComponent, selector: "hvy-phone-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.to' | i18n }} <b>{{ action.number | i18n }}</b>\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyPhoneActionDisplayComponent, selector: "hvy-phone-action-display", usesInheritance: true, ngImport: i0, template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.to' | i18n }} <b>{{ action.number | i18n }}</b>\n </p>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyPhoneActionDisplayComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'hvy-phone-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.to' | i18n }} <b>{{ action.number | i18n }}</b>\n </p>\n</div>\n" }]
14
+ args: [{ selector: 'hvy-phone-action-display', template: "<div class=\"param-line\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} <b>{{ action.name | i18n }}</b>\n {{ '@hvy.procedure.action.to' | i18n }} <b>{{ action.number | i18n }}</b>\n </p>\n</div>\n" }]
15
15
  }], ctorParameters: () => [] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9waG9uZS9waG9uZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3Bob25lL3Bob25lLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVlyRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsK0JBQStDO0lBQ2pHO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVGQ2IzQyw2TkFNQTs7MkZET2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBQaG9uZUFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtYmVyOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1waG9uZS1hY3Rpb24tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSHZ5UGhvbmVBY3Rpb25EaXNwbGF5Q29tcG9uZW50IGV4dGVuZHMgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudDxIeXBQaG9uZUFjdGlvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFyYW0tbGluZVwiPlxuICA8cD5cbiAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLicgKyBhY3Rpb24udHlwZSB8IGkxOG4gfX0gPGI+e3sgYWN0aW9uLm5hbWUgfCBpMThuIH19PC9iPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24udG8nIHwgaTE4biB9fSA8Yj57eyBhY3Rpb24ubnVtYmVyIHwgaTE4biB9fTwvYj5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYWN0aW9uLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9waG9uZS9waG9uZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3Bob25lL3Bob25lLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVlyRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsK0JBQStDO0lBQ2pHO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzhHQUhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHVGQ2IzQyxzT0FNQTs7MkZET2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtcGFyYW1ldGVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwvcHJvY2VkdXJlL2h5cC1hY3Rpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBQaG9uZUFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtYmVyOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1waG9uZS1hY3Rpb24tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSHZ5UGhvbmVBY3Rpb25EaXNwbGF5Q29tcG9uZW50IGV4dGVuZHMgSHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudDxIeXBQaG9uZUFjdGlvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFyYW0tbGluZVwiPlxuICA8cD5cbiAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnF1ZXN0aW9uLicgKyBhY3Rpb24udHlwZSB8IGkxOG4gfX0gPGI+e3sgYWN0aW9uLm5hbWUgfCBpMThuIH19PC9iPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24udG8nIHwgaTE4biB9fSA8Yj57eyBhY3Rpb24ubnVtYmVyIHwgaTE4biB9fTwvYj5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
@@ -95,7 +95,7 @@ export class HvyCreateServiceComponent {
95
95
  this.dialog.close({ value: 'cancel' });
96
96
  }
97
97
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyCreateServiceComponent, deps: [{ token: i1.PryDialogRef }, { token: PRY_DIALOG_DATA }, { token: i2.EquipmentService }, { token: i3.ServiceService }, { token: i1.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyCreateServiceComponent, selector: "pry-create-service", ngImport: i0, template: "<div class=\"o-hvy-create-service\">\n <h3>{{ '@hvy.service.title' | i18n }}</h3>\n <span>{{ '@hvy.service.subtitle' | i18n }}</span>\n <div class=\"o-hvy-create-service__reason m-form-label-field\">\n <label>{{ '@hvy.service.reason' | i18n }} <span class=\"required\">*</span> :</label>\n <input class=\"a-form-field\" type=\"text\" [(ngModel)]=\"result.name\" [class.-error]=\"hasError('name')\" />\n </div>\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.service.target' | i18n }} <span class=\"required\">*</span> :</label>\n <pry-select\n [items]=\"equipments$ | async\"\n [ngModel]=\"result.equipment\"\n (ngModelChange)=\"onEquipmentChange($event)\"\n [placeholder]=\"'' | i18n\"\n [class.-error]=\"hasError('target')\"\n bindValue=\"id\"\n bindLabel=\"displayName\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field o-hvy-create-service__priority-nature\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.service.priority' | i18n }} <span class=\"required\">*</span> :</label>\n <pry-select\n [items]=\"priorities\"\n [ngModel]=\"result.priority\"\n (ngModelChange)=\"onPriorityChange($event)\"\n [placeholder]=\"'' | i18n\"\n [class.-error]=\"hasError('priority')\"\n i18nPrefix=\"@hvy.service.priorities.\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.service.type' | i18n }} <span class=\"required\">*</span> :</label>\n <pry-select\n [items]=\"types\"\n [ngModel]=\"result.type\"\n (ngModelChange)=\"onTypeChange($event)\"\n [placeholder]=\"'' | i18n\"\n [class.-error]=\"hasError('type')\"\n bindLabel=\"name\"\n bindValue=\"name\"\n ></pry-select>\n </div>\n </div>\n <div class=\"o-hvy-create-service__hours m-form-label-field\">\n <div class=\"o-hvy-create-service__hours__element\">\n <label for=\"gti\">{{ '@hvy.service.gti' | i18n }}</label>\n <input id=\"gti\" class=\"a-form-field\" type=\"text\" [ngModel]=\"result.gti ?? '-'\" readonly [disabled]=\"true\" />\n </div>\n <div class=\"o-hvy-create-service__hours__element\">\n <label for=\"gtr\">{{ '@hvy.service.gtr' | i18n }}</label>\n <input id=\"gtr\" class=\"a-form-field\" type=\"text\" [ngModel]=\"result.gtr ?? '-'\" readonly [disabled]=\"true\" />\n </div>\n <div class=\"o-hvy-create-service__hours__element\">\n <label for=\"gtrp\">{{ '@hvy.service.gtrp' | i18n }}</label>\n <input id=\"gtrp\" type=\"text\" class=\"a-form-field\" [ngModel]=\"result.gtrp ?? '-'\" readonly [disabled]=\"true\" />\n </div>\n </div>\n <div class=\"o-hvy-create-service__description m-form-label-field\">\n <label for=\"description\">{{ '@hvy.service.description' | i18n }} <span class=\"required\">*</span> :</label>\n <textarea\n [ngModel]=\"result.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"onDescriptionChange($event)\"\n [maxLength]=\"256\"\n id=\"description\"\n ></textarea>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"this.errors.length !== 0\" (click)=\"createDI()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.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: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyCreateServiceComponent, selector: "pry-create-service", ngImport: i0, template: "<div class=\"o-hvy-create-service\">\n <h3>{{ '@hvy.service.title' | i18n }}</h3>\n <span>{{ '@hvy.service.subtitle' | i18n }}</span>\n <div class=\"o-hvy-create-service__reason m-form-label-field\">\n <label>{{ '@hvy.service.reason' | i18n }} <span class=\"required\">*</span> :</label>\n <input class=\"a-form-field\" type=\"text\" [(ngModel)]=\"result.name\" [class.-error]=\"hasError('name')\" />\n </div>\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.service.target' | i18n }} <span class=\"required\">*</span> :</label>\n <pry-select\n [items]=\"equipments$ | async\"\n [ngModel]=\"result.equipment\"\n (ngModelChange)=\"onEquipmentChange($event)\"\n [placeholder]=\"'' | i18n\"\n [class.-error]=\"hasError('target')\"\n bindValue=\"id\"\n bindLabel=\"displayName\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field o-hvy-create-service__priority-nature\">\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.service.priority' | i18n }} <span class=\"required\">*</span> :</label>\n <pry-select\n [items]=\"priorities\"\n [ngModel]=\"result.priority\"\n (ngModelChange)=\"onPriorityChange($event)\"\n [placeholder]=\"'' | i18n\"\n [class.-error]=\"hasError('priority')\"\n i18nPrefix=\"@hvy.service.priorities.\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label>{{ '@hvy.service.type' | i18n }} <span class=\"required\">*</span> :</label>\n <pry-select\n [items]=\"types\"\n [ngModel]=\"result.type\"\n (ngModelChange)=\"onTypeChange($event)\"\n [placeholder]=\"'' | i18n\"\n [class.-error]=\"hasError('type')\"\n bindLabel=\"name\"\n bindValue=\"name\"\n ></pry-select>\n </div>\n </div>\n <div class=\"o-hvy-create-service__hours m-form-label-field\">\n <div class=\"o-hvy-create-service__hours__element\">\n <label for=\"gti\">{{ '@hvy.service.gti' | i18n }}</label>\n <input id=\"gti\" class=\"a-form-field\" type=\"text\" [ngModel]=\"result.gti ?? '-'\" readonly [disabled]=\"true\" />\n </div>\n <div class=\"o-hvy-create-service__hours__element\">\n <label for=\"gtr\">{{ '@hvy.service.gtr' | i18n }}</label>\n <input id=\"gtr\" class=\"a-form-field\" type=\"text\" [ngModel]=\"result.gtr ?? '-'\" readonly [disabled]=\"true\" />\n </div>\n <div class=\"o-hvy-create-service__hours__element\">\n <label for=\"gtrp\">{{ '@hvy.service.gtrp' | i18n }}</label>\n <input id=\"gtrp\" type=\"text\" class=\"a-form-field\" [ngModel]=\"result.gtrp ?? '-'\" readonly [disabled]=\"true\" />\n </div>\n </div>\n <div class=\"o-hvy-create-service__description m-form-label-field\">\n <label for=\"description\">{{ '@hvy.service.description' | i18n }} <span class=\"required\">*</span> :</label>\n <textarea\n [ngModel]=\"result.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"onDescriptionChange($event)\"\n [maxLength]=\"256\"\n id=\"description\"\n ></textarea>\n </div>\n <div class=\"o-hvy-association-modal__buttons u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"this.errors.length !== 0\" (click)=\"createDI()\">\n {{ '@hvy.action.validate' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">{{ '@hvy.action.cancel' | i18n }}</button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.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: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
99
99
  }
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyCreateServiceComponent, decorators: [{
101
101
  type: Component,
@@ -40,13 +40,13 @@ export class HvyServiceActionDisplayComponent extends HvyBaseParameterActionComp
40
40
  });
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyServiceActionDisplayComponent, deps: [{ token: i1.PryDialogService }, { token: i2.Overlay }, { token: i3.ServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyServiceActionDisplayComponent, selector: "hvy-service-action-display", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }}: <b>{{ action.serviceExternalId ?? action.name }}</b>\n </p>\n <button class=\"a-link\" (click)=\"toggleModal()\" #menuButton>> {{ '@hvy.action.create' | i18n }}</button>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HvyServiceActionDisplayComponent, selector: "hvy-service-action-display", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} : <b>{{ action.serviceExternalId ?? action.name }}</b>\n </p>\n <button class=\"a-link\" (click)=\"toggleModal()\" #menuButton>> {{ '@hvy.action.create' | i18n }}</button>\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HvyServiceActionDisplayComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'hvy-service-action-display', template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.' + action.type | i18n }}: <b>{{ action.serviceExternalId ?? action.name }}</b>\n </p>\n <button class=\"a-link\" (click)=\"toggleModal()\" #menuButton>> {{ '@hvy.action.create' | i18n }}</button>\n</div>\n" }]
47
+ args: [{ selector: 'hvy-service-action-display', template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.question.' + action.type | i18n }} : <b>{{ action.serviceExternalId ?? action.name }}</b>\n </p>\n <button class=\"a-link\" (click)=\"toggleModal()\" #menuButton>> {{ '@hvy.action.create' | i18n }}</button>\n</div>\n" }]
48
48
  }], ctorParameters: () => [{ type: i1.PryDialogService }, { type: i2.Overlay }, { type: i3.ServiceService }], propDecorators: { menuButton: [{
49
49
  type: ViewChild,
50
50
  args: ['menuButton', { read: ElementRef }]
51
51
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3NlcnZpY2Uvc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3NlcnZpY2Uvc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFXcEMsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLCtCQUFpRDtJQUdyRyxZQUNVLFNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLGNBQThCO1FBRXRDLEtBQUssRUFBRSxDQUFDO1FBSkEsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFnQ3JCLFFBQUcsR0FBRyxHQUFHLENBQUM7SUE3QjdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDL0QsYUFBYSxFQUFFO2dCQUNiLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDcEMsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTthQUMzRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQW9DLEVBQUUsRUFBRTtZQUNsRixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxJQUFJO29CQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzdHLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLE1BQU07WUFDVixDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBDVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx1SkFDVixVQUFVLG9EQ25CN0MsNlJBTUE7OzJGRFlhLGdDQUFnQztrQkFKNUMsU0FBUzsrQkFDRSw0QkFBNEI7d0lBSVMsVUFBVTtzQkFBeEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXBhcmFtZXRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jcmVhdGUtc2VydmljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwU2VydmljZSwgU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBhY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBTZXJ2aWNlQWN0aW9uIGV4dGVuZHMgSHlwQWN0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlRXh0ZXJuYWxJZDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktc2VydmljZS1hY3Rpb24tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlTZXJ2aWNlQWN0aW9uRGlzcGxheUNvbXBvbmVudCBleHRlbmRzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwU2VydmljZUFjdGlvbj4ge1xuICBAVmlld0NoaWxkKCdtZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1lbnVCdXR0b24hOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJ5RGlhbG9nOiBQcnlEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHNlcnZpY2VTZXJ2aWNlOiBTZXJ2aWNlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgdG9nZ2xlTW9kYWwoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5wcnlEaWFsb2cub3BlbihIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50LCB7XG4gICAgICBvdmVybGF5Q29uZmlnOiB7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ3ByeS1kaWFsb2ctY29udGFpbmVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcC1kYXJrJyxcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpXG4gICAgICB9LFxuICAgICAgZGF0YToge1xuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuY2xvc2VWYWx1ZS5zdWJzY3JpYmUoKHR5cGU6IEh5cFNlcnZpY2UgJiB7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ29rJzpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VTZXJ2aWNlLmNyZWF0ZSh0eXBlLCB0aGlzLmFjdGlvbi5pZCkuc3Vic2NyaWJlKChuYW1lKSA9PiAodGhpcy5hY3Rpb24uc2VydmljZUV4dGVybmFsSWQgPSBuYW1lKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NhbmNlbCc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdCA9IGFjdDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lIC12ZXJ0aWNhbFwiPlxuICA8cD5cbiAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLicgKyBhY3Rpb24udHlwZSB8IGkxOG4gfX06IDxiPnt7IGFjdGlvbi5zZXJ2aWNlRXh0ZXJuYWxJZCA/PyBhY3Rpb24ubmFtZSB9fTwvYj5cbiAgPC9wPlxuICA8YnV0dG9uIGNsYXNzPVwiYS1saW5rXCIgKGNsaWNrKT1cInRvZ2dsZU1vZGFsKClcIiAjbWVudUJ1dHRvbj4+IHt7ICdAaHZ5LmFjdGlvbi5jcmVhdGUnIHwgaTE4biB9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3NlcnZpY2Uvc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3NlcnZpY2Uvc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFXcEMsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLCtCQUFpRDtJQUdyRyxZQUNVLFNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLGNBQThCO1FBRXRDLEtBQUssRUFBRSxDQUFDO1FBSkEsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFnQ3JCLFFBQUcsR0FBRyxHQUFHLENBQUM7SUE3QjdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDL0QsYUFBYSxFQUFFO2dCQUNiLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDcEMsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTthQUMzRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQW9DLEVBQUUsRUFBRTtZQUNsRixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxJQUFJO29CQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzdHLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLE1BQU07WUFDVixDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBDVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx1SkFDVixVQUFVLG9EQ25CN0MsdVNBTUE7OzJGRFlhLGdDQUFnQztrQkFKNUMsU0FBUzsrQkFDRSw0QkFBNEI7d0lBSVMsVUFBVTtzQkFBeEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXBhcmFtZXRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jcmVhdGUtc2VydmljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwU2VydmljZSwgU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZXJ2aWNlL3NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBhY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBIeXBTZXJ2aWNlQWN0aW9uIGV4dGVuZHMgSHlwQWN0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlRXh0ZXJuYWxJZDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdodnktc2VydmljZS1hY3Rpb24tZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWFjdGlvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlTZXJ2aWNlQWN0aW9uRGlzcGxheUNvbXBvbmVudCBleHRlbmRzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwU2VydmljZUFjdGlvbj4ge1xuICBAVmlld0NoaWxkKCdtZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1lbnVCdXR0b24hOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJ5RGlhbG9nOiBQcnlEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHNlcnZpY2VTZXJ2aWNlOiBTZXJ2aWNlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgdG9nZ2xlTW9kYWwoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5wcnlEaWFsb2cub3BlbihIdnlDcmVhdGVTZXJ2aWNlQ29tcG9uZW50LCB7XG4gICAgICBvdmVybGF5Q29uZmlnOiB7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ3ByeS1kaWFsb2ctY29udGFpbmVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcC1kYXJrJyxcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpXG4gICAgICB9LFxuICAgICAgZGF0YToge1xuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuY2xvc2VWYWx1ZS5zdWJzY3JpYmUoKHR5cGU6IEh5cFNlcnZpY2UgJiB7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ29rJzpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VTZXJ2aWNlLmNyZWF0ZSh0eXBlLCB0aGlzLmFjdGlvbi5pZCkuc3Vic2NyaWJlKChuYW1lKSA9PiAodGhpcy5hY3Rpb24uc2VydmljZUV4dGVybmFsSWQgPSBuYW1lKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NhbmNlbCc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdCA9IGFjdDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJwYXJhbS1saW5lIC12ZXJ0aWNhbFwiPlxuICA8cD5cbiAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnF1ZXN0aW9uLicgKyBhY3Rpb24udHlwZSB8IGkxOG4gfX0gOiA8Yj57eyBhY3Rpb24uc2VydmljZUV4dGVybmFsSWQgPz8gYWN0aW9uLm5hbWUgfX08L2I+XG4gIDwvcD5cbiAgPGJ1dHRvbiBjbGFzcz1cImEtbGlua1wiIChjbGljayk9XCJ0b2dnbGVNb2RhbCgpXCIgI21lbnVCdXR0b24+PiB7eyAnQGh2eS5hY3Rpb24uY3JlYXRlJyB8IGkxOG4gfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -3,7 +3,7 @@ import { SubscriptionnerDirective } from '@provoly/dashboard';
3
3
  import { v4 } from 'uuid';
4
4
  import { HvyActionMenuComponent } from './action-menu.component';
5
5
  import { ACTIONS_TYPES } from './actions-types.constant';
6
- import { BehaviorSubject, combineLatest, mergeMap, Subject } from 'rxjs';
6
+ import { BehaviorSubject, combineLatest, filter, mergeMap, shareReplay, Subject } from 'rxjs';
7
7
  import { map, startWith } from 'rxjs/operators';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@provoly/dashboard";
@@ -35,7 +35,7 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
35
35
  this.model = model;
36
36
  this.ACTIONS_TYPES = Object.keys(ACTIONS_TYPES.values);
37
37
  this.ACTIONS_TYPES.sort((a, b) => ACTIONS_TYPES.values[a].order - ACTIONS_TYPES.values[b].order);
38
- this.comments$ = this.triggerComment$.pipe(mergeMap(() => combineLatest(this._actions.map((action) => this.commentsService.get(action.id, 'actions').pipe(map((comments) => ({ [action.id]: comments }))))).pipe(map((all) => all.reduce((p, c) => ({ ...p, ...c }), {})))), startWith({}));
38
+ this.comments$ = this.triggerComment$.pipe(filter(() => this.mode === 'procedure'), mergeMap(() => combineLatest(this._actions.map((action) => this.commentsService.get(action.id, 'actions').pipe(map((comments) => ({ [action.id]: comments }))))).pipe(map((all) => all.reduce((p, c) => ({ ...p, ...c }), {})))), startWith({}), shareReplay());
39
39
  }
40
40
  set actions(actions) {
41
41
  this._actions = JSON.parse(JSON.stringify(actions ?? []));
@@ -182,7 +182,7 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
182
182
  });
183
183
  }
184
184
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureActionsComponent, deps: [{ token: i1.PryDialogService }, { token: i2.Overlay }, { token: i3.HypCommentsService }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: { mode: "mode", me: "me", readonly: "readonly", enableEditActions: "enableEditActions", actions: "actions" }, outputs: { modified: "modified" }, viewQueries: [{ propertyName: "menuButtons", predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-hvy-events-detail__procedure__actions\"\n (drag)=\"move($event)\"\n (drop)=\"drop($event)\"\n (dragover)=\"allowDrop($event)\"\n>\n @for (action of actions; track action.id; let idx = $index) {\n <div\n class=\"o-hvy-events-detail__procedure__actions__action\"\n [draggable]=\"isDraggable(action) && !readonly\"\n (dragstart)=\"dragStart($event, action, idx)\"\n (mousedown)=\"onMouseDown($event)\"\n [class.-updating]=\"!!action._status\"\n [class.-other-updating]=\"editing\"\n >\n <div class=\"o-hvy-events-detail__procedure__actions__action__header\">\n @if (this.enableEditActions) {\n <pry-icon\n iconSvg=\"six_dot\"\n #handle\n [class.-disabled]=\"!isDraggable(action)\"\n [class.-hidden]=\"action._status || readonly\"\n class=\"grabbable\"\n ></pry-icon>\n }\n <div class=\"number-badge\">{{ idx + 1 }}</div>\n @if (!action._status || readonly) {\n @if (mode === 'procedure') {\n <pry-checkbox\n [ngModel]=\"action.status !== 'NEW'\"\n (click)=\"toggleActionStatus(idx, $event)\"\n [disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n ></pry-checkbox>\n }\n <div [class.-done]=\"action.status === 'DONE'\" [class.-disabled]=\"editing\">\n <hvy-action-parameter [action]=\"action\" [type]=\"action.type\" [isParam]=\"false\"></hvy-action-parameter>\n </div>\n @if (!readonly) {\n <button class=\"a-btn a-btn--icon-only\" (click)=\"openModal(action, idx)\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"more_horiz\" #menuButton></pry-icon>\n </button>\n }\n } @else {\n <div class=\"o-hvy-events-detail__procedure__actions__action__create\">\n <div class=\"o-hvy-events-detail__procedure__actions__action__create__header\">\n <p>{{ '@hvy.procedure.action.' + action._status | i18n }}</p>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"saveAction(action, idx)\" [disabled]=\"!isValid(action)\">\n <pry-icon iconSvg=\"check\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction(action, idx)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div>\n <pry-select\n [ngModel]=\"action.type\"\n [items]=\"ACTIONS_TYPES\"\n (ngModelChange)=\"update(idx, 'type', $event)\"\n i18nPrefix=\"@hvy.procedure.action.\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.action' | i18n\"\n ></pry-select>\n </div>\n <hvy-action-parameter [action]=\"action\" [type]=\"action.type\" [isParam]=\"true\"></hvy-action-parameter>\n </div>\n }\n </div>\n @if ((comments$ | async) ? (comments$ | async)![action.id] : []; as comments) {\n <hvy-comments\n [comments]=\"comments\"\n [readonly]=\"readonly\"\n (commented)=\"updateComment(action, $event)\"\n [type]=\"'actions'\"\n [trigger]=\"triggers[action.id]\"\n [displayEmpty]=\"false\"\n [me]=\"me\"\n ></hvy-comments>\n }\n </div>\n } @empty {\n @if (actions.length === 0) {\n <div>{{ '@hvy.event.log.procedure.noAction' | i18n }}</div>\n }\n }\n @if (!readonly && enableEditActions) {\n <div class=\"o-hvy-events-detail__procedure__button\">\n <button class=\"a-btn a-btn--primary\" (click)=\"add()\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.procedure.action.add' | i18n }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { 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: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i6.HvyActionParameterComponent, selector: "hvy-action-parameter", inputs: ["isParam", "type", "action"] }, { kind: "component", type: i7.HvyCommentsComponent, selector: "hvy-comments", inputs: ["readonly", "me", "type", "displayEmpty", "comments", "trigger"], outputs: ["commented"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: { mode: "mode", me: "me", readonly: "readonly", enableEditActions: "enableEditActions", actions: "actions" }, outputs: { modified: "modified" }, viewQueries: [{ propertyName: "menuButtons", predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-hvy-events-detail__procedure__actions\"\n (drag)=\"move($event)\"\n (drop)=\"drop($event)\"\n (dragover)=\"allowDrop($event)\"\n>\n @for (action of actions; track action.id; let idx = $index) {\n <div\n class=\"o-hvy-events-detail__procedure__actions__action\"\n [draggable]=\"isDraggable(action) && !readonly\"\n (dragstart)=\"dragStart($event, action, idx)\"\n (mousedown)=\"onMouseDown($event)\"\n [class.-updating]=\"!!action._status\"\n [class.-other-updating]=\"editing\"\n >\n <div class=\"o-hvy-events-detail__procedure__actions__action__header\">\n @if (this.enableEditActions) {\n <pry-icon\n iconSvg=\"six_dot\"\n #handle\n [class.-disabled]=\"!isDraggable(action)\"\n [class.-hidden]=\"action._status || readonly\"\n class=\"grabbable\"\n ></pry-icon>\n }\n <div class=\"number-badge\">{{ idx + 1 }}</div>\n @if (!action._status || readonly) {\n @if (mode === 'procedure') {\n <pry-checkbox\n [ngModel]=\"action.status !== 'NEW'\"\n (click)=\"toggleActionStatus(idx, $event)\"\n [disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n ></pry-checkbox>\n }\n <div [class.-done]=\"action.status === 'DONE'\" [class.-disabled]=\"editing\">\n <hvy-action-parameter [action]=\"action\" [type]=\"action.type\" [isParam]=\"false\"></hvy-action-parameter>\n </div>\n @if (!readonly) {\n <button class=\"a-btn a-btn--icon-only\" (click)=\"openModal(action, idx)\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"more_horiz\" #menuButton></pry-icon>\n </button>\n }\n } @else {\n <div class=\"o-hvy-events-detail__procedure__actions__action__create\">\n <div class=\"o-hvy-events-detail__procedure__actions__action__create__header\">\n <p>{{ '@hvy.procedure.action.' + action._status | i18n }}</p>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"saveAction(action, idx)\" [disabled]=\"!isValid(action)\">\n <pry-icon iconSvg=\"check\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction(action, idx)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div>\n <pry-select\n [ngModel]=\"action.type\"\n [items]=\"ACTIONS_TYPES\"\n (ngModelChange)=\"update(idx, 'type', $event)\"\n i18nPrefix=\"@hvy.procedure.action.\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.action' | i18n\"\n ></pry-select>\n </div>\n <hvy-action-parameter [action]=\"action\" [type]=\"action.type\" [isParam]=\"true\"></hvy-action-parameter>\n </div>\n }\n </div>\n @if ((comments$ | async) ? (comments$ | async)![action.id] : []; as comments) {\n <hvy-comments\n [comments]=\"comments\"\n [readonly]=\"readonly\"\n (commented)=\"updateComment(action, $event)\"\n [type]=\"'actions'\"\n [trigger]=\"triggers[action.id]\"\n [displayEmpty]=\"false\"\n [me]=\"me\"\n ></hvy-comments>\n }\n </div>\n } @empty {\n @if (actions.length === 0) {\n <div>{{ '@hvy.event.log.procedure.noAction' | i18n }}</div>\n }\n }\n @if (!readonly && enableEditActions) {\n <div class=\"o-hvy-events-detail__procedure__button\">\n <button class=\"a-btn a-btn--primary\" (click)=\"add()\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.procedure.action.add' | i18n }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { 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: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i6.HvyActionParameterComponent, selector: "hvy-action-parameter", inputs: ["isParam", "type", "action"] }, { kind: "component", type: i7.HvyCommentsComponent, selector: "hvy-comments", inputs: ["readonly", "me", "type", "displayEmpty", "comments", "trigger"], outputs: ["commented"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
186
186
  }
187
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureActionsComponent, decorators: [{
188
188
  type: Component,
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
203
203
  }], actions: [{
204
204
  type: Input
205
205
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFNaEQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHdCQUF3QjthQUM5RCxnQkFBVyxHQUFHLEVBQUUsQUFBTCxDQUFNO0lBbUJ4QixZQUNVLFNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLGVBQW1DO1FBRTNDLEtBQUssRUFBRSxDQUFDO1FBSkEsY0FBUyxHQUFULFNB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LENBQUMsTUFBaUIsRUFBRSxPQUF3QztRQUN2RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdNVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrUkFlQSxVQUFVLG9EQy9CaEQsazBIQTRGQTs7MkZENUVhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUI7NElBV3ZCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHNEMsV0FBVztzQkFBNUQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQXlCbkMsT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgbW9kZWwsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByeURpYWxvZ1NlcnZpY2UsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEh2eUFjdGlvbk1lbnVDb21wb25lbnQsIEh2eUFjdGlvbk1lbnVEYXRhIH0gZnJvbSAnLi9hY3Rpb24tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFDVElPTlNfVFlQRVMgfSBmcm9tICcuL2FjdGlvbnMtdHlwZXMuY29uc3RhbnQnO1xuaW1wb3J0IHsgSHlwQ29tbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29tbWVudHMvY29tbWVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIeXBDb21tZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvY29tbWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2VkdXJlQWN0aW9uc0NvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIHN0YXRpYyBDQVJEX0hFSUdIVCA9IDc1O1xuICBtb3ZpbmdBY3Rpb24/OiBIeXBBY3Rpb247XG4gIG1vdmVTdGFydCA9IDA7XG4gIG1vdmVJbml0aWFsSW5kZXggPSAwO1xuICBpbml0aWFsQWN0aW9uTGlzdDogSHlwQWN0aW9uW10gPSBbXTtcbiAgcHJldmlvdXNPZmZzZXQgPSAwO1xuICBkcmFnVGFyZ2V0PzogRXZlbnRUYXJnZXQgfCBudWxsO1xuICBAT3V0cHV0KCkgbW9kaWZpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh5cEFjdGlvbltdPigpO1xuICBASW5wdXQoKSBtb2RlOiAnbW9kZWwnIHwgJ3Byb2NlZHVyZScgPSAncHJvY2VkdXJlJztcbiAgQElucHV0KCkgbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVFZGl0QWN0aW9uczogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQUNUSU9OU19UWVBFUzogc3RyaW5nW107XG4gIF9hY3Rpb25zOiBIeXBBY3Rpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkcmVuKCdtZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1lbnVCdXR0b25zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICB0cmlnZ2VyQ29tbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG4gIGNvbW1lbnRzJD86IE9ic2VydmFibGU8eyBbcDogc3RyaW5nXTogSHlwQ29tbWVudFtdIH0+O1xuICB0cmlnZ2VyczogeyBbcDogc3RyaW5nXTogU3ViamVjdDxib29sZWFuPiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgY29tbWVudHNTZXJ2aWNlOiBIeXBDb21tZW50c1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLkFDVElPTlNfVFlQRVMgPSBPYmplY3Qua2V5cyhBQ1RJT05TX1RZUEVTLnZhbHVlcyk7XG4gICAgdGhpcy5BQ1RJT05TX1RZUEVTLnNvcnQoKGEsIGIpID0+IEFDVElPTlNfVFlQRVMudmFsdWVzW2FdLm9yZGVyIC0gQUNUSU9OU19UWVBFUy52YWx1ZXNbYl0ub3JkZXIpO1xuICAgIHRoaXMuY29tbWVudHMkID0gdGhpcy50cmlnZ2VyQ29tbWVudCQucGlwZShcbiAgICAgIG1lcmdlTWFwKCgpID0+XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgdGhpcy5fYWN0aW9ucy5tYXAoKGFjdGlvbikgPT5cbiAgICAgICAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldChhY3Rpb24uaWQsICdhY3Rpb25zJykucGlwZShtYXAoKGNvbW1lbnRzKSA9PiAoeyBbYWN0aW9uLmlkXTogY29tbWVudHMgfSkpKVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKG1hcCgoYWxsKSA9PiBhbGwucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSkpKVxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aCh7fSlcbiAgICApO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGFjdGlvbnMoYWN0aW9uczogSHlwQWN0aW9uW10pIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3Rpb25zID8/IFtdKSk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHRoaXMuYWN0aW9uc1xuICAgICAgLm1hcCgoYSkgPT4gKHsgW2EuaWRdOiBuZXcgU3ViamVjdDxib29sZWFuPigpIH0pKVxuICAgICAgLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pO1xuICB9XG5cbiAgZ2V0IGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICBnZXQgZWRpdGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGlvbnMuZmluZCgoYWN0aW9uKSA9PiBhY3Rpb24uX3N0YXR1cyk7XG4gIH1cblxuICBvbk1vdXNlRG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmRyYWdUYXJnZXQgPSAkZXZlbnQudGFyZ2V0O1xuICB9XG5cbiAgZHJhZ1N0YXJ0KCRldmVudDogTW91c2VFdmVudCwgYWN0aW9uOiBIeXBBY3Rpb24sIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5kcmFnVGFyZ2V0ICYmICh0aGlzLmRyYWdUYXJnZXQgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLm1hc2tJbWFnZS5pbmRleE9mKCdzaXhfZG90JykgPiAtMSkge1xuICAgICAgdGhpcy5tb3ZpbmdBY3Rpb24gPSBhY3Rpb247XG4gICAgICB0aGlzLm1vdmVTdGFydCA9ICRldmVudC5jbGllbnRZO1xuICAgICAgdGhpcy5tb3ZlSW5pdGlhbEluZGV4ID0gaW5kZXg7XG4gICAgICB0aGlzLmluaXRpYWxBY3Rpb25MaXN0ID0gWy4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmUoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMubW92aW5nQWN0aW9uKSB7XG4gICAgICBjb25zdCBvZmZzZXRJbkNhcmRzID0gTWF0aC5yb3VuZCgoJGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vdmVTdGFydCkgLyBQcm9jZWR1cmVBY3Rpb25zQ29tcG9uZW50LkNBUkRfSEVJR0hUKTtcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzT2Zmc2V0ICE9PSBvZmZzZXRJbkNhcmRzKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNPZmZzZXQgPSBvZmZzZXRJbkNhcmRzO1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IE1hdGgubWluKFxuICAgICAgICAgIE1hdGgubWF4KHRoaXMubW92ZUluaXRpYWxJbmRleCArIG9mZnNldEluQ2FyZHMsIDApLFxuICAgICAgICAgIHRoaXMuaW5pdGlhbEFjdGlvbkxpc3QubGVuZ3RoIC0gMVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXdBY3Rpb25zID0gWy4uLnRoaXMuaW5pdGlhbEFjdGlvbkxpc3RdO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbmV3QWN0aW9ucy5zcGxpY2UodGhpcy5tb3ZlSW5pdGlhbEluZGV4LCAxKVswXTtcbiAgICAgICAgbmV3QWN0aW9ucy5zcGxpY2UobmV3SW5kZXgsIDAsIGVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXMubW9kaWZpZWQubmV4dChuZXdBY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkcm9wKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMubW92ZSgkZXZlbnQpO1xuICAgIHRoaXMubW92aW5nQWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYWxsb3dEcm9wKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgdG9nZ2xlQWN0aW9uU3RhdHVzKGluZGV4OiBudW1iZXIsICRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IG5ld0FjdGlvbnMgPSBbLi4udGhpcy5hY3Rpb25zXTtcbiAgICBpZiAobmV3QWN0aW9uc1tpbmRleF0uc3RhdHVzICE9PSAnRE9ORScpIHtcbiAgICAgIG5ld0FjdGlvbnNbaW5kZXhdID0ge1xuICAgICAgICAuLi5uZXdBY3Rpb25zW2luZGV4XSxcbiAgICAgICAgc3RhdHVzOiBuZXdBY3Rpb25zW2luZGV4XS5zdGF0dXMgPT09ICdORVcnID8gJ0lOX1BST0dSRVNTJyA6ICdORVcnXG4gICAgICB9O1xuICAgICAgdGhpcy5tb2RpZmllZC5uZXh0KG5ld0FjdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGFkZCgpIHtcbiAgICB0aGlzLmFjdGlvbnMucHVzaCh7IHR5cGU6ICcnLCBzdGF0dXM6ICdORVcnLCBpZDogdjQoKSwgX3N0YXR1czogJ2NyZWF0ZScgfSBhcyBIeXBBY3Rpb24pO1xuICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGVsID0gbW9kZWw7XG5cbiAgdXBkYXRlKGlkeDogbnVtYmVyLCBwcm9wOiBzdHJpbmcsICRldmVudDogYW55KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMuYWN0aW9uc1tpZHhdW3Byb3BdID0gJGV2ZW50O1xuICB9XG5cbiAgb3Blbk1vZGFsKGFjdGlvbjogSHlwQWN0aW9uLCBpZHg6IG51bWJlcikge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMucHJ5RGlhbG9nLm9wZW4oSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwge1xuICAgICAgb3ZlcmxheUNvbmZpZzoge1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydwcnktZGlhbG9nLWNvbnRhaW5lciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMubWVudUJ1dHRvbnMuZ2V0KGlkeCkhKVxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdKVxuICAgICAgfSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgIGVuYWJsZUVkaXRBY3Rpb25zOiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zXG4gICAgICB9IGFzIEh2eUFjdGlvbk1lbnVEYXRhXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuY2xvc2VWYWx1ZS5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICB0aGlzLnRyaWdnZXJzW2FjdGlvbi5pZF0ubmV4dCh0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgICBhY3Rpb24uX2luaXRpYWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbikpO1xuICAgICAgICAgIGFjdGlvbi5fc3RhdHVzID0gJ21vZGlmeSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgdGhpcy5hY3Rpb25zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgICBhY3Rpb24uc3RhdHVzID0gJ0RPTkUnO1xuICAgICAgfVxuICAgICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZUFjdGlvbihhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBkZWxldGUgYWN0aW9uLl9pbml0aWFsO1xuICAgIGRlbGV0ZSBhY3Rpb24uX3N0YXR1cztcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIGNhbmNlbEFjdGlvbihhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBpZiAoYWN0aW9uLl9zdGF0dXMgPT09ICdtb2RpZnknKSB7XG4gICAgICB0aGlzLmFjdGlvbnNbaWR4XSA9IHsgLi4uYWN0aW9uLl9pbml0aWFsISB9O1xuICAgICAgZGVsZXRlIHRoaXMuYWN0aW9uc1tpZHhdLl9pbml0aWFsO1xuICAgICAgZGVsZXRlIHRoaXMuYWN0aW9uc1tpZHhdLl9zdGF0dXM7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24uX3N0YXR1cyA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgaGFwcGVuJyk7XG4gICAgfVxuICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICB9XG5cbiAgaXNWYWxpZChhY3Rpb246IEh5cEFjdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBhY3Rpb24udHlwZSAmJlxuICAgICAgKEFDVElPTlNfVFlQRVMudmFsdWVzW2FjdGlvbi50eXBlXS52YWxpZGF0b3IgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBBQ1RJT05TX1RZUEVTLnZhbHVlc1thY3Rpb24udHlwZV0udmFsaWRhdG9yIShhY3Rpb24pKVxuICAgICk7XG4gIH1cblxuICBpc0RyYWdnYWJsZShhY3Rpb246IEh5cEFjdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5lZGl0aW5nICYmIGFjdGlvbi5zdGF0dXMgPT09ICdORVcnICYmICF0aGlzLnJlYWRvbmx5ICYmIHRoaXMuZW5hYmxlRWRpdEFjdGlvbnM7XG4gIH1cblxuICB1cGRhdGVDb21tZW50KGFjdGlvbjogSHlwQWN0aW9uLCBjb21tZW50OiB7IGlkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5jb21tZW50c1NlcnZpY2Uuc2F2ZShhY3Rpb24uaWQsICdhY3Rpb25zJywgY29tbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlckNvbW1lbnQkLm5leHQoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc1wiXG4gIChkcmFnKT1cIm1vdmUoJGV2ZW50KVwiXG4gIChkcm9wKT1cImRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50KVwiXG4+XG4gIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zOyB0cmFjayBhY3Rpb24uaWQ7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uXCJcbiAgICAgIFtkcmFnZ2FibGVdPVwiaXNEcmFnZ2FibGUoYWN0aW9uKSAmJiAhcmVhZG9ubHlcIlxuICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50LCBhY3Rpb24sIGlkeClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy4tdXBkYXRpbmddPVwiISFhY3Rpb24uX3N0YXR1c1wiXG4gICAgICBbY2xhc3MuLW90aGVyLXVwZGF0aW5nXT1cImVkaXRpbmdcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgIEBpZiAodGhpcy5lbmFibGVFZGl0QWN0aW9ucykge1xuICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgaWNvblN2Zz1cInNpeF9kb3RcIlxuICAgICAgICAgICAgI2hhbmRsZVxuICAgICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCIhaXNEcmFnZ2FibGUoYWN0aW9uKVwiXG4gICAgICAgICAgICBbY2xhc3MuLWhpZGRlbl09XCJhY3Rpb24uX3N0YXR1cyB8fCByZWFkb25seVwiXG4gICAgICAgICAgICBjbGFzcz1cImdyYWJiYWJsZVwiXG4gICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlci1iYWRnZVwiPnt7IGlkeCArIDEgfX08L2Rpdj5cbiAgICAgICAgQGlmICghYWN0aW9uLl9zdGF0dXMgfHwgcmVhZG9ubHkpIHtcbiAgICAgICAgICBAaWYgKG1vZGUgPT09ICdwcm9jZWR1cmUnKSB7XG4gICAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFjdGlvbi5zdGF0dXMgIT09ICdORVcnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFjdGlvblN0YXR1cyhpZHgsICRldmVudClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnIHx8IChyZWFkb25seSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IFtjbGFzcy4tZG9uZV09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORSdcIiBbY2xhc3MuLWRpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgICAgIDxodnktYWN0aW9uLXBhcmFtZXRlciBbYWN0aW9uXT1cImFjdGlvblwiIFt0eXBlXT1cImFjdGlvbi50eXBlXCIgW2lzUGFyYW1dPVwiZmFsc2VcIj48L2h2eS1hY3Rpb24tcGFyYW1ldGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAoIXJlYWRvbmx5KSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJvcGVuTW9kYWwoYWN0aW9uLCBpZHgpXCIgW2Rpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJtb3JlX2hvcml6XCIgI21lbnVCdXR0b24+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uX19jcmVhdGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9fY3JlYXRlX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHA+e3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi4nICsgYWN0aW9uLl9zdGF0dXMgfCBpMThuIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJzYXZlQWN0aW9uKGFjdGlvbiwgaWR4KVwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZChhY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGVja1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjYW5jZWxBY3Rpb24oYWN0aW9uLCBpZHgpXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFjdGlvbi50eXBlXCJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQUNUSU9OU19UWVBFU1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlKGlkeCwgJ3R5cGUnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5wcm9jZWR1cmUuYWN0aW9uLlwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucGxhY2Vob2xkZXIuYWN0aW9uJyB8IGkxOG5cIlxuICAgICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHZ5LWFjdGlvbi1wYXJhbWV0ZXIgW2FjdGlvbl09XCJhY3Rpb25cIiBbdHlwZV09XCJhY3Rpb24udHlwZVwiIFtpc1BhcmFtXT1cInRydWVcIj48L2h2eS1hY3Rpb24tcGFyYW1ldGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoKGNvbW1lbnRzJCB8IGFzeW5jKSA/IChjb21tZW50cyQgfCBhc3luYykhW2FjdGlvbi5pZF0gOiBbXTsgYXMgY29tbWVudHMpIHtcbiAgICAgICAgPGh2eS1jb21tZW50c1xuICAgICAgICAgIFtjb21tZW50c109XCJjb21tZW50c1wiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAoY29tbWVudGVkKT1cInVwZGF0ZUNvbW1lbnQoYWN0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgICBbdHlwZV09XCInYWN0aW9ucydcIlxuICAgICAgICAgIFt0cmlnZ2VyXT1cInRyaWdnZXJzW2FjdGlvbi5pZF1cIlxuICAgICAgICAgIFtkaXNwbGF5RW1wdHldPVwiZmFsc2VcIlxuICAgICAgICAgIFttZV09XCJtZVwiXG4gICAgICAgID48L2h2eS1jb21tZW50cz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfSBAZW1wdHkge1xuICAgIEBpZiAoYWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXY+e3sgJ0BodnkuZXZlbnQubG9nLnByb2NlZHVyZS5ub0FjdGlvbicgfCBpMThuIH19PC9kaXY+XG4gICAgfVxuICB9XG4gIEBpZiAoIXJlYWRvbmx5ICYmIGVuYWJsZUVkaXRBY3Rpb25zKSB7XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYnV0dG9uXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkKClcIiBbZGlzYWJsZWRdPVwiZWRpdGluZ1wiPlxuICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFkZFwiPjwvcHJ5LWljb24+XG4gICAgICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uYWRkJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFjLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU1oRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsd0JBQXdCO2FBQzlELGdCQUFXLEdBQUcsRUFBRSxBQUFMLENBQU07SUFtQnhCLFlBQ1UsU0FBMkIsRUFDM0IsT0FBZ0IsRUFDaEIsZUFBbUM7UUFFM0MsS0FBSyxFQUFFLENB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QUFNLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQzlGLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBaUIsRUFBRSxPQUF3QztRQUN2RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQS9NVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrUkFlQSxVQUFVLG9EQy9CaEQsazBIQTRGQTs7MkZENUVhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUI7NElBV3ZCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHNEMsV0FBVztzQkFBNUQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQTJCbkMsT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgbW9kZWwsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByeURpYWxvZ1NlcnZpY2UsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEh2eUFjdGlvbk1lbnVDb21wb25lbnQsIEh2eUFjdGlvbk1lbnVEYXRhIH0gZnJvbSAnLi9hY3Rpb24tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFDVElPTlNfVFlQRVMgfSBmcm9tICcuL2FjdGlvbnMtdHlwZXMuY29uc3RhbnQnO1xuaW1wb3J0IHsgSHlwQ29tbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29tbWVudHMvY29tbWVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIeXBDb21tZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvY29tbWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2VkdXJlQWN0aW9uc0NvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIHN0YXRpYyBDQVJEX0hFSUdIVCA9IDc1O1xuICBtb3ZpbmdBY3Rpb24/OiBIeXBBY3Rpb247XG4gIG1vdmVTdGFydCA9IDA7XG4gIG1vdmVJbml0aWFsSW5kZXggPSAwO1xuICBpbml0aWFsQWN0aW9uTGlzdDogSHlwQWN0aW9uW10gPSBbXTtcbiAgcHJldmlvdXNPZmZzZXQgPSAwO1xuICBkcmFnVGFyZ2V0PzogRXZlbnRUYXJnZXQgfCBudWxsO1xuICBAT3V0cHV0KCkgbW9kaWZpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh5cEFjdGlvbltdPigpO1xuICBASW5wdXQoKSBtb2RlOiAnbW9kZWwnIHwgJ3Byb2NlZHVyZScgPSAncHJvY2VkdXJlJztcbiAgQElucHV0KCkgbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVFZGl0QWN0aW9uczogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQUNUSU9OU19UWVBFUzogc3RyaW5nW107XG4gIF9hY3Rpb25zOiBIeXBBY3Rpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkcmVuKCdtZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1lbnVCdXR0b25zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICB0cmlnZ2VyQ29tbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG4gIGNvbW1lbnRzJD86IE9ic2VydmFibGU8eyBbcDogc3RyaW5nXTogSHlwQ29tbWVudFtdIH0+O1xuICB0cmlnZ2VyczogeyBbcDogc3RyaW5nXTogU3ViamVjdDxib29sZWFuPiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgY29tbWVudHNTZXJ2aWNlOiBIeXBDb21tZW50c1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLkFDVElPTlNfVFlQRVMgPSBPYmplY3Qua2V5cyhBQ1RJT05TX1RZUEVTLnZhbHVlcyk7XG4gICAgdGhpcy5BQ1RJT05TX1RZUEVTLnNvcnQoKGEsIGIpID0+IEFDVElPTlNfVFlQRVMudmFsdWVzW2FdLm9yZGVyIC0gQUNUSU9OU19UWVBFUy52YWx1ZXNbYl0ub3JkZXIpO1xuICAgIHRoaXMuY29tbWVudHMkID0gdGhpcy50cmlnZ2VyQ29tbWVudCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLm1vZGUgPT09ICdwcm9jZWR1cmUnKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgdGhpcy5fYWN0aW9ucy5tYXAoKGFjdGlvbikgPT5cbiAgICAgICAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldChhY3Rpb24uaWQsICdhY3Rpb25zJykucGlwZShtYXAoKGNvbW1lbnRzKSA9PiAoeyBbYWN0aW9uLmlkXTogY29tbWVudHMgfSkpKVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKG1hcCgoYWxsKSA9PiBhbGwucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSkpKVxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aCh7fSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zKGFjdGlvbnM6IEh5cEFjdGlvbltdKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYWN0aW9ucyA/PyBbXSkpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB0aGlzLmFjdGlvbnNcbiAgICAgIC5tYXAoKGEpID0+ICh7IFthLmlkXTogbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKSB9KSlcbiAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KTtcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xuICB9XG5cbiAgZ2V0IGVkaXRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5hY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uLl9zdGF0dXMpO1xuICB9XG5cbiAgb25Nb3VzZURvd24oJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5kcmFnVGFyZ2V0ID0gJGV2ZW50LnRhcmdldDtcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQ6IE1vdXNlRXZlbnQsIGFjdGlvbjogSHlwQWN0aW9uLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ1RhcmdldCAmJiAodGhpcy5kcmFnVGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5tYXNrSW1hZ2UuaW5kZXhPZignc2l4X2RvdCcpID4gLTEpIHtcbiAgICAgIHRoaXMubW92aW5nQWN0aW9uID0gYWN0aW9uO1xuICAgICAgdGhpcy5tb3ZlU3RhcnQgPSAkZXZlbnQuY2xpZW50WTtcbiAgICAgIHRoaXMubW92ZUluaXRpYWxJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5pbml0aWFsQWN0aW9uTGlzdCA9IFsuLi50aGlzLmFjdGlvbnNdO1xuICAgIH0gZWxzZSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBtb3ZlKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLm1vdmluZ0FjdGlvbikge1xuICAgICAgY29uc3Qgb2Zmc2V0SW5DYXJkcyA9IE1hdGgucm91bmQoKCRldmVudC5jbGllbnRZIC0gdGhpcy5tb3ZlU3RhcnQpIC8gUHJvY2VkdXJlQWN0aW9uc0NvbXBvbmVudC5DQVJEX0hFSUdIVCk7XG4gICAgICBpZiAodGhpcy5wcmV2aW91c09mZnNldCAhPT0gb2Zmc2V0SW5DYXJkcykge1xuICAgICAgICB0aGlzLnByZXZpb3VzT2Zmc2V0ID0gb2Zmc2V0SW5DYXJkcztcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSBNYXRoLm1pbihcbiAgICAgICAgICBNYXRoLm1heCh0aGlzLm1vdmVJbml0aWFsSW5kZXggKyBvZmZzZXRJbkNhcmRzLCAwKSxcbiAgICAgICAgICB0aGlzLmluaXRpYWxBY3Rpb25MaXN0Lmxlbmd0aCAtIDFcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV3QWN0aW9ucyA9IFsuLi50aGlzLmluaXRpYWxBY3Rpb25MaXN0XTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IG5ld0FjdGlvbnMuc3BsaWNlKHRoaXMubW92ZUluaXRpYWxJbmRleCwgMSlbMF07XG4gICAgICAgIG5ld0FjdGlvbnMuc3BsaWNlKG5ld0luZGV4LCAwLCBlbGVtZW50KTtcblxuICAgICAgICB0aGlzLm1vZGlmaWVkLm5leHQobmV3QWN0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZHJvcCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm1vdmUoJGV2ZW50KTtcbiAgICB0aGlzLm1vdmluZ0FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFsbG93RHJvcCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHRvZ2dsZUFjdGlvblN0YXR1cyhpbmRleDogbnVtYmVyLCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBuZXdBY3Rpb25zID0gWy4uLnRoaXMuYWN0aW9uc107XG4gICAgaWYgKG5ld0FjdGlvbnNbaW5kZXhdLnN0YXR1cyAhPT0gJ0RPTkUnKSB7XG4gICAgICBuZXdBY3Rpb25zW2luZGV4XSA9IHtcbiAgICAgICAgLi4ubmV3QWN0aW9uc1tpbmRleF0sXG4gICAgICAgIHN0YXR1czogbmV3QWN0aW9uc1tpbmRleF0uc3RhdHVzID09PSAnTkVXJyA/ICdJTl9QUk9HUkVTUycgOiAnTkVXJ1xuICAgICAgfTtcbiAgICAgIHRoaXMubW9kaWZpZWQubmV4dChuZXdBY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICBhZGQoKSB7XG4gICAgdGhpcy5hY3Rpb25zLnB1c2goeyB0eXBlOiAnJywgc3RhdHVzOiAnTkVXJywgaWQ6IHY0KCksIF9zdGF0dXM6ICdjcmVhdGUnIH0gYXMgSHlwQWN0aW9uKTtcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RlbCA9IG1vZGVsO1xuXG4gIHVwZGF0ZShpZHg6IG51bWJlciwgcHJvcDogc3RyaW5nLCAkZXZlbnQ6IGFueSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLmFjdGlvbnNbaWR4XVtwcm9wXSA9ICRldmVudDtcbiAgfVxuXG4gIG9wZW5Nb2RhbChhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLnByeURpYWxvZy5vcGVuKEh2eUFjdGlvbk1lbnVDb21wb25lbnQsIHtcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsncHJ5LWRpYWxvZy1jb250YWluZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJyxcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm1lbnVCdXR0b25zLmdldChpZHgpISlcbiAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSlcbiAgICAgIH0sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICBlbmFibGVFZGl0QWN0aW9uczogdGhpcy5lbmFibGVFZGl0QWN0aW9uc1xuICAgICAgfSBhcyBIdnlBY3Rpb25NZW51RGF0YVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3ViID0gZGlhbG9nUmVmLmNsb3NlVmFsdWUuc3Vic2NyaWJlKCh0eXBlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgdGhpcy50cmlnZ2Vyc1thY3Rpb24uaWRdLm5leHQodHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgICAgYWN0aW9uLl9pbml0aWFsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3Rpb24pKTtcbiAgICAgICAgICBhY3Rpb24uX3N0YXR1cyA9ICdtb2RpZnknO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZG9uZSc6XG4gICAgICAgICAgYWN0aW9uLnN0YXR1cyA9ICdET05FJztcbiAgICAgIH1cbiAgICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVBY3Rpb24oYWN0aW9uOiBIeXBBY3Rpb24sIGlkeDogbnVtYmVyKSB7XG4gICAgZGVsZXRlIGFjdGlvbi5faW5pdGlhbDtcbiAgICBkZWxldGUgYWN0aW9uLl9zdGF0dXM7XG4gICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gIH1cblxuICBjYW5jZWxBY3Rpb24oYWN0aW9uOiBIeXBBY3Rpb24sIGlkeDogbnVtYmVyKSB7XG4gICAgaWYgKGFjdGlvbi5fc3RhdHVzID09PSAnbW9kaWZ5Jykge1xuICAgICAgdGhpcy5hY3Rpb25zW2lkeF0gPSB7IC4uLmFjdGlvbi5faW5pdGlhbCEgfTtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbaWR4XS5faW5pdGlhbDtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbaWR4XS5fc3RhdHVzO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLl9zdGF0dXMgPT09ICdjcmVhdGUnKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhcHBlbicpO1xuICAgIH1cbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIGlzVmFsaWQoYWN0aW9uOiBIeXBBY3Rpb24pIHtcbiAgICByZXR1cm4gKFxuICAgICAgYWN0aW9uLnR5cGUgJiZcbiAgICAgIChBQ1RJT05TX1RZUEVTLnZhbHVlc1thY3Rpb24udHlwZV0udmFsaWRhdG9yID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgQUNUSU9OU19UWVBFUy52YWx1ZXNbYWN0aW9uLnR5cGVdLnZhbGlkYXRvciEoYWN0aW9uKSlcbiAgICApO1xuICB9XG5cbiAgaXNEcmFnZ2FibGUoYWN0aW9uOiBIeXBBY3Rpb24pIHtcbiAgICByZXR1cm4gIXRoaXMuZWRpdGluZyAmJiBhY3Rpb24uc3RhdHVzID09PSAnTkVXJyAmJiAhdGhpcy5yZWFkb25seSAmJiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zO1xuICB9XG5cbiAgdXBkYXRlQ29tbWVudChhY3Rpb246IEh5cEFjdGlvbiwgY29tbWVudDogeyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLnNhdmUoYWN0aW9uLmlkLCAnYWN0aW9ucycsIGNvbW1lbnQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXJDb21tZW50JC5uZXh0KCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNcIlxuICAoZHJhZyk9XCJtb3ZlKCRldmVudClcIlxuICAoZHJvcCk9XCJkcm9wKCRldmVudClcIlxuICAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudClcIlxuPlxuICBAZm9yIChhY3Rpb24gb2YgYWN0aW9uczsgdHJhY2sgYWN0aW9uLmlkOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvblwiXG4gICAgICBbZHJhZ2dhYmxlXT1cImlzRHJhZ2dhYmxlKGFjdGlvbikgJiYgIXJlYWRvbmx5XCJcbiAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0KCRldmVudCwgYWN0aW9uLCBpZHgpXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICBbY2xhc3MuLXVwZGF0aW5nXT1cIiEhYWN0aW9uLl9zdGF0dXNcIlxuICAgICAgW2NsYXNzLi1vdGhlci11cGRhdGluZ109XCJlZGl0aW5nXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zX19hY3Rpb25fX2hlYWRlclwiPlxuICAgICAgICBAaWYgKHRoaXMuZW5hYmxlRWRpdEFjdGlvbnMpIHtcbiAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgIGljb25Tdmc9XCJzaXhfZG90XCJcbiAgICAgICAgICAgICNoYW5kbGVcbiAgICAgICAgICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiIWlzRHJhZ2dhYmxlKGFjdGlvbilcIlxuICAgICAgICAgICAgW2NsYXNzLi1oaWRkZW5dPVwiYWN0aW9uLl9zdGF0dXMgfHwgcmVhZG9ubHlcIlxuICAgICAgICAgICAgY2xhc3M9XCJncmFiYmFibGVcIlxuICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJudW1iZXItYmFkZ2VcIj57eyBpZHggKyAxIH19PC9kaXY+XG4gICAgICAgIEBpZiAoIWFjdGlvbi5fc3RhdHVzIHx8IHJlYWRvbmx5KSB7XG4gICAgICAgICAgQGlmIChtb2RlID09PSAncHJvY2VkdXJlJykge1xuICAgICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhY3Rpb24uc3RhdHVzICE9PSAnTkVXJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVBY3Rpb25TdGF0dXMoaWR4LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5zdGF0dXMgPT09ICdET05FJyB8fCAocmVhZG9ubHkgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgID48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBbY2xhc3MuLWRvbmVdPVwiYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnXCIgW2NsYXNzLi1kaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgICAgICA8aHZ5LWFjdGlvbi1wYXJhbWV0ZXIgW2FjdGlvbl09XCJhY3Rpb25cIiBbdHlwZV09XCJhY3Rpb24udHlwZVwiIFtpc1BhcmFtXT1cImZhbHNlXCI+PC9odnktYWN0aW9uLXBhcmFtZXRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwib3Blbk1vZGFsKGFjdGlvbiwgaWR4KVwiIFtkaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwibW9yZV9ob3JpelwiICNtZW51QnV0dG9uPjwvcHJ5LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9fY3JlYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zX19hY3Rpb25fX2NyZWF0ZV9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxwPnt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uJyArIGFjdGlvbi5fc3RhdHVzIHwgaTE4biB9fTwvcD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwic2F2ZUFjdGlvbihhY3Rpb24sIGlkeClcIiBbZGlzYWJsZWRdPVwiIWlzVmFsaWQoYWN0aW9uKVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwiY2FuY2VsQWN0aW9uKGFjdGlvbiwgaWR4KVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIkFDVElPTlNfVFlQRVNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZShpZHgsICd0eXBlJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgaTE4blByZWZpeD1cIkBodnkucHJvY2VkdXJlLmFjdGlvbi5cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnBsYWNlaG9sZGVyLmFjdGlvbicgfCBpMThuXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGh2eS1hY3Rpb24tcGFyYW1ldGVyIFthY3Rpb25dPVwiYWN0aW9uXCIgW3R5cGVdPVwiYWN0aW9uLnR5cGVcIiBbaXNQYXJhbV09XCJ0cnVlXCI+PC9odnktYWN0aW9uLXBhcmFtZXRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKChjb21tZW50cyQgfCBhc3luYykgPyAoY29tbWVudHMkIHwgYXN5bmMpIVthY3Rpb24uaWRdIDogW107IGFzIGNvbW1lbnRzKSB7XG4gICAgICAgIDxodnktY29tbWVudHNcbiAgICAgICAgICBbY29tbWVudHNdPVwiY29tbWVudHNcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgKGNvbW1lbnRlZCk9XCJ1cGRhdGVDb21tZW50KGFjdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgW3R5cGVdPVwiJ2FjdGlvbnMnXCJcbiAgICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2Vyc1thY3Rpb24uaWRdXCJcbiAgICAgICAgICBbZGlzcGxheUVtcHR5XT1cImZhbHNlXCJcbiAgICAgICAgICBbbWVdPVwibWVcIlxuICAgICAgICA+PC9odnktY29tbWVudHM+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH0gQGVtcHR5IHtcbiAgICBAaWYgKGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUubm9BY3Rpb24nIHwgaTE4biB9fTwvZGl2PlxuICAgIH1cbiAgfVxuICBAaWYgKCFyZWFkb25seSAmJiBlbmFibGVFZGl0QWN0aW9ucykge1xuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2J1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZCgpXCIgW2Rpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRcIj48L3ByeS1pY29uPlxuICAgICAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLmFkZCcgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -3,4 +3,4 @@ export const procedureForWriteAPI = (procedure) => ({
3
3
  ...procedure,
4
4
  events: procedure.events.map(eventForWriteAPI)
5
5
  });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLHFDQUFxQyxDQUFDO0FBYXhGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsU0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRSxHQUFHLFNBQVM7SUFDWixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7Q0FDL0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXZlbnRGb3JXcml0ZUFQSSwgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlwUHJvY2VkdXJlIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IHN0cmluZztcbiAgYWN0aW9uczogSHlwQWN0aW9uW107XG4gIHByb2dyZXNzOiBudW1iZXI7XG4gIGV2ZW50czogSHlwRXZlbnREZXRhaWxzW107XG59XG5cbmV4cG9ydCBjb25zdCBwcm9jZWR1cmVGb3JXcml0ZUFQSSA9IChwcm9jZWR1cmU6IEh5cFByb2NlZHVyZSkgPT4gKHtcbiAgLi4ucHJvY2VkdXJlLFxuICBldmVudHM6IHByb2NlZHVyZS5ldmVudHMubWFwKGV2ZW50Rm9yV3JpdGVBUEkpXG59KTtcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLHFDQUFxQyxDQUFDO0FBY3hGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsU0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRSxHQUFHLFNBQVM7SUFDWixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7Q0FDL0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXZlbnRGb3JXcml0ZUFQSSwgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwQWN0aW9uIH0gZnJvbSAnLi9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlwUHJvY2VkdXJlIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IHN0cmluZztcbiAgYWN0aW9uczogSHlwQWN0aW9uW107XG4gIHByb2dyZXNzOiBudW1iZXI7XG4gIGV2ZW50czogSHlwRXZlbnREZXRhaWxzW107XG4gIGNsb3NlQ29tbWVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IHByb2NlZHVyZUZvcldyaXRlQVBJID0gKHByb2NlZHVyZTogSHlwUHJvY2VkdXJlKSA9PiAoe1xuICAuLi5wcm9jZWR1cmUsXG4gIGV2ZW50czogcHJvY2VkdXJlLmV2ZW50cy5tYXAoZXZlbnRGb3JXcml0ZUFQSSlcbn0pO1xuIl19
@@ -78,7 +78,7 @@ export class ProcedureModelDetailComponent extends SubscriptionnerDirective {
78
78
  this._outputModifications();
79
79
  }
80
80
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureModelDetailComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ProcedureModelDetailComponent, selector: "hvy-procedure-model-detail", inputs: { model: "model", username: "username", title: "title", readonly: "readonly", cancelModifications: "cancelModifications" }, outputs: { eventErrors: "eventErrors", modified: "modified" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-procedure-detail\">\n <h1>{{ title ?? '@hvy.procedure.detail' | i18n }}</h1>\n <div class=\"o-hvy-procedure-detail__container\">\n <div class=\"o-hvy-procedure-detail__container__scrollable\">\n @if (modifiedModel; as model) {\n <div class=\"o-hvy-procedure-detail__form\">\n <h3>{{ '@hvy.procedure.formTitle' | i18n }}</h3>\n <table>\n <tbody>\n <tr>\n <td>{{ '@hvy.procedure.title' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name')\"\n [value]=\"model.name\"\n (change)=\"modify('name', $event)\"\n [maxLength]=\"50\"\n [readonly]=\"readonly\"\n />\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.procedure.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"model.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"modify('description', $event)\"\n [maxLength]=\"256\"\n [readonly]=\"readonly\"\n ></textarea>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"model.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain')\"\n (ngModelChange)=\"modify('domain', $event)\"\n [disabled]=\"readonly\"\n ></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.procedure.creator' | i18n }} :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"model.creator\" readonly />\n </td>\n </tr>\n @if (model.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }} :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(model.id)\" readonly />\n </td>\n </tr>\n }\n @if (!!model.id) {\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n <div class=\"o-hvy-procedure-detail__actions\">\n <h3>{{ '@hvy.procedure.actions' | i18n }} ({{ model.actions.length }})</h3>\n <hvy-procedure-actions\n [actions]=\"model.actions\"\n (modified)=\"updateActions($event)\"\n [readonly]=\"readonly\"\n mode=\"model\"\n [enableEditActions]=\"true\"\n ></hvy-procedure-actions>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.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: 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", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i4.ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "enableEditActions", "actions"], outputs: ["modified"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ProcedureModelDetailComponent, selector: "hvy-procedure-model-detail", inputs: { model: "model", username: "username", title: "title", readonly: "readonly", cancelModifications: "cancelModifications" }, outputs: { eventErrors: "eventErrors", modified: "modified" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-procedure-detail\">\n <h1>{{ title ?? '@hvy.procedure.detail' | i18n }}</h1>\n <div class=\"o-hvy-procedure-detail__container\">\n <div class=\"o-hvy-procedure-detail__container__scrollable\">\n @if (modifiedModel; as model) {\n <div class=\"o-hvy-procedure-detail__form\">\n <h3>{{ '@hvy.procedure.formTitle' | i18n }}</h3>\n <table>\n <tbody>\n <tr>\n <td>{{ '@hvy.procedure.title' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('name')\"\n [value]=\"model.name\"\n (change)=\"modify('name', $event)\"\n [maxLength]=\"50\"\n [readonly]=\"readonly\"\n />\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.procedure.description' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <textarea\n [ngModel]=\"model.description\"\n class=\"a-form-field\"\n [class.-error]=\"hasError('description')\"\n (ngModelChange)=\"modify('description', $event)\"\n [maxLength]=\"256\"\n [readonly]=\"readonly\"\n ></textarea>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.domain.name' | i18n }}<span class=\"required\">*</span> :</td>\n <td>\n <pry-select\n [items]=\"DOMAINS\"\n [ngModel]=\"model.domain\"\n i18nPrefix=\"@hvy.event.domain.\"\n [class.-error]=\"hasError('domain')\"\n (ngModelChange)=\"modify('domain', $event)\"\n [disabled]=\"readonly\"\n ></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.procedure.creator' | i18n }} :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"model.creator\" readonly />\n </td>\n </tr>\n @if (model.id > 0) {\n <tr>\n <td>{{ '@hvy.event.log.event.id' | i18n }} :</td>\n <td>\n <input type=\"text\" class=\"a-form-field\" [value]=\"padId.fn(model.id)\" readonly />\n </td>\n </tr>\n }\n @if (!!model.id) {\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.creationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }} :</td>\n <td>\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [value]=\"model.lastModificationDate | forDateTimeLocal\"\n readonly\n />\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n <div class=\"o-hvy-procedure-detail__actions\">\n <h3>{{ '@hvy.procedure.actions' | i18n }} ({{ model.actions.length }})</h3>\n <hvy-procedure-actions\n [actions]=\"model.actions\"\n (modified)=\"updateActions($event)\"\n [readonly]=\"readonly\"\n mode=\"model\"\n [enableEditActions]=\"true\"\n ></hvy-procedure-actions>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.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: 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", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i4.ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: ["mode", "me", "readonly", "enableEditActions", "actions"], outputs: ["modified"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
82
82
  }
83
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureModelDetailComponent, decorators: [{
84
84
  type: Component,
@@ -5,6 +5,7 @@ import { HypSelectors } from '../hypervisor/hypervisor.selectors';
5
5
  import { EventSelectors } from './event.selectors';
6
6
  import { eventForWriteAPI } from '../../model/event/hyp-event-detail.interface';
7
7
  import { procedureForWriteAPI } from '../../model/procedure/hyp-procedure.interface';
8
+ import { v4 } from 'uuid';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/common/http";
10
11
  import * as i2 from "@ngrx/store";
@@ -68,12 +69,18 @@ export class EventService {
68
69
  }
69
70
  status(event, status, comment) {
70
71
  return this.store.select(HypSelectors.url).pipe(mergeMap((url) => {
71
- return this.httpClient.put(encodeURI(`${url}/events/id/${event.id}/close`), { status, comment });
72
+ return this.httpClient.put(encodeURI(`${url}/events/id/${event.id}/close`), {
73
+ id: v4(),
74
+ message: comment
75
+ });
72
76
  }));
73
77
  }
74
78
  statusProcedure(procedure, status, comment) {
75
79
  return this.store.select(HypSelectors.url).pipe(mergeMap((url) => {
76
- return this.httpClient.put(encodeURI(`${url}/procedures/id/${procedure.id}/close`), { status, comment });
80
+ return this.httpClient.put(encodeURI(`${url}/procedures/id/${procedure.id}/close`), {
81
+ id: v4(),
82
+ message: comment
83
+ });
77
84
  }));
78
85
  }
79
86
  associateProcedure(procedureId, eventIds) {
@@ -90,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
90
97
  providedIn: 'root'
91
98
  }]
92
99
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sOENBQThDLENBQUM7QUFDakcsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBR25HLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztDQUNuQixDQUFDO0FBS0YsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxVQUFzQixFQUN0QixLQUFpQjtRQURqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDeEIsQ0FBQztJQUVKLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxlQUFlLENBQUMsS0FBSztRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzdDLGNBQWMsQ0FB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bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG1lcmdlTWFwLCBPYnNlcnZhYmxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBIeXBTZWxlY3RvcnMgfSBmcm9tICcuLi9oeXBlcnZpc29yL2h5cGVydmlzb3Iuc2VsZWN0b3JzJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgZXZlbnRGb3JXcml0ZUFQSSwgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwUHJvY2VkdXJlLCBwcm9jZWR1cmVGb3JXcml0ZUFQSSB9IGZyb20gJy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtcHJvY2VkdXJlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBFdmVudFRvb2x0aXAgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtdG9vbHRpcC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgUEFHRV9TSVpFX0ZFVENIID0geyB2YWx1ZTogMjAgfTtcblxuZXhwb3J0IGNvbnN0IEtOT1dOX0ZJTFRFUl9TRVRTID0ge1xuICBFVkVOVFM6ICdldmVudHMnLFxuICBTVU1NQVJZOiAnc3VtbWFyeSdcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+XG4gICkge31cblxuICBsaXN0KHN0YXJ0V2l0aCA9IDAsIHBhZ2VTaXplID0gUEFHRV9TSVpFX0ZFVENILnZhbHVlKTogT2JzZXJ2YWJsZTxBcnJheTxIeXBFdmVudERldGFpbHM+PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5maWx0ZXJzKSwgdGhpcy5zdG9yZS5zZWxlY3QoRXZlbnRTZWxlY3RvcnMuc29ydCkpLFxuICAgICAgbWVyZ2VNYXAoKFt1cmwsIGZpbHRlclNldHMsIHNvcnRdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJTZXRzW0tOT1dOX0ZJTFRFUl9TRVRTLkVWRU5UU10gPz8ge307XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXJzKS5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICBmaWx0ZXJzW2ZpbHRlcl0uZm9yRWFjaCgoZmlsdGVyVmFsdWUpID0+IHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZmlsdGVyLCBmaWx0ZXJWYWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgc3RhcnRXaXRoIC8gcGFnZVNpemUgKyAxKTtcbiAgICAgICAgaWYgKHNvcnQpIHtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCkuc2V0KCdvcmRlcicsIHNvcnQub3JkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFycmF5PEh5cEV2ZW50RGV0YWlscz4+KGVuY29kZVVSSShgJHt1cmx9L2V2ZW50c2ApLCB7IHBhcmFtcyB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEh5cEV2ZW50RGV0YWlscz4oZW5jb2RlVVJJKGAke3VybH0vZXZlbnRzL2lkLyR7aWR9YCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0VG9vbHRpcEluZm8obmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEh5cEV2ZW50VG9vbHRpcD4oZW5jb2RlVVJJKGAke3VybH0vZXF1aXBtZW50cy9uYW1lLyR7bmFtZX1gKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRQcm9jZWR1cmUoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxIeXBQcm9jZWR1cmU+KGVuY29kZVVSSShgJHt1cmx9L3Byb2NlZHVyZXMvaWQvJHtpZH1gKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlKGV2ZW50OiBIeXBFdmVudERldGFpbHMpIHtcbiAgICBjb25zdCB0b1NlbmQgPSB7IC4uLmV2ZW50IH0gYXMgUGFydGlhbDxIeXBFdmVudERldGFpbHM+O1xuICAgIGlmIChldmVudC5pZCA8IDApIHtcbiAgICAgIGRlbGV0ZSB0b1NlbmQuaWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICBpZiAoISF0b1NlbmQuaWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxIeXBFdmVudERldGFpbHM+KFxuICAgICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vZXZlbnRzL2lkLyR7dG9TZW5kLmlkfWApLFxuICAgICAgICAgICAgZXZlbnRGb3JXcml0ZUFQSShldmVudClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxIeXBFdmVudERldGFpbHM+KGVuY29kZVVSSShgJHt1cmx9L2V2ZW50c2ApLCBldmVudEZvcldyaXRlQVBJKGV2ZW50KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlUHJvY2VkdXJlKHByb2NlZHVyZTogSHlwUHJvY2VkdXJlKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PHZvaWQ+KFxuICAgICAgICAgIGVuY29kZVVSSShgJHt1cmx9L3Byb2NlZHVyZXMvaWQvJHtwcm9jZWR1cmUuaWR9YCksXG4gICAgICAgICAgcHJvY2VkdXJlRm9yV3JpdGVBUEkocHJvY2VkdXJlKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc3RhdHVzKGV2ZW50OiBIeXBFdmVudERldGFpbHMsIHN0YXR1czogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQ8dm9pZD4oZW5jb2RlVVJJKGAke3VybH0vZXZlbnRzL2lkLyR7ZXZlbnQuaWR9L2Nsb3NlYCksIHsgc3RhdHVzLCBjb21tZW50IH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc3RhdHVzUHJvY2VkdXJlKHByb2NlZHVyZTogSHlwUHJvY2VkdXJlLCBzdGF0dXM6IHN0cmluZywgY29tbWVudDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PHZvaWQ+KGVuY29kZVVSSShgJHt1cmx9L3Byb2NlZHVyZXMvaWQvJHtwcm9jZWR1cmUuaWR9L2Nsb3NlYCksIHsgc3RhdHVzLCBjb21tZW50IH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYXNzb2NpYXRlUHJvY2VkdXJlKHByb2NlZHVyZUlkOiBudW1iZXIsIGV2ZW50SWRzOiBudW1iZXJbXSkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxIeXBQcm9jZWR1cmU+KFxuICAgICAgICAgIGVuY29kZVVSSShgJHt1cmx9L3Byb2NlZHVyZXMvbW9kZWwvaWQvJHtwcm9jZWR1cmVJZH0vYXNzb2NpYXRlYCksXG4gICAgICAgICAgZXZlbnRJZHNcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sOENBQThDLENBQUM7QUFDakcsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRW5HLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFFMUIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUM7QUFLRixNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCO1FBRGpCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUN4QixDQUFDO0lBRUosSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLGVBQWUsQ0FBQyxLQUFLO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFB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QUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgSHlwU2VsZWN0b3JzIH0gZnJvbSAnLi4vaHlwZXJ2aXNvci9oeXBlcnZpc29yLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBFdmVudFNlbGVjdG9ycyB9IGZyb20gJy4vZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IGV2ZW50Rm9yV3JpdGVBUEksIEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZSwgcHJvY2VkdXJlRm9yV3JpdGVBUEkgfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnRUb29sdGlwIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXRvb2x0aXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5cbmV4cG9ydCBjb25zdCBQQUdFX1NJWkVfRkVUQ0ggPSB7IHZhbHVlOiAyMCB9O1xuXG5leHBvcnQgY29uc3QgS05PV05fRklMVEVSX1NFVFMgPSB7XG4gIEVWRU5UUzogJ2V2ZW50cycsXG4gIFNVTU1BUlk6ICdzdW1tYXJ5J1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT5cbiAgKSB7fVxuXG4gIGxpc3Qoc3RhcnRXaXRoID0gMCwgcGFnZVNpemUgPSBQQUdFX1NJWkVfRkVUQ0gudmFsdWUpOiBPYnNlcnZhYmxlPEFycmF5PEh5cEV2ZW50RGV0YWlscz4+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybCkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KEV2ZW50U2VsZWN0b3JzLmZpbHRlcnMpLCB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5zb3J0KSksXG4gICAgICBtZXJnZU1hcCgoW3VybCwgZmlsdGVyU2V0cywgc29ydF0pID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IGZpbHRlclNldHNbS05PV05fRklMVEVSX1NFVFMuRVZFTlRTXSA/PyB7fTtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgICAgIE9iamVjdC5rZXlzKGZpbHRlcnMpLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICAgIGZpbHRlcnNbZmlsdGVyXS5mb3JFYWNoKChmaWx0ZXJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChmaWx0ZXIsIGZpbHRlclZhbHVlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBzdGFydFdpdGggLyBwYWdlU2l6ZSArIDEpO1xuICAgICAgICBpZiAoc29ydCkge1xuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKS5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8SHlwRXZlbnREZXRhaWxzPj4oZW5jb2RlVVJJKGAke3VybH0vZXZlbnRzYCksIHsgcGFyYW1zIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0KGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SHlwRXZlbnREZXRhaWxzPihlbmNvZGVVUkkoYCR7dXJsfS9ldmVudHMvaWQvJHtpZH1gKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRUb29sdGlwSW5mbyhuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SHlwRXZlbnRUb29sdGlwPihlbmNvZGVVUkkoYCR7dXJsfS9lcXVpcG1lbnRzL25hbWUvJHtuYW1lfWApKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZShpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEh5cFByb2NlZHVyZT4oZW5jb2RlVVJJKGAke3VybH0vcHJvY2VkdXJlcy9pZC8ke2lkfWApKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNhdmUoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscykge1xuICAgIGNvbnN0IHRvU2VuZCA9IHsgLi4uZXZlbnQgfSBhcyBQYXJ0aWFsPEh5cEV2ZW50RGV0YWlscz47XG4gICAgaWYgKGV2ZW50LmlkIDwgMCkge1xuICAgICAgZGVsZXRlIHRvU2VuZC5pZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGlmICghIXRvU2VuZC5pZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PEh5cEV2ZW50RGV0YWlscz4oXG4gICAgICAgICAgICBlbmNvZGVVUkkoYCR7dXJsfS9ldmVudHMvaWQvJHt0b1NlbmQuaWR9YCksXG4gICAgICAgICAgICBldmVudEZvcldyaXRlQVBJKGV2ZW50KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEh5cEV2ZW50RGV0YWlscz4oZW5jb2RlVVJJKGAke3VybH0vZXZlbnRzYCksIGV2ZW50Rm9yV3JpdGVBUEkoZXZlbnQpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNhdmVQcm9jZWR1cmUocHJvY2VkdXJlOiBIeXBQcm9jZWR1cmUpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQ8dm9pZD4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vcHJvY2VkdXJlcy9pZC8ke3Byb2NlZHVyZS5pZH1gKSxcbiAgICAgICAgICBwcm9jZWR1cmVGb3JXcml0ZUFQSShwcm9jZWR1cmUpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdGF0dXMoZXZlbnQ6IEh5cEV2ZW50RGV0YWlscywgc3RhdHVzOiBzdHJpbmcsIGNvbW1lbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDx2b2lkPihlbmNvZGVVUkkoYCR7dXJsfS9ldmVudHMvaWQvJHtldmVudC5pZH0vY2xvc2VgKSwge1xuICAgICAgICAgIGlkOiB2NCgpLFxuICAgICAgICAgIG1lc3NhZ2U6IGNvbW1lbnRcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdGF0dXNQcm9jZWR1cmUocHJvY2VkdXJlOiBIeXBQcm9jZWR1cmUsIHN0YXR1czogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQ8dm9pZD4oZW5jb2RlVVJJKGAke3VybH0vcHJvY2VkdXJlcy9pZC8ke3Byb2NlZHVyZS5pZH0vY2xvc2VgKSwge1xuICAgICAgICAgIGlkOiB2NCgpLFxuICAgICAgICAgIG1lc3NhZ2U6IGNvbW1lbnRcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3NvY2lhdGVQcm9jZWR1cmUocHJvY2VkdXJlSWQ6IG51bWJlciwgZXZlbnRJZHM6IG51bWJlcltdKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PEh5cFByb2NlZHVyZT4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vcHJvY2VkdXJlcy9tb2RlbC9pZC8ke3Byb2NlZHVyZUlkfS9hc3NvY2lhdGVgKSxcbiAgICAgICAgICBldmVudElkc1xuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=