@ohioepa/oepa-ui-lib 1.1.0 → 1.2.0
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.
- package/esm2022/lib/account-search-input/account-search-input.component.mjs +3 -3
- package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +3 -3
- package/esm2022/lib/action-btn/action-btn.component.mjs +3 -3
- package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +3 -3
- package/esm2022/lib/address/address.component.mjs +3 -3
- package/esm2022/lib/address/oepa-address.service.mjs +3 -3
- package/esm2022/lib/blank/blank.component.mjs +3 -3
- package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/checkbox-input/checkbox-input.component.mjs +3 -3
- package/esm2022/lib/comment-modal/comment-modal.component.mjs +3 -3
- package/esm2022/lib/common-forms.module.mjs +9 -36
- package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +3 -3
- package/esm2022/lib/contact/contact.component.mjs +3 -3
- package/esm2022/lib/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +3 -3
- package/esm2022/lib/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +3 -3
- package/esm2022/lib/dual-list-box/array.pipes.mjs +6 -6
- package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +3 -3
- package/esm2022/lib/ebiz-address/ebiz-address.component.mjs +3 -3
- package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +3 -3
- package/esm2022/lib/edoc-attachment/edoc-attachment.service.mjs +3 -3
- package/esm2022/lib/entity/entity.service.mjs +3 -3
- package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +3 -3
- package/esm2022/lib/entity/organization-search-input/organization-search-input.component.mjs +3 -3
- package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +5 -5
- package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +3 -3
- package/esm2022/lib/entity/person-search-input/person-search-input.component.mjs +3 -3
- package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +5 -5
- package/esm2022/lib/entity/place-create-modal/place-create-modal.component.mjs +3 -3
- package/esm2022/lib/entity/place-search-input/place-search-input.component.mjs +3 -3
- package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +5 -5
- package/esm2022/lib/file-upload/file-upload.component.mjs +3 -3
- package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +3 -3
- package/esm2022/lib/lynx-image-upload/lynx.service.mjs +3 -3
- package/esm2022/lib/message/message.component.mjs +3 -3
- package/esm2022/lib/message-list/message-list.component.mjs +3 -3
- package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +3 -3
- package/esm2022/lib/notes-modal/notes-modal.component.mjs +3 -3
- package/esm2022/lib/numeric-input/numeric-input.component.mjs +3 -3
- package/esm2022/lib/numeric-input.directive.mjs +3 -3
- package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +3 -3
- package/esm2022/lib/oepa-forms.service.mjs +3 -3
- package/esm2022/lib/oepa-wait-message/oepa-wait-message.component.mjs +3 -3
- package/esm2022/lib/parameter/parameter.service.mjs +3 -3
- package/esm2022/lib/params-help-button/params-help-button.component.mjs +3 -3
- package/esm2022/lib/phone-number/phone-number.component.mjs +3 -3
- package/esm2022/lib/pin-modal/oepa-pin.service.mjs +3 -3
- package/esm2022/lib/pin-modal/pin-modal.component.mjs +3 -3
- package/esm2022/lib/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +3 -3
- package/esm2022/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.mjs +3 -3
- package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +3 -3
- package/esm2022/lib/shopping-cart/shopping-cart.service.mjs +3 -3
- package/esm2022/lib/start-end-timepicker/start-end-timepicker.component.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-classname.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-colspan.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-hidden.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-icon-classname.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-img-src.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-inner-html.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-input-component.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-not-selectable.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-cell-value.pipe.mjs +3 -3
- package/esm2022/lib/table/oepa-table-filtering.directive.mjs +3 -3
- package/esm2022/lib/table/oepa-table-sorting.directive.mjs +3 -3
- package/esm2022/lib/table/p-table/p-table.component.mjs +3 -3
- package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +3 -3
- package/esm2022/lib/table/table-export.service.mjs +3 -3
- package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2022/lib/table/table.component.mjs +3 -3
- package/esm2022/lib/table/table.service.mjs +3 -3
- package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +3 -3
- package/esm2022/lib/text-area-input/text-area-input.component.mjs +3 -3
- package/esm2022/lib/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +3 -3
- package/esm2022/lib/timepicker/timepicker.component.mjs +3 -3
- package/esm2022/lib/validation/validation.service.mjs +3 -3
- package/esm2022/lib/yes-no/yes-no.component.mjs +3 -3
- package/esm2022/lib/yes-no-boolean/yes-no.component.mjs +3 -3
- package/esm2022/lib/yes-no-other-input/yes-no-other-input.component.mjs +3 -3
- package/esm2022/lib/zip-code/zip-code.component.mjs +3 -3
- package/esm2022/public-api.mjs +1 -28
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +495 -2519
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
- package/lib/common-forms.module.d.ts +70 -82
- package/ohioepa-oepa-ui-lib-1.2.0.tgz +0 -0
- package/package.json +3 -3
- package/public-api.d.ts +0 -27
- package/esm2022/lib/document/document-editor/document-editor.component.mjs +0 -225
- package/esm2022/lib/document/document-event-entity-type.mjs +0 -7
- package/esm2022/lib/document/document-event-type.mjs +0 -7
- package/esm2022/lib/document/document-event.mjs +0 -2
- package/esm2022/lib/document/document-group/document-group.component.mjs +0 -210
- package/esm2022/lib/document/document-part/document-part.component.mjs +0 -19
- package/esm2022/lib/document/document-part-editor/document-part-editor.component.mjs +0 -296
- package/esm2022/lib/document/document-placeholder-modal/document-placeholder-modal.component.mjs +0 -49
- package/esm2022/lib/document/document-section/document-section.component.mjs +0 -226
- package/esm2022/lib/document/document.service.mjs +0 -325
- package/esm2022/lib/document/group-modal/group-modal.component.mjs +0 -46
- package/esm2022/lib/document/part-modal/part-modal.component.mjs +0 -48
- package/esm2022/lib/document/portal-document-class.mjs +0 -2
- package/esm2022/lib/document/portal-document-group.mjs +0 -2
- package/esm2022/lib/document/portal-document-part.mjs +0 -2
- package/esm2022/lib/document/portal-document-placeholder.mjs +0 -2
- package/esm2022/lib/document/portal-document-section.mjs +0 -2
- package/esm2022/lib/document/portal-document-text.mjs +0 -2
- package/esm2022/lib/document/portal-document-type.mjs +0 -2
- package/esm2022/lib/document/portal-document.mjs +0 -2
- package/esm2022/lib/document/portal-email-attachment-type.mjs +0 -2
- package/esm2022/lib/document/portal-email-attachment.mjs +0 -2
- package/esm2022/lib/document/portal-email-filter.mjs +0 -2
- package/esm2022/lib/document/portal-email.mjs +0 -2
- package/esm2022/lib/document/section-modal/section-modal.component.mjs +0 -46
- package/esm2022/lib/esri-map/esri-map.component.mjs +0 -416
- package/esm2022/lib/ohio-lat-long/ohio-lat-long.component.mjs +0 -176
- package/lib/document/document-editor/document-editor.component.d.ts +0 -34
- package/lib/document/document-event-entity-type.d.ts +0 -5
- package/lib/document/document-event-type.d.ts +0 -5
- package/lib/document/document-event.d.ts +0 -9
- package/lib/document/document-group/document-group.component.d.ts +0 -38
- package/lib/document/document-part/document-part.component.d.ts +0 -10
- package/lib/document/document-part-editor/document-part-editor.component.d.ts +0 -46
- package/lib/document/document-placeholder-modal/document-placeholder-modal.component.d.ts +0 -19
- package/lib/document/document-section/document-section.component.d.ts +0 -37
- package/lib/document/document.service.d.ts +0 -90
- package/lib/document/group-modal/group-modal.component.d.ts +0 -20
- package/lib/document/part-modal/part-modal.component.d.ts +0 -20
- package/lib/document/portal-document-class.d.ts +0 -10
- package/lib/document/portal-document-group.d.ts +0 -15
- package/lib/document/portal-document-part.d.ts +0 -22
- package/lib/document/portal-document-placeholder.d.ts +0 -12
- package/lib/document/portal-document-section.d.ts +0 -13
- package/lib/document/portal-document-text.d.ts +0 -7
- package/lib/document/portal-document-type.d.ts +0 -15
- package/lib/document/portal-document.d.ts +0 -27
- package/lib/document/portal-email-attachment-type.d.ts +0 -6
- package/lib/document/portal-email-attachment.d.ts +0 -12
- package/lib/document/portal-email-filter.d.ts +0 -12
- package/lib/document/portal-email.d.ts +0 -18
- package/lib/document/section-modal/section-modal.component.d.ts +0 -20
- package/lib/esri-map/esri-map.component.d.ts +0 -41
- package/lib/ohio-lat-long/ohio-lat-long.component.d.ts +0 -63
- package/ohioepa-oepa-ui-lib-1.1.0.tgz +0 -0
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { SectionModalComponent } from '../section-modal/section-modal.component';
|
|
3
|
-
import { GroupModalComponent } from '../group-modal/group-modal.component';
|
|
4
|
-
import { DocumentEventType } from '../document-event-type';
|
|
5
|
-
import { DocumentEventEntityType } from '../document-event-entity-type';
|
|
6
|
-
import { ConfirmationModalComponent } from '../../confirmation-modal/confirmation-modal.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "ngx-bootstrap/modal";
|
|
9
|
-
import * as i2 from "ngx-toastr";
|
|
10
|
-
import * as i3 from "../document.service";
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
12
|
-
import * as i5 from "../document-group/document-group.component";
|
|
13
|
-
export class DocumentSectionComponent {
|
|
14
|
-
modalService;
|
|
15
|
-
toastr;
|
|
16
|
-
documentService;
|
|
17
|
-
section;
|
|
18
|
-
onMoveUp = new EventEmitter();
|
|
19
|
-
onInsertAbove = new EventEmitter();
|
|
20
|
-
onMoveDown = new EventEmitter();
|
|
21
|
-
onInsertBelow = new EventEmitter();
|
|
22
|
-
onDelete = new EventEmitter();
|
|
23
|
-
busy = false;
|
|
24
|
-
constructor(modalService, toastr, documentService) {
|
|
25
|
-
this.modalService = modalService;
|
|
26
|
-
this.toastr = toastr;
|
|
27
|
-
this.documentService = documentService;
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
}
|
|
31
|
-
moveUp() {
|
|
32
|
-
this.onMoveUp.emit(this.section);
|
|
33
|
-
}
|
|
34
|
-
insertAbove() {
|
|
35
|
-
this.onInsertAbove.emit(this.section);
|
|
36
|
-
}
|
|
37
|
-
moveDown() {
|
|
38
|
-
this.onMoveDown.emit(this.section);
|
|
39
|
-
}
|
|
40
|
-
insertBelow() {
|
|
41
|
-
this.onInsertBelow.emit(this.section);
|
|
42
|
-
}
|
|
43
|
-
delete() {
|
|
44
|
-
this.onDelete.emit(this.section);
|
|
45
|
-
}
|
|
46
|
-
moveGroupUp(group) {
|
|
47
|
-
if (!group.sequence) {
|
|
48
|
-
group.sequence = 0;
|
|
49
|
-
}
|
|
50
|
-
if (group.sequence > 1) {
|
|
51
|
-
let clone = Object.assign({}, this.section);
|
|
52
|
-
if (!clone.groups) {
|
|
53
|
-
clone.groups = [];
|
|
54
|
-
}
|
|
55
|
-
clone.groups.splice(group.sequence - 2, 0, clone.groups.splice(group.sequence - 1, 1)[0]);
|
|
56
|
-
this.resequence(clone);
|
|
57
|
-
this.documentService.updateDocumentSection(clone).subscribe({
|
|
58
|
-
next: () => {
|
|
59
|
-
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
60
|
-
}, error: err => {
|
|
61
|
-
this.toastr.error('Failed section group: ' + err, 'ERROR');
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
insertAboveGroup(group) {
|
|
67
|
-
if (!group.sequence) {
|
|
68
|
-
group.sequence = 1;
|
|
69
|
-
}
|
|
70
|
-
let newGroup = this.newGroup(group.sequence - 1 || 1);
|
|
71
|
-
this.insertGroup(group.sequence - 1, newGroup);
|
|
72
|
-
}
|
|
73
|
-
moveGroupDown(group) {
|
|
74
|
-
if (!group.sequence) {
|
|
75
|
-
group.sequence = 1;
|
|
76
|
-
}
|
|
77
|
-
if (this.section.groups && group.sequence < this.section.groups.length) {
|
|
78
|
-
let clone = Object.assign({}, this.section);
|
|
79
|
-
if (!clone.groups) {
|
|
80
|
-
clone.groups = [];
|
|
81
|
-
}
|
|
82
|
-
clone.groups.splice(group.sequence, 0, clone.groups.splice(group.sequence - 1, 1)[0]);
|
|
83
|
-
this.resequence(clone);
|
|
84
|
-
this.documentService.updateDocumentSection(clone).subscribe({
|
|
85
|
-
next: () => {
|
|
86
|
-
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
87
|
-
}, error: err => {
|
|
88
|
-
this.toastr.error('Failed updating section: ' + err, 'ERROR');
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
insertBelowGroup(group) {
|
|
94
|
-
if (!group.sequence) {
|
|
95
|
-
group.sequence = 1;
|
|
96
|
-
}
|
|
97
|
-
let newGroup = this.newGroup(group.sequence + 1);
|
|
98
|
-
this.insertGroup(group.sequence, newGroup);
|
|
99
|
-
}
|
|
100
|
-
newGroup(sequence) {
|
|
101
|
-
return {
|
|
102
|
-
sectionID: this.section.id,
|
|
103
|
-
documentID: this.section.documentID,
|
|
104
|
-
sequence: sequence,
|
|
105
|
-
name: 'Group ' + sequence,
|
|
106
|
-
parts: [
|
|
107
|
-
{
|
|
108
|
-
documentID: this.section.documentID,
|
|
109
|
-
name: 'Paragraph 1',
|
|
110
|
-
text: {
|
|
111
|
-
text: ''
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
]
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
insertGroup(insertIndex, newGroup) {
|
|
118
|
-
const initialState = {
|
|
119
|
-
label: 'Insert Group',
|
|
120
|
-
group: newGroup
|
|
121
|
-
};
|
|
122
|
-
let modal = this.modalService.show(GroupModalComponent, { initialState, ignoreBackdropClick: true });
|
|
123
|
-
modal.content.onGroupSave.subscribe(updatesdGroup => {
|
|
124
|
-
this.busy = true;
|
|
125
|
-
let clone = Object.assign({}, this.section);
|
|
126
|
-
if (!clone.groups) {
|
|
127
|
-
clone.groups = [];
|
|
128
|
-
}
|
|
129
|
-
clone.groups.splice(insertIndex, 0, updatesdGroup);
|
|
130
|
-
this.resequence(clone);
|
|
131
|
-
this.documentService.updateDocumentSection(clone).subscribe({
|
|
132
|
-
next: () => {
|
|
133
|
-
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
134
|
-
this.busy = false;
|
|
135
|
-
}, error: err => {
|
|
136
|
-
this.toastr.error('Failed updating section: ' + err, 'ERROR');
|
|
137
|
-
this.busy = false;
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
resequence(section) {
|
|
143
|
-
let sequence = 1;
|
|
144
|
-
if (section.groups) {
|
|
145
|
-
section.groups.forEach(group => {
|
|
146
|
-
group.sequence = sequence++;
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
deleteGroup(group) {
|
|
151
|
-
let bodyText = 'Delete Group ' + group.name + '?';
|
|
152
|
-
const eventOverride = this.documentService.isOverriddenEvent({ eventType: DocumentEventType.Delete, entityType: DocumentEventEntityType.Group });
|
|
153
|
-
if (eventOverride && eventOverride.confirmationMessage) {
|
|
154
|
-
bodyText = eventOverride.confirmationMessage;
|
|
155
|
-
}
|
|
156
|
-
const initialState = {
|
|
157
|
-
headerText: 'Delete Group',
|
|
158
|
-
bodyText: bodyText,
|
|
159
|
-
confirmBtnLabel: 'Yes',
|
|
160
|
-
cancelBtnLabel: 'No'
|
|
161
|
-
};
|
|
162
|
-
let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
|
|
163
|
-
modal.content.confirmClicked.subscribe(() => {
|
|
164
|
-
this.busy = true;
|
|
165
|
-
let clone = Object.assign({}, this.section);
|
|
166
|
-
if (!clone.groups) {
|
|
167
|
-
clone.groups = [];
|
|
168
|
-
}
|
|
169
|
-
clone.groups = clone.groups.filter(keep => {
|
|
170
|
-
keep.id != group.id;
|
|
171
|
-
});
|
|
172
|
-
this.resequence(clone);
|
|
173
|
-
this.documentService.updateDocumentSection(clone).subscribe({
|
|
174
|
-
next: () => {
|
|
175
|
-
this.documentService.deleteDocumentGroup(group).subscribe({
|
|
176
|
-
next: () => {
|
|
177
|
-
this.documentService.updateDcoumentID(clone.documentID || '');
|
|
178
|
-
this.busy = false;
|
|
179
|
-
}, error: err => {
|
|
180
|
-
this.toastr.error('Failed deleting group: ' + err, 'ERROR');
|
|
181
|
-
this.busy = false;
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
}, error: err => {
|
|
185
|
-
this.toastr.error('Failed updating section: ' + err, 'ERROR');
|
|
186
|
-
this.busy = false;
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
editSection(section) {
|
|
192
|
-
const initialState = {
|
|
193
|
-
label: 'Edit Section Attributes',
|
|
194
|
-
section: section
|
|
195
|
-
};
|
|
196
|
-
let modal = this.modalService.show(SectionModalComponent, { initialState, ignoreBackdropClick: true });
|
|
197
|
-
modal.content.onSectionSave.subscribe(updatedSection => {
|
|
198
|
-
this.busy = true;
|
|
199
|
-
this.documentService.updateDocumentSection(updatedSection).subscribe(() => {
|
|
200
|
-
this.busy = false;
|
|
201
|
-
}, err => {
|
|
202
|
-
this.toastr.error('Failed updating section: ' + err, 'ERROR');
|
|
203
|
-
this.busy = false;
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentSectionComponent, deps: [{ token: i1.BsModalService }, { token: i2.ToastrService }, { token: i3.DocumentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
208
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentSectionComponent, selector: "oepa-document-section", inputs: { section: "section" }, outputs: { onMoveUp: "onMoveUp", onInsertAbove: "onInsertAbove", onMoveDown: "onMoveDown", onInsertBelow: "onInsertBelow", onDelete: "onDelete" }, ngImport: i0, template: "<div *ngIf=\"section\" class=\"card\">\n <div *ngIf=\"section.groups && section.groups.length > 0\" class=\"card\">\n <div *ngFor=\"let g of section.groups\" class=\"row\">\n <div class=\"col-sm-12\">\n <oepa-document-group [group]=\"g\" (onMoveUp)=\"moveGroupUp($event)\"\n (onInsertAbove)=\"insertAboveGroup($event)\" (onMoveDown)=\"moveGroupDown($event)\"\n (onInsertBelow)=\"insertBelowGroup($event)\" (onDelete)=\"deleteGroup($event)\">\n </oepa-document-group>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.DocumentGroupComponent, selector: "oepa-document-group", inputs: ["group"], outputs: ["onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
|
|
209
|
-
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentSectionComponent, decorators: [{
|
|
211
|
-
type: Component,
|
|
212
|
-
args: [{ selector: 'oepa-document-section', template: "<div *ngIf=\"section\" class=\"card\">\n <div *ngIf=\"section.groups && section.groups.length > 0\" class=\"card\">\n <div *ngFor=\"let g of section.groups\" class=\"row\">\n <div class=\"col-sm-12\">\n <oepa-document-group [group]=\"g\" (onMoveUp)=\"moveGroupUp($event)\"\n (onInsertAbove)=\"insertAboveGroup($event)\" (onMoveDown)=\"moveGroupDown($event)\"\n (onInsertBelow)=\"insertBelowGroup($event)\" (onDelete)=\"deleteGroup($event)\">\n </oepa-document-group>\n </div>\n </div>\n </div>\n</div>" }]
|
|
213
|
-
}], ctorParameters: () => [{ type: i1.BsModalService }, { type: i2.ToastrService }, { type: i3.DocumentService }], propDecorators: { section: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], onMoveUp: [{
|
|
216
|
-
type: Output
|
|
217
|
-
}], onInsertAbove: [{
|
|
218
|
-
type: Output
|
|
219
|
-
}], onMoveDown: [{
|
|
220
|
-
type: Output
|
|
221
|
-
}], onInsertBelow: [{
|
|
222
|
-
type: Output
|
|
223
|
-
}], onDelete: [{
|
|
224
|
-
type: Output
|
|
225
|
-
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LXNlY3Rpb24vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTS9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7O0FBT25HLE1BQU0sT0FBTyx3QkFBd0I7SUFZZjtJQUNWO0lBQ0E7SUFiRCxPQUFPLENBQXlCO0lBRS9CLFFBQVEsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFDMUYsYUFBYSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUMvRixVQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO0lBQzVGLGFBQWEsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFDL0YsUUFBUSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUc3RixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBRXBCLFlBQW9CLFlB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QUFFO1lBQzlFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBNU1VLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLGdQQ2xCckMsNm9CQVdNOzs0RkRPTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCOzZJQUt4QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9ydGFsRG9jdW1lbnRTZWN0aW9uIH0gZnJvbSAnLi4vcG9ydGFsLWRvY3VtZW50LXNlY3Rpb24nO1xuaW1wb3J0IHsgUG9ydGFsRG9jdW1lbnRHcm91cCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudC1ncm91cCc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWN0aW9uLW1vZGFsL3NlY3Rpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEdyb3VwTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9ncm91cC1tb2RhbC9ncm91cC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRFdmVudCB9IGZyb20gJy4uL2RvY3VtZW50LWV2ZW50JztcbmltcG9ydCB7IERvY3VtZW50RXZlbnRUeXBlIH0gZnJvbSAnLi4vZG9jdW1lbnQtZXZlbnQtdHlwZSc7XG5pbXBvcnQgeyBEb2N1bWVudEV2ZW50RW50aXR5VHlwZSB9IGZyb20gJy4uL2RvY3VtZW50LWV2ZW50LWVudGl0eS10eXBlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29uZmlybWF0aW9uLW1vZGFsL2NvbmZpcm1hdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWRvY3VtZW50LXNlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LXNlY3Rpb24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNlY3Rpb24hOiBQb3J0YWxEb2N1bWVudFNlY3Rpb247XG5cbiAgQE91dHB1dCgpIG9uTW92ZVVwOiBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRTZWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRTZWN0aW9uPigpO1xuICBAT3V0cHV0KCkgb25JbnNlcnRBYm92ZTogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50U2VjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50U2VjdGlvbj4oKTtcbiAgQE91dHB1dCgpIG9uTW92ZURvd246IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudFNlY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudFNlY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBvbkluc2VydEJlbG93OiBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRTZWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRTZWN0aW9uPigpO1xuICBAT3V0cHV0KCkgb25EZWxldGU6IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudFNlY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudFNlY3Rpb24+KCk7XG5cblxuICBwdWJsaWMgYnVzeSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVXAoKSB7XG4gICAgdGhpcy5vbk1vdmVVcC5lbWl0KHRoaXMuc2VjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QWJvdmUoKSB7XG4gICAgdGhpcy5vbkluc2VydEFib3ZlLmVtaXQodGhpcy5zZWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlRG93bigpIHtcbiAgICB0aGlzLm9uTW92ZURvd24uZW1pdCh0aGlzLnNlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIGluc2VydEJlbG93KCkge1xuICAgIHRoaXMub25JbnNlcnRCZWxvdy5lbWl0KHRoaXMuc2VjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKCkge1xuICAgIHRoaXMub25EZWxldGUuZW1pdCh0aGlzLnNlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIG1vdmVHcm91cFVwKGdyb3VwOiBQb3J0YWxEb2N1bWVudEdyb3VwKSB7XG4gICAgaWYgKCFncm91cC5zZXF1ZW5jZSkge1xuICAgICAgZ3JvdXAuc2VxdWVuY2UgPSAwO1xuICAgIH1cbiAgICBpZiAoZ3JvdXAuc2VxdWVuY2UgPiAxKSB7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNlY3Rpb24pO1xuICAgICAgaWYgKCFjbG9uZS5ncm91cHMpIHtcbiAgICAgICAgY2xvbmUuZ3JvdXBzID0gW107XG4gICAgICB9XG4gICAgICBjbG9uZS5ncm91cHMuc3BsaWNlKGdyb3VwLnNlcXVlbmNlIC0gMiwgMCwgY2xvbmUuZ3JvdXBzLnNwbGljZShncm91cC5zZXF1ZW5jZSAtIDEsIDEpWzBdKTtcbiAgICAgIHRoaXMucmVzZXF1ZW5jZShjbG9uZSk7XG4gICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudFNlY3Rpb24oY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRGNvdW1lbnRJRChjbG9uZS5kb2N1bWVudElEIHx8ICcnKTtcbiAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHNlY3Rpb24gZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgfX0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbnNlcnRBYm92ZUdyb3VwKGdyb3VwOiBQb3J0YWxEb2N1bWVudEdyb3VwKSB7XG4gICAgaWYgKCFncm91cC5zZXF1ZW5jZSkge1xuICAgICAgZ3JvdXAuc2VxdWVuY2UgPSAxO1xuICAgIH1cbiAgICBsZXQgbmV3R3JvdXAgPSB0aGlzLm5ld0dyb3VwKGdyb3VwLnNlcXVlbmNlICAtIDEgfHwgMSk7XG4gICAgdGhpcy5pbnNlcnRHcm91cChncm91cC5zZXF1ZW5jZSAtIDEsIG5ld0dyb3VwKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlR3JvdXBEb3duKGdyb3VwOiBQb3J0YWxEb2N1bWVudEdyb3VwKSB7XG4gICAgaWYgKCFncm91cC5zZXF1ZW5jZSkge1xuICAgICAgZ3JvdXAuc2VxdWVuY2UgPSAxO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWN0aW9uLmdyb3VwcyAmJiBncm91cC5zZXF1ZW5jZSA8IHRoaXMuc2VjdGlvbi5ncm91cHMubGVuZ3RoKSB7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNlY3Rpb24pO1xuICAgICAgaWYgKCFjbG9uZS5ncm91cHMpIHtcbiAgICAgICAgY2xvbmUuZ3JvdXBzID0gW107XG4gICAgICB9XG4gICAgICBjbG9uZS5ncm91cHMuc3BsaWNlKGdyb3VwLnNlcXVlbmNlLCAwLCBjbG9uZS5ncm91cHMuc3BsaWNlKGdyb3VwLnNlcXVlbmNlIC0gMSwgMSlbMF0pO1xuICAgICAgdGhpcy5yZXNlcXVlbmNlKGNsb25lKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50U2VjdGlvbihjbG9uZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEY291bWVudElEKGNsb25lLmRvY3VtZW50SUQgfHwgJycpO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICB9fSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluc2VydEJlbG93R3JvdXAoZ3JvdXA6IFBvcnRhbERvY3VtZW50R3JvdXApIHtcbiAgICBpZiAoIWdyb3VwLnNlcXVlbmNlKSB7XG4gICAgICBncm91cC5zZXF1ZW5jZSA9IDE7XG4gICAgfVxuICAgIGxldCBuZXdHcm91cCA9IHRoaXMubmV3R3JvdXAoZ3JvdXAuc2VxdWVuY2UgICsgMSk7XG4gICAgdGhpcy5pbnNlcnRHcm91cChncm91cC5zZXF1ZW5jZSwgbmV3R3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBuZXdHcm91cChzZXF1ZW5jZTogbnVtYmVyKTogUG9ydGFsRG9jdW1lbnRHcm91cCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlY3Rpb25JRDogdGhpcy5zZWN0aW9uLmlkLFxuICAgICAgZG9jdW1lbnRJRDogdGhpcy5zZWN0aW9uLmRvY3VtZW50SUQsXG4gICAgICBzZXF1ZW5jZTogc2VxdWVuY2UsXG4gICAgICBuYW1lOiAnR3JvdXAgJyArIHNlcXVlbmNlLFxuICAgICAgcGFydHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRvY3VtZW50SUQ6IHRoaXMuc2VjdGlvbi5kb2N1bWVudElELFxuICAgICAgICAgIG5hbWU6ICdQYXJhZ3JhcGggMScsXG4gICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgdGV4dDogJydcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluc2VydEdyb3VwKGluc2VydEluZGV4OiBudW1iZXIsIG5ld0dyb3VwOiBQb3J0YWxEb2N1bWVudEdyb3VwKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgbGFiZWw6ICdJbnNlcnQgR3JvdXAnLFxuICAgICAgZ3JvdXA6IG5ld0dyb3VwXG4gICAgfVxuICAgIGxldCBtb2RhbCA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coR3JvdXBNb2RhbENvbXBvbmVudCwge2luaXRpYWxTdGF0ZSwgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZX0pO1xuICAgICg8R3JvdXBNb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5vbkdyb3VwU2F2ZS5zdWJzY3JpYmUodXBkYXRlc2RHcm91cCA9PiB7XG4gICAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZWN0aW9uKTtcbiAgICAgIGlmICghY2xvbmUuZ3JvdXBzKSB7XG4gICAgICAgIGNsb25lLmdyb3VwcyA9IFtdO1xuICAgICAgfVxuICAgICAgY2xvbmUuZ3JvdXBzLnNwbGljZShpbnNlcnRJbmRleCwgMCwgdXBkYXRlc2RHcm91cCk7XG4gICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRG9jdW1lbnRTZWN0aW9uKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgfX0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNlcXVlbmNlKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGxldCBzZXF1ZW5jZSA9IDE7XG4gICAgaWYgKHNlY3Rpb24uZ3JvdXBzKSB7XG4gICAgICBzZWN0aW9uLmdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgICAgZ3JvdXAuc2VxdWVuY2UgPSBzZXF1ZW5jZSsrO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZUdyb3VwKGdyb3VwOiBQb3J0YWxEb2N1bWVudEdyb3VwKSB7XG4gICAgbGV0IGJvZHlUZXh0ID0gJ0RlbGV0ZSBHcm91cCAnICsgZ3JvdXAubmFtZSArICc/JztcbiAgICBjb25zdCBldmVudE92ZXJyaWRlOiBEb2N1bWVudEV2ZW50IHwgdW5kZWZpbmVkID0gdGhpcy5kb2N1bWVudFNlcnZpY2UuaXNPdmVycmlkZGVuRXZlbnQoeyBldmVudFR5cGU6IERvY3VtZW50RXZlbnRUeXBlLkRlbGV0ZSwgZW50aXR5VHlwZTogRG9jdW1lbnRFdmVudEVudGl0eVR5cGUuR3JvdXAgfSk7XG4gICAgaWYgKGV2ZW50T3ZlcnJpZGUgJiYgZXZlbnRPdmVycmlkZS5jb25maXJtYXRpb25NZXNzYWdlKSB7XG4gICAgICBib2R5VGV4dCA9IGV2ZW50T3ZlcnJpZGUuY29uZmlybWF0aW9uTWVzc2FnZTtcbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgaGVhZGVyVGV4dDogJ0RlbGV0ZSBHcm91cCcsXG4gICAgICBib2R5VGV4dDogYm9keVRleHQsXG4gICAgICBjb25maXJtQnRuTGFiZWw6ICdZZXMnLFxuICAgICAgY2FuY2VsQnRuTGFiZWw6ICdObydcbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUsIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIGxldCBjbG9uZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2VjdGlvbik7XG4gICAgICBpZiAoIWNsb25lLmdyb3Vwcykge1xuICAgICAgICBjbG9uZS5ncm91cHMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGNsb25lLmdyb3VwcyA9IGNsb25lLmdyb3Vwcy5maWx0ZXIoa2VlcCA9PiB7XG4gICAgICAgIGtlZXAuaWQgIT0gZ3JvdXAuaWQ7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzZXF1ZW5jZShjbG9uZSk7XG4gICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudFNlY3Rpb24oY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5kZWxldGVEb2N1bWVudEdyb3VwKGdyb3VwKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEY291bWVudElEKGNsb25lLmRvY3VtZW50SUQgfHwgJycpO1xuICAgICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIGRlbGV0aW5nIGdyb3VwOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGxhYmVsOiAnRWRpdCBTZWN0aW9uIEF0dHJpYnV0ZXMnLFxuICAgICAgc2VjdGlvbjogc2VjdGlvblxuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KFNlY3Rpb25Nb2RhbENvbXBvbmVudCwge2luaXRpYWxTdGF0ZSwgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZX0pO1xuICAgICg8U2VjdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLm9uU2VjdGlvblNhdmUuc3Vic2NyaWJlKHVwZGF0ZWRTZWN0aW9uID0+IHtcbiAgICAgIHRoaXMuYnVzeSA9IHRydWU7XG4gICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudFNlY3Rpb24odXBkYXRlZFNlY3Rpb24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBzZWN0aW9uOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJzZWN0aW9uXCIgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWN0aW9uLmdyb3VwcyAmJiBzZWN0aW9uLmdyb3Vwcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBnIG9mIHNlY3Rpb24uZ3JvdXBzXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvZXBhLWRvY3VtZW50LWdyb3VwIFtncm91cF09XCJnXCIgKG9uTW92ZVVwKT1cIm1vdmVHcm91cFVwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uSW5zZXJ0QWJvdmUpPVwiaW5zZXJ0QWJvdmVHcm91cCgkZXZlbnQpXCIgKG9uTW92ZURvd24pPVwibW92ZUdyb3VwRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEJlbG93KT1cImluc2VydEJlbG93R3JvdXAoJGV2ZW50KVwiIChvbkRlbGV0ZSk9XCJkZWxldGVHcm91cCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvb2VwYS1kb2N1bWVudC1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|