@eo-sdk/client 10.3.0-rc.2 → 10.4.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 (75) hide show
  1. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts +0 -1
  2. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
  4. package/app/eo-framework/actions/action.module.d.ts +17 -12
  5. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  6. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts +47 -0
  7. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts.map +1 -0
  8. package/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.d.ts +19 -0
  9. package/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.d.ts.map +1 -0
  10. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts +3 -1
  11. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts.map +1 -1
  12. package/app/eo-framework/actions/actions/signature-action/signature.model.d.ts +21 -0
  13. package/app/eo-framework/actions/actions/signature-action/signature.model.d.ts.map +1 -0
  14. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  15. package/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.d.ts +2 -0
  16. package/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.d.ts.map +1 -1
  17. package/app/eo-framework/object-form/object-form/object-form-group.model.d.ts +1 -0
  18. package/app/eo-framework/object-form/object-form/object-form-group.model.d.ts.map +1 -1
  19. package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts.map +1 -1
  20. package/app/eo-framework/object-form/object-form-helper.service.d.ts +11 -0
  21. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  22. package/app/eo-framework/object-form/object-form-options.interface.d.ts +1 -0
  23. package/app/eo-framework/object-form/object-form-options.interface.d.ts.map +1 -1
  24. package/app/eo-framework/prepare-details/prepare-details.component.d.ts +2 -1
  25. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  26. package/assets/_default/i18n/de.json +5 -3
  27. package/assets/_default/i18n/en.json +5 -3
  28. package/assets/_default/svg/ic_drag.svg +1 -0
  29. package/assets/_default/svg/ic_saved_search.svg +1 -0
  30. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  31. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  32. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  33. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +10 -14
  34. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  35. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  36. package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +1 -1
  37. package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
  38. package/esm2020/app/eo-framework/actions/action.module.mjs +19 -7
  39. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +184 -0
  40. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +53 -0
  41. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +22 -19
  42. package/esm2020/app/eo-framework/actions/actions/signature-action/signature.model.mjs +8 -0
  43. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +1 -1
  44. package/esm2020/app/eo-framework/form-elements/form-input/form-input.component.mjs +2 -2
  45. package/esm2020/app/eo-framework/form-elements/number-range/number-range.component.mjs +3 -3
  46. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +1 -1
  47. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +1 -1
  48. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +3 -3
  49. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +4 -3
  50. package/esm2020/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +11 -4
  51. package/esm2020/app/eo-framework/object-form/object-form/object-form-group.model.mjs +1 -1
  52. package/esm2020/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +2 -1
  53. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +35 -2
  54. package/esm2020/app/eo-framework/object-form/object-form-options.interface.mjs +1 -1
  55. package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +1 -1
  56. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +6 -4
  57. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +1 -1
  58. package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +2 -2
  59. package/esm2020/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
  60. package/esm2020/app/eo-framework-core/api/grid.service.mjs +13 -13
  61. package/esm2020/projects/eo-sdk/core/lib/model/work-item-history.model.mjs +3 -3
  62. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +4 -96
  63. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +5 -96
  64. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  65. package/fesm2015/eo-sdk-client.mjs +352 -71
  66. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  67. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +5 -96
  68. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  69. package/fesm2020/eo-sdk-client.mjs +348 -71
  70. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  71. package/package.json +3 -3
  72. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +1 -4
  73. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
  74. package/scss/_form.scss +6 -1
  75. package/styles.css +3 -0
@@ -0,0 +1,184 @@
1
+ import { moveItemInArray } from '@angular/cdk/drag-drop';
2
+ import { Attribute, Component, EventEmitter, forwardRef, HostListener, Input, Output } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
4
+ import { ChangeMode } from '../signature.model';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@eo-sdk/core";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@ngx-translate/core";
10
+ import * as i5 from "../../../../ui/eo-icon/eo-icon.component";
11
+ import * as i6 from "../../../../form-elements/form-input/form-input.component";
12
+ import * as i7 from "../../../../form-elements/string/string.component";
13
+ import * as i8 from "@angular/cdk/drag-drop";
14
+ import * as i9 from "../sequence-list-item/sequence-list-item.component";
15
+ export class SequenceListComponent {
16
+ controlPlusHandler(event) {
17
+ this.showEntryForm();
18
+ event.preventDefault();
19
+ event.stopPropagation();
20
+ }
21
+ controlEnterHandler(event) {
22
+ if (this.entryForm?.dirty && this.entryForm.valid) {
23
+ this.addSigner();
24
+ event.preventDefault();
25
+ event.stopPropagation();
26
+ }
27
+ }
28
+ escapeHandler(event) {
29
+ if (this.entryForm) {
30
+ this.hideEntryForm();
31
+ event.preventDefault();
32
+ event.stopPropagation();
33
+ }
34
+ }
35
+ get maxSigners() {
36
+ return this.entries.length === this.MAX_SIGNERS;
37
+ }
38
+ constructor(formOpen, elRef, fb, translate) {
39
+ this.formOpen = formOpen;
40
+ this.elRef = elRef;
41
+ this.fb = fb;
42
+ this.translate = translate;
43
+ this.entries = [];
44
+ this.lengthValidator = { max: 100, min: 3 };
45
+ this.changeMode = ChangeMode;
46
+ this.itemEdit = new EventEmitter();
47
+ this.propagateChange = (_) => { };
48
+ }
49
+ propagate() {
50
+ this.propagateChange(this.entries);
51
+ }
52
+ writeValue(value) {
53
+ this.entries = value || [];
54
+ }
55
+ registerOnChange(fn) {
56
+ this.propagateChange = fn;
57
+ }
58
+ registerOnTouched(fn) { }
59
+ validate(control) {
60
+ return this.entryForm?.dirty ? { routinglist: { pending: true } } : null;
61
+ }
62
+ dragDrop(event) {
63
+ moveItemInArray(this.entries, event.previousIndex, event.currentIndex);
64
+ this.propagate();
65
+ }
66
+ showEntryForm(index, addAtIndex) {
67
+ let entry;
68
+ if (addAtIndex) {
69
+ this.addTargetIndex = index;
70
+ }
71
+ else {
72
+ this.editIndex = index;
73
+ entry = index !== undefined ? this.entries[index] : undefined;
74
+ }
75
+ this.entryForm = this.fb.group({
76
+ name: ['', [Validators.required, Validators.maxLength(100)]],
77
+ email: ['', [Validators.required, Validators.maxLength(200), Validators.email]],
78
+ phone: ['', [Validators.maxLength(100)]]
79
+ });
80
+ if (entry) {
81
+ this.entryForm.patchValue({ name: entry.name, email: entry.email, phone: entry.phone });
82
+ }
83
+ this.itemEdit.emit(true);
84
+ }
85
+ removeEntry(index) {
86
+ const entry = this.entries[index];
87
+ if (!entry) {
88
+ return;
89
+ }
90
+ this.entries.splice(index, 1);
91
+ this.mode = null;
92
+ this.propagate();
93
+ }
94
+ changeEntry({ index, mode }) {
95
+ this.mode = mode;
96
+ if (mode === ChangeMode.EDIT) {
97
+ this.showEntryForm(index);
98
+ this.addTargetIndex = index;
99
+ }
100
+ else if (mode === ChangeMode.DELETE) {
101
+ this.removeEntry(index);
102
+ }
103
+ else if (mode === ChangeMode.INSERT && !this.maxSigners) {
104
+ this.showEntryForm();
105
+ this.addTargetIndex = index;
106
+ }
107
+ }
108
+ addSigner() {
109
+ if (this.editIndex !== undefined) {
110
+ this.entries.splice(this.editIndex, 1, this.entryForm.value);
111
+ }
112
+ else if (this.addTargetIndex !== undefined) {
113
+ this.entries.splice(this.addTargetIndex, 0, this.entryForm.value);
114
+ }
115
+ else {
116
+ this.entries.push(this.entryForm.value);
117
+ }
118
+ this.hideEntryForm();
119
+ this.propagate();
120
+ }
121
+ hideEntryForm() {
122
+ this.addTargetIndex = undefined;
123
+ this.editIndex = undefined;
124
+ this.entryForm = undefined;
125
+ this.mode = undefined;
126
+ this.itemEdit.emit(false);
127
+ setTimeout(() => this.elRef.nativeElement.querySelector('#add-item ')?.focus());
128
+ }
129
+ cancel() {
130
+ this.hideEntryForm();
131
+ }
132
+ ngOnInit() {
133
+ this.showEntryForm();
134
+ }
135
+ }
136
+ SequenceListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SequenceListComponent, deps: [{ token: 'form-open', attribute: true }, { token: i0.ElementRef }, { token: i1.FormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
137
+ SequenceListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: SequenceListComponent, selector: "eo-sequence-list", inputs: { MAX_SIGNERS: "MAX_SIGNERS", phoneRequired: "phoneRequired" }, outputs: { itemEdit: "itemEdit" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown.control.+": "controlPlusHandler($event)", "keydown.enter": "controlEnterHandler($event)", "keydown.escape": "escapeHandler($event)" } }, providers: [
138
+ {
139
+ provide: NG_VALUE_ACCESSOR,
140
+ useExisting: forwardRef(() => SequenceListComponent),
141
+ multi: true
142
+ },
143
+ {
144
+ provide: NG_VALIDATORS,
145
+ useExisting: forwardRef(() => SequenceListComponent),
146
+ multi: true
147
+ }
148
+ ], ngImport: i0, template: "<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\n <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\n <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\n <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\n </eo-icon>\n </button>\n</div>\n\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\n <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\n <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\n <ng-template #content>\n <div class=\"signer-list-entry\">\n <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\n <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\n <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\n </div>\n </ng-template>\n </eo-sequence-list-item>\n </div>\n</div>\n\n<ng-template #tplEntryForm>\n <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\n <div class=\"form-body\">\n <eo-form-input\n class=\"name\"\n [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\n </eo-form-input>\n\n <eo-form-input\n class=\"task\"\n [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"200\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\n <eo-form-input\n class=\"task\"\n *ngIf=\"phoneRequired\"\n [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\n </eo-form-input>\n </div>\n <footer class=\"footer-action\">\n <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.action.signature.cancel</button>\n <ng-container [ngSwitch]=\"mode\">\n <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\n <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\n </ng-container>\n </footer>\n </form>\n</ng-template>\n", styles: [":host{display:block;border:1px solid var(--panel-divider-color);padding:1px;background-color:var(--panel-background)}:host:focus{border-color:var(--color-accent)}:host.ng-invalid{border-color:var(--color-error)}:host.dense form.entryForm{display:flex;flex-flow:column}:host form.entryForm{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;padding:calc(var(--app-pane-padding) / 2);gap:calc(var(--app-pane-padding) / 2);grid-template-areas:\"title\" \"task\" \"nextAssignee\" \"expiryDatetime\" \"buttons\";border:1px solid var(--panel-divider-color)}:host form.entryForm eo-form-input.task{grid-area:task}:host form.entryForm eo-form-input.nextAssignee{grid-area:nextAssignee}:host form.entryForm eo-form-input.expiryDatetime{grid-area:expiryDatetime}:host form.entryForm .buttons{grid-area:buttons;display:flex;justify-content:end;margin:0 -2px}:host form.entryForm .buttons button{margin:0 2px}:host form.entryForm .errors{color:var(--color-error)}:host .toolbar{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--app-pane-padding) / 4);border:1px solid var(--panel-divider-color)}:host .toolbar:focus{border-color:var(--color-accent)}:host .toolbar h4{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1;color:var(--color-primary-2)}:host .toolbar button{padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host .entries .entry{position:relative;transition:background-color .1s ease-in-out;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);-moz-column-gap:calc(var(--app-pane-padding) / 2);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entries .entry.disabled{background-color:var(--panel-background-lightgrey);opacity:.85}:host .entries .entry.disabled.current{background-color:var(--panel-background);border-color:var(--color-accent)}:host .entries .entry.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host .entries .entry.disabled button,:host .entries .entry.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host .entries .entry.single .handle,:host .entries .entry.single .index{display:none}:host .entries .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entries .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entries .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entries .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entries .entry .content{grid-area:content}:host .entries .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entries .entry .action{grid-area:action;display:flex;align-items:center}:host .entries .entry .action button{padding:2px}:host .entries .entry .action button eo-icon{width:18px;height:18px}.footer-action{display:flex;justify-content:flex-end;padding:var(--app-pane-padding) 0;background-color:transparent;border-top:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i7.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i9.SequenceListItemComponent, selector: "eo-sequence-list-item", inputs: ["index", "disableAdd", "addTargetIndex"], outputs: ["changeEntry", "edit", "delete", "insert"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SequenceListComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'eo-sequence-list', providers: [
152
+ {
153
+ provide: NG_VALUE_ACCESSOR,
154
+ useExisting: forwardRef(() => SequenceListComponent),
155
+ multi: true
156
+ },
157
+ {
158
+ provide: NG_VALIDATORS,
159
+ useExisting: forwardRef(() => SequenceListComponent),
160
+ multi: true
161
+ }
162
+ ], host: {
163
+ tabindex: '0'
164
+ }, template: "<div class=\"toolbar\" *ngIf=\"!entryForm; else tplEntryForm\">\n <h4>{{ 'eo.action.signature.signers' | translate }}</h4>\n <button id=\"add-item\" class=\"add primary\" (click)=\"showEntryForm()\" [disabled]=\"maxSigners\">\n <eo-icon [iconTitle]=\"('eo.action.signature.add.button.tooltip' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\">\n </eo-icon>\n </button>\n</div>\n\n<div class=\"entries\" cdkDropList (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"entries\">\n <div [ngClass]=\"{ disabled: !!entryForm, single: entries.length === 1 }\" cdkDrag *ngFor=\"let entry of entries; let i = index\">\n <eo-sequence-list-item [index]=\"i\" (changeEntry)=\"changeEntry($event)\" [disableAdd]=\"maxSigners\">\n <ng-template #content>\n <div class=\"signer-list-entry\">\n <div class=\"signer-name\" title=\"{{entry.name}}\">{{ entry.name }}</div>\n <div class=\"signer-email\" title=\"{{entry.email}}\">{{ entry.email }}</div>\n <div class=\"signer-phone\" *ngIf=\"entry.phone\" title=\"{{entry.phone}}\">{{ entry.phone }}</div>\n </div>\n </ng-template>\n </eo-sequence-list-item>\n </div>\n</div>\n\n<ng-template #tplEntryForm>\n <form class=\"entryForm\" [formGroup]=\"entryForm\" (ngSubmit)=\"addSigner()\">\n <div class=\"form-body\">\n <eo-form-input\n class=\"name\"\n [invalid]=\"entryForm.get('name').dirty && entryForm.get('name').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignername' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignername'\" [autocomplete]=\"true\" [autofocus]=\"true\" formControlName=\"name\"></eo-string>\n </eo-form-input>\n\n <eo-form-input\n class=\"task\"\n [invalid]=\"entryForm.get('email').dirty && entryForm.get('email').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsigneremail' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"200\" [qname]=\"'yuvsigning.yuvsigners.yuvsigneremail'\" [autocomplete]=\"true\" formControlName=\"email\"></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"entryForm.get('email').hasError('email')\" translate>eo.form.property.string.error.classification.email</small>\n <eo-form-input\n class=\"task\"\n *ngIf=\"phoneRequired\"\n [invalid]=\"entryForm.get('phone').dirty && entryForm.get('phone').invalid\"\n [skipToggle]=\"true\"\n [label]=\"'eo.action.signature.yuvsigners.yuvsignerphone' | translate\"\n [required]=\"true\"\n >\n <eo-string maxLength=\"100\" [qname]=\"'yuvsigning.yuvsigners.yuvsignerphone'\" formControlName=\"phone\"> </eo-string>\n </eo-form-input>\n </div>\n <footer class=\"footer-action\">\n <button class=\"secondary\" type=\"button\" (click)=\"cancel()\" translate>eo.action.signature.cancel</button>\n <ng-container [ngSwitch]=\"mode\">\n <button *ngSwitchCase=\"'edit'\" class=\"primary\" [disabled]=\"entryForm.invalid || entryForm.pristine\" type=\"submit\" translate>eo.action.signature.editSigner</button>\n <button *ngSwitchDefault class=\"primary\" [disabled]=\"entryForm.invalid\" type=\"submit\" translate>eo.action.signature.addSigner</button>\n </ng-container>\n </footer>\n </form>\n</ng-template>\n", styles: [":host{display:block;border:1px solid var(--panel-divider-color);padding:1px;background-color:var(--panel-background)}:host:focus{border-color:var(--color-accent)}:host.ng-invalid{border-color:var(--color-error)}:host.dense form.entryForm{display:flex;flex-flow:column}:host form.entryForm{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;padding:calc(var(--app-pane-padding) / 2);gap:calc(var(--app-pane-padding) / 2);grid-template-areas:\"title\" \"task\" \"nextAssignee\" \"expiryDatetime\" \"buttons\";border:1px solid var(--panel-divider-color)}:host form.entryForm eo-form-input.task{grid-area:task}:host form.entryForm eo-form-input.nextAssignee{grid-area:nextAssignee}:host form.entryForm eo-form-input.expiryDatetime{grid-area:expiryDatetime}:host form.entryForm .buttons{grid-area:buttons;display:flex;justify-content:end;margin:0 -2px}:host form.entryForm .buttons button{margin:0 2px}:host form.entryForm .errors{color:var(--color-error)}:host .toolbar{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--app-pane-padding) / 4);border:1px solid var(--panel-divider-color)}:host .toolbar:focus{border-color:var(--color-accent)}:host .toolbar h4{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1;color:var(--color-primary-2)}:host .toolbar button{padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host .entries .entry{position:relative;transition:background-color .1s ease-in-out;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);-moz-column-gap:calc(var(--app-pane-padding) / 2);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entries .entry.disabled{background-color:var(--panel-background-lightgrey);opacity:.85}:host .entries .entry.disabled.current{background-color:var(--panel-background);border-color:var(--color-accent)}:host .entries .entry.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host .entries .entry.disabled button,:host .entries .entry.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host .entries .entry.single .handle,:host .entries .entry.single .index{display:none}:host .entries .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entries .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entries .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entries .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entries .entry .content{grid-area:content}:host .entries .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entries .entry .action{grid-area:action;display:flex;align-items:center}:host .entries .entry .action button{padding:2px}:host .entries .entry .action button eo-icon{width:18px;height:18px}.footer-action{display:flex;justify-content:flex-end;padding:var(--app-pane-padding) 0;background-color:transparent;border-top:none}\n"] }]
165
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
166
+ type: Attribute,
167
+ args: ['form-open']
168
+ }] }, { type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.TranslateService }]; }, propDecorators: { MAX_SIGNERS: [{
169
+ type: Input
170
+ }], phoneRequired: [{
171
+ type: Input
172
+ }], itemEdit: [{
173
+ type: Output
174
+ }], controlPlusHandler: [{
175
+ type: HostListener,
176
+ args: ['keydown.control.+', ['$event']]
177
+ }], controlEnterHandler: [{
178
+ type: HostListener,
179
+ args: ['keydown.enter', ['$event']]
180
+ }], escapeHandler: [{
181
+ type: HostListener,
182
+ args: ['keydown.escape', ['$event']]
183
+ }] } });
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvc2lnbmF0dXJlLWFjdGlvbi9zZXF1ZW5jZS1saXN0L3NlcXVlbmNlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3NpZ25hdHVyZS1hY3Rpb24vc2VxdWVuY2UtbGlzdC9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBaUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxSyxPQUFPLEVBQUMsVUFBVSxFQUF1QixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7OztBQXVCcEUsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxrQkFBa0IsQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNqRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFD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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtBdHRyaWJ1dGUsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDaGFuZ2VNb2RlLCBDaGFuZ2VPdXRwdXQsIFNpZ25lcn0gZnJvbSAnLi4vc2lnbmF0dXJlLm1vZGVsJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc2VxdWVuY2UtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VxdWVuY2UtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlcXVlbmNlTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlcXVlbmNlTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgIHRhYmluZGV4OiAnMCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICBlbnRyeUZvcm06IEZvcm1Hcm91cDtcbiAgZW50cmllczogU2lnbmVyW10gPSBbXTtcbiAgZWRpdEluZGV4OiBudW1iZXI7XG4gIGFkZFRhcmdldEluZGV4OiBudW1iZXI7XG4gIGxlbmd0aFZhbGlkYXRvciA9IHsgbWF4OiAxMDAsIG1pbjogMyB9O1xuICBjaGFuZ2VNb2RlID0gQ2hhbmdlTW9kZTtcbiAgbW9kZTogQ2hhbmdlTW9kZTtcblxuICBASW5wdXQoKSBNQVhfU0lHTkVSUzogbnVtYmVyO1xuICBASW5wdXQoKSBwaG9uZVJlcXVpcmVkOiBib29sZWFuO1xuICBAT3V0cHV0KCkgaXRlbUVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5jb250cm9sLisnLCBbJyRldmVudCddKVxuICBjb250cm9sUGx1c0hhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnNob3dFbnRyeUZvcm0oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIGNvbnRyb2xFbnRlckhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5lbnRyeUZvcm0/LmRpcnR5ICYmIHRoaXMuZW50cnlGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmFkZFNpZ25lcigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcbiAgZXNjYXBlSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmVudHJ5Rm9ybSkge1xuICAgICAgdGhpcy5oaWRlRW50cnlGb3JtKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1heFNpZ25lcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcy5sZW5ndGggPT09IHRoaXMuTUFYX1NJR05FUlM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihAQXR0cmlidXRlKCdmb3JtLW9wZW4nKSBwdWJsaWMgZm9ybU9wZW46IHN0cmluZyxcbiAgICAgICAgICAgICAgcHVibGljIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwdWJsaWMgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHByaXZhdGUgcHJvcGFnYXRlKCkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuZW50cmllcyk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBTaWduZXJbXSk6IHZvaWQge1xuICAgIHRoaXMuZW50cmllcyA9IHZhbHVlIHx8IFtdO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmVudHJ5Rm9ybT8uZGlydHkgPyB7IHJvdXRpbmdsaXN0OiB7IHBlbmRpbmc6IHRydWUgfSB9IDogbnVsbDtcbiAgfVxuXG4gIGRyYWdEcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5lbnRyaWVzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gIH1cblxuICBzaG93RW50cnlGb3JtKGluZGV4PzogbnVtYmVyLCBhZGRBdEluZGV4PzogYm9vbGVhbikge1xuICAgIGxldCBlbnRyeTtcbiAgICBpZiAoYWRkQXRJbmRleCkge1xuICAgICAgdGhpcy5hZGRUYXJnZXRJbmRleCA9IGluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVkaXRJbmRleCA9IGluZGV4O1xuICAgICAgZW50cnkgPSBpbmRleCAhPT0gdW5kZWZpbmVkID8gdGhpcy5lbnRyaWVzW2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJ5Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV1dLFxuICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCksIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgIHBob25lOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApXV1cbiAgICB9KTtcblxuICAgIGlmIChlbnRyeSkge1xuICAgICAgdGhpcy5lbnRyeUZvcm0ucGF0Y2hWYWx1ZSh7IG5hbWU6IGVudHJ5Lm5hbWUsIGVtYWlsOiBlbnRyeS5lbWFpbCwgcGhvbmU6IGVudHJ5LnBob25lIH0pO1xuICAgIH1cbiAgICB0aGlzLml0ZW1FZGl0LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUVudHJ5KGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZW50cmllc1tpbmRleF07XG4gICAgaWYgKCFlbnRyeSkgeyByZXR1cm47IH1cbiAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLm1vZGUgPSBudWxsO1xuICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gIH1cblxuICBjaGFuZ2VFbnRyeSh7IGluZGV4LCBtb2RlIH06IENoYW5nZU91dHB1dCkge1xuICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgaWYgKG1vZGUgPT09IENoYW5nZU1vZGUuRURJVCkge1xuICAgICAgdGhpcy5zaG93RW50cnlGb3JtKGluZGV4KTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0SW5kZXggPSBpbmRleDtcbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IENoYW5nZU1vZGUuREVMRVRFKSB7XG4gICAgICB0aGlzLnJlbW92ZUVudHJ5KGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IENoYW5nZU1vZGUuSU5TRVJUICYmICF0aGlzLm1heFNpZ25lcnMpIHtcbiAgICAgIHRoaXMuc2hvd0VudHJ5Rm9ybSgpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgfVxuXG4gIGFkZFNpZ25lcigpIHtcbiAgICBpZiAodGhpcy5lZGl0SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZSh0aGlzLmVkaXRJbmRleCwgMSwgdGhpcy5lbnRyeUZvcm0udmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hZGRUYXJnZXRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKHRoaXMuYWRkVGFyZ2V0SW5kZXgsIDAsIHRoaXMuZW50cnlGb3JtLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbnRyaWVzLnB1c2godGhpcy5lbnRyeUZvcm0udmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmhpZGVFbnRyeUZvcm0oKTtcbiAgICB0aGlzLnByb3BhZ2F0ZSgpO1xuICB9XG5cbiAgaGlkZUVudHJ5Rm9ybSgpIHtcbiAgICB0aGlzLmFkZFRhcmdldEluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZW50cnlGb3JtID0gdW5kZWZpbmVkO1xuICAgIHRoaXMubW9kZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLml0ZW1FZGl0LmVtaXQoZmFsc2UpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI2FkZC1pdGVtICcpPy5mb2N1cygpKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmhpZGVFbnRyeUZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0VudHJ5Rm9ybSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwiIWVudHJ5Rm9ybTsgZWxzZSB0cGxFbnRyeUZvcm1cIj5cbiAgPGg0Pnt7ICdlby5hY3Rpb24uc2lnbmF0dXJlLnNpZ25lcnMnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgPGJ1dHRvbiBpZD1cImFkZC1pdGVtXCIgY2xhc3M9XCJhZGQgcHJpbWFyeVwiIChjbGljayk9XCJzaG93RW50cnlGb3JtKClcIiBbZGlzYWJsZWRdPVwibWF4U2lnbmVyc1wiPlxuICAgIDxlby1pY29uIFtpY29uVGl0bGVdPVwiKCdlby5hY3Rpb24uc2lnbmF0dXJlLmFkZC5idXR0b24udG9vbHRpcCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hZGQuc3ZnJ1wiPlxuICAgIDwvZW8taWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImVudHJpZXNcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyYWdEcm9wKCRldmVudClcIiBbY2RrRHJvcExpc3REYXRhXT1cImVudHJpZXNcIj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiAhIWVudHJ5Rm9ybSwgc2luZ2xlOiBlbnRyaWVzLmxlbmd0aCA9PT0gMSB9XCIgY2RrRHJhZyAqbmdGb3I9XCJsZXQgZW50cnkgb2YgZW50cmllczsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxlby1zZXF1ZW5jZS1saXN0LWl0ZW0gW2luZGV4XT1cImlcIiAoY2hhbmdlRW50cnkpPVwiY2hhbmdlRW50cnkoJGV2ZW50KVwiIFtkaXNhYmxlQWRkXT1cIm1heFNpZ25lcnNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZ25lci1saXN0LWVudHJ5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpZ25lci1uYW1lXCIgdGl0bGU9XCJ7e2VudHJ5Lm5hbWV9fVwiPnt7IGVudHJ5Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lnbmVyLWVtYWlsXCIgdGl0bGU9XCJ7e2VudHJ5LmVtYWlsfX1cIj57eyBlbnRyeS5lbWFpbCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWduZXItcGhvbmVcIiAqbmdJZj1cImVudHJ5LnBob25lXCIgdGl0bGU9XCJ7e2VudHJ5LnBob25lfX1cIj57eyBlbnRyeS5waG9uZSB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9lby1zZXF1ZW5jZS1saXN0LWl0ZW0+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdHBsRW50cnlGb3JtPlxuICA8Zm9ybSBjbGFzcz1cImVudHJ5Rm9ybVwiIFtmb3JtR3JvdXBdPVwiZW50cnlGb3JtXCIgKG5nU3VibWl0KT1cImFkZFNpZ25lcigpXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tYm9keVwiPlxuICAgICAgPGVvLWZvcm0taW5wdXRcbiAgICAgICAgY2xhc3M9XCJuYW1lXCJcbiAgICAgICAgW2ludmFsaWRdPVwiZW50cnlGb3JtLmdldCgnbmFtZScpLmRpcnR5ICYmIGVudHJ5Rm9ybS5nZXQoJ25hbWUnKS5pbnZhbGlkXCJcbiAgICAgICAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgIFtsYWJlbF09XCInZW8uYWN0aW9uLnNpZ25hdHVyZS55dXZzaWduZXJzLnl1dnNpZ25lcm5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8ZW8tc3RyaW5nIG1heExlbmd0aD1cIjEwMFwiIFtxbmFtZV09XCIneXV2c2lnbmluZy55dXZzaWduZXJzLnl1dnNpZ25lcm5hbWUnXCIgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCIgW2F1dG9mb2N1c109XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuXG4gICAgICA8ZW8tZm9ybS1pbnB1dFxuICAgICAgICBjbGFzcz1cInRhc2tcIlxuICAgICAgICBbaW52YWxpZF09XCJlbnRyeUZvcm0uZ2V0KCdlbWFpbCcpLmRpcnR5ICYmIGVudHJ5Rm9ybS5nZXQoJ2VtYWlsJykuaW52YWxpZFwiXG4gICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICBbbGFiZWxdPVwiJ2VvLmFjdGlvbi5zaWduYXR1cmUueXV2c2lnbmVycy55dXZzaWduZXJlbWFpbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxlby1zdHJpbmcgbWF4TGVuZ3RoPVwiMjAwXCIgW3FuYW1lXT1cIid5dXZzaWduaW5nLnl1dnNpZ25lcnMueXV2c2lnbmVyZW1haWwnXCIgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIj48L2VvLXN0cmluZz5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIDxzbWFsbCBjbGFzcz1cImVycm9yc1wiICpuZ0lmPVwiZW50cnlGb3JtLmdldCgnZW1haWwnKS5oYXNFcnJvcignZW1haWwnKVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnN0cmluZy5lcnJvci5jbGFzc2lmaWNhdGlvbi5lbWFpbDwvc21hbGw+XG4gICAgICA8ZW8tZm9ybS1pbnB1dFxuICAgICAgICBjbGFzcz1cInRhc2tcIlxuICAgICAgICAqbmdJZj1cInBob25lUmVxdWlyZWRcIlxuICAgICAgICBbaW52YWxpZF09XCJlbnRyeUZvcm0uZ2V0KCdwaG9uZScpLmRpcnR5ICYmIGVudHJ5Rm9ybS5nZXQoJ3Bob25lJykuaW52YWxpZFwiXG4gICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICBbbGFiZWxdPVwiJ2VvLmFjdGlvbi5zaWduYXR1cmUueXV2c2lnbmVycy55dXZzaWduZXJwaG9uZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxlby1zdHJpbmcgbWF4TGVuZ3RoPVwiMTAwXCIgW3FuYW1lXT1cIid5dXZzaWduaW5nLnl1dnNpZ25lcnMueXV2c2lnbmVycGhvbmUnXCIgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIj4gPC9lby1zdHJpbmc+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGZvb3RlciBjbGFzcz1cImZvb3Rlci1hY3Rpb25cIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgdHJhbnNsYXRlPmVvLmFjdGlvbi5zaWduYXR1cmUuY2FuY2VsPC9idXR0b24+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XG4gICAgICAgIDxidXR0b24gKm5nU3dpdGNoQ2FzZT1cIidlZGl0J1wiIGNsYXNzPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJlbnRyeUZvcm0uaW52YWxpZCB8fCBlbnRyeUZvcm0ucHJpc3RpbmVcIiB0eXBlPVwic3VibWl0XCIgdHJhbnNsYXRlPmVvLmFjdGlvbi5zaWduYXR1cmUuZWRpdFNpZ25lcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImVudHJ5Rm9ybS5pbnZhbGlkXCIgdHlwZT1cInN1Ym1pdFwiIHRyYW5zbGF0ZT5lby5hY3Rpb24uc2lnbmF0dXJlLmFkZFNpZ25lcjwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mb290ZXI+XG4gIDwvZm9ybT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ChangeMode } from '../signature.model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../../../ui/eo-icon/eo-icon.component";
6
+ import * as i3 from "@angular/cdk/drag-drop";
7
+ export class SequenceListItemComponent {
8
+ constructor() {
9
+ this.changeMode = ChangeMode;
10
+ this.disableAdd = false;
11
+ this.addTargetIndex = null;
12
+ this.changeEntry = new EventEmitter();
13
+ this.edit = new EventEmitter();
14
+ this.delete = new EventEmitter();
15
+ this.insert = new EventEmitter();
16
+ }
17
+ changes(index, mode) {
18
+ this.changeEntry.emit({ index, mode });
19
+ if (ChangeMode.EDIT === mode) {
20
+ this.edit.emit(index);
21
+ }
22
+ if (ChangeMode.DELETE === mode) {
23
+ this.delete.emit(index);
24
+ }
25
+ if (ChangeMode.INSERT === mode) {
26
+ this.insert.emit(index);
27
+ }
28
+ }
29
+ }
30
+ SequenceListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SequenceListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ SequenceListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: SequenceListItemComponent, selector: "eo-sequence-list-item", inputs: { index: "index", disableAdd: "disableAdd", addTargetIndex: "addTargetIndex" }, outputs: { changeEntry: "changeEntry", edit: "edit", delete: "delete", insert: "insert" }, queries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div class=\"entry\">\n <eo-icon class=\"handle\" cdkDragHandle [iconSrc]=\"'assets/_default/svg/ic_drag.svg'\"></eo-icon>\n <div class=\"index\">\n <span>{{ index + 1 }}</span><span>&darr;</span>\n </div>\n\n <div class=\"action\">\n <button class=\"edit\" type=\"button\" (click)=\"changes(index, changeMode.EDIT)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"></eo-icon>\n </button>\n <button class=\"remove\" type=\"button\" (click)=\"changes(index, changeMode.DELETE)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n </div>\n\n <div class=\"content\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n <eo-icon class=\"innerAdd\" [ngClass]=\"{ active: addTargetIndex === index, disabled: disableAdd }\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" *ngIf=\"index !== 0\" (click)=\"changes(index, changeMode.INSERT)\"></eo-icon>\n</div>\n", styles: [":host{display:block}:host.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host.disabled button,:host.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host.single .handle,:host.single .index{display:none}:host .entry{position:relative;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);-moz-column-gap:calc(var(--app-pane-padding) / 2);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entry .innerAdd.disabled{display:none}:host .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entry .content{grid-area:content;text-overflow:ellipsis;overflow:hidden}:host .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entry .content ::ng-deep .signer-list-entry .signer-name,:host .entry .content ::ng-deep .signer-list-entry .signer-email,:host .entry .content ::ng-deep .signer-list-entry .signer-phone{word-break:break-all}:host .entry .action{grid-area:action;display:flex;align-items:center}:host .entry .action button{padding:2px}:host .entry .action button eo-icon{width:18px;height:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SequenceListItemComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'eo-sequence-list-item', template: "<div class=\"entry\">\n <eo-icon class=\"handle\" cdkDragHandle [iconSrc]=\"'assets/_default/svg/ic_drag.svg'\"></eo-icon>\n <div class=\"index\">\n <span>{{ index + 1 }}</span><span>&darr;</span>\n </div>\n\n <div class=\"action\">\n <button class=\"edit\" type=\"button\" (click)=\"changes(index, changeMode.EDIT)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"></eo-icon>\n </button>\n <button class=\"remove\" type=\"button\" (click)=\"changes(index, changeMode.DELETE)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"></eo-icon>\n </button>\n </div>\n\n <div class=\"content\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n <eo-icon class=\"innerAdd\" [ngClass]=\"{ active: addTargetIndex === index, disabled: disableAdd }\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" *ngIf=\"index !== 0\" (click)=\"changes(index, changeMode.INSERT)\"></eo-icon>\n</div>\n", styles: [":host{display:block}:host.disabled .innerAdd:not(.active){opacity:0;pointer-events:none}:host.disabled button,:host.disabled .handle{pointer-events:none;cursor:default;opacity:.5}:host.single .handle,:host.single .index{display:none}:host .entry{position:relative;border:1px solid var(--panel-divider-color);display:grid;padding:calc(var(--app-pane-padding) * .75);-moz-column-gap:calc(var(--app-pane-padding) / 2);column-gap:calc(var(--app-pane-padding) / 2);row-gap:calc(var(--app-pane-padding) / 4);grid-template-rows:auto auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"handle index content action\" \"handle index content action\";margin-top:1px}:host .entry .innerAdd{position:absolute;top:-12px;left:calc(50% - 12px);border-radius:2px;color:var(--text-color-caption);cursor:pointer;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:20px;height:20px}:host .entry .innerAdd.active{background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}:host .entry .innerAdd.disabled{display:none}:host .entry .index{grid-area:index;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--color-accent);padding:0 calc(var(--app-pane-padding) / 4)}:host .entry .handle{grid-area:handle;color:var(--text-color-caption);align-self:center;cursor:n-resize}:host .entry .content{grid-area:content;text-overflow:ellipsis;overflow:hidden}:host .entry .content ::ng-deep .list-entry .task{word-break:break-all}:host .entry .content ::ng-deep .signer-list-entry .signer-name,:host .entry .content ::ng-deep .signer-list-entry .signer-email,:host .entry .content ::ng-deep .signer-list-entry .signer-phone{word-break:break-all}:host .entry .action{grid-area:action;display:flex;align-items:center}:host .entry .action button{padding:2px}:host .entry .action button eo-icon{width:18px;height:18px}\n"] }]
35
+ }], ctorParameters: function () { return []; }, propDecorators: { index: [{
36
+ type: Input
37
+ }], disableAdd: [{
38
+ type: Input
39
+ }], addTargetIndex: [{
40
+ type: Input
41
+ }], changeEntry: [{
42
+ type: Output
43
+ }], edit: [{
44
+ type: Output
45
+ }], delete: [{
46
+ type: Output
47
+ }], insert: [{
48
+ type: Output
49
+ }], content: [{
50
+ type: ContentChild,
51
+ args: ['content']
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9zaWduYXR1cmUtYWN0aW9uL3NlcXVlbmNlLWxpc3QtaXRlbS9zZXF1ZW5jZS1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3NpZ25hdHVyZS1hY3Rpb24vc2VxdWVuY2UtbGlzdC1pdGVtL3NlcXVlbmNlLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUMsVUFBVSxFQUFlLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTzVELE1BQU0sT0FBTyx5QkFBeUI7SUFXcEM7UUFWQSxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBRWYsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixtQkFBYyxHQUFXLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUMzRSxTQUFJLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEQsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUdyRCxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsSUFBZ0I7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBRTtRQUN4RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBRTtRQUM1RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBRTtJQUM5RCxDQUFDOztzSEFsQlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsZ1ZDUnRDLGc4QkFxQkE7MkZEYmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QjswRUFNeEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNrQixPQUFPO3NCQUEvQixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFuZ2VNb2RlLCBDaGFuZ2VPdXRwdXR9IGZyb20gJy4uL3NpZ25hdHVyZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXNlcXVlbmNlLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXF1ZW5jZS1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXF1ZW5jZS1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUxpc3RJdGVtQ29tcG9uZW50IHtcbiAgY2hhbmdlTW9kZSA9IENoYW5nZU1vZGU7XG4gIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpc2FibGVBZGQgPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkVGFyZ2V0SW5kZXg6IG51bWJlciA9IG51bGw7XG4gIEBPdXRwdXQoKSBjaGFuZ2VFbnRyeTogRXZlbnRFbWl0dGVyPENoYW5nZU91dHB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyPENoYW5nZU91dHB1dD4oKTtcbiAgQE91dHB1dCgpIGVkaXQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBkZWxldGU6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBpbnNlcnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBjaGFuZ2VzKGluZGV4OiBudW1iZXIsIG1vZGU6IENoYW5nZU1vZGUpIHtcbiAgICB0aGlzLmNoYW5nZUVudHJ5LmVtaXQoeyBpbmRleCwgbW9kZSB9KTtcbiAgICBpZiAoQ2hhbmdlTW9kZS5FRElUID09PSBtb2RlKSB7IHRoaXMuZWRpdC5lbWl0KGluZGV4KTsgfVxuICAgIGlmIChDaGFuZ2VNb2RlLkRFTEVURSA9PT0gbW9kZSkgeyB0aGlzLmRlbGV0ZS5lbWl0KGluZGV4KTsgfVxuICAgIGlmIChDaGFuZ2VNb2RlLklOU0VSVCA9PT0gbW9kZSkgeyB0aGlzLmluc2VydC5lbWl0KGluZGV4KTsgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW50cnlcIj5cbiAgPGVvLWljb24gY2xhc3M9XCJoYW5kbGVcIiBjZGtEcmFnSGFuZGxlIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2RyYWcuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgPGRpdiBjbGFzcz1cImluZGV4XCI+XG4gICAgPHNwYW4+e3sgaW5kZXggKyAxIH19PC9zcGFuPjxzcGFuPiZkYXJyOzwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvblwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjaGFuZ2VzKGluZGV4LCBjaGFuZ2VNb2RlLkVESVQpXCI+XG4gICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19lZGl0LnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2hhbmdlcyhpbmRleCwgY2hhbmdlTW9kZS5ERUxFVEUpXCI+XG4gICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY190cmFzaC5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxlby1pY29uIGNsYXNzPVwiaW5uZXJBZGRcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWRkVGFyZ2V0SW5kZXggPT09IGluZGV4LCBkaXNhYmxlZDogZGlzYWJsZUFkZCB9XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWRkLnN2ZydcIiAqbmdJZj1cImluZGV4ICE9PSAwXCIgKGNsaWNrKT1cImNoYW5nZXMoaW5kZXgsIGNoYW5nZU1vZGUuSU5TRVJUKVwiPjwvZW8taWNvbj5cbjwvZGl2PlxuIl19
@@ -9,11 +9,12 @@ import * as i4 from "@angular/common";
9
9
  import * as i5 from "@ngx-translate/core";
10
10
  import * as i6 from "../../../../ui/loading-spinner/loading-spinner.component";
11
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";
13
- import * as i9 from "../../../../form-elements/form-input/form-input.component";
14
- import * as i10 from "../../../../form-elements/codesystem/codesystem.component";
12
+ import * as i8 from "../../../../form-elements/form-input/form-input.component";
13
+ import * as i9 from "../../../../form-elements/codesystem/codesystem.component";
14
+ import * as i10 from "../../../../form-elements/checkbox/checkbox.component";
15
15
  import * as i11 from "../../../../form-elements/string/string.component";
16
16
  import * as i12 from "../../../../cta/component/cta.component";
17
+ import * as i13 from "../sequence-list/sequence-list.component";
17
18
  export class SignatureComponent {
18
19
  constructor(bpmService, pendingChanges, translate, toaster, signingService, eventService, dmsService, systemService, storageService, fb) {
19
20
  this.bpmService = bpmService;
@@ -37,17 +38,21 @@ export class SignatureComponent {
37
38
  entries: []
38
39
  };
39
40
  this.signatureTypeStorageKey = 'eo.signature.type';
41
+ this.signatureParallelStorageKey = 'eo.signature.parallel';
40
42
  const defaultSignatureType = this.storageService.getItem(this.signatureTypeStorageKey);
43
+ const defaultSignatureParallel = this.storageService.getItem(this.signatureParallelStorageKey);
41
44
  this.signingForm = this.fb.group({
42
- yuvsigemailsubject: [''],
43
- yuvsigemailbody: [''],
44
- yuvsigtype: [defaultSignatureType ? defaultSignatureType : ''],
45
+ yuvsigtype: [],
45
46
  yuvsigners: [],
47
+ parallelSigning: [defaultSignatureParallel ? defaultSignatureParallel : false],
48
+ yuvsigemailsubject: [''],
49
+ yuvsigemailbody: ['']
46
50
  });
47
51
  this.headerTitle = this.translate.instant('eo.action.signature.label');
48
- this.headerDescription = this.translate.instant('eo.action.signature.description');
49
52
  this.signingFormListener = this.signingForm.valueChanges.subscribe(() => this.onIndexDataChanged());
50
53
  this.signingService.getInfo().subscribe((info) => {
54
+ let platformName = info.platform === 'docusign' ? 'DocuSign' : 'Adobe Sign';
55
+ this.headerDescription = this.translate.instant('eo.action.signature.description', { platform: platformName });
51
56
  if (info.signatureTypesEnabled) {
52
57
  this.yuvsigtypeCodesystem.entries = this.systemService.getCodesystem(this.yuvsigtypeCodesystem.id).entries;
53
58
  this.yuvsigtypeCodesystem.entries = this.yuvsigtypeCodesystem.entries.filter(entry => info.signatureTypesEnabled.includes(entry.data));
@@ -55,18 +60,19 @@ export class SignatureComponent {
55
60
  this.maxSigners = info.maxSigners || 6;
56
61
  this.signingForm.patchValue({
57
62
  yuvsigemailsubject: info.defaultEmailSubject,
58
- yuvsigemailbody: info.defaultEmailBody
63
+ yuvsigemailbody: info.defaultEmailBody,
64
+ yuvsigtype: defaultSignatureType ? defaultSignatureType : (info.signatureTypesEnabled ? info.signatureTypesEnabled[0] : '')
59
65
  });
60
66
  });
61
67
  }
62
68
  saveForm() {
63
69
  this.processingRequest = true;
64
70
  if (this.signingForm && !this.signingForm.invalid) {
65
- const signers = (this.signingForm.get('yuvsigners').value || []).map(value => ({
66
- signerName: value.yuvsignername,
67
- signerEmail: value.yuvsigneremail,
68
- signerOrder: value.yuvsignerorder,
69
- signerPhone: value.yuvsignerphone
71
+ const signers = (this.signingForm.get('yuvsigners').value || []).map((value, index) => ({
72
+ signerName: value.name,
73
+ signerEmail: value.email,
74
+ signerOrder: this.signingForm.get('parallelSigning').value ? 1 : index + 1,
75
+ signerPhone: value.phone
70
76
  }));
71
77
  const signingData = {
72
78
  emailSubject: this.signingForm.get('yuvsigemailsubject').value,
@@ -114,9 +120,6 @@ export class SignatureComponent {
114
120
  this.finishPending();
115
121
  }
116
122
  }
117
- getLocalizedForm(phoneRequired = false) {
118
- return this.signingService.getLocalizedSigningForm(phoneRequired);
119
- }
120
123
  startPending() {
121
124
  // because this method will be called every time the form status changes,
122
125
  // pending task will only be started once until it was finished
@@ -132,12 +135,12 @@ export class SignatureComponent {
132
135
  }
133
136
  }
134
137
  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" }] });
138
+ 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-sequence-list class=\"entry_form\" form-open=\"true\" [MAX_SIGNERS]=\"maxSigners\" (itemEdit)=\"mode = $event\" [phoneRequired]=\"signingForm.get('yuvsigtype').value === 'advanced'\" [formControlName]=\"'yuvsigners'\">\n </eo-sequence-list>\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 <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.action.signature.yuvsigners.parallel' | translate\">\n <eo-checkbox formControlName=\"parallelSigning\"></eo-checkbox>\n </eo-form-input>\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 <small class=\"errors\" *ngIf=\"signingForm.get('yuvsigemailsubject').hasError('required')\" translate>eo.form.property.required</small>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\" [required]=\"true\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'small'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n [required]=\"true\"\n ></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"signingForm.get('yuvsigemailbody').hasError('required')\" translate>eo.form.property.required</small>\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 (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;justify-content:space-between}::ng-deep .signature-form .email-block{margin-top:50px;border:1px solid var(--panel-divider-color)}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form h2{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1}::ng-deep .signature-form .actions{display:flex;flex:0;flex-direction:column;min-height:0;min-width:0;align-items:flex-end;justify-content:flex-end;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);overflow:auto}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.signing-form .errors{color:var(--color-error)}.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: "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: i8.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i9.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i10.CheckboxComponent, selector: "eo-checkbox", inputs: ["tristate", "readonly"] }, { 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: "component", type: i13.SequenceListComponent, selector: "eo-sequence-list", inputs: ["MAX_SIGNERS", "phoneRequired"], outputs: ["itemEdit"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
136
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SignatureComponent, decorators: [{
137
140
  type: Component,
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"] }]
141
+ 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-sequence-list class=\"entry_form\" form-open=\"true\" [MAX_SIGNERS]=\"maxSigners\" (itemEdit)=\"mode = $event\" [phoneRequired]=\"signingForm.get('yuvsigtype').value === 'advanced'\" [formControlName]=\"'yuvsigners'\">\n </eo-sequence-list>\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 <eo-form-input [skipToggle]=\"true\" [label]=\"'eo.action.signature.yuvsigners.parallel' | translate\">\n <eo-checkbox formControlName=\"parallelSigning\"></eo-checkbox>\n </eo-form-input>\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 <small class=\"errors\" *ngIf=\"signingForm.get('yuvsigemailsubject').hasError('required')\" translate>eo.form.property.required</small>\n <eo-form-input [label]=\"'eo.action.signature.yuvsigning.yuvsigemailbody' | translate\" [required]=\"true\">\n <eo-string\n [formControlName]=\"'yuvsigemailbody'\"\n [multiline]=\"true\"\n [size]=\"'small'\"\n [minLength]=\"3\"\n [maxLength]=\"4000\"\n [required]=\"true\"\n ></eo-string>\n </eo-form-input>\n <small class=\"errors\" *ngIf=\"signingForm.get('yuvsigemailbody').hasError('required')\" translate>eo.form.property.required</small>\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 (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;justify-content:space-between}::ng-deep .signature-form .email-block{margin-top:50px;border:1px solid var(--panel-divider-color)}::ng-deep .signature-form .invalid{color:var(--color-error);margin:40px 0 15px}::ng-deep .signature-form h2{padding:0;margin:0 calc(var(--app-pane-padding) * .75);flex:1}::ng-deep .signature-form .actions{display:flex;flex:0;flex-direction:column;min-height:0;min-width:0;align-items:flex-end;justify-content:flex-end;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);overflow:auto}.signing-form .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.signing-form .errors{color:var(--color-error)}.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
142
  }], 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: [{
140
143
  type: ViewChild,
141
144
  args: ['dialog']
142
145
  }] } });
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==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9zaWduYXR1cmUtYWN0aW9uL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3NpZ25hdHVyZS1hY3Rpb24vc2lnbmF0dXJlL3NpZ25hdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUNMLEtBQUssRUFNTCxVQUFVLEVBS1gsTUFBTSxjQUFjLENBQUM7QUFPdEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRekMsTUFBTSxPQUFPLGtCQUFrQjtJQTRCN0IsWUFBb0IsVUFBc0IsRUFDaEMsY0FBcUMsRUFDckMsU0FBMkIsRUFDM0IsT0FBNkIsRUFDN0IsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsY0FBbUMsRUFDbkMsRUFBc0I7UUFUWixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFD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ekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7K0dBL0lVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNKQzVCL0IsZytGQXdEQTsyRkQ1QmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGNBQWM7dVhBb0JILE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFV0aWxzLFxuICBCcG1TZXJ2aWNlLFxuICBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgU2lnbmluZ1NlcnZpY2UsXG4gIFNpZ25pbmdSZXF1ZXN0LFxuICBFbmFpb0V2ZW50LFxuICBFdmVudFNlcnZpY2UsXG4gIERtc1NlcnZpY2UsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2Vcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7RW9EaWFsb2dDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vLi4vLi4vLi4vb2JqZWN0LWZvcm0nO1xuaW1wb3J0IHtGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q2hhbmdlTW9kZX0gZnJvbSAnLi4vc2lnbmF0dXJlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc2lnbmF0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ25hdHVyZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZ25hdHVyZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFjdGlvbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgc2VsZWN0aW9uOiBhbnlbXTtcbiAgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByb2Nlc3NpbmdSZXF1ZXN0OiBib29sZWFuO1xuICBoZWFkZXJUaXRsZTogc3RyaW5nO1xuICBoZWFkZXJEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzZWxlY3RlZDogYW55O1xuICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIGNvbnRlbnRzOiB7aWQ6IHN0cmluZywgdHlwZTogc3RyaW5nfVtdO1xuICBtb2RlOiBDaGFuZ2VNb2RlO1xuXG4gIC8vIElEIHNldCBieSBwZW5kaW5nQ2hhbmdlcyBzZXJ2aWNlIHdoZW4gZWRpdGluZyBpbmRleGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkczogc3RyaW5nW10gPSBbXTtcblxuICBAVmlld0NoaWxkKCdkaWFsb2cnKSBkaWFsb2c6IEVvRGlhbG9nQ29tcG9uZW50O1xuICBzaWduaW5nRm9ybTogRm9ybUdyb3VwO1xuICBtYXhTaWduZXJzOiBudW1iZXI7XG4gIHNpZ25pbmdGb3JtTGlzdGVuZXI6IFN1YnNjcmlwdGlvbjtcbiAgeXV2c2lndHlwZUNvZGVzeXN0ZW0gPSB7XG4gICAgaWQ6ICcxMjkxQkFCOTFCMEQ0OUQxQTlBNERGQ0NGNDlBMTY2NicsXG4gICAgbmFtZTogJ3l1dnNpZ3R5cGUnLFxuICAgIGVudHJpZXM6IFtdXG4gIH07XG4gIHNpZ25hdHVyZVR5cGVTdG9yYWdlS2V5ID0gJ2VvLnNpZ25hdHVyZS50eXBlJztcbiAgc2lnbmF0dXJlUGFyYWxsZWxTdG9yYWdlS2V5ID0gJ2VvLnNpZ25hdHVyZS5wYXJhbGxlbCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2lnbmluZ1NlcnZpY2U6IFNpZ25pbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xuICAgIGNvbnN0IGRlZmF1bHRTaWduYXR1cmVUeXBlID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuc2lnbmF0dXJlVHlwZVN0b3JhZ2VLZXkpO1xuICAgIGNvbnN0IGRlZmF1bHRTaWduYXR1cmVQYXJhbGxlbCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLnNpZ25hdHVyZVBhcmFsbGVsU3RvcmFnZUtleSk7XG5cbiAgICB0aGlzLnNpZ25pbmdGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB5dXZzaWd0eXBlOiBbXSxcbiAgICAgIHl1dnNpZ25lcnM6IFtdLFxuICAgICAgcGFyYWxsZWxTaWduaW5nOiBbZGVmYXVsdFNpZ25hdHVyZVBhcmFsbGVsID8gZGVmYXVsdFNpZ25hdHVyZVBhcmFsbGVsIDogZmFsc2VdLFxuICAgICAgeXV2c2lnZW1haWxzdWJqZWN0OiBbJyddLFxuICAgICAgeXV2c2lnZW1haWxib2R5OiBbJyddXG4gICAgfSk7XG4gICAgdGhpcy5oZWFkZXJUaXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmFjdGlvbi5zaWduYXR1cmUubGFiZWwnKTtcblxuICAgIHRoaXMuc2lnbmluZ0Zvcm1MaXN0ZW5lciA9IHRoaXMuc2lnbmluZ0Zvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uSW5kZXhEYXRhQ2hhbmdlZCgpKTtcbiAgICB0aGlzLnNpZ25pbmdTZXJ2aWNlLmdldEluZm8oKS5zdWJzY3JpYmUoKGluZm8pID0+IHtcbiAgICAgIGxldCBwbGF0Zm9ybU5hbWUgPSBpbmZvLnBsYXRmb3JtID09PSAnZG9jdXNpZ24nID8gJ0RvY3VTaWduJyA6ICdBZG9iZSBTaWduJztcbiAgICAgIHRoaXMuaGVhZGVyRGVzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5hY3Rpb24uc2lnbmF0dXJlLmRlc2NyaXB0aW9uJywge3BsYXRmb3JtOiBwbGF0Zm9ybU5hbWV9KTtcbiAgICAgIGlmIChpbmZvLnNpZ25hdHVyZVR5cGVzRW5hYmxlZCkge1xuICAgICAgICB0aGlzLnl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmVudHJpZXMgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Q29kZXN5c3RlbSh0aGlzLnl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmlkKS5lbnRyaWVzO1xuICAgICAgICB0aGlzLnl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmVudHJpZXMgPSB0aGlzLnl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IGluZm8uc2lnbmF0dXJlVHlwZXNFbmFibGVkLmluY2x1ZGVzKGVudHJ5LmRhdGEpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5tYXhTaWduZXJzID0gaW5mby5tYXhTaWduZXJzIHx8IDY7XG5cbiAgICAgIHRoaXMuc2lnbmluZ0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIHl1dnNpZ2VtYWlsc3ViamVjdDogaW5mby5kZWZhdWx0RW1haWxTdWJqZWN0LFxuICAgICAgICB5dXZzaWdlbWFpbGJvZHk6IGluZm8uZGVmYXVsdEVtYWlsQm9keSxcbiAgICAgICAgeXV2c2lndHlwZTogZGVmYXVsdFNpZ25hdHVyZVR5cGUgPyBkZWZhdWx0U2lnbmF0dXJlVHlwZSA6IChpbmZvLnNpZ25hdHVyZVR5cGVzRW5hYmxlZCA/IGluZm8uc2lnbmF0dXJlVHlwZXNFbmFibGVkWzBdIDogJycpXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVGb3JtKCkge1xuICAgIHRoaXMucHJvY2Vzc2luZ1JlcXVlc3QgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNpZ25pbmdGb3JtICYmICF0aGlzLnNpZ25pbmdGb3JtLmludmFsaWQpIHtcbiAgICAgIGNvbnN0IHNpZ25lcnMgPSAodGhpcy5zaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ25lcnMnKS52YWx1ZSB8fCBbXSkubWFwKCh2YWx1ZSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICBzaWduZXJOYW1lOiB2YWx1ZS5uYW1lLFxuICAgICAgICAgICAgc2lnbmVyRW1haWw6IHZhbHVlLmVtYWlsLFxuICAgICAgICAgICAgc2lnbmVyT3JkZXI6IHRoaXMuc2lnbmluZ0Zvcm0uZ2V0KCdwYXJhbGxlbFNpZ25pbmcnKS52YWx1ZSA/IDEgOiBpbmRleCArIDEsXG4gICAgICAgICAgICBzaWduZXJQaG9uZTogdmFsdWUucGhvbmVcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgY29uc3Qgc2lnbmluZ0RhdGEgPSB7XG4gICAgICAgIGVtYWlsU3ViamVjdDogdGhpcy5zaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ2VtYWlsc3ViamVjdCcpLnZhbHVlLFxuICAgICAgICBlbWFpbEJvZHk6IHRoaXMuc2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWdlbWFpbGJvZHknKS52YWx1ZSxcbiAgICAgICAgc2lnbmF0dXJlVHlwZTogdGhpcy5zaWduaW5nRm9ybS5nZXQoJ3l1dnNpZ3R5cGUnKS52YWx1ZSA/IHRoaXMuc2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWd0eXBlJykudmFsdWUgOiB0aGlzLnl1dnNpZ3R5cGVDb2Rlc3lzdGVtLmVudHJpZXNbMF0uZGF0YSxcbiAgICAgICAgc2lnbmVyc1xuICAgICAgfSBhcyBTaWduaW5nUmVxdWVzdDtcbiAgICAgIHRoaXMuc2lnbmluZ1NlcnZpY2VcbiAgICAgICAgLnNpZ25Eb2N1bWVudCh0aGlzLnNlbGVjdGlvblswXS5pZCwgc2lnbmluZ0RhdGEpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KHRoaXMuc2VsZWN0aW9uWzBdLmlkKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChkbXNPYmplY3QpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYWN0aW9uLnNpZ25hdHVyZS5yZXF1ZXN0LnN1Y2Nlc3MnKSk7XG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuc2lnbmF0dXJlVHlwZVN0b3JhZ2VLZXksIHNpZ25pbmdEYXRhLnNpZ25hdHVyZVR5cGUpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQsIGRtc09iamVjdCk7XG4gICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmVycm9yLmNvbm5lY3Rpb24uaW50ZXJydXB0ZWQudGl0bGUnKSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZXJyb3IuY29ubmVjdGlvbi5pbnRlcnJ1cHRlZC50ZXh0JykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IoZXJyb3IuZXJyb3I/Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByb2Nlc3NpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBmaW5pc2goKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5kaWFsb2cudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVja0ZvclBlbmRpbmdUYXNrcyh0aGlzLnBlbmRpbmdUYXNrSWRzKSkge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICB0aGlzLmRpYWxvZy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkluZGV4RGF0YUNoYW5nZWQoKSB7XG4gICAgaWYgKHRoaXMuc2lnbmluZ0Zvcm0uZGlydHkpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQZW5kaW5nKCkge1xuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcbiAgICAvLyBwZW5kaW5nIHRhc2sgd2lsbCBvbmx5IGJlIHN0YXJ0ZWQgb25jZSB1bnRpbCBpdCB3YXMgZmluaXNoZWRcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2sodGhpcy5wZW5kaW5nVGFza0lkc1swXSB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWRzID0gW3RoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCldO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkc1swXSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25pbmdGb3JtTGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGVvLWRpYWxvZyBbdGl0bGVdPVwiaGVhZGVyVGl0bGVcIlxuICAgICAgICAgICBbc3VidGl0bGVdPVwiaGVhZGVyRGVzY3JpcHRpb25cIlxuICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgW2RpcnR5Q2hlY2tdPVwicGVuZGluZ1Rhc2tJZHNcIlxuICAgICAgICAgICBbbWluV2lkdGhdPVwiNjAwXCJcbiAgICAgICAgICAgW21pbkhlaWdodF09XCI2MDBcIlxuICAgICAgICAgICBbc3R5bGVDbGFzc109XCIncHJvY2Vzcy1mb3JtLWRpYWxvZydcIiAjZGlhbG9nPlxuXG4gIDxzZWN0aW9uIGNsYXNzPVwic2lnbmF0dXJlLWZvcm0gZm9ybS1jb250YWluZXJcIj5cbiAgICA8Zm9ybSBjbGFzcz1cInNpZ25pbmctZm9ybVwiIFtmb3JtR3JvdXBdPVwic2lnbmluZ0Zvcm1cIj5cbiAgICAgIDxlby1zZXF1ZW5jZS1saXN0IGNsYXNzPVwiZW50cnlfZm9ybVwiIGZvcm0tb3Blbj1cInRydWVcIiBbTUFYX1NJR05FUlNdPVwibWF4U2lnbmVyc1wiIChpdGVtRWRpdCk9XCJtb2RlID0gJGV2ZW50XCIgW3Bob25lUmVxdWlyZWRdPVwic2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWd0eXBlJykudmFsdWUgPT09ICdhZHZhbmNlZCdcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIid5dXZzaWduZXJzJ1wiPlxuICAgICAgPC9lby1zZXF1ZW5jZS1saXN0PlxuICAgICAgPGVvLWZvcm0taW5wdXQgKm5nSWY9XCJ5dXZzaWd0eXBlQ29kZXN5c3RlbS5lbnRyaWVzLmxlbmd0aCA+IDFcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtsYWJlbF09XCInZW8uYWN0aW9uLnNpZ25hdHVyZS55dXZzaWduaW5nLnl1dnNpZ3R5cGUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxlby1jb2Rlc3lzdGVtXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIneXV2c2lndHlwZSdcIlxuICAgICAgICAgIFtjb2Rlc3lzdGVtXT1cInl1dnNpZ3R5cGVDb2Rlc3lzdGVtXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgID48L2VvLWNvZGVzeXN0ZW0+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cIidlby5hY3Rpb24uc2lnbmF0dXJlLnl1dnNpZ25lcnMucGFyYWxsZWwnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJwYXJhbGxlbFNpZ25pbmdcIj48L2VvLWNoZWNrYm94PlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgPGVvLWZvcm0taW5wdXQgW2xhYmVsXT1cIidlby5hY3Rpb24uc2lnbmF0dXJlLnl1dnNpZ25pbmcueXV2c2lnZW1haWxzdWJqZWN0JyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxlby1zdHJpbmdcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIid5dXZzaWdlbWFpbHN1YmplY3QnXCJcbiAgICAgICAgICBbbWluTGVuZ3RoXT1cIjNcIlxuICAgICAgICAgIFttYXhMZW5ndGhdPVwiMTAwXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgID48L2VvLXN0cmluZz5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIDxzbWFsbCBjbGFzcz1cImVycm9yc1wiICpuZ0lmPVwic2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWdlbWFpbHN1YmplY3QnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkPC9zbWFsbD5cbiAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCInZW8uYWN0aW9uLnNpZ25hdHVyZS55dXZzaWduaW5nLnl1dnNpZ2VtYWlsYm9keScgfCB0cmFuc2xhdGVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPlxuICAgICAgICA8ZW8tc3RyaW5nXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIneXV2c2lnZW1haWxib2R5J1wiXG4gICAgICAgICAgW211bHRpbGluZV09XCJ0cnVlXCJcbiAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICBbbWluTGVuZ3RoXT1cIjNcIlxuICAgICAgICAgIFttYXhMZW5ndGhdPVwiNDAwMFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICA+PC9lby1zdHJpbmc+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICA8c21hbGwgY2xhc3M9XCJlcnJvcnNcIiAqbmdJZj1cInNpZ25pbmdGb3JtLmdldCgneXV2c2lnZW1haWxib2R5JykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZDwvc21hbGw+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaWduaW5nRm9ybT8uaW52YWxpZFwiIGNsYXNzPVwiaW52YWxpZFwiIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLmZvcm0uaW52YWxpZDwvZGl2PlxuICAgICAgPGVvLWN0YSBbYWN0aXZlXT1cIiFwcm9jZXNzaW5nUmVxdWVzdFwiIGNsYXNzPVwiY3RhLXdyYXBwZXJcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbi1jYW5jZWxcIiB0cmFuc2xhdGU+ZW8uYWN0aW9uLnNpZ25hdHVyZS5jYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2F2ZUZvcm0oKVwiIFtkaXNhYmxlZF09XCJzaWduaW5nRm9ybT8uaW52YWxpZCB8fCBwcm9jZXNzaW5nUmVxdWVzdCB8fCAhc2lnbmluZ0Zvcm0uZ2V0KCd5dXZzaWduZXJzJykudmFsdWUgfHwgIXNpZ25pbmdGb3JtLmdldCgneXV2c2lnbmVycycpLnZhbHVlLmxlbmd0aFwiIGNsYXNzPVwicHJpbWFyeVwiIHRyYW5zbGF0ZT5lby5hY3Rpb24uc2lnbmF0dXJlLnJlcXVlc3Q8L2J1dHRvbj5cbiAgICAgIDwvZW8tY3RhPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwicHJvY2Vzc2luZ1JlcXVlc3RcIj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyIGNsYXNzPVwic2lnbmF0dXJlX19sb2FkZXJcIiBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export var ChangeMode;
2
+ (function (ChangeMode) {
3
+ ChangeMode["EDIT"] = "edit";
4
+ ChangeMode["DELETE"] = "delete";
5
+ ChangeMode["INSERT"] = "insert";
6
+ ChangeMode["CREATE"] = "create";
7
+ })(ChangeMode || (ChangeMode = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3NpZ25hdHVyZS1hY3Rpb24vc2lnbmF0dXJlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBTixJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLCtCQUFpQixDQUFBO0lBQ2pCLCtCQUFpQixDQUFBO0lBQ2pCLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2lnbmluZ1BheWxvYWQge1xuICBkb2N1bWVudE5hbWU6IHN0cmluZztcbiAgZW1haWxTdWJqZWN0OiBzdHJpbmc7XG4gIHNpZ25lcnM6IFNpZ25lcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lciB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQ2hhbmdlTW9kZSB7XG4gIEVESVQgPSAnZWRpdCcsXG4gIERFTEVURSA9ICdkZWxldGUnLFxuICBJTlNFUlQgPSAnaW5zZXJ0JyxcbiAgQ1JFQVRFID0gJ2NyZWF0ZSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VPdXRwdXQge1xuICBpbmRleDogbnVtYmVyO1xuICBtb2RlOiBDaGFuZ2VNb2RlO1xufVxuIl19