@eo-sdk/client 10.0.0 → 10.1.0-rc.1

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 (40) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -1
  4. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts +13 -61
  5. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts.map +1 -1
  6. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +5 -0
  7. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
  8. package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +3 -7
  9. package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts.map +1 -1
  10. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -0
  11. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  12. package/app/eo-framework/frame/frame.component.d.ts +5 -0
  13. package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
  14. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  15. package/assets/_default/i18n/de.json +3 -0
  16. package/assets/_default/i18n/en.json +3 -0
  17. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  18. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +4 -4
  19. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +16 -12
  20. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +16 -13
  21. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +52 -31
  22. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +14 -3
  23. package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +6 -20
  24. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +8 -4
  25. package/esm2020/app/eo-framework/frame/frame.component.mjs +19 -1
  26. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +3 -3
  27. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +5 -4
  28. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  29. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +33 -3
  30. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +32 -2
  31. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  32. package/fesm2015/eo-sdk-client.mjs +113 -67
  33. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  34. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +32 -2
  35. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  36. package/fesm2020/eo-sdk-client.mjs +116 -71
  37. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  38. package/package.json +2 -2
  39. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +7 -54
  40. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
@@ -1,13 +1,15 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { Validators } from '@angular/forms';
3
4
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/forms";
6
7
  import * as i2 from "@eo-sdk/core";
7
- import * as i3 from "../../../../../eo-framework/form-elements/form-input/form-input.component";
8
- import * as i4 from "../../../../../eo-framework/form-elements/string/string.component";
9
- import * as i5 from "../info-inbox-widget.component";
10
- import * as i6 from "@ngx-translate/core";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@ngx-translate/core";
10
+ import * as i5 from "../../../../../eo-framework/form-elements/form-input/form-input.component";
11
+ import * as i6 from "../../../../../eo-framework/form-elements/string/string.component";
12
+ import * as i7 from "../info-inbox-widget.component";
11
13
  let InfoInboxSetupComponent = class InfoInboxSetupComponent {
12
14
  set widgetConfig(wc) {
13
15
  this._widgetConfig = wc;
@@ -23,7 +25,7 @@ let InfoInboxSetupComponent = class InfoInboxSetupComponent {
23
25
  this.translate = translate;
24
26
  this.widgetConfigChange = new EventEmitter();
25
27
  this.setupForm = this.fb.group({
26
- title: [this.translate.instant('eo.dashboard.info.inbox.msg')],
28
+ title: [this.translate.instant('eo.dashboard.info.inbox.msg'), [Validators.maxLength(50)]],
27
29
  });
28
30
  this.setupForm.valueChanges.pipe(untilDestroyed(this)).subscribe((_) => {
29
31
  this.setWidgetConfig();
@@ -33,24 +35,26 @@ let InfoInboxSetupComponent = class InfoInboxSetupComponent {
33
35
  this.setWidgetConfig();
34
36
  }
35
37
  setWidgetConfig() {
36
- this._widgetConfig = {
37
- ...this.setupForm.value,
38
- };
39
- this.widgetConfigChange.emit(this._widgetConfig);
38
+ if (this.setupForm.valid) {
39
+ this._widgetConfig = {
40
+ ...this.setupForm.value,
41
+ };
42
+ this.widgetConfigChange.emit(this._widgetConfig);
43
+ }
40
44
  }
41
45
  };
42
46
  InfoInboxSetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InfoInboxSetupComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
43
- InfoInboxSetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InfoInboxSetupComponent, selector: "eo-info-inbox-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.inbox.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n </form>\n</div>\n<div class=\"preview\">\n <eo-info-inbox-widget [widgetConfig]=\"widgetConfig\"></eo-info-inbox-widget>\n</div>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i4.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i5.InfoInboxWidgetComponent, selector: "eo-info-inbox-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
47
+ InfoInboxSetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InfoInboxSetupComponent, selector: "eo-info-inbox-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.inbox.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n <div class=\"err-msg\"\n *ngIf=\"setupForm.get('title').invalid && (setupForm.get('title').dirty || setupForm.get('title').touched)\">\n <div *ngIf=\"setupForm.get('title').errors\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n </div>\n </form>\n</div>\n<div class=\"preview\">\n <eo-info-inbox-widget [widgetConfig]=\"widgetConfig\"></eo-info-inbox-widget>\n</div>", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i6.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i7.InfoInboxWidgetComponent, selector: "eo-info-inbox-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
44
48
  InfoInboxSetupComponent = __decorate([
45
49
  UntilDestroy()
46
50
  ], InfoInboxSetupComponent);
47
51
  export { InfoInboxSetupComponent };
48
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InfoInboxSetupComponent, decorators: [{
49
53
  type: Component,
50
- args: [{ selector: 'eo-info-inbox-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.inbox.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n </form>\n</div>\n<div class=\"preview\">\n <eo-info-inbox-widget [widgetConfig]=\"widgetConfig\"></eo-info-inbox-widget>\n</div>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"] }]
54
+ args: [{ selector: 'eo-info-inbox-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.inbox.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n <div class=\"err-msg\"\n *ngIf=\"setupForm.get('title').invalid && (setupForm.get('title').dirty || setupForm.get('title').touched)\">\n <div *ngIf=\"setupForm.get('title').errors\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n </div>\n </form>\n</div>\n<div class=\"preview\">\n <eo-info-inbox-widget [widgetConfig]=\"widgetConfig\"></eo-info-inbox-widget>\n</div>", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}\n"] }]
51
55
  }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }]; }, propDecorators: { widgetConfigChange: [{
52
56
  type: Output
53
57
  }], widgetConfig: [{
54
58
  type: Input
55
59
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9pbmZvLWluYm94LXdpZGdldC9pbmZvLWluYm94LXNldHVwL2luZm8taW5ib3gtc2V0dXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaW5mby1pbmJveC13aWRnZXQvaW5mby1pbmJveC1zZXR1cC9pbmZvLWluYm94LXNldHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBVTVELElBQU0sdUJBQXVCLEdBQTdCLE1BQU0sdUJBQXVCO0lBUWxDLElBQWEsWUFBWSxDQUFDLEVBQW1CO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ3hCLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFDVSxFQUFzQixFQUN0QixTQUEyQjtRQUQzQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCM0IsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFbkUsY0FBUyxHQUFxQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQy9ELENBQUMsQ0FBQztRQWdCRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztTQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7b0hBckNVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDRKQ2JwQyw4ZEFVQTtBREdhLHVCQUF1QjtJQU5uQyxZQUFZLEVBQUU7R0FNRix1QkFBdUIsQ0FzQ25DO1NBdENZLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjt3SUFPckIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUtNLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtJV2lkZ2V0U2V0dXBDb21wb25lbnR9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtJbmZvSW5ib3hDb25maWd9IGZyb20gJy4uL2luZm8taW5ib3gubW9kZWwnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluZm8taW5ib3gtc2V0dXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZm8taW5ib3gtc2V0dXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5mb0luYm94U2V0dXBDb21wb25lbnQgaW1wbGVtZW50cyBJV2lkZ2V0U2V0dXBDb21wb25lbnQsIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJbmZvSW5ib3hDb25maWc7XG4gIEBPdXRwdXQoKSB3aWRnZXRDb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEluZm9JbmJveENvbmZpZz4oKTtcblxuICBzZXR1cEZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aXRsZTogW3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmRhc2hib2FyZC5pbmZvLmluYm94Lm1zZycpXSxcbiAgfSk7XG4gIEBJbnB1dCgpIHNldCB3aWRnZXRDb25maWcod2M6IEluZm9JbmJveENvbmZpZykge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IHdjO1xuICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgdGl0bGU6IHdjID8gd2MudGl0bGUgOiAnJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNldHVwRm9ybS52YWx1ZUNoYW5nZXMucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldENvbmZpZygpO1xuICAgIH0pO1xuICB9XG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFdpZGdldENvbmZpZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRDb25maWcoKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0ge1xuICAgICAgLi4uIHRoaXMuc2V0dXBGb3JtLnZhbHVlLFxuICAgIH07XG4gICAgdGhpcy53aWRnZXRDb25maWdDaGFuZ2UuZW1pdCh0aGlzLl93aWRnZXRDb25maWcpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2V0dXBcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNldHVwRm9ybVwiPlxuICAgICAgICA8ZW8tZm9ybS1pbnB1dCAgdGFiaW5kZXg9XCIwXCIgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LnNldHVwLnRpdGxlJyB8IHRyYW5zbGF0ZVwiICBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgZGVzY3JpcHRpb249XCJlby5kYXNoYm9hcmQuaW5mby5pbmJveC5tc2dcIj5cbiAgICAgICAgICAgIDxlby1zdHJpbmcgYXV0b2NvbXBsZXRlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgPjwvZW8tc3RyaW5nPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPC9mb3JtPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJldmlld1wiPlxuICAgIDxlby1pbmZvLWluYm94LXdpZGdldCBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiPjwvZW8taW5mby1pbmJveC13aWRnZXQ+XG48L2Rpdj5cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9pbmZvLWluYm94LXdpZGdldC9pbmZvLWluYm94LXNldHVwL2luZm8taW5ib3gtc2V0dXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaW5mby1pbmJveC13aWRnZXQvaW5mby1pbmJveC1zZXR1cC9pbmZvLWluYm94LXNldHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBdUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBVTVELElBQU0sdUJBQXVCLEdBQTdCLE1BQU0sdUJBQXVCO0lBUWxDLElBQWEsWUFBWSxDQUFDLEVBQW1CO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ3hCLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFDVSxFQUFzQixFQUN0QixTQUEyQjtRQUQzQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCM0IsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFbkUsY0FBUyxHQUFxQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzNGLENBQUMsQ0FBQztRQWdCRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBQztZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNuQixHQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSzthQUN6QixDQUFDO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDOztvSEF2Q1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNEpDYnBDLGt4QkFhTTtBREFPLHVCQUF1QjtJQU5uQyxZQUFZLEVBQUU7R0FNRix1QkFBdUIsQ0F3Q25DO1NBeENZLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjt3SUFPckIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUtNLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtJV2lkZ2V0U2V0dXBDb21wb25lbnR9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtJbmZvSW5ib3hDb25maWd9IGZyb20gJy4uL2luZm8taW5ib3gubW9kZWwnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluZm8taW5ib3gtc2V0dXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZm8taW5ib3gtc2V0dXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5mb0luYm94U2V0dXBDb21wb25lbnQgaW1wbGVtZW50cyBJV2lkZ2V0U2V0dXBDb21wb25lbnQsIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJbmZvSW5ib3hDb25maWc7XG4gIEBPdXRwdXQoKSB3aWRnZXRDb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEluZm9JbmJveENvbmZpZz4oKTtcblxuICBzZXR1cEZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aXRsZTogW3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmRhc2hib2FyZC5pbmZvLmluYm94Lm1zZycpLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXV0sXG4gIH0pO1xuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKHdjOiBJbmZvSW5ib3hDb25maWcpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWcgPSB3YztcbiAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHRpdGxlOiB3YyA/IHdjLnRpdGxlIDogJycsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgd2lkZ2V0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZXR1cEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5zZXRXaWRnZXRDb25maWcoKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRXaWRnZXRDb25maWcoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2lkZ2V0Q29uZmlnKCkge1xuICAgIGlmKHRoaXMuc2V0dXBGb3JtLnZhbGlkKXtcbiAgICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IHtcbiAgICAgICAgLi4uIHRoaXMuc2V0dXBGb3JtLnZhbHVlLFxuICAgICAgfTtcbiAgICAgIHRoaXMud2lkZ2V0Q29uZmlnQ2hhbmdlLmVtaXQodGhpcy5fd2lkZ2V0Q29uZmlnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZXR1cFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2V0dXBGb3JtXCI+XG4gICAgICAgIDxlby1mb3JtLWlucHV0ICB0YWJpbmRleD1cIjBcIiBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuc2V0dXAudGl0bGUnIHwgdHJhbnNsYXRlXCIgIFtza2lwVG9nZ2xlXT1cInRydWVcIiBkZXNjcmlwdGlvbj1cImVvLmRhc2hib2FyZC5pbmZvLmluYm94Lm1zZ1wiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiA+PC9lby1zdHJpbmc+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZXR1cEZvcm0uZ2V0KCd0aXRsZScpLmludmFsaWQgJiYgKHNldHVwRm9ybS5nZXQoJ3RpdGxlJykuZGlydHkgfHwgc2V0dXBGb3JtLmdldCgndGl0bGUnKS50b3VjaGVkKVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNldHVwRm9ybS5nZXQoJ3RpdGxlJykuZXJyb3JzXCIgW3RyYW5zbGF0ZVBhcmFtc109XCJ7bWF4bGVuZ3RoOiA1MH1cIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5tYXhsZW5ndGg8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJldmlld1wiPlxuICAgIDxlby1pbmZvLWluYm94LXdpZGdldCBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiPjwvZW8taW5mby1pbmJveC13aWRnZXQ+XG48L2Rpdj4iXX0=
@@ -1,15 +1,16 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { Validators } from '@angular/forms';
3
4
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/forms";
6
7
  import * as i2 from "@eo-sdk/core";
7
8
  import * as i3 from "@angular/common";
8
- import * as i4 from "../../../../../eo-framework/ui/error-message/error-message.component";
9
- import * as i5 from "../../../../../eo-framework/form-elements/form-input/form-input.component";
10
- import * as i6 from "../../../../../eo-framework/form-elements/string/string.component";
11
- import * as i7 from "../info-intray-widget.component";
12
- import * as i8 from "@ngx-translate/core";
9
+ import * as i4 from "@ngx-translate/core";
10
+ import * as i5 from "../../../../../eo-framework/ui/error-message/error-message.component";
11
+ import * as i6 from "../../../../../eo-framework/form-elements/form-input/form-input.component";
12
+ import * as i7 from "../../../../../eo-framework/form-elements/string/string.component";
13
+ import * as i8 from "../info-intray-widget.component";
13
14
  let InfoIntraySetupComponent = class InfoIntraySetupComponent {
14
15
  set widgetConfig(wc) {
15
16
  this._widgetConfig = wc;
@@ -27,17 +28,19 @@ let InfoIntraySetupComponent = class InfoIntraySetupComponent {
27
28
  this.prepareService = prepareService;
28
29
  this.widgetConfigChange = new EventEmitter();
29
30
  this.setupForm = this.fb.group({
30
- title: [this.translate.instant('eo.dashboard.info.intray.msg')],
31
+ title: [this.translate.instant('eo.dashboard.info.intray.msg'), [Validators.maxLength(50)]],
31
32
  });
32
33
  this.setupForm.valueChanges.pipe(untilDestroyed(this)).subscribe((_) => {
33
34
  this.setWidgetConfig();
34
35
  });
35
36
  }
36
37
  setWidgetConfig() {
37
- this._widgetConfig = {
38
- ...this.setupForm.value,
39
- };
40
- this.widgetConfigChange.emit(this._widgetConfig);
38
+ if (this.setupForm.valid) {
39
+ this._widgetConfig = {
40
+ ...this.setupForm.value,
41
+ };
42
+ this.widgetConfigChange.emit(this._widgetConfig);
43
+ }
41
44
  }
42
45
  ngOnInit() {
43
46
  this.setWidgetConfig();
@@ -50,17 +53,17 @@ let InfoIntraySetupComponent = class InfoIntraySetupComponent {
50
53
  }
51
54
  };
52
55
  InfoIntraySetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InfoIntraySetupComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }, { token: i2.CapabilitiesService }, { token: i2.PrepareService }], target: i0.ɵɵFactoryTarget.Component });
53
- InfoIntraySetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InfoIntraySetupComponent, selector: "eo-info-intray-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.intray.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n </form>\n</div>\n\n<div class=\"preview\" *ngIf=\"capabilities.intray && preparedItemsCount > 0 ; else tpl\">\n <eo-info-intray [widgetConfig]=\"widgetConfig\"></eo-info-intray>\n</div>\n\n<ng-template #tpl>\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: 'eo.prepare.list.empty'}\"></eo-error-message>\n </div>\n</ng-template>\n\n\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}:host .empty{background-color:var(--main-background);padding:var(--app-pane-padding)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i5.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i6.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i7.InfoIntrayWidgetComponent, selector: "eo-info-intray", inputs: ["widgetConfig"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
56
+ InfoIntraySetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InfoIntraySetupComponent, selector: "eo-info-intray-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.intray.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n <div class=\"err-msg\"\n *ngIf=\"setupForm.get('title').invalid && (setupForm.get('title').dirty || setupForm.get('title').touched)\">\n <div *ngIf=\"setupForm.get('title').errors\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n </div>\n </form>\n</div>\n\n<div class=\"preview\" *ngIf=\"capabilities.intray && preparedItemsCount > 0 ; else tpl\">\n <eo-info-intray [widgetConfig]=\"widgetConfig\"></eo-info-intray>\n</div>\n\n<ng-template #tpl>\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: 'eo.prepare.list.empty'}\"></eo-error-message>\n </div>\n</ng-template>\n\n\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}:host .empty{background-color:var(--main-background);padding:var(--app-pane-padding)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i6.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i7.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i8.InfoIntrayWidgetComponent, selector: "eo-info-intray", inputs: ["widgetConfig"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
54
57
  InfoIntraySetupComponent = __decorate([
55
58
  UntilDestroy()
56
59
  ], InfoIntraySetupComponent);
57
60
  export { InfoIntraySetupComponent };
58
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InfoIntraySetupComponent, decorators: [{
59
62
  type: Component,
60
- args: [{ selector: 'eo-info-intray-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.intray.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n </form>\n</div>\n\n<div class=\"preview\" *ngIf=\"capabilities.intray && preparedItemsCount > 0 ; else tpl\">\n <eo-info-intray [widgetConfig]=\"widgetConfig\"></eo-info-intray>\n</div>\n\n<ng-template #tpl>\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: 'eo.prepare.list.empty'}\"></eo-error-message>\n </div>\n</ng-template>\n\n\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}:host .empty{background-color:var(--main-background);padding:var(--app-pane-padding)}\n"] }]
63
+ args: [{ selector: 'eo-info-intray-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input tabindex=\"0\" [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\" description=\"eo.dashboard.info.intray.msg\">\n <eo-string autocomplete=\"true\" formControlName=\"title\" ></eo-string>\n </eo-form-input>\n <div class=\"err-msg\"\n *ngIf=\"setupForm.get('title').invalid && (setupForm.get('title').dirty || setupForm.get('title').touched)\">\n <div *ngIf=\"setupForm.get('title').errors\" [translateParams]=\"{maxlength: 50}\" translate>eo.form.property.maxlength</div>\n </div>\n </form>\n</div>\n\n<div class=\"preview\" *ngIf=\"capabilities.intray && preparedItemsCount > 0 ; else tpl\">\n <eo-info-intray [widgetConfig]=\"widgetConfig\"></eo-info-intray>\n</div>\n\n<ng-template #tpl>\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: 'eo.prepare.list.empty'}\"></eo-error-message>\n </div>\n</ng-template>\n\n\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .setup .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host .preview{background-color:var(--main-background);padding:var(--app-pane-padding);display:flex;justify-content:center;align-items:center;pointer-events:none}:host .empty{background-color:var(--main-background);padding:var(--app-pane-padding)}\n"] }]
61
64
  }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }, { type: i2.CapabilitiesService }, { type: i2.PrepareService }]; }, propDecorators: { widgetConfigChange: [{
62
65
  type: Output
63
66
  }], widgetConfig: [{
64
67
  type: Input
65
68
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1pbnRyYXktc2V0dXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaW5mby1pbnRyYXktd2lkZ2V0L2luZm8taW50cmF5LXNldHVwL2luZm8taW50cmF5LXNldHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS1zZXR1cC9pbmZvLWludHJheS1zZXR1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvRSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7O0FBUzVELElBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXdCO0lBV25DLElBQWEsWUFBWSxDQUFDLEVBQW9CO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ3hCLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFDVSxFQUFzQixFQUN0QixTQUEyQixFQUMzQixpQkFBc0MsRUFDdEMsY0FBOEI7UUFIOUIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFwQjlCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRXBFLGNBQVMsR0FBcUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDMUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNoRSxDQUFDLENBQUM7UUFpQkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7U0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0I7aUJBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzFCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7O3FIQS9DVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw2SkNkckMsK3VCQW9CQTtBRE5hLHdCQUF3QjtJQURwQyxZQUFZLEVBQUU7R0FDRix3QkFBd0IsQ0FnRHBDO1NBaERZLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHNCQUFzQjt1TUFZdEIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUtNLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lXaWRnZXRTZXR1cENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllc1NlcnZpY2UsIFByZXBhcmVTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtJbmZvSW50cmF5Q29uZmlnfSBmcm9tICcuLi9pbmZvLWludHJheS5tb2RlbCc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluZm8taW50cmF5LXNldHVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZm8taW50cmF5LXNldHVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5mby1pbnRyYXktc2V0dXAuY29tcG9uZW50LnNjc3MnXVxufSlcblxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgSW5mb0ludHJheVNldHVwQ29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldFNldHVwQ29tcG9uZW50LCBPbkluaXQge1xuXG4gIHByaXZhdGUgX3dpZGdldENvbmZpZzogSW5mb0ludHJheUNvbmZpZztcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIHByZXBhcmVkSXRlbXNDb3VudDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSB3aWRnZXRDb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEluZm9JbnRyYXlDb25maWc+KCk7XG5cbiAgc2V0dXBGb3JtOiBVbnR5cGVkRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgdGl0bGU6IFt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5kYXNoYm9hcmQuaW5mby5pbnRyYXkubXNnJyldLFxuICB9KTtcbiAgQElucHV0KCkgc2V0IHdpZGdldENvbmZpZyh3YzogSW5mb0ludHJheUNvbmZpZykge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IHdjO1xuICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgdGl0bGU6IHdjID8gd2MudGl0bGUgOiAnJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJlcGFyZVNlcnZpY2U6IFByZXBhcmVTZXJ2aWNlKSB7XG4gICAgdGhpcy5zZXR1cEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5zZXRXaWRnZXRDb25maWcoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2lkZ2V0Q29uZmlnKCkge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IHtcbiAgICAgIC4uLiB0aGlzLnNldHVwRm9ybS52YWx1ZSxcbiAgICB9O1xuICAgIHRoaXMud2lkZ2V0Q29uZmlnQ2hhbmdlLmVtaXQodGhpcy5fd2lkZ2V0Q29uZmlnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0V2lkZ2V0Q29uZmlnKCk7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkpIHtcbiAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UucHJlcGFyZWRJdGVtQ291bnQkXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKGNvdW50ID0+IHRoaXMucHJlcGFyZWRJdGVtc0NvdW50ID0gY291bnQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNldHVwXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXR1cEZvcm1cIj5cbiAgICAgICAgPGVvLWZvcm0taW5wdXQgIHRhYmluZGV4PVwiMFwiIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5zZXR1cC50aXRsZScgfCB0cmFuc2xhdGVcIiAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIGRlc2NyaXB0aW9uPVwiZW8uZGFzaGJvYXJkLmluZm8uaW50cmF5Lm1zZ1wiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiA+PC9lby1zdHJpbmc+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8L2Zvcm0+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInByZXZpZXdcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbnRyYXkgJiYgcHJlcGFyZWRJdGVtc0NvdW50ID4gMCA7IGVsc2UgdHBsXCI+XG4gICAgPGVvLWluZm8taW50cmF5IFt3aWRnZXRDb25maWddPVwid2lkZ2V0Q29uZmlnXCI+PC9lby1pbmZvLWludHJheT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgICN0cGw+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19wcmVwYXJlLnN2ZycsIHRleHQ6ICdlby5wcmVwYXJlLmxpc3QuZW1wdHknfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1pbnRyYXktc2V0dXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaW5mby1pbnRyYXktd2lkZ2V0L2luZm8taW50cmF5LXNldHVwL2luZm8taW50cmF5LXNldHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS1zZXR1cC9pbmZvLWludHJheS1zZXR1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQXVDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR2hGLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFTNUQsSUFBTSx3QkFBd0IsR0FBOUIsTUFBTSx3QkFBd0I7SUFXbkMsSUFBYSxZQUFZLENBQUMsRUFBb0I7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDeEIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNVLEVBQXNCLEVBQ3RCLFNBQTJCLEVBQzNCLGlCQUFzQyxFQUN0QyxjQUE4QjtRQUg5QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXBCOUIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFcEUsY0FBUyxHQUFxQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzVGLENBQUMsQ0FBQztRQWlCRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBQztZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNuQixHQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSzthQUN6QixDQUFDO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCO2lCQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxQixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDOztxSEFqRFUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsNkpDZHJDLHFpQ0F3QkE7QURWYSx3QkFBd0I7SUFEcEMsWUFBWSxFQUFFO0dBQ0Ysd0JBQXdCLENBa0RwQztTQWxEWSx3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFDRSxzQkFBc0I7dU1BWXRCLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFLTSxZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0U2V0dXBDb21wb25lbnR9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXNTZXJ2aWNlLCBQcmVwYXJlU2VydmljZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7SW5mb0ludHJheUNvbmZpZ30gZnJvbSAnLi4vaW5mby1pbnRyYXkubW9kZWwnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmZvLWludHJheS1zZXR1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLWludHJheS1zZXR1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZm8taW50cmF5LXNldHVwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGNsYXNzIEluZm9JbnRyYXlTZXR1cENvbXBvbmVudCBpbXBsZW1lbnRzIElXaWRnZXRTZXR1cENvbXBvbmVudCwgT25Jbml0IHtcblxuICBwcml2YXRlIF93aWRnZXRDb25maWc6IEluZm9JbnRyYXlDb25maWc7XG4gIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzO1xuICBwcmVwYXJlZEl0ZW1zQ291bnQ6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgd2lkZ2V0Q29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJbmZvSW50cmF5Q29uZmlnPigpO1xuXG4gIHNldHVwRm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHRpdGxlOiBbdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZGFzaGJvYXJkLmluZm8uaW50cmF5Lm1zZycpLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXV0sXG4gIH0pO1xuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKHdjOiBJbmZvSW50cmF5Q29uZmlnKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gd2M7XG4gICAgdGhpcy5zZXR1cEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB0aXRsZTogd2MgPyB3Yy50aXRsZSA6ICcnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHdpZGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FwYWJpbGl0eVNlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwRm9ybS52YWx1ZUNoYW5nZXMucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldENvbmZpZygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRDb25maWcoKSB7XG4gICAgaWYodGhpcy5zZXR1cEZvcm0udmFsaWQpe1xuICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0ge1xuICAgICAgICAuLi4gdGhpcy5zZXR1cEZvcm0udmFsdWUsXG4gICAgICB9O1xuICAgICAgdGhpcy53aWRnZXRDb25maWdDaGFuZ2UuZW1pdCh0aGlzLl93aWRnZXRDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0V2lkZ2V0Q29uZmlnKCk7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkpIHtcbiAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2UucHJlcGFyZWRJdGVtQ291bnQkXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKGNvdW50ID0+IHRoaXMucHJlcGFyZWRJdGVtc0NvdW50ID0gY291bnQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNldHVwXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXR1cEZvcm1cIj5cbiAgICAgICAgPGVvLWZvcm0taW5wdXQgIHRhYmluZGV4PVwiMFwiIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5zZXR1cC50aXRsZScgfCB0cmFuc2xhdGVcIiAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIGRlc2NyaXB0aW9uPVwiZW8uZGFzaGJvYXJkLmluZm8uaW50cmF5Lm1zZ1wiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiA+PC9lby1zdHJpbmc+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZXR1cEZvcm0uZ2V0KCd0aXRsZScpLmludmFsaWQgJiYgKHNldHVwRm9ybS5nZXQoJ3RpdGxlJykuZGlydHkgfHwgc2V0dXBGb3JtLmdldCgndGl0bGUnKS50b3VjaGVkKVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNldHVwRm9ybS5nZXQoJ3RpdGxlJykuZXJyb3JzXCIgW3RyYW5zbGF0ZVBhcmFtc109XCJ7bWF4bGVuZ3RoOiA1MH1cIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5tYXhsZW5ndGg8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwcmV2aWV3XCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5ICYmIHByZXBhcmVkSXRlbXNDb3VudCA+IDAgOyBlbHNlIHRwbFwiPlxuICAgIDxlby1pbmZvLWludHJheSBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiPjwvZW8taW5mby1pbnRyYXk+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICAjdHBsPlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgIFtlbXB0eVN0YXRlXT1cIntpY29uOiAnaWNfcHJlcGFyZS5zdmcnLCB0ZXh0OiAnZW8ucHJlcGFyZS5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuIl19
@@ -1,57 +1,77 @@
1
1
  import { Component, ViewChild, EventEmitter } from '@angular/core';
2
2
  import { Utils, EnaioEvent } from '@eo-sdk/core';
3
- import { FormControl, FormGroup } from '@angular/forms';
4
3
  import { switchMap } from 'rxjs/operators';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@eo-sdk/core";
7
6
  import * as i2 from "../../../../../eo-framework-core/pending-changes/pending-changes.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@ngx-translate/core";
10
- import * as i5 from "../../../../ui/loading-spinner/loading-spinner.component";
11
- import * as i6 from "../../../../ui/eo-dialog/eo-dialog.component";
12
- import * as i7 from "../../../../object-form/object-form/form-element-table/form-element-table.component";
13
- import * as i8 from "@angular/forms";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@ngx-translate/core";
10
+ import * as i6 from "../../../../ui/loading-spinner/loading-spinner.component";
11
+ import * as i7 from "../../../../ui/eo-dialog/eo-dialog.component";
12
+ import * as i8 from "../../../../object-form/object-form/form-element-table/form-element-table.component";
14
13
  import * as i9 from "../../../../form-elements/form-input/form-input.component";
15
- import * as i10 from "../../../../form-elements/string/string.component";
16
- import * as i11 from "../../../../cta/component/cta.component";
14
+ import * as i10 from "../../../../form-elements/codesystem/codesystem.component";
15
+ import * as i11 from "../../../../form-elements/string/string.component";
16
+ import * as i12 from "../../../../cta/component/cta.component";
17
17
  export class SignatureComponent {
18
- constructor(bpmService, pendingChanges, translate, toaster, signingService, config, eventService, dmsService) {
18
+ constructor(bpmService, pendingChanges, translate, toaster, signingService, eventService, dmsService, systemService, storageService, fb) {
19
19
  this.bpmService = bpmService;
20
20
  this.pendingChanges = pendingChanges;
21
21
  this.translate = translate;
22
22
  this.toaster = toaster;
23
23
  this.signingService = signingService;
24
- this.config = config;
25
24
  this.eventService = eventService;
26
25
  this.dmsService = dmsService;
26
+ this.systemService = systemService;
27
+ this.storageService = storageService;
28
+ this.fb = fb;
27
29
  this.finished = new EventEmitter();
28
30
  this.canceled = new EventEmitter();
29
31
  // ID set by pendingChanges service when editing indexdata
30
32
  // Used to finish the pending task when editing is done
31
33
  this.pendingTaskIds = [];
32
- this.maxSigners = this.config.getRaw('signers.maxSigners') || 6;
33
- this.signingForm = new FormGroup({});
34
- this.emailSubject = new FormControl();
35
- this.emailBody = new FormControl();
36
- this.signers = new FormControl();
37
- this.signingForm.addControl('yuvsigemailsubject', this.emailSubject);
38
- this.signingForm.addControl('yuvsigemailbody', this.emailBody);
39
- this.signingForm.addControl('yuvsigners', this.signers);
34
+ this.yuvsigtypeCodesystem = {
35
+ id: '1291BAB91B0D49D1A9A4DFCCF49A1666',
36
+ name: 'yuvsigtype',
37
+ entries: []
38
+ };
39
+ this.signatureTypeStorageKey = 'eo.signature.type';
40
+ const defaultSignatureType = this.storageService.getItem(this.signatureTypeStorageKey);
41
+ this.signingForm = this.fb.group({
42
+ yuvsigemailsubject: [''],
43
+ yuvsigemailbody: [''],
44
+ yuvsigtype: [defaultSignatureType ? defaultSignatureType : ''],
45
+ yuvsigners: [],
46
+ });
40
47
  this.headerTitle = this.translate.instant('eo.action.signature.label');
41
48
  this.headerDescription = this.translate.instant('eo.action.signature.description');
42
49
  this.signingFormListener = this.signingForm.valueChanges.subscribe(() => this.onIndexDataChanged());
50
+ this.signingService.getInfo().subscribe((info) => {
51
+ if (info.signatureTypesEnabled) {
52
+ this.yuvsigtypeCodesystem.entries = this.systemService.getCodesystem(this.yuvsigtypeCodesystem.id).entries;
53
+ this.yuvsigtypeCodesystem.entries = this.yuvsigtypeCodesystem.entries.filter(entry => info.signatureTypesEnabled.includes(entry.data));
54
+ }
55
+ this.maxSigners = info.maxSigners || 6;
56
+ this.signingForm.patchValue({
57
+ yuvsigemailsubject: info.defaultEmailSubject,
58
+ yuvsigemailbody: info.defaultEmailBody
59
+ });
60
+ });
43
61
  }
44
62
  saveForm() {
45
63
  this.processingRequest = true;
46
64
  if (this.signingForm && !this.signingForm.invalid) {
47
- const signers = (this.signers.value || []).map(value => ({
65
+ const signers = (this.signingForm.get('yuvsigners').value || []).map(value => ({
48
66
  signerName: value.yuvsignername,
49
67
  signerEmail: value.yuvsigneremail,
50
- signerOrder: value.yuvsignerorder
68
+ signerOrder: value.yuvsignerorder,
69
+ signerPhone: value.yuvsignerphone
51
70
  }));
52
71
  const signingData = {
53
- emailSubject: this.emailSubject.value,
54
- emailBody: this.emailBody.value,
72
+ emailSubject: this.signingForm.get('yuvsigemailsubject').value,
73
+ emailBody: this.signingForm.get('yuvsigemailbody').value,
74
+ signatureType: this.signingForm.get('yuvsigtype').value ? this.signingForm.get('yuvsigtype').value : this.yuvsigtypeCodesystem.entries[0].data,
55
75
  signers
56
76
  };
57
77
  this.signingService
@@ -60,6 +80,7 @@ export class SignatureComponent {
60
80
  .subscribe((dmsObject) => {
61
81
  this.processingRequest = false;
62
82
  this.toaster.success(this.translate.instant('eo.action.signature.request.success'));
83
+ this.storageService.setItem(this.signatureTypeStorageKey, signingData.signatureType);
63
84
  this.eventService.trigger(EnaioEvent.DMS_OBJECT_UPDATED, dmsObject);
64
85
  this.finish();
65
86
  }, Utils.throw(error => {
@@ -67,7 +88,7 @@ export class SignatureComponent {
67
88
  this.toaster.error(this.translate.instant('eo.error.connection.interrupted.title'), this.translate.instant('eo.error.connection.interrupted.text'));
68
89
  }
69
90
  else {
70
- this.toaster.error(error);
91
+ this.toaster.error(error.error?.message);
71
92
  }
72
93
  this.processingRequest = false;
73
94
  }));
@@ -93,8 +114,8 @@ export class SignatureComponent {
93
114
  this.finishPending();
94
115
  }
95
116
  }
96
- getLocalizedForm() {
97
- return this.signingService.getLocalizedSigningForm();
117
+ getLocalizedForm(phoneRequired = false) {
118
+ return this.signingService.getLocalizedSigningForm(phoneRequired);
98
119
  }
99
120
  startPending() {
100
121
  // because this method will be called every time the form status changes,
@@ -110,13 +131,13 @@ export class SignatureComponent {
110
131
  this.signingFormListener.unsubscribe();
111
132
  }
112
133
  }
113
- SignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SignatureComponent, deps: [{ token: i1.BpmService }, { token: i2.PendingChangesService }, { token: i1.TranslateService }, { token: i1.NotificationsService }, { token: i1.SigningService }, { token: i1.Config }, { token: i1.EventService }, { token: i1.DmsService }], target: i0.ɵɵFactoryTarget.Component });
114
- SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: SignatureComponent, selector: "eo-signature", viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<eo-dialog [title]=\"headerTitle\"\n [subtitle]=\"headerDescription\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"600\"\n [minHeight]=\"600\"\n [styleClass]=\"'process-form-dialog'\" #dialog>\n\n <section class=\"signature-form form-container\">\n <form class=\"signing-form\" [formGroup]=\"signingForm\">\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailsubject'\"\n [minLength]=\"3\"\n [maxLength]=\"100\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'medium'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n ></eo-string>\n </eo-form-input>\n <div class=\"table\">\n <eo-table [limit]=\"maxSigners\" [height]=\"'60vh'\" [minWidth]=\"'68vw'\" [hasPreviewFile]=\"false\" [params]=\"{\n situation: 'CREATE',\n element: getLocalizedForm(),\n size: 'small',\n object: selection[0]\n }\" [formControlName]=\"'yuvsigners'\"></eo-table>\n </div>\n </form>\n\n <div class=\"actions\">\n <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\n <eo-cta [active]=\"!processingRequest\" class=\"cta-wrapper\">\n <button *ngIf=\"signingForm?.dirty\" (click)=\"signingForm.reset()\" class=\"button-reset\" translate>eo.action.signature.reset</button>\n <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.action.signature.cancel</button>\n <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest || !signers.value || !signers.value.length\" class=\"primary\" translate>eo.action.signature.request</button>\n </eo-cta>\n </div>\n </section>\n <div class=\"loader-overlay__mask\" *ngIf=\"processingRequest\">\n <eo-loading-spinner class=\"signature__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</eo-dialog>\n", styles: ["::ng-deep .signature-form{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form .actions{display:flex;flex:0;flex-direction:column;min-height:0;min-width:0;align-items:flex-end;justify-content:center;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .signature-form .actions button{white-space:nowrap}::ng-deep .signature-form .actions eo-cta{display:flex;justify-content:flex-end}::ng-deep .signature-form .actions eo-cta button:nth-child(odd){margin:0 5px}@media screen and (max-width: 800px){::ng-deep .signature-form .actions{flex-direction:column;align-items:flex-end}}.signing-form{box-sizing:border-box;margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .signature__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i6.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i7.FormElementTableComponent, selector: "eo-table", inputs: ["limit", "hasPreviewFile", "minWidth", "height", "params"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i11.CtaComponent, selector: "eo-cta", inputs: ["active"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
134
+ SignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SignatureComponent, deps: [{ token: i1.BpmService }, { token: i2.PendingChangesService }, { token: i1.TranslateService }, { token: i1.NotificationsService }, { token: i1.SigningService }, { token: i1.EventService }, { token: i1.DmsService }, { token: i1.SystemService }, { token: i1.LocalStorageService }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
135
+ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: SignatureComponent, selector: "eo-signature", viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<eo-dialog [title]=\"headerTitle\"\n [subtitle]=\"headerDescription\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"600\"\n [minHeight]=\"600\"\n [styleClass]=\"'process-form-dialog'\" #dialog>\n\n <section class=\"signature-form form-container\">\n <form class=\"signing-form\" [formGroup]=\"signingForm\">\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\" [required]=\"true\">\n <eo-string\n [formControlName]=\"'yuvsigemailsubject'\"\n [minLength]=\"3\"\n [maxLength]=\"100\"\n [required]=\"true\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\" [required]=\"true\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'medium'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n [required]=\"true\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input *ngIf=\"yuvsigtypeCodesystem.entries.length > 1\" [required]=\"true\" [label]=\"'eo.action.signature.yuvsigning.yuvsigtype' | translate\">\n <eo-codesystem\n [formControlName]=\"'yuvsigtype'\"\n [codesystem]=\"yuvsigtypeCodesystem\"\n [required]=\"true\"\n ></eo-codesystem>\n </eo-form-input>\n <div class=\"table\">\n <eo-table [limit]=\"maxSigners\" [height]=\"'60vh'\" [minWidth]=\"'68vw'\" [hasPreviewFile]=\"false\" [params]=\"{\n situation: 'CREATE',\n element: getLocalizedForm(signingForm.get('yuvsigtype').value === 'advanced'),\n size: 'small',\n object: selection[0]\n }\" [formControlName]=\"'yuvsigners'\"></eo-table>\n </div>\n </form>\n\n <div class=\"actions\">\n <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\n <eo-cta [active]=\"!processingRequest\" class=\"cta-wrapper\">\n <button *ngIf=\"signingForm?.dirty\" (click)=\"signingForm.reset()\" class=\"button-reset\" translate>eo.action.signature.reset</button>\n <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.action.signature.cancel</button>\n <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest || !signingForm.get('yuvsigners').value || !signingForm.get('yuvsigners').value.length\" class=\"primary\" translate>eo.action.signature.request</button>\n </eo-cta>\n </div>\n </section>\n <div class=\"loader-overlay__mask\" *ngIf=\"processingRequest\">\n <eo-loading-spinner class=\"signature__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</eo-dialog>\n", styles: ["::ng-deep .signature-form{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form .actions{display:flex;flex:0;flex-direction:column;min-height:0;min-width:0;align-items:flex-end;justify-content:center;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .signature-form .actions button{white-space:nowrap}::ng-deep .signature-form .actions eo-cta{display:flex;justify-content:flex-end}::ng-deep .signature-form .actions eo-cta button:nth-child(odd){margin:0 5px}@media screen and (max-width: 800px){::ng-deep .signature-form .actions{flex-direction:column;align-items:flex-end}}.signing-form{box-sizing:border-box;margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .signature__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i7.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i8.FormElementTableComponent, selector: "eo-table", inputs: ["limit", "hasPreviewFile", "minWidth", "height", "params"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i10.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i11.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i12.CtaComponent, selector: "eo-cta", inputs: ["active"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
115
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SignatureComponent, decorators: [{
116
137
  type: Component,
117
- args: [{ selector: 'eo-signature', template: "<eo-dialog [title]=\"headerTitle\"\n [subtitle]=\"headerDescription\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"600\"\n [minHeight]=\"600\"\n [styleClass]=\"'process-form-dialog'\" #dialog>\n\n <section class=\"signature-form form-container\">\n <form class=\"signing-form\" [formGroup]=\"signingForm\">\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailsubject'\"\n [minLength]=\"3\"\n [maxLength]=\"100\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'medium'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n ></eo-string>\n </eo-form-input>\n <div class=\"table\">\n <eo-table [limit]=\"maxSigners\" [height]=\"'60vh'\" [minWidth]=\"'68vw'\" [hasPreviewFile]=\"false\" [params]=\"{\n situation: 'CREATE',\n element: getLocalizedForm(),\n size: 'small',\n object: selection[0]\n }\" [formControlName]=\"'yuvsigners'\"></eo-table>\n </div>\n </form>\n\n <div class=\"actions\">\n <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\n <eo-cta [active]=\"!processingRequest\" class=\"cta-wrapper\">\n <button *ngIf=\"signingForm?.dirty\" (click)=\"signingForm.reset()\" class=\"button-reset\" translate>eo.action.signature.reset</button>\n <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.action.signature.cancel</button>\n <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest || !signers.value || !signers.value.length\" class=\"primary\" translate>eo.action.signature.request</button>\n </eo-cta>\n </div>\n </section>\n <div class=\"loader-overlay__mask\" *ngIf=\"processingRequest\">\n <eo-loading-spinner class=\"signature__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</eo-dialog>\n", styles: ["::ng-deep .signature-form{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form .actions{display:flex;flex:0;flex-direction:column;min-height:0;min-width:0;align-items:flex-end;justify-content:center;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .signature-form .actions button{white-space:nowrap}::ng-deep .signature-form .actions eo-cta{display:flex;justify-content:flex-end}::ng-deep .signature-form .actions eo-cta button:nth-child(odd){margin:0 5px}@media screen and (max-width: 800px){::ng-deep .signature-form .actions{flex-direction:column;align-items:flex-end}}.signing-form{box-sizing:border-box;margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .signature__loader{margin:auto}\n"] }]
118
- }], ctorParameters: function () { return [{ type: i1.BpmService }, { type: i2.PendingChangesService }, { type: i1.TranslateService }, { type: i1.NotificationsService }, { type: i1.SigningService }, { type: i1.Config }, { type: i1.EventService }, { type: i1.DmsService }]; }, propDecorators: { dialog: [{
138
+ args: [{ selector: 'eo-signature', template: "<eo-dialog [title]=\"headerTitle\"\n [subtitle]=\"headerDescription\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"600\"\n [minHeight]=\"600\"\n [styleClass]=\"'process-form-dialog'\" #dialog>\n\n <section class=\"signature-form form-container\">\n <form class=\"signing-form\" [formGroup]=\"signingForm\">\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailsubject' | translate\" [required]=\"true\">\n <eo-string\n [formControlName]=\"'yuvsigemailsubject'\"\n [minLength]=\"3\"\n [maxLength]=\"100\"\n [required]=\"true\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\" [required]=\"true\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'medium'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n [required]=\"true\"\n ></eo-string>\n </eo-form-input>\n <eo-form-input *ngIf=\"yuvsigtypeCodesystem.entries.length > 1\" [required]=\"true\" [label]=\"'eo.action.signature.yuvsigning.yuvsigtype' | translate\">\n <eo-codesystem\n [formControlName]=\"'yuvsigtype'\"\n [codesystem]=\"yuvsigtypeCodesystem\"\n [required]=\"true\"\n ></eo-codesystem>\n </eo-form-input>\n <div class=\"table\">\n <eo-table [limit]=\"maxSigners\" [height]=\"'60vh'\" [minWidth]=\"'68vw'\" [hasPreviewFile]=\"false\" [params]=\"{\n situation: 'CREATE',\n element: getLocalizedForm(signingForm.get('yuvsigtype').value === 'advanced'),\n size: 'small',\n object: selection[0]\n }\" [formControlName]=\"'yuvsigners'\"></eo-table>\n </div>\n </form>\n\n <div class=\"actions\">\n <div *ngIf=\"signingForm?.invalid\" class=\"invalid\" translate>eo.object.indexdata.form.invalid</div>\n <eo-cta [active]=\"!processingRequest\" class=\"cta-wrapper\">\n <button *ngIf=\"signingForm?.dirty\" (click)=\"signingForm.reset()\" class=\"button-reset\" translate>eo.action.signature.reset</button>\n <button (click)=\"cancel()\" class=\"button-cancel\" translate>eo.action.signature.cancel</button>\n <button (click)=\"saveForm()\" [disabled]=\"signingForm?.invalid || processingRequest || !signingForm.get('yuvsigners').value || !signingForm.get('yuvsigners').value.length\" class=\"primary\" translate>eo.action.signature.request</button>\n </eo-cta>\n </div>\n </section>\n <div class=\"loader-overlay__mask\" *ngIf=\"processingRequest\">\n <eo-loading-spinner class=\"signature__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</eo-dialog>\n", styles: ["::ng-deep .signature-form{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form .actions{display:flex;flex:0;flex-direction:column;min-height:0;min-width:0;align-items:flex-end;justify-content:center;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .signature-form .actions button{white-space:nowrap}::ng-deep .signature-form .actions eo-cta{display:flex;justify-content:flex-end}::ng-deep .signature-form .actions eo-cta button:nth-child(odd){margin:0 5px}@media screen and (max-width: 800px){::ng-deep .signature-form .actions{flex-direction:column;align-items:flex-end}}.signing-form{box-sizing:border-box;margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}.loader-overlay__mask .signature__loader{margin:auto}\n"] }]
139
+ }], ctorParameters: function () { return [{ type: i1.BpmService }, { type: i2.PendingChangesService }, { type: i1.TranslateService }, { type: i1.NotificationsService }, { type: i1.SigningService }, { type: i1.EventService }, { type: i1.DmsService }, { type: i1.SystemService }, { type: i1.LocalStorageService }, { type: i3.UntypedFormBuilder }]; }, propDecorators: { dialog: [{
119
140
  type: ViewChild,
120
141
  args: ['dialog']
121
142
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9zaWduYXR1cmUtYWN0aW9uL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3NpZ25hdHVyZS1hY3Rpb24vc2lnbmF0dXJlL3NpZ25hdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLEtBQUssRUFBOEYsVUFBVSxFQUEyQixNQUFNLGNBQWMsQ0FBQztBQUtySyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sa0JBQWtCO0lBdUI3QixZQUFvQixVQUFzQixFQUNoQyxjQUFxQyxFQUNyQyxTQUEyQixFQUMzQixPQUE2QixFQUM3QixjQUE4QixFQUM5QixNQUFjLEVBQ2QsWUFBMEIsRUFDMUIsVUFBc0I7UUFQWixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUE1QmhD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QztTQUN0QjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU8sWUFBWTtRQUNsQix5RUFBeUU7UUFDekUsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7K0dBeEhVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNKQ2YvQixvdUVBaURBOzJGRGxDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsY0FBYzs2U0FtQkgsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVdGlscywgQnBtU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFNpZ25pbmdTZXJ2aWNlLCBTaWduaW5nUmVxdWVzdCwgQ29uZmlnLCBFbmFpb0V2ZW50LCBFdmVudFNlcnZpY2UsIERtc1NlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0VvRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi91aS9lby1kaWFsb2cvZW8tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9hY3Rpb24tY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uLy4uLy4uLy4uL29iamVjdC1mb3JtJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc2lnbmF0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ25hdHVyZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZ25hdHVyZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFjdGlvbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgc2VsZWN0aW9uOiBhbnlbXTtcbiAgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByb2Nlc3NpbmdSZXF1ZXN0OiBib29sZWFuO1xuICBoZWFkZXJUaXRsZTogc3RyaW5nO1xuICBoZWFkZXJEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzZWxlY3RlZDogYW55O1xuICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIGNvbnRlbnRzOiB7aWQ6IHN0cmluZywgdHlwZTogc3RyaW5nfVtdO1xuXG4gIC8vIElEIHNldCBieSBwZW5kaW5nQ2hhbmdlcyBzZXJ2aWNlIHdoZW4gZWRpdGluZyBpbmRleGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkczogc3RyaW5nW10gPSBbXTtcblxuICBAVmlld0NoaWxkKCdkaWFsb2cnKSBkaWFsb2c6IEVvRGlhbG9nQ29tcG9uZW50O1xuICBlbWFpbFN1YmplY3Q6IEZvcm1Db250cm9sO1xuICBlbWFpbEJvZHk6IEZvcm1Db250cm9sO1xuICBzaWduZXJzOiBGb3JtQ29udHJvbDtcbiAgc2lnbmluZ0Zvcm06IEZvcm1Hcm91cDtcbiAgbWF4U2lnbmVyczogbnVtYmVyO1xuICBzaWduaW5nRm9ybUxpc3RlbmVyOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2lnbmluZ1NlcnZpY2U6IFNpZ25pbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UpIHtcbiAgICB0aGlzLm1heFNpZ25lcnMgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NpZ25lcnMubWF4U2lnbmVycycpIHx8IDY7XG4gICAgdGhpcy5zaWduaW5nRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuZW1haWxTdWJqZWN0ID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5lbWFpbEJvZHkgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICB0aGlzLnNpZ25lcnMgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICB0aGlzLnNpZ25pbmdGb3JtLmFkZENvbnRyb2woJ3l1dnNpZ2VtYWlsc3ViamVjdCcsIHRoaXMuZW1haWxTdWJqZWN0KTtcbiAgICB0aGlzLnNpZ25pbmdGb3JtLmFkZENvbnRyb2woJ3l1dnNpZ2VtYWlsYm9keScsIHRoaXMuZW1haWxCb2R5KTtcbiAgICB0aGlzLnNpZ25pbmdGb3JtLmFkZENvbnRyb2woJ3l1dnNpZ25lcnMnLCB0aGlzLnNpZ25lcnMpO1xuICAgIHRoaXMuaGVhZGVyVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5hY3Rpb24uc2lnbmF0dXJlLmxhYmVsJyk7XG4gICAgdGhpcy5oZWFkZXJEZXNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFjdGlvbi5zaWduYXR1cmUuZGVzY3JpcHRpb24nKTtcblxuICAgIHRoaXMuc2lnbmluZ0Zvcm1MaXN0ZW5lciA9IHRoaXMuc2lnbmluZ0Zvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uSW5kZXhEYXRhQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIHNhdmVGb3JtKCkge1xuICAgIHRoaXMucHJvY2Vzc2luZ1JlcXVlc3QgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNpZ25pbmdGb3JtICYmICF0aGlzLnNpZ25pbmdGb3JtLmludmFsaWQpIHtcbiAgICAgIGNvbnN0IHNpZ25lcnMgPSAodGhpcy5zaWduZXJzLnZhbHVlIHx8IFtdKS5tYXAodmFsdWUgPT4gKHtcbiAgICAgICAgICAgIHNpZ25lck5hbWU6IHZhbHVlLnl1dnNpZ25lcm5hbWUsXG4gICAgICAgICAgICBzaWduZXJFbWFpbDogdmFsdWUueXV2c2lnbmVyZW1haWwsXG4gICAgICAgICAgICBzaWduZXJPcmRlcjogdmFsdWUueXV2c2lnbmVyb3JkZXJcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgY29uc3Qgc2lnbmluZ0RhdGEgPSB7XG4gICAgICAgIGVtYWlsU3ViamVjdDogdGhpcy5lbWFpbFN1YmplY3QudmFsdWUsXG4gICAgICAgIGVtYWlsQm9keTogdGhpcy5lbWFpbEJvZHkudmFsdWUsXG4gICAgICAgIHNpZ25lcnNcbiAgICAgIH0gYXMgU2lnbmluZ1JlcXVlc3Q7XG4gICAgICB0aGlzLnNpZ25pbmdTZXJ2aWNlXG4gICAgICAgIC5zaWduRG9jdW1lbnQodGhpcy5zZWxlY3Rpb25bMF0uaWQsIHNpZ25pbmdEYXRhKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdCh0aGlzLnNlbGVjdGlvblswXS5pZCkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFjdGlvbi5zaWduYXR1cmUucmVxdWVzdC5zdWNjZXNzJykpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQsIGRtc09iamVjdCk7XG4gICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmVycm9yLmNvbm5lY3Rpb24uaW50ZXJydXB0ZWQudGl0bGUnKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZXJyb3IuY29ubmVjdGlvbi5pbnRlcnJ1cHRlZC50ZXh0JykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByb2Nlc3NpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBmaW5pc2goKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5kaWFsb2cudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVja0ZvclBlbmRpbmdUYXNrcyh0aGlzLnBlbmRpbmdUYXNrSWRzKSkge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICB0aGlzLmRpYWxvZy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkluZGV4RGF0YUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuc2lnbmluZ0Zvcm0uZGlydHkpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIGdldExvY2FsaXplZEZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmluZ1NlcnZpY2UuZ2V0TG9jYWxpemVkU2lnbmluZ0Zvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQZW5kaW5nKCkge1xuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcbiAgICAvLyBwZW5kaW5nIHRhc2sgd2lsbCBvbmx5IGJlIHN0YXJ0ZWQgb25jZSB1bnRpbCBpdCB3YXMgZmluaXNoZWRcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2sodGhpcy5wZW5kaW5nVGFza0lkc1swXSB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWRzID0gW3RoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCldO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkc1swXSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25pbmdGb3JtTGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGVvLWRpYWxvZyBbdGl0bGVdPVwiaGVhZGVyVGl0bGVcIlxuICAgICAgICAgICBbc3VidGl0bGVdPVwiaGVhZGVyRGVzY3JpcHRpb25cIlxuICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgW2RpcnR5Q2hlY2tdPVwicGVuZGluZ1Rhc2tJZHNcIlxuICAgICAgICAgICBbbWluV2lkdGhdPVwiNjAwXCJcbiAgICAgICAgICAgW21pbkhlaWdodF09XCI2MDBcIlxuICAgICAgICAgICBbc3R5bGVDbGFzc109XCIncHJvY2Vzcy1mb3JtLWRpYWxvZydcIiAjZGlhbG9nPlxuXG4gIDxzZWN0aW9uIGNsYXNzPVwic2lnbmF0dXJlLWZvcm0gZm9ybS1jb250YWluZXJcIj5cbiAgICA8Zm9ybSBjbGFzcz1cInNpZ25pbmctZm9ybVwiIFtmb3JtR3JvdXBdPVwic2lnbmluZ0Zvcm1cIj5cbiAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCInZW8uYWN0aW9uLnNpZ25hdHVyZS55dXZzaWduaW5nLnl1dnNpZ2VtYWlsc3ViamVjdCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPGVvLXN0cmluZ1xuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3l1dnNpZ2VtYWlsc3ViamVjdCdcIlxuICAgICAgICAgIFttaW5MZW5ndGhdPVwiM1wiXG4gICAgICAgICAgW21heExlbmd0aF09XCIxMDBcIlxuICAgICAgICA+PC9lby1zdHJpbmc+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiJ2VvLmFjdGlvbi5zaWduYXR1cmUueXV2c2lnbmluZy55dXZzaWdlbWFpbGJvZHknIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxlby1zdHJpbmdcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIid5dXZzaWdlbWFpbGJvZHknXCJcbiAgICAgICAgICBbbXVsdGlsaW5lXT1cInRydWVcIlxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgICAgICBbbWluTGVuZ3RoXT1cIjNcIlxuICAgICAgICAgIFttYXhMZW5ndGhdPVwiNDAwMFwiXG4gICAgICAgID48L2VvLXN0cmluZz5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZVwiPlxuICAgICAgICA8ZW8tdGFibGUgW2xpbWl0XT1cIm1heFNpZ25lcnNcIiBbaGVpZ2h0XT1cIic2MHZoJ1wiIFttaW5XaWR0aF09XCInNjh2dydcIiBbaGFzUHJldmlld0ZpbGVdPVwiZmFsc2VcIiBbcGFyYW1zXT1cIntcbiAgICAgICAgc2l0dWF0aW9uOiAnQ1JFQVRFJyxcbiAgICAgICAgZWxlbWVudDogZ2V0TG9jYWxpemVkRm9ybSgpLFxuICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICBvYmplY3Q6IHNlbGVjdGlvblswXVxuICAgICAgfVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3l1dnNpZ25lcnMnXCI+PC9lby10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2lnbmluZ0Zvcm0/LmludmFsaWRcIiBjbGFzcz1cImludmFsaWRcIiB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5mb3JtLmludmFsaWQ8L2Rpdj5cbiAgICAgIDxlby1jdGEgW2FjdGl2ZV09XCIhcHJvY2Vzc2luZ1JlcXVlc3RcIiBjbGFzcz1cImN0YS13cmFwcGVyXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzaWduaW5nRm9ybT8uZGlydHlcIiAoY2xpY2spPVwic2lnbmluZ0Zvcm0ucmVzZXQoKVwiIGNsYXNzPVwiYnV0dG9uLXJlc2V0XCIgdHJhbnNsYXRlPmVvLmFjdGlvbi5zaWduYXR1cmUucmVzZXQ8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbi1jYW5jZWxcIiB0cmFuc2xhdGU+ZW8uYWN0aW9uLnNpZ25hdHVyZS5jYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2F2ZUZvcm0oKVwiIFtkaXNhYmxlZF09XCJzaWduaW5nRm9ybT8uaW52YWxpZCB8fCBwcm9jZXNzaW5nUmVxdWVzdCB8fCAhc2lnbmVycy52YWx1ZSB8fCAhc2lnbmVycy52YWx1ZS5sZW5ndGhcIiBjbGFzcz1cInByaW1hcnlcIiB0cmFuc2xhdGU+ZW8uYWN0aW9uLnNpZ25hdHVyZS5yZXF1ZXN0PC9idXR0b24+XG4gICAgICA8L2VvLWN0YT5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuICA8ZGl2IGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIiAqbmdJZj1cInByb2Nlc3NpbmdSZXF1ZXN0XCI+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBjbGFzcz1cInNpZ25hdHVyZV9fbG9hZGVyXCIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9zaWduYXR1cmUtYWN0aW9uL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3NpZ25hdHVyZS1hY3Rpb24vc2lnbmF0dXJlL3NpZ25hdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUNMLEtBQUssRUFNTCxVQUFVLEVBS1gsTUFBTSxjQUFjLENBQUM7QUFPdEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sa0JBQWtCO0lBMEI3QixZQUFvQixVQUFzQixFQUNoQyxjQUFxQyxFQUNyQyxTQUEyQixFQUMzQixPQUE2QixFQUM3QixjQUE4QixFQUM5QixZQUEwQixFQUMxQixVQUFzQixFQUN0QixhQUE0QixFQUM1QixjQUFtQyxFQUNuQyxFQUFzQjtRQVRaLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNu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LElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWEsR0FBRyxLQUFLO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sWUFBWTtRQUNsQix5RUFBeUU7UUFDekUsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7K0dBNUlVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNKQzNCL0Isa3hGQTBEQTsyRkQvQmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGNBQWM7dVhBbUJILE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFV0aWxzLFxuICBCcG1TZXJ2aWNlLFxuICBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgU2lnbmluZ1NlcnZpY2UsXG4gIFNpZ25pbmdSZXF1ZXN0LFxuICBFbmFpb0V2ZW50LFxuICBFdmVudFNlcnZpY2UsXG4gIERtc1NlcnZpY2UsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2Vcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7RW9EaWFsb2dDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vLi4vLi4vLi4vb2JqZWN0LWZvcm0nO1xuaW1wb3J0IHtGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc2lnbmF0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ25hdHVyZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZ25hdHVyZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFjdGlvbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgc2VsZWN0aW9uOiBhbnlbXTtcbiAgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByb2Nlc3NpbmdSZXF1ZXN0OiBib29sZWFuO1xuICBoZWFkZXJUaXRsZTogc3RyaW5nO1xuICBoZWFkZXJEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzZWxlY3RlZDogYW55O1xuICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIGNvbnRlbnRzOiB7aWQ6IHN0cmluZywgdHlwZTogc3RyaW5nfVtdO1xuXG4gIC8vIElEIHNldCBieSBwZW5kaW5nQ2hhbmdlcyBzZXJ2aWNlIHdoZW4gZWRpdGluZyBpbmRleGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkczogc3RyaW5nW10gPSBbXTtcblxuICBAVmlld0NoaWxkKCdkaWFsb2cnKSBkaWFsb2c6IEVvRGlhbG9nQ29tcG9uZW50O1xuICBzaWduaW5nRm9ybTogRm9ybUdyb3VwO1xuICBtYXhTaWduZXJzOiBudW1iZXI7XG4gIHNpZ25pbmdGb3JtTGlzdGVuZXI6IFN1YnNjcmlwdGlvbjtcbiAgeXV2c2lndHlwZUNvZGVzeXN0ZW0gPSB7XG4gICAgaWQ6ICcxMjkxQkFCOTFCMEQ0OUQxQTlBNERGQ0NGNDlBMTY2NicsXG4gICAgbmFtZTogJ3l1dnNpZ3R5cGUnLFxuICAgIGVudHJpZXM6IFtdXG4gIH07XG4gIHNpZ25hdHVyZVR5cGVTdG9yYWdlS2V5ID0gJ2VvLnNpZ25hdHVyZS50eXBlJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJwbVNlcnZpY2U6IEJwbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzaWduaW5nU2VydmljZTogU2lnbmluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XG4gICAgY29uc3QgZGVmYXVsdFNpZ25hdHVyZVR5cGUgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5zaWduYXR1cmVUeXBlU3RvcmFnZUtleSk7XG4gICAgdGhpcy5zaWduaW5nRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgeXV2c2lnZW1haWxzdWJqZWN0OiBbJyddLFxuICAgICAgeXV2c2lnZW1haWxib2R5OiBbJyddLFxuICAgICAgeXV2c2lndHlwZTogW2RlZmF1bHRTaWduYXR1cmVUeXBlID8gZGVmYXVsdFNpZ25hdHVyZVR5cGUgOiAnJ10sXG4gICAgICB5dXZzaWduZXJzOiBbXSxcbiAgICB9KTtcbiAgICB0aGlzLmhlYWRlclRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWN0aW9uLnNpZ25hdHVyZS5sYWJlbCcpO1xuICAgIHRoaXMuaGVhZGVyRGVzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5hY3Rpb24uc2lnbmF0dXJlLmRlc2NyaXB0aW9uJyk7XG5cbiAgICB0aGlzLnNpZ25pbmdGb3JtTGlzdGVuZXIgPSB0aGlzLnNpZ25pbmdGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkluZGV4RGF0YUNoYW5nZWQoKSk7XG4gICAgdGhpcy5zaWduaW5nU2VydmljZS5nZXRJbmZvKCkuc3Vic2NyaWJlKChpbmZvKSA9PiB7XG4gICAgICBpZiAoaW5mby5zaWduYXR1cmVUeXBlc0VuYWJsZWQpIHtcbiAgICAgICAgdGhpcy55dXZzaWd0eXBlQ29kZXN5c3RlbS5lbnRyaWVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldENvZGVzeXN0ZW0odGhpcy55dXZzaWd0eXBlQ29kZXN5c3RlbS5pZCkuZW50cmllcztcbiAgICAgICAgdGhpcy55dXZzaWd0eXBlQ29kZXN5c3RlbS5lbnRyaWVzID0gdGhpcy55dXZzaWd0eXBlQ29kZXN5c3RlbS5lbnRyaWVzLmZpbHRlcihlbnRyeSA9PiBpbmZvLnNpZ25hdHVyZVR5cGVzRW5hYmxlZC5pbmNsdWRlcyhlbnRyeS5kYXRhKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWF4U2lnbmVycyA9IGluZm8ubWF4U2lnbmVycyB8fCA2O1xuXG4gICAgICB0aGlzLnNpZ25pbmdGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICB5dXZzaWdlbWFpbHN1YmplY3Q6IGluZm8uZGVmYXVsdEVtYWlsU3ViamVjdCxcbiAgICAgICAgeXV2c2lnZW1haWxib2R5OiBpbmZvLmRlZmF1bHRFbWFpbEJvZHlcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZUZvcm0oKSB7XG4gICAgdGhpcy5wcm9jZXNzaW5nUmVxdWVzdCA9IHRydWU7XG4gICAgaWYgKHRoaXMuc2lnbmluZ0Zvcm0gJiYgIXRoaXMuc2lnbmluZ0Zvcm0uaW52YWxpZCkge1xuICAgICAgY29uc3Qgc2lnbmVycyA9ICh0aGlzLnNpZ25pbmdGb3JtLmdldCgneXV2c2lnbmVycycpLnZhbHVlIHx8IFtdKS5tYXAodmFsdWUgPT4gKHtcbiAgICAgICAgICAgIHNpZ25lck5hbWU6IHZhbHVlLnl1dnNpZ25lcm5hbWUsXG4gICAgICAgICAgICBzaWduZXJFbWFpbDogdmFsdWUueXV2c2lnbmVyZW1haWwsXG4gICAgICAgICAgICBzaWduZXJPcmRlcjogdmFsdWUueXV2c2lnbmVyb3JkZXIsXG4gICAgICAgICAgICBzaWduZXJQaG9uZTogdmFsdWUueXV2c2lnbmVycGhvbmVcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgY29uc3Qgc2lnbmluZ0RhdGEgPSB7XG4gICAgICAgIGVtYWlsU3ViamVjdDogdGhpcy5zaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ2VtYWlsc3ViamVjdCcpLnZhbHVlLFxuICAgICAgICBlbWFpbEJvZHk6IHRoaXMuc2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWdlbWFpbGJvZHknKS52YWx1ZSxcbiAgICAgICAgc2lnbmF0dXJlVHlwZTogdGhpcy5zaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ3R5cGUnKS52YWx1ZSA/IHRoaXMuc2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWd0eXBlJykudmFsdWUgOiB0aGlzLnl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmVudHJpZXNbMF0uZGF0YSxcbiAgICAgICAgc2lnbmVyc1xuICAgICAgfSBhcyBTaWduaW5nUmVxdWVzdDtcbiAgICAgIHRoaXMuc2lnbmluZ1NlcnZpY2VcbiAgICAgICAgLnNpZ25Eb2N1bWVudCh0aGlzLnNlbGVjdGlvblswXS5pZCwgc2lnbmluZ0RhdGEpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KHRoaXMuc2VsZWN0aW9uWzBdLmlkKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChkbXNPYmplY3QpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWN0aW9uLnNpZ25hdHVyZS5yZXF1ZXN0LnN1Y2Nlc3MnKSk7XG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuc2lnbmF0dXJlVHlwZVN0b3JhZ2VLZXksIHNpZ25pbmdEYXRhLnNpZ25hdHVyZVR5cGUpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQsIGRtc09iamVjdCk7XG4gICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmVycm9yLmNvbm5lY3Rpb24uaW50ZXJydXB0ZWQudGl0bGUnKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZXJyb3IuY29ubmVjdGlvbi5pbnRlcnJ1cHRlZC50ZXh0JykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IoZXJyb3IuZXJyb3I/Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByb2Nlc3NpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBmaW5pc2goKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5kaWFsb2cudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVja0ZvclBlbmRpbmdUYXNrcyh0aGlzLnBlbmRpbmdUYXNrSWRzKSkge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICB0aGlzLmRpYWxvZy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkluZGV4RGF0YUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuc2lnbmluZ0Zvcm0uZGlydHkpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIGdldExvY2FsaXplZEZvcm0ocGhvbmVSZXF1aXJlZCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmluZ1NlcnZpY2UuZ2V0TG9jYWxpemVkU2lnbmluZ0Zvcm0ocGhvbmVSZXF1aXJlZCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZHNbMF0gfHwgJyAnKSkge1xuICAgICAgdGhpcy5wZW5kaW5nVGFza0lkcyA9IFt0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmlzaFBlbmRpbmcoKSB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZHNbMF0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zaWduaW5nRm9ybUxpc3RlbmVyLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxlby1kaWFsb2cgW3RpdGxlXT1cImhlYWRlclRpdGxlXCJcbiAgICAgICAgICAgW3N1YnRpdGxlXT1cImhlYWRlckRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgIFtkaXJ0eUNoZWNrXT1cInBlbmRpbmdUYXNrSWRzXCJcbiAgICAgICAgICAgW21pbldpZHRoXT1cIjYwMFwiXG4gICAgICAgICAgIFttaW5IZWlnaHRdPVwiNjAwXCJcbiAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiJ3Byb2Nlc3MtZm9ybS1kaWFsb2cnXCIgI2RpYWxvZz5cblxuICA8c2VjdGlvbiBjbGFzcz1cInNpZ25hdHVyZS1mb3JtIGZvcm0tY29udGFpbmVyXCI+XG4gICAgPGZvcm0gY2xhc3M9XCJzaWduaW5nLWZvcm1cIiBbZm9ybUdyb3VwXT1cInNpZ25pbmdGb3JtXCI+XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiJ2VvLmFjdGlvbi5zaWduYXR1cmUueXV2c2lnbmluZy55dXZzaWdlbWFpbHN1YmplY3QnIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cInRydWVcIj5cbiAgICAgICAgPGVvLXN0cmluZ1xuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3l1dnNpZ2VtYWlsc3ViamVjdCdcIlxuICAgICAgICAgIFttaW5MZW5ndGhdPVwiM1wiXG4gICAgICAgICAgW21heExlbmd0aF09XCIxMDBcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgPjwvZW8tc3RyaW5nPlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgPGVvLWZvcm0taW5wdXQgW2xhYmVsXT1cIidlby5hY3Rpb24uc2lnbmF0dXJlLnl1dnNpZ25pbmcueXV2c2lnZW1haWxib2R5JyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxlby1zdHJpbmdcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIid5dXZzaWdlbWFpbGJvZHknXCJcbiAgICAgICAgICBbbXVsdGlsaW5lXT1cInRydWVcIlxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgICAgICBbbWluTGVuZ3RoXT1cIjNcIlxuICAgICAgICAgIFttYXhMZW5ndGhdPVwiNDAwMFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICA+PC9lby1zdHJpbmc+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICA8ZW8tZm9ybS1pbnB1dCAqbmdJZj1cInl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmVudHJpZXMubGVuZ3RoID4gMVwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgW2xhYmVsXT1cIidlby5hY3Rpb24uc2lnbmF0dXJlLnl1dnNpZ25pbmcueXV2c2lndHlwZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPGVvLWNvZGVzeXN0ZW1cbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIid5dXZzaWd0eXBlJ1wiXG4gICAgICAgICAgW2NvZGVzeXN0ZW1dPVwieXV2c2lndHlwZUNvZGVzeXN0ZW1cIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZVwiPlxuICAgICAgICA8ZW8tdGFibGUgW2xpbWl0XT1cIm1heFNpZ25lcnNcIiBbaGVpZ2h0XT1cIic2MHZoJ1wiIFttaW5XaWR0aF09XCInNjh2dydcIiBbaGFzUHJldmlld0ZpbGVdPVwiZmFsc2VcIiBbcGFyYW1zXT1cIntcbiAgICAgICAgc2l0dWF0aW9uOiAnQ1JFQVRFJyxcbiAgICAgICAgZWxlbWVudDogZ2V0TG9jYWxpemVkRm9ybShzaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ3R5cGUnKS52YWx1ZSA9PT0gJ2FkdmFuY2VkJyksXG4gICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgIG9iamVjdDogc2VsZWN0aW9uWzBdXG4gICAgICB9XCIgW2Zvcm1Db250cm9sTmFtZV09XCIneXV2c2lnbmVycydcIj48L2VvLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaWduaW5nRm9ybT8uaW52YWxpZFwiIGNsYXNzPVwiaW52YWxpZFwiIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLmZvcm0uaW52YWxpZDwvZGl2PlxuICAgICAgPGVvLWN0YSBbYWN0aXZlXT1cIiFwcm9jZXNzaW5nUmVxdWVzdFwiIGNsYXNzPVwiY3RhLXdyYXBwZXJcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNpZ25pbmdGb3JtPy5kaXJ0eVwiIChjbGljayk9XCJzaWduaW5nRm9ybS5yZXNldCgpXCIgY2xhc3M9XCJidXR0b24tcmVzZXRcIiB0cmFuc2xhdGU+ZW8uYWN0aW9uLnNpZ25hdHVyZS5yZXNldDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiIGNsYXNzPVwiYnV0dG9uLWNhbmNlbFwiIHRyYW5zbGF0ZT5lby5hY3Rpb24uc2lnbmF0dXJlLmNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYXZlRm9ybSgpXCIgW2Rpc2FibGVkXT1cInNpZ25pbmdGb3JtPy5pbnZhbGlkIHx8IHByb2Nlc3NpbmdSZXF1ZXN0IHx8ICFzaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ25lcnMnKS52YWx1ZSB8fCAhc2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWduZXJzJykudmFsdWUubGVuZ3RoXCIgY2xhc3M9XCJwcmltYXJ5XCIgdHJhbnNsYXRlPmVvLmFjdGlvbi5zaWduYXR1cmUucmVxdWVzdDwvYnV0dG9uPlxuICAgICAgPC9lby1jdGE+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbiAgPGRpdiBjbGFzcz1cImxvYWRlci1vdmVybGF5X19tYXNrXCIgKm5nSWY9XCJwcm9jZXNzaW5nUmVxdWVzdFwiPlxuICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgY2xhc3M9XCJzaWduYXR1cmVfX2xvYWRlclwiIFtzaXplXT1cIidsYXJnZSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cbiJdfQ==