@eo-sdk/client 10.0.1 → 10.1.0-rc.2

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 (48) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts +9 -1
  3. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -1
  6. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts +13 -61
  7. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts.map +1 -1
  8. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +5 -0
  9. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
  10. package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +3 -7
  11. package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts.map +1 -1
  12. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -0
  13. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  14. package/app/eo-framework/form-elements/reference/reference.component.d.ts.map +1 -1
  15. package/app/eo-framework/frame/frame.component.d.ts +5 -0
  16. package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
  17. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  18. package/assets/_default/i18n/de.json +5 -0
  19. package/assets/_default/i18n/en.json +5 -0
  20. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  21. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +43 -3
  22. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +4 -4
  23. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +16 -12
  24. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +16 -13
  25. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +52 -31
  26. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +14 -3
  27. package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +6 -20
  28. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +8 -4
  29. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  30. package/esm2020/app/eo-framework/frame/frame.component.mjs +19 -1
  31. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +3 -3
  32. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +5 -4
  33. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  34. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +33 -3
  35. package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +11 -1
  36. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +42 -2
  37. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  38. package/fesm2015/eo-sdk-client.mjs +155 -71
  39. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  40. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +42 -2
  41. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  42. package/fesm2020/eo-sdk-client.mjs +158 -75
  43. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  44. package/package.json +2 -2
  45. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +7 -54
  46. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
  47. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +5 -0
  48. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
@@ -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==
@@ -79,6 +79,15 @@ let AppBarComponent = class AppBarComponent {
79
79
  this.router.navigate(['/']);
80
80
  }
81
81
  }
82
+ getDocumentation() {
83
+ this.userService
84
+ .user$
85
+ .subscribe(data => {
86
+ const docu = this.config.getRaw('about.docu');
87
+ const link = docu.link.replace('###userLang###', data.userSettings.clientlocale.substring(0, 2));
88
+ this.docu = { ...docu, link };
89
+ });
90
+ }
82
91
  updateOnSchemaChange() {
83
92
  this.eventService
84
93
  .on(EnaioEvent.SCHEMA_LOCALE_CHANGED).pipe(untilDestroyed(this))
@@ -105,6 +114,7 @@ let AppBarComponent = class AppBarComponent {
105
114
  prepare: this.translate.instant('eo.bar.button.prepare.tooltip'),
106
115
  index: this.translate.instant('eo.bar.button.inbox.tooltip'),
107
116
  profile: this.translate.instant('eo.bar.button.user.profile.title'),
117
+ about: this.translate.instant('eo.sidebar.help.manual.tooltip')
108
118
  };
109
119
  }
110
120
  sendNotification() {
@@ -149,6 +159,7 @@ let AppBarComponent = class AppBarComponent {
149
159
  ngOnInit() {
150
160
  this.updateOnSchemaChange();
151
161
  this.setIconTitles();
162
+ this.getDocumentation();
152
163
  this.exeActions = this.bpmService.hasMainExecutableProcesses;
153
164
  // this.bpmService
154
165
  // .getExecutableProcesses(null, true)
@@ -159,18 +170,18 @@ let AppBarComponent = class AppBarComponent {
159
170
  }
160
171
  };
161
172
  AppBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AppBarComponent, deps: [{ token: i1.UserService }, { token: i1.CapabilitiesService }, { token: i1.TranslateService }, { token: i1.InboxService }, { token: i1.PrepareService }, { token: i1.ClipboardService }, { token: i0.Renderer2 }, { token: i2.Router }, { token: i1.BpmService }, { token: i1.EventService }, { token: i1.Config }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
162
- AppBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AppBarComponent, selector: "eo-app-bar", inputs: { transparent: "transparent" }, viewQueries: [{ propertyName: "avatarComponents", predicate: UserAvatarComponent, descendants: true }], ngImport: i0, template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"sidebarShow = !sidebarShow\" (keyup.enter)=\"sidebarShow = !sidebarShow\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\" \n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a [routerLink]=\"[ {outlets: { modal: 'search' } } ]\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a [routerLink]=\"[ {outlets: { modal: 'add' } } ]\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a> \n <a [routerLink]=\"[ {outlets: { modal: 'actions' } } ]\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a routerLink=\"/favorites\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/prepare\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/inbox\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a routerLink=\"/settings\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "directive", type: i7.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i8.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i9.ClipboardComponent, selector: "eo-clipboard" }, { kind: "component", type: i10.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: i11.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "directive", type: i12.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "component", type: i13.SideBarComponent, selector: "eo-side-bar", outputs: ["eoOutsideClick"] }] });
173
+ AppBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AppBarComponent, selector: "eo-app-bar", inputs: { transparent: "transparent" }, viewQueries: [{ propertyName: "avatarComponents", predicate: UserAvatarComponent, descendants: true }], ngImport: i0, template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"sidebarShow = !sidebarShow\" (keyup.enter)=\"sidebarShow = !sidebarShow\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\" \n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a [routerLink]=\"[ {outlets: { modal: 'search' } } ]\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a [routerLink]=\"[ {outlets: { modal: 'add' } } ]\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a> \n <a [routerLink]=\"[ {outlets: { modal: 'actions' } } ]\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a routerLink=\"/favorites\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/prepare\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/inbox\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <a href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button white about\"\n [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a routerLink=\"/settings\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "directive", type: i7.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i8.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i9.ClipboardComponent, selector: "eo-clipboard" }, { kind: "component", type: i10.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: i11.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "directive", type: i12.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "component", type: i13.SideBarComponent, selector: "eo-side-bar", outputs: ["eoOutsideClick"] }] });
163
174
  AppBarComponent = __decorate([
164
175
  UntilDestroy()
165
176
  ], AppBarComponent);
166
177
  export { AppBarComponent };
167
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AppBarComponent, decorators: [{
168
179
  type: Component,
169
- args: [{ selector: 'eo-app-bar', template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"sidebarShow = !sidebarShow\" (keyup.enter)=\"sidebarShow = !sidebarShow\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\" \n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a [routerLink]=\"[ {outlets: { modal: 'search' } } ]\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a [routerLink]=\"[ {outlets: { modal: 'add' } } ]\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a> \n <a [routerLink]=\"[ {outlets: { modal: 'actions' } } ]\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a routerLink=\"/favorites\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/prepare\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/inbox\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a routerLink=\"/settings\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"] }]
180
+ args: [{ selector: 'eo-app-bar', template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"sidebarShow = !sidebarShow\" (keyup.enter)=\"sidebarShow = !sidebarShow\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\" \n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a [routerLink]=\"[ {outlets: { modal: 'search' } } ]\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a [routerLink]=\"[ {outlets: { modal: 'add' } } ]\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a> \n <a [routerLink]=\"[ {outlets: { modal: 'actions' } } ]\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a routerLink=\"/favorites\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/prepare\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a routerLink=\"/inbox\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <a href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button white about\"\n [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a routerLink=\"/settings\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"] }]
170
181
  }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i1.CapabilitiesService }, { type: i1.TranslateService }, { type: i1.InboxService }, { type: i1.PrepareService }, { type: i1.ClipboardService }, { type: i0.Renderer2 }, { type: i2.Router }, { type: i1.BpmService }, { type: i1.EventService }, { type: i1.Config }, { type: i0.ElementRef }]; }, propDecorators: { transparent: [{
171
182
  type: Input
172
183
  }], avatarComponents: [{
173
184
  type: ViewChildren,
174
185
  args: [UserAvatarComponent]
175
186
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUlMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQU1MLFVBQVUsRUFNWCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPeEUsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQWdCMUIsWUFBb0IsV0FBd0IsRUFDeEIsaUJBQXNDLEVBQ3RDLFNBQTJCLEVBQzNCLFlBQTBCLEVBQzFCLGNBQThCLEVBQzlCLFNBQTJCLEVBQzNCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxVQUFzQixFQUN0QixZQUEwQixFQUMxQixNQUFjLEVBQ2QsT0FBbUI7UUFYbkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQUN0QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztR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Z0JBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsdUVBQXVFO0lBQy9ELDRCQUE0QjtRQUNsQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUM7UUFDN0Qsa0JBQWtCO1FBQ2xCLHdDQUF3QztRQUN4Qyx3QkFBd0I7UUFDeEIsc0NBQXNDO1FBQ3RDLFFBQVE7UUFDUixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs0R0F4S1UsZUFBZTtnR0FBZixlQUFlLCtIQWNaLG1CQUFtQixnREM3Q25DLCtpSUFxRkE7QUR0RGEsZUFBZTtJQU4zQixZQUFZLEVBQUU7R0FNRixlQUFlLENBeUszQjtTQXpLWSxlQUFlOzJGQUFmLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTt5WUFNYixXQUFXO3NCQUFuQixLQUFLO2dCQVk2QixnQkFBZ0I7c0JBQWxELFlBQVk7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJwbVNlcnZpY2UsXG4gIENhcGFiaWxpdGllcyxcbiAgQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgQ2xpcGJvYXJkU2VydmljZSxcbiAgQ29uZmlnLFxuICBFbmFpb0V2ZW50LFxuICBFb1VzZXIsXG4gIEV2ZW50U2VydmljZSxcbiAgSW5ib3hTZXJ2aWNlLCBJbmJveFN0YXRlLFxuICBQcmVwYXJlU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7VXNlckF2YXRhckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vdWkvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50JztcbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYXBwLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdHJhbnNwYXJlbnQgPSBmYWxzZTtcblxuICBwcmVwYXJlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZTtcbiAgdXNlcjogRW9Vc2VyO1xuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgZXhlQWN0aW9uczogYm9vbGVhbjtcbiAgc2lkZWJhclNob3cgPSBmYWxzZTtcbiAgb3B0aW9uczogYW55O1xuICBpY29uVGl0bGVzOiBhbnk7XG4gIGxvZ286IHN0cmluZztcbiAgcGFnZVZpc2libGUgPSB0cnVlO1xuICBAVmlld0NoaWxkcmVuKFVzZXJBdmF0YXJDb21wb25lbnQpIGF2YXRhckNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxVc2VyQXZhdGFyQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcHJlcGFyZVNlcnZpY2U6IFByZXBhcmVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGJwbVNlcnZpY2U6IEJwbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbVJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgKSB7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIHRoaXMubG9nbyA9IHRoaXMuY29uZmlnLmdldE5hdmlnYXRpb25CYXJJbWFnZSgpO1xuICAgIC8vIGxpc3RlbiBmb3Igcm91dGluZyBldmVudHMgdG8gaGlkZSBhbnkgYWN0aXZlIG92ZXJsYXlzXG4gICAgLy8gb24gY2hhbmdpbmcgcm91dGVcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLmV2ZW50cy5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJC5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKHVzZXIgPT4gdGhpcy51c2VyID0gdXNlcik7XG5cbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaW5ib3gpIHtcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAgIC5pbmJveFN0YXRlJC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmluYm94U3RhdGUgJiYgdGhpcy5pbmJveFN0YXRlLnVucmVhZG1lc3NhZ2VzIDwgaW5ib3hTdGF0ZS51bnJlYWRtZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5zZW5kTm90aWZpY2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaW5ib3hTdGF0ZSA9IGluYm94U3RhdGU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uub24oRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lOQk9YX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkpIHtcbiAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgICAgLnByZXBhcmVkSXRlbUNvdW50JC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShjb3VudCA9PiB7XG4gICAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1zQ291bnQgPSBjb3VudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2xhdGVcbiAgICAgIC5vbkxhbmdDaGFuZ2VcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRJY29uVGl0bGVzKCkpO1xuICB9XG5cbiAgb3BlbkRhc2hib2FyZChvcGVuSW5OZXdXaW5kb3c6IGJvb2xlYW4pIHtcbiAgICBpZiAob3BlbkluTmV3V2luZG93KSB7XG4gICAgICB3aW5kb3cub3BlbignLycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlT25TY2hlbWFDaGFuZ2UoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYnBtU2VydmljZVxuICAgICAgICAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIG51bGwsIG51bGwsIG51bGwsIHRydWUpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5leGVBY3Rpb25zID0gISFyZXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5leGVBY3Rpb25zID0gdGhpcy5icG1TZXJ2aWNlLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBvblRvZ2dsZVByb2ZpbGVPdmVybGF5KCl7XG4gICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0aGlzLmVsZW1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjc2V0dGluZ3MnKS5mb2N1cygpO1xuICAgfSk7XG4gIH1cblxuICBzZXRJY29uVGl0bGVzKCkge1xuICAgIHRoaXMuaWNvblRpdGxlcyA9IHtcbiAgICAgIHNlYXJjaDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5zZWFyY2gudG9vbHRpcCcpLFxuICAgICAgZmlsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5maWxlLnRvb2x0aXAnKSxcbiAgICAgIGV4ZWFjdGlvbnM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uZXhlY3V0ZS5hY3Rpb25zLnRvb2x0aXAnKSxcbiAgICAgIGZhdm9yaXRlczogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5mYXZvcml0ZXMudG9vbHRpcCcpLFxuICAgICAgcHJlcGFyZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5wcmVwYXJlLnRvb2x0aXAnKSxcbiAgICAgIGluZGV4OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmluYm94LnRvb2x0aXAnKSxcbiAgICAgIHByb2ZpbGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24udXNlci5wcm9maWxlLnRpdGxlJyksXG4gICAgfTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBzZW5kTm90aWZpY2F0aW9uKCkge1xuICAgIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiA9PT0gJ2dyYW50ZWQnKSB7XG4gICAgICB0aGlzLmluaXROb3RpZmljYXRpb24oKTtcbiAgICB9IGVsc2UgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uICE9PSAnZGVuaWVkJykge1xuICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0Tm90aWZpY2F0aW9uKCkge1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3gubm90aWZpY2F0aW9uLnRpdGxlJyk7XG4gICAgY29uc3QgYm9keSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lm5vdGlmaWNhdGlvbi5ib2R5Jyk7XG4gICAgY29uc3QgaWNvbiA9ICdhc3NldHMvX2RlZmF1bHQvaW1nL3l1dXZpcy1hZ2VudC5wbmcnO1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbih0aXRsZSwge1xuICAgICAgYm9keTogYm9keSxcbiAgICAgIGljb246IGljb25cbiAgICB9KTtcblxuICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbkNsaWNrTGlzdGVuZXIobm90aWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8vIFRoaXMgaXMgbGlzdGVuaW5nIGZvciB0aGUgbmF2aWdhdGlvbiBjbGljayBldmVudC4gV2hlbiB0aGUgY2xpZW50IHRhYiBpcyBhY3RpdmUsIGl0IGp1c3QgbmF2aWdhdGVzIHRvIHRoZSBpbmJveCByb3V0ZS5cbiAgLy8gSWYgbm90LCBpdCBvcGVucyBhIG5ldyB0YWIgYW5kIHNob3dzIHRoZSBpbmJveCB0aGVyZS5cbiAgcHJpdmF0ZSBpbml0Tm90aWZpY2F0aW9uQ2xpY2tMaXN0ZW5lcihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgIG5vdGlmaWNhdGlvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnBhZ2VWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9pbmJveCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICBjb25zdCBwYXRoVG9OYXZpZ2F0ZSA9IGZ1bGxQYXRoLnJlcGxhY2UoY3VycmVudFJvdXRlLCAnJykgKyAnL2luYm94JztcbiAgICAgICAgd2luZG93Lm9wZW4ocGF0aFRvTmF2aWdhdGUsICdfYmxhbmsnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRoaXMgbGlzdGVuZXIgaXMgbmVlZGVkIHRvIGNoZWNrLCBpZiB0aGUgY2xpZW50IHRhYiBpcyBhY3RpdmUgb3Igbm90XG4gIHByaXZhdGUgaW5pdFZpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lcigpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgKCkgPT4gdGhpcy5wYWdlVmlzaWJsZSA9ICF0aGlzLnBhZ2VWaXNpYmxlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXBkYXRlT25TY2hlbWFDaGFuZ2UoKTtcbiAgICB0aGlzLnNldEljb25UaXRsZXMoKTtcbiAgICB0aGlzLmV4ZUFjdGlvbnMgPSB0aGlzLmJwbVNlcnZpY2UuaGFzTWFpbkV4ZWN1dGFibGVQcm9jZXNzZXM7XG4gICAgLy8gdGhpcy5icG1TZXJ2aWNlXG4gICAgLy8gICAuZ2V0RXhlY3V0YWJsZVByb2Nlc3NlcyhudWxsLCB0cnVlKVxuICAgIC8vICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgIC8vICAgICB0aGlzLmV4ZUFjdGlvbnMgPSAhIXJlcy5sZW5ndGg7XG4gICAgLy8gICB9KTtcbiAgICB0aGlzLmluaXRWaXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIoKTtcbiAgfVxufVxuIiwiPGVvLXNpZGUtYmFyIChlb091dHNpZGVDbGljayk9XCJzaWRlYmFyU2hvdyA9ICFzaWRlYmFyU2hvd1wiICpuZ0lmPVwic2lkZWJhclNob3dcIj5cbiAgPGRpdiBjbGFzcz1cIm5hdmlcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJlby1zaWRlYmFyLXBsdWdpbi5uYXZpXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImhlbHBcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJlby1zaWRlYmFyLXBsdWdpbi5oZWxwXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZW8tc2lkZS1iYXI+XG5cbjxkaXYgY2xhc3M9XCJlby1hcHAtYmFyXCIgW25nQ2xhc3NdPVwie3RyYW5zcGFyZW50OiB0cmFuc3BhcmVudH1cIiBlb1J0bEF3YXJlPlxuXG4gIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG5cbiAgICA8ZW8taWNvbiBpZD1cImFwcC1tZW51XCIgY2xhc3M9XCJtZW51IHdoaXRlXCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwic2lkZWJhclNob3cgPSAhc2lkZWJhclNob3dcIiAoa2V5dXAuZW50ZXIpPVwic2lkZWJhclNob3cgPSAhc2lkZWJhclNob3dcIlxuICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2hhbWJ1cmdlci5zdmcnXCI+PC9lby1pY29uPlxuICAgIDxlby1pY29uIChjbGljayk9XCJvcGVuRGFzaGJvYXJkKCRldmVudC5jdHJsS2V5KVwiICAoYXV4Y2xpY2spPVwib3BlbkRhc2hib2FyZCh0cnVlKVwiIFxuICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib3BlbkRhc2hib2FyZChmYWxzZSlcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxvZ28gd2hpdGVcIiBbaWNvblNyY109XCJsb2dvXCI+PC9lby1pY29uPlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsge291dGxldHM6IHsgbW9kYWw6ICdzZWFyY2gnIH0gfSBdXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLXNlYXJjaFwiIGNsYXNzPVwic2VhcmNoIHdoaXRlXCIgcXVlcnlQYXJhbXNIYW5kbGluZz1cInByZXNlcnZlXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT5cblxuICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWyB7b3V0bGV0czogeyBtb2RhbDogJ2FkZCcgfSB9IF1cIj5cbiAgICAgICAgPGVvLWljb24gaWQ9XCJhcHAtYWRkXCIgY2xhc3M9XCJhZGQgd2hpdGVcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbnRyYXlcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5maWxlXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hZGQuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT4gICAgICBcbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsge291dGxldHM6IHsgbW9kYWw6ICdhY3Rpb25zJyB9IH0gXVwiPlxuICAgICAgICA8ZW8taWNvbiBpZD1cImFwcC1hY3Rpb25zXCIgY2xhc3M9XCJhY3Rpb25zIHdoaXRlXCIgKm5nSWY9XCJleGVBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZXhlYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYnBtX3N0YXJ0LnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3ViXCI+XG4gICAgICA8ZW8tY2xpcGJvYXJkPjwvZW8tY2xpcGJvYXJkPlxuICAgIDwvZGl2PlxuICAgIDxhIHJvdXRlckxpbms9XCIvZmF2b3JpdGVzXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBmYXZvcml0ZVwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5mYXZvcml0ZXNcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5mYXZvcml0ZXNcIlxuICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19mYXZvcml0ZS5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSByb3V0ZXJMaW5rPVwiL3ByZXBhcmVcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIHByZXBhcmVcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbnRyYXlcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMucHJlcGFyZVwiXG4gICAgICAgICAgICAgIFtiYWRnZV09XCJwcmVwYXJlZEl0ZW1zQ291bnRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19wcmVwYXJlLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxhIHJvdXRlckxpbms9XCIvaW5ib3hcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIGluYm94XCIgW25nQ2xhc3NdPVwie2FsZXJ0OiBpbmJveFN0YXRlPy5vdmVyZHVlbWVzc2FnZXMgPiAwfVwiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmluYm94XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmluZGV4XCJcbiAgICAgICAgICAgICAgW2JhZGdlXT1cImluYm94U3RhdGU/LnRvdGFsbWVzc2FnZXNcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19pbmJveC5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8ZW8tb3ZlcmxheSAjdXNlcnBhbmVsIChvblRvZ2dsZSk9XCJvblRvZ2dsZVByb2ZpbGVPdmVybGF5KClcIj5cbiAgICAgIDxlby11c2VyLWF2YXRhciBjbGFzcz1cImJ0blwiIGlkPVwiYXBwLXByb2ZpbGVcIiBbc2hvd1ByZXNlbmNlXT1cInRydWVcIiBbdGl0bGVdPVwiaWNvblRpdGxlcy5wcm9maWxlXCIgdGFiaW5kZXg9XCIwXCI+PC9lby11c2VyLWF2YXRhcj5cblxuICAgICAgPGRpdiBjbGFzcz1cImVvLXByb2ZpbGVcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPGVvLXVzZXItYXZhdGFyIHRhYmluZGV4PVwiLTFcIiA+PC9lby11c2VyLWF2YXRhcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t1c2VyLmZpcnN0bmFtZX19IHt7dXNlci5sYXN0bmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbFwiPnt7dXNlci5lbWFpbH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJlc2VuY2VcIiAqbmdJZj1cIiF1c2VyLnByZXNlbnRcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MucHJlc2VuY2UuYWJzZW50PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2XCIgZW9UcmFwRm9jdXM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIHNldHRpbmdzXCIgKGNsaWNrKT1cInVzZXJwYW5lbD8uY2xvc2UoKVwiID5cbiAgICAgICAgICAgIDxhIHJvdXRlckxpbms9XCIvc2V0dGluZ3NcIiBpZD1cInNldHRpbmdzXCIgdGFiaW5kZXg9XCIwXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1saW5rXCIgZm9jdXNhYmxlIHRyYW5zbGF0ZT5lby5iYXIuYnV0dG9uLnNldHRpbmdzLnRpdGxlPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtaXRlbSBsb2dvdXRcIiAqbmdJZj1cIiFjYXBhYmlsaXRpZXMuc3NvXCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9lbnRlcicsIHsgbG9nb3V0OiB0cnVlIH1dXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1saW5rXCIgdHJhbnNsYXRlPmVvLmJhci5idXR0b24ubG9nb3V0LnRpdGxlPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLnByb2ZpbGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1vdmVybGF5PlxuXG5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUlMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQU1MLFVBQVUsRUFNWCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPeEUsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQWlCMUIsWUFBb0IsV0FBd0IsRUFDeEIsaUJBQXNDLEVBQ3RDLFNBQTJCLEVBQzNCLFlBQTBCLEVBQzFCLGNBQThCLEVBQzlCLFNBQTJCLEVBQzNCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxVQUFzQixFQUN0QixZQUEwQixFQUMxQixNQUFjLEVBQ2QsT0FBbUI7UUFYbkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQUN0QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztR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QUFFLENBQUM7SUFDdEMsQ0FBQzs7NEdBckxVLGVBQWU7Z0dBQWYsZUFBZSwrSEFlWixtQkFBbUIsZ0RDOUNuQyxvd0lBeUZBO0FEMURhLGVBQWU7SUFOM0IsWUFBWSxFQUFFO0dBTUYsZUFBZSxDQXNMM0I7U0F0TFksZUFBZTsyRkFBZixlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7eVlBTWIsV0FBVztzQkFBbkIsS0FBSztnQkFhNkIsZ0JBQWdCO3NCQUFsRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCcG1TZXJ2aWNlLFxuICBDYXBhYmlsaXRpZXMsXG4gIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIENsaXBib2FyZFNlcnZpY2UsXG4gIENvbmZpZyxcbiAgRW5haW9FdmVudCxcbiAgRW9Vc2VyLFxuICBFdmVudFNlcnZpY2UsXG4gIEluYm94U2VydmljZSwgSW5ib3hTdGF0ZSxcbiAgUHJlcGFyZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1VzZXJBdmF0YXJDb21wb25lbnR9IGZyb20gJy4uLy4uL3VpL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudCc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFwcC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRyYW5zcGFyZW50ID0gZmFsc2U7XG5cbiAgcHJlcGFyZWRJdGVtc0NvdW50OiBudW1iZXI7XG4gIGluYm94U3RhdGU6IEluYm94U3RhdGU7XG4gIHVzZXI6IEVvVXNlcjtcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIGV4ZUFjdGlvbnM6IGJvb2xlYW47XG4gIHNpZGViYXJTaG93ID0gZmFsc2U7XG4gIG9wdGlvbnM6IGFueTtcbiAgaWNvblRpdGxlczogYW55O1xuICBsb2dvOiBzdHJpbmc7XG4gIHBhZ2VWaXNpYmxlID0gdHJ1ZTtcbiAgZG9jdToge2xpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZ307XG4gIEBWaWV3Q2hpbGRyZW4oVXNlckF2YXRhckNvbXBvbmVudCkgYXZhdGFyQ29tcG9uZW50czogUXVlcnlMaXN0PFVzZXJBdmF0YXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2xpcGJvYXJkOiBDbGlwYm9hcmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICApIHtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0eVNlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG4gICAgdGhpcy5sb2dvID0gdGhpcy5jb25maWcuZ2V0TmF2aWdhdGlvbkJhckltYWdlKCk7XG4gICAgLy8gbGlzdGVuIGZvciByb3V0aW5nIGV2ZW50cyB0byBoaWRlIGFueSBhY3RpdmUgb3ZlcmxheXNcbiAgICAvLyBvbiBjaGFuZ2luZyByb3V0ZVxuICAgIHRoaXMucm91dGVyXG4gICAgICAuZXZlbnRzLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICB0aGlzLnNpZGViYXJTaG93ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgLnVzZXIkLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUodXNlciA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcblxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbmJveCkge1xuICAgICAgdGhpcy5pbmJveFNlcnZpY2VcbiAgICAgICAgLmluYm94U3RhdGUkLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKChpbmJveFN0YXRlOiBJbmJveFN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaW5ib3hTdGF0ZSAmJiB0aGlzLmluYm94U3RhdGUudW5yZWFkbWVzc2FnZXMgPCBpbmJveFN0YXRlLnVucmVhZG1lc3NhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmROb3RpZmljYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pbmJveFN0YXRlID0gaW5ib3hTdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfSU5CT1hfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5ib3hTZXJ2aWNlLnJlZnJlc2hJbmJveFN0YXRlKCkpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzLmludHJheSkge1xuICAgICAgdGhpcy5wcmVwYXJlU2VydmljZVxuICAgICAgICAucHJlcGFyZWRJdGVtQ291bnQkLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKGNvdW50ID0+IHtcbiAgICAgICAgICB0aGlzLnByZXBhcmVkSXRlbXNDb3VudCA9IGNvdW50O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnRyYW5zbGF0ZVxuICAgICAgLm9uTGFuZ0NoYW5nZVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldEljb25UaXRsZXMoKSk7XG4gIH1cblxuICBvcGVuRGFzaGJvYXJkKG9wZW5Jbk5ld1dpbmRvdzogYm9vbGVhbikge1xuICAgIGlmIChvcGVuSW5OZXdXaW5kb3cpIHtcbiAgICAgIHdpbmRvdy5vcGVuKCcvJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAgICB9XG4gIH1cblxuICBnZXREb2N1bWVudGF0aW9uKCkge1xuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgY29uc3QgZG9jdSA9IHRoaXMuY29uZmlnLmdldFJhdygnYWJvdXQuZG9jdScpO1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jdS5saW5rLnJlcGxhY2UoJyMjI3VzZXJMYW5nIyMjJywgZGF0YS51c2VyU2V0dGluZ3MuY2xpZW50bG9jYWxlLnN1YnN0cmluZygwLCAyKSk7XG4gICAgICAgIHRoaXMuZG9jdSA9IHsuLi5kb2N1LCBsaW5rfTtcbiAgICAgIH0pXG4gIH1cblxuICB1cGRhdGVPblNjaGVtYUNoYW5nZSgpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuU0NIRU1BX0xPQ0FMRV9DSEFOR0VEKS5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5icG1TZXJ2aWNlXG4gICAgICAgICAgLmdldEV4ZWN1dGFibGVQcm9jZXNzZXMobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAvLyB0aGlzLmV4ZUFjdGlvbnMgPSAhIXJlcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLmV4ZUFjdGlvbnMgPSB0aGlzLmJwbVNlcnZpY2UuaGFzTWFpbkV4ZWN1dGFibGVQcm9jZXNzZXM7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uVG9nZ2xlUHJvZmlsZU92ZXJsYXkoKXtcbiAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIHRoaXMuZWxlbVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZXR0aW5ncycpLmZvY3VzKCk7XG4gICB9KTtcbiAgfVxuXG4gIHNldEljb25UaXRsZXMoKSB7XG4gICAgdGhpcy5pY29uVGl0bGVzID0ge1xuICAgICAgc2VhcmNoOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLnNlYXJjaC50b29sdGlwJyksXG4gICAgICBmaWxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmZpbGUudG9vbHRpcCcpLFxuICAgICAgZXhlYWN0aW9uczogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5leGVjdXRlLmFjdGlvbnMudG9vbHRpcCcpLFxuICAgICAgZmF2b3JpdGVzOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmZhdm9yaXRlcy50b29sdGlwJyksXG4gICAgICBwcmVwYXJlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLnByZXBhcmUudG9vbHRpcCcpLFxuICAgICAgaW5kZXg6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uaW5ib3gudG9vbHRpcCcpLFxuICAgICAgcHJvZmlsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi51c2VyLnByb2ZpbGUudGl0bGUnKSxcbiAgICAgIGFib3V0OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaWRlYmFyLmhlbHAubWFudWFsLnRvb2x0aXAnKVxuICAgIH07XG4gIH1cblxuXG4gIHByaXZhdGUgc2VuZE5vdGlmaWNhdGlvbigpIHtcbiAgICBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gPT09ICdncmFudGVkJykge1xuICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XG4gICAgfSBlbHNlIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiAhPT0gJ2RlbmllZCcpIHtcbiAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXROb3RpZmljYXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdE5vdGlmaWNhdGlvbigpIHtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lm5vdGlmaWNhdGlvbi50aXRsZScpO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5ub3RpZmljYXRpb24uYm9keScpO1xuICAgIGNvbnN0IGljb24gPSAnYXNzZXRzL19kZWZhdWx0L2ltZy95dXV2aXMtYWdlbnQucG5nJztcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBOb3RpZmljYXRpb24odGl0bGUsIHtcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBpY29uOiBpY29uXG4gICAgfSk7XG5cbiAgICB0aGlzLmluaXROb3RpZmljYXRpb25DbGlja0xpc3RlbmVyKG5vdGlmaWNhdGlvbik7XG4gIH1cblxuICAvLyBUaGlzIGlzIGxpc3RlbmluZyBmb3IgdGhlIG5hdmlnYXRpb24gY2xpY2sgZXZlbnQuIFdoZW4gdGhlIGNsaWVudCB0YWIgaXMgYWN0aXZlLCBpdCBqdXN0IG5hdmlnYXRlcyB0byB0aGUgaW5ib3ggcm91dGUuXG4gIC8vIElmIG5vdCwgaXQgb3BlbnMgYSBuZXcgdGFiIGFuZCBzaG93cyB0aGUgaW5ib3ggdGhlcmUuXG4gIHByaXZhdGUgaW5pdE5vdGlmaWNhdGlvbkNsaWNrTGlzdGVuZXIobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pIHtcbiAgICBub3RpZmljYXRpb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wYWdlVmlzaWJsZSkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaW5ib3gnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgY29uc3QgcGF0aFRvTmF2aWdhdGUgPSBmdWxsUGF0aC5yZXBsYWNlKGN1cnJlbnRSb3V0ZSwgJycpICsgJy9pbmJveCc7XG4gICAgICAgIHdpbmRvdy5vcGVuKHBhdGhUb05hdmlnYXRlLCAnX2JsYW5rJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBUaGlzIGxpc3RlbmVyIGlzIG5lZWRlZCB0byBjaGVjaywgaWYgdGhlIGNsaWVudCB0YWIgaXMgYWN0aXZlIG9yIG5vdFxuICBwcml2YXRlIGluaXRWaXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsICgpID0+IHRoaXMucGFnZVZpc2libGUgPSAhdGhpcy5wYWdlVmlzaWJsZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZU9uU2NoZW1hQ2hhbmdlKCk7XG4gICAgdGhpcy5zZXRJY29uVGl0bGVzKCk7XG4gICAgdGhpcy5nZXREb2N1bWVudGF0aW9uKCk7XG4gICAgdGhpcy5leGVBY3Rpb25zID0gdGhpcy5icG1TZXJ2aWNlLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzO1xuICAgIC8vIHRoaXMuYnBtU2VydmljZVxuICAgIC8vICAgLmdldEV4ZWN1dGFibGVQcm9jZXNzZXMobnVsbCwgdHJ1ZSlcbiAgICAvLyAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAvLyAgICAgdGhpcy5leGVBY3Rpb25zID0gISFyZXMubGVuZ3RoO1xuICAgIC8vICAgfSk7XG4gICAgdGhpcy5pbml0VmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKCk7XG4gIH1cbn1cbiIsIjxlby1zaWRlLWJhciAoZW9PdXRzaWRlQ2xpY2spPVwic2lkZWJhclNob3cgPSAhc2lkZWJhclNob3dcIiAqbmdJZj1cInNpZGViYXJTaG93XCI+XG4gIDxkaXYgY2xhc3M9XCJuYXZpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZW8tc2lkZWJhci1wbHVnaW4ubmF2aVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWxwXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZW8tc2lkZWJhci1wbHVnaW4uaGVscFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2VvLXNpZGUtYmFyPlxuXG48ZGl2IGNsYXNzPVwiZW8tYXBwLWJhclwiIFtuZ0NsYXNzXT1cInt0cmFuc3BhcmVudDogdHJhbnNwYXJlbnR9XCIgZW9SdGxBd2FyZT5cblxuICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuXG4gICAgPGVvLWljb24gaWQ9XCJhcHAtbWVudVwiIGNsYXNzPVwibWVudSB3aGl0ZVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cInNpZGViYXJTaG93ID0gIXNpZGViYXJTaG93XCIgKGtleXVwLmVudGVyKT1cInNpZGViYXJTaG93ID0gIXNpZGViYXJTaG93XCJcbiAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19oYW1idXJnZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwib3BlbkRhc2hib2FyZCgkZXZlbnQuY3RybEtleSlcIiAgKGF1eGNsaWNrKT1cIm9wZW5EYXNoYm9hcmQodHJ1ZSlcIiBcbiAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9wZW5EYXNoYm9hcmQoZmFsc2UpXCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsb2dvIHdoaXRlXCIgW2ljb25TcmNdPVwibG9nb1wiPjwvZW8taWNvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YSBbcm91dGVyTGlua109XCJbIHtvdXRsZXRzOiB7IG1vZGFsOiAnc2VhcmNoJyB9IH0gXVwiPlxuICAgICAgICA8ZW8taWNvbiBpZD1cImFwcC1zZWFyY2hcIiBjbGFzcz1cInNlYXJjaCB3aGl0ZVwiIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJwcmVzZXJ2ZVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLnNlYXJjaFwiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2VhcmNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsge291dGxldHM6IHsgbW9kYWw6ICdhZGQnIH0gfSBdXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLWFkZFwiIGNsYXNzPVwiYWRkIHdoaXRlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5XCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZmlsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWRkLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+ICAgICAgXG4gICAgICA8YSBbcm91dGVyTGlua109XCJbIHtvdXRsZXRzOiB7IG1vZGFsOiAnYWN0aW9ucycgfSB9IF1cIj5cbiAgICAgICAgPGVvLWljb24gaWQ9XCJhcHAtYWN0aW9uc1wiIGNsYXNzPVwiYWN0aW9ucyB3aGl0ZVwiICpuZ0lmPVwiZXhlQWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmV4ZWFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2JwbV9zdGFydC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cInN1YlwiPlxuICAgICAgPGVvLWNsaXBib2FyZD48L2VvLWNsaXBib2FyZD5cbiAgICA8L2Rpdj5cbiAgICA8YSByb3V0ZXJMaW5rPVwiL2Zhdm9yaXRlc1wiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGUgZmF2b3JpdGVcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZmF2b3JpdGVzXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuZmF2b3JpdGVzXCJcbiAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmF2b3JpdGUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGEgcm91dGVyTGluaz1cIi9wcmVwYXJlXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBwcmVwYXJlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLnByZXBhcmVcIlxuICAgICAgICAgICAgICBbYmFkZ2VdPVwicHJlcGFyZWRJdGVtc0NvdW50XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcHJlcGFyZS5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSByb3V0ZXJMaW5rPVwiL2luYm94XCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBpbmJveFwiIFtuZ0NsYXNzXT1cInthbGVydDogaW5ib3hTdGF0ZT8ub3ZlcmR1ZW1lc3NhZ2VzID4gMH1cIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbmJveFwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5pbmRleFwiXG4gICAgICAgICAgICAgIFtiYWRnZV09XCJpbmJveFN0YXRlPy50b3RhbG1lc3NhZ2VzXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5ib3guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGEgaHJlZj1cInt7ZG9jdS5saW5rfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIGFib3V0XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmFib3V0XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWJvdXQuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8L2E+XG4gICAgPGVvLW92ZXJsYXkgI3VzZXJwYW5lbCAob25Ub2dnbGUpPVwib25Ub2dnbGVQcm9maWxlT3ZlcmxheSgpXCI+XG4gICAgICA8ZW8tdXNlci1hdmF0YXIgY2xhc3M9XCJidG5cIiBpZD1cImFwcC1wcm9maWxlXCIgW3Nob3dQcmVzZW5jZV09XCJ0cnVlXCIgW3RpdGxlXT1cImljb25UaXRsZXMucHJvZmlsZVwiIHRhYmluZGV4PVwiMFwiPjwvZW8tdXNlci1hdmF0YXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1wcm9maWxlXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxlby11c2VyLWF2YXRhciB0YWJpbmRleD1cIi0xXCIgPjwvZW8tdXNlci1hdmF0YXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPnt7dXNlci5maXJzdG5hbWV9fSB7e3VzZXIubGFzdG5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haWxcIj57e3VzZXIuZW1haWx9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXNlbmNlXCIgKm5nSWY9XCIhdXNlci5wcmVzZW50XCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLnByZXNlbmNlLmFic2VudDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdlwiIGVvVHJhcEZvY3VzPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtaXRlbSBzZXR0aW5nc1wiIChjbGljayk9XCJ1c2VycGFuZWw/LmNsb3NlKClcIiA+XG4gICAgICAgICAgICA8YSByb3V0ZXJMaW5rPVwiL3NldHRpbmdzXCIgaWQ9XCJzZXR0aW5nc1wiIHRhYmluZGV4PVwiMFwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtbGlua1wiIGZvY3VzYWJsZSB0cmFuc2xhdGU+ZW8uYmFyLmJ1dHRvbi5zZXR0aW5ncy50aXRsZTwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0gbG9nb3V0XCIgKm5nSWY9XCIhY2FwYWJpbGl0aWVzLnNzb1wiPlxuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvZW50ZXInLCB7IGxvZ291dDogdHJ1ZSB9XVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtbGlua1wiIHRyYW5zbGF0ZT5lby5iYXIuYnV0dG9uLmxvZ291dC50aXRsZTwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJlby1zaWRlYmFyLXBsdWdpbi5wcm9maWxlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tb3ZlcmxheT5cblxuXG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=