@colijnit/sharedcomponents 259.1.5 → 259.1.6

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.
@@ -18,6 +18,7 @@ export class CustomPdfDialogComponent {
18
18
  this.additionalFileChangeEvent = new EventEmitter();
19
19
  this.signaturePads = {};
20
20
  this.signatureCanvases = {};
21
+ this.showLoader = false;
21
22
  }
22
23
  showClass() {
23
24
  return true;
@@ -100,6 +101,7 @@ export class CustomPdfDialogComponent {
100
101
  }
101
102
  handleSaveClicked() {
102
103
  return __awaiter(this, void 0, void 0, function* () {
104
+ this.showLoader = true;
103
105
  const clearButton = document.getElementById('clearButton');
104
106
  clearButton.hidden = true;
105
107
  const doc = new jsPDF();
@@ -108,38 +110,39 @@ export class CustomPdfDialogComponent {
108
110
  const sectionsCount = documentSection.length;
109
111
  for (let i = 0; i < sectionsCount; i++) {
110
112
  const html = documentSection[i];
111
- toJpeg(html, {
112
- quality: 1,
113
- backgroundColor: 'white'
114
- }).then((dataUrl) => {
113
+ try {
114
+ const dataUrl = yield toJpeg(html, {
115
+ quality: 1,
116
+ backgroundColor: 'white'
117
+ });
115
118
  const img = new Image();
116
119
  img.src = dataUrl;
117
- img.onload = () => {
118
- const imgWidth = 218;
119
- const imgHeight = (img.height * imgWidth) / img.width;
120
- doc.addImage(dataUrl, 'JPG', -4, 0, imgWidth, imgHeight);
121
- if (i === sectionsCount - 1) {
122
- // doc.save(this.additionalFileName + '.pdf');
123
- const tempFile = doc.output('datauristring');
124
- const file = this.dataURItoBlob(tempFile);
125
- FileUtils.ReadFileAsNewCoDocument(file).then(fileAsCoDocument => {
126
- // set some extra known fields for the codocument:
127
- fileAsCoDocument.fileType = FileUtils.IsImageFile(file) ? FileType.Image : FileType.Document;
128
- fileAsCoDocument.creationDate = new Date();
129
- fileAsCoDocument.modifiedDate = new Date();
130
- fileAsCoDocument.reports = 1;
131
- this.additionalFileChangeEvent.emit(fileAsCoDocument);
132
- this.closePDFDialog.emit();
133
- });
134
- }
135
- else {
136
- doc.addPage();
137
- }
138
- };
139
- }).catch((error) => {
120
+ yield new Promise((resolve) => {
121
+ img.onload = () => {
122
+ const imgWidth = 218;
123
+ const imgHeight = (img.height * imgWidth) / img.width;
124
+ doc.addImage(dataUrl, 'JPG', -4, 0, imgWidth, imgHeight);
125
+ if (i < sectionsCount - 1) {
126
+ doc.addPage();
127
+ }
128
+ resolve();
129
+ };
130
+ });
131
+ }
132
+ catch (error) {
140
133
  console.error('Error generating image:', error);
141
- });
134
+ }
142
135
  }
136
+ const tempFile = doc.output('datauristring');
137
+ const file = this.dataURItoBlob(tempFile);
138
+ const fileAsCoDocument = yield FileUtils.ReadFileAsNewCoDocument(file);
139
+ fileAsCoDocument.fileType = FileUtils.IsImageFile(file) ? FileType.Image : FileType.Document;
140
+ fileAsCoDocument.creationDate = new Date();
141
+ fileAsCoDocument.modifiedDate = new Date();
142
+ fileAsCoDocument.reports = 1;
143
+ this.additionalFileChangeEvent.emit(fileAsCoDocument);
144
+ this.showLoader = false;
145
+ this.closePDFDialog.emit();
143
146
  clearButton.hidden = false;
144
147
  });
145
148
  }
@@ -170,24 +173,29 @@ CustomPdfDialogComponent.decorators = [
170
173
  { type: Component, args: [{
171
174
  selector: 'co-custom-pdf-dialog',
172
175
  template: `
173
- <co-dialog
174
- [footerTemplate]="footerTemplate"
175
- id="custom-pdf-dialog"
176
- (closeClick)="closePDFDialog.emit()">
177
- <div #pdfBody id="pdfBody">
178
- <section [innerHTML]="fileBody"></section>
179
- </div>
180
- <ng-template #footerTemplate>
181
- <div class="co-dialog-footer-button-wrapper">
182
- <co-button class="save-button"
183
- [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
184
- (click)="handleSaveClicked()"></co-button>
185
- <co-button class="close-button"
186
- [iconData]="iconCacheService.getIcon(icons.CrossSkinny)"
187
- (click)="closePDFDialog.emit()"></co-button>
188
- </div>
189
- </ng-template>
190
- </co-dialog>
176
+ <co-dialog
177
+ [footerTemplate]="footerTemplate"
178
+ id="custom-pdf-dialog"
179
+ (closeClick)="closePDFDialog.emit()">
180
+ <!-- create a nice container for loader so it is not random in the corner somewhere -->
181
+ <div *ngIf="showLoader" class="loader-container">
182
+ <co-loader *ngIf="showLoader"></co-loader>
183
+ </div>
184
+
185
+ <div #pdfBody id="pdfBody">
186
+ <section [innerHTML]="fileBody"></section>
187
+ </div>
188
+ <ng-template #footerTemplate>
189
+ <div class="co-dialog-footer-button-wrapper">
190
+ <co-button class="save-button"
191
+ [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
192
+ (click)="handleSaveClicked()"></co-button>
193
+ <co-button class="close-button"
194
+ [iconData]="iconCacheService.getIcon(icons.CrossSkinny)"
195
+ (click)="closePDFDialog.emit()"></co-button>
196
+ </div>
197
+ </ng-template>
198
+ </co-dialog>
191
199
  `,
192
200
  encapsulation: ViewEncapsulation.None
193
201
  },] }
@@ -204,4 +212,4 @@ CustomPdfDialogComponent.propDecorators = {
204
212
  closePDFDialog: [{ type: Output }],
205
213
  additionalFileChangeEvent: [{ type: Output }]
206
214
  };
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBkZi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXBkZi9jdXN0b20tcGRmLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDNUIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBMEIxQyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUNTLGdCQUFrQyxFQUNqQyxVQUF3QjtRQUR6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWM7UUEvQmxCLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBY25DLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUdoQyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVELDhCQUF5QixHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFD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SyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsU0FBdUIsRUFBRSxlQUEyQjtRQUNqRixNQUFNLGlCQUFpQixHQUFXLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hGLGVBQWUsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxRixlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25FLFNBQVMsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7WUFoTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBakNPLGdCQUFnQjtZQUNoQixZQUFZOzs7d0JBb0NqQixXQUFXLFNBQUMsNEJBQTRCO3NCQUt4QyxTQUFTLFNBQUMsU0FBUztxQ0FHbkIsS0FBSztpQ0FHTCxLQUFLOzZCQUdMLE1BQU07d0NBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2pzUERGfSBmcm9tICdqc3BkZic7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCBTaWduYXR1cmVQYWQgZnJvbSAnc2lnbmF0dXJlX3BhZCc7XHJcbmltcG9ydCB7dG9KcGVnfSBmcm9tICdodG1sLXRvLWltYWdlJztcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC5ibyc7XHJcbmltcG9ydCB7RmlsZVV0aWxzfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC91dGlscy9maWxlLXV0aWxzJztcclxuXHJcbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vZmlsZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tY3VzdG9tLXBkZi1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby1kaWFsb2dcclxuICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIGlkPVwiY3VzdG9tLXBkZi1kaWFsb2dcIlxyXG4gICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlUERGRGlhbG9nLmVtaXQoKVwiPlxyXG4gICAgICAgICAgPGRpdiAjcGRmQm9keSBpZD1cInBkZkJvZHlcIj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbiBbaW5uZXJIVE1MXT1cImZpbGVCb2R5XCI+PC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrZWQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNyb3NzU2tpbm55KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUERGRGlhbG9nLmVtaXQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21QZGZEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWN1c3RvbS1wZGYtZGlhbG9nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdwZGZCb2R5JylcclxuICBwdWJsaWMgcGRmQm9keTogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkaXRpb25hbEZpbGVDb250ZW50czogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VQREZEaWFsb2c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gIHB1YmxpYyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xyXG4gIHB1YmxpYyBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XHJcbiAgcHVibGljIHNpZ25hdHVyZVBhZHM6IHsgW2tleTogc3RyaW5nXTogU2lnbmF0dXJlUGFkIH0gPSB7fTtcclxuICBwdWJsaWMgc2lnbmF0dXJlQ2FudmFzZXM6IHsgW2tleTogc3RyaW5nXTogRWxlbWVudFJlZiB9ID0ge307XHJcbiAgcHVibGljIGZpbGVCb2R5OiBhbnk7XHJcbiAgcHVibGljIGZpbGVTdHlsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpbGVDb250ZW50cykge1xyXG4gICAgICBjb25zdCBoZWFkOiBIVE1MSGVhZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gICAgICBjb25zdCBzdHlsZXM6IHN0cmluZ1tdID0gdGhpcy5leHRyYWN0U3R5bGVQYXJ0cyh0aGlzLmFkZGl0aW9uYWxGaWxlQ29udGVudHMpO1xyXG4gICAgICB0aGlzLmZpbGVTdHlsZSA9IHN0eWxlc1swXTtcclxuICAgICAgY29uc3Qgc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmZpbGVTdHlsZSkpO1xyXG4gICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcclxuICAgICAgY29uc3QgYm9keTogc3RyaW5nW10gPSB0aGlzLmV4dHJhY3RCb2R5Q29udGVudHModGhpcy5hZGRpdGlvbmFsRmlsZUNvbnRlbnRzKTtcclxuICAgICAgdGhpcy5maWxlQm9keSA9IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChib2R5WzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIFsnc2lnbmF0dXJlQ2FudmFzJywgJ3NpZ25hdHVyZUNhbnZhczInXS5mb3JFYWNoKGlkID0+IHtcclxuICAgICAgY29uc3QgY2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgaWYgKGNhbnZhc0VsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBjYW52YXNSZWYgPSBuZXcgRWxlbWVudFJlZihjYW52YXNFbGVtZW50KTtcclxuICAgICAgICBjb25zdCBzaWduYXR1cmVQYWQgPSBuZXcgU2lnbmF0dXJlUGFkKDxIVE1MQ2FudmFzRWxlbWVudD5jYW52YXNSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVDYW52YXNlc1tpZF0gPSBjYW52YXNSZWY7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWRzW2lkXSA9IHNpZ25hdHVyZVBhZDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlUGFkLCBjYW52YXNSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNsZWFyQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsZWFyQnV0dG9uJyk7XHJcbiAgICBjbGVhckJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmhhbmRsZUNsZWFyKCkpO1xyXG5cclxuICAgIC8vIER1ZSB0byBhIGJ1ZyBvciBrbm93biBpc3N1ZSB3aXRoIGh0bWwtdG8taW1hZ2Ugd2UgbmVlZCBhIGJpdCBvZiBKUyB0aGUgZmlsbCBpbiB0aGUgY2hlY2tlZCB2YWx1ZSB3aGVuIHNlbGVjdGluZyBhIGNoZWNrYm94LlxyXG4gICAgLy8gSGFuZGxpbmcgdGhlIGNoZWNrYm94ZXMgYW5kIHJhZGlvYnV0dG9uc1xyXG4gICAgY29uc3QgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IHRoaXMucGRmQm9keS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAodGFyZ2V0LnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgKHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS50eXBlID09PSAnY2hlY2tib3gnKSB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tib3g6IEhUTUxJbnB1dEVsZW1lbnQgPSB0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgICAgICAgY2hlY2tib3guc2V0QXR0cmlidXRlKCdjaGVja2VkJywgJ3RydWUnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY2hlY2tib3gucmVtb3ZlQXR0cmlidXRlKCdjaGVja2VkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnICYmICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgIGNvbnN0IHJhZGlvOiBIVE1MSW5wdXRFbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSByYWRpby5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHJhZGlvczogTm9kZUxpc3RPZjxFbGVtZW50PiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKGBpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIiR7Z3JvdXBOYW1lfVwiXWApO1xyXG4gICAgICAgIHJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4gcmFkaW8ucmVtb3ZlQXR0cmlidXRlKCdjaGVja2VkJykpO1xyXG4gICAgICAgIGlmIChyYWRpby5jaGVja2VkKSB7XHJcbiAgICAgICAgICByYWRpby5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCAndHJ1ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXh0cmFjdFN0eWxlUGFydHMoaHRtbDogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc3R5bGVQYXR0ZXJuOiBSZWdFeHAgPSAvPHN0eWxlW14+XSo+KFtcXHNcXFNdKj8pPFxcL3N0eWxlPi9naTtcclxuICAgIGNvbnN0IG1hdGNoZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XHJcbiAgICB3aGlsZSAoKG1hdGNoID0gc3R5bGVQYXR0ZXJuLmV4ZWMoaHRtbCkpICE9PSBudWxsKSB7XHJcbiAgICAgIG1hdGNoZXMucHVzaChtYXRjaFsxXS50cmltKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlU3R5bGVBbmRTY3JpcHRUYWdzKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzdHlsZVRhZ1BhdHRlcm46IFJlZ0V4cCA9IC88c3R5bGVbXj5dKj5bXFxzXFxTXSo/PFxcL3N0eWxlPi9naTtcclxuICAgIGNvbnN0IHNjcmlwdFRhZ1BhdHRlcm46IFJlZ0V4cCA9IC88c2NyaXB0W14+XSo+W1xcc1xcU10qPzxcXC9zY3JpcHQ+L2dpO1xyXG4gICAgcmV0dXJuIGh0bWwucmVwbGFjZShzdHlsZVRhZ1BhdHRlcm4sICcnKS5yZXBsYWNlKHNjcmlwdFRhZ1BhdHRlcm4sICcnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHRyYWN0Qm9keUNvbnRlbnRzKGh0bWw6IHN0cmluZyk6IHN0cmluZyBbXSB7XHJcbiAgICBodG1sID0gdGhpcy5yZW1vdmVTdHlsZUFuZFNjcmlwdFRhZ3MoaHRtbCk7XHJcbiAgICBjb25zdCBzdHlsZVBhdHRlcm46IFJlZ0V4cCA9IC88Ym9keVtePl0qPihbXFxzXFxTXSo/KTxcXC9ib2R5Pi9naTtcclxuICAgIGNvbnN0IG1hdGNoZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XHJcbiAgICB3aGlsZSAoKG1hdGNoID0gc3R5bGVQYXR0ZXJuLmV4ZWMoaHRtbCkpICE9PSBudWxsKSB7XHJcbiAgICAgIG1hdGNoZXMucHVzaChtYXRjaFsxXS50cmltKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZUNsaWNrZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBjbGVhckJ1dHRvbjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xlYXJCdXR0b24nKTtcclxuICAgIGNsZWFyQnV0dG9uLmhpZGRlbiA9IHRydWU7XHJcbiAgICBjb25zdCBkb2M6IGpzUERGID0gbmV3IGpzUERGKCk7XHJcbiAgICBjb25zdCBodG1sRG9jdW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwZGZCb2R5XCIpO1xyXG4gICAgY29uc3QgZG9jdW1lbnRTZWN0aW9uOiBIVE1MQ29sbGVjdGlvbk9mPEhUTUxFbGVtZW50PiA9IGh0bWxEb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VjdGlvbicpO1xyXG4gICAgY29uc3Qgc2VjdGlvbnNDb3VudDogbnVtYmVyID0gZG9jdW1lbnRTZWN0aW9uLmxlbmd0aDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc2VjdGlvbnNDb3VudDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGh0bWw6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnRTZWN0aW9uW2ldO1xyXG4gICAgICB0b0pwZWcoaHRtbCwge1xyXG4gICAgICAgIHF1YWxpdHk6IDEsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnXHJcbiAgICAgIH0pLnRoZW4oKGRhdGFVcmw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGltZzogSFRNTEltYWdlRWxlbWVudCA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgIGltZy5zcmMgPSBkYXRhVXJsO1xyXG4gICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpbWdXaWR0aDogbnVtYmVyID0gMjE4O1xyXG4gICAgICAgICAgY29uc3QgaW1nSGVpZ2h0OiBudW1iZXIgPSAoaW1nLmhlaWdodCAqIGltZ1dpZHRoKSAvIGltZy53aWR0aDtcclxuICAgICAgICAgIGRvYy5hZGRJbWFnZShkYXRhVXJsLCAnSlBHJywgLTQsIDAsIGltZ1dpZHRoLCBpbWdIZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKGkgPT09IHNlY3Rpb25zQ291bnQgLSAxKSB7XHJcbiAgICAgICAgICAgIC8vIGRvYy5zYXZlKHRoaXMuYWRkaXRpb25hbEZpbGVOYW1lICsgJy5wZGYnKTtcclxuICAgICAgICAgICAgY29uc3QgdGVtcEZpbGU6IHN0cmluZyA9IGRvYy5vdXRwdXQoJ2RhdGF1cmlzdHJpbmcnKTtcclxuICAgICAgICAgICAgY29uc3QgZmlsZTogRmlsZSA9IHRoaXMuZGF0YVVSSXRvQmxvYih0ZW1wRmlsZSk7XHJcbiAgICAgICAgICAgIEZpbGVVdGlscy5SZWFkRmlsZUFzTmV3Q29Eb2N1bWVudChmaWxlKS50aGVuKGZpbGVBc0NvRG9jdW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHNldCBzb21lIGV4dHJhIGtub3duIGZpZWxkcyBmb3IgdGhlIGNvZG9jdW1lbnQ6XHJcbiAgICAgICAgICAgICAgZmlsZUFzQ29Eb2N1bWVudC5maWxlVHlwZSA9IEZpbGVVdGlscy5Jc0ltYWdlRmlsZShmaWxlKSA/IEZpbGVUeXBlLkltYWdlIDogRmlsZVR5cGUuRG9jdW1lbnQ7XHJcbiAgICAgICAgICAgICAgZmlsZUFzQ29Eb2N1bWVudC5jcmVhdGlvbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICAgIGZpbGVBc0NvRG9jdW1lbnQubW9kaWZpZWREYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgICBmaWxlQXNDb0RvY3VtZW50LnJlcG9ydHMgPSAxO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbEZpbGVDaGFuZ2VFdmVudC5lbWl0KGZpbGVBc0NvRG9jdW1lbnQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VQREZEaWFsb2cuZW1pdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRvYy5hZGRQYWdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2VuZXJhdGluZyBpbWFnZTonLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY2xlYXJCdXR0b24uaGlkZGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGF0YVVSSXRvQmxvYihkYXRhVVJJKTogRmlsZSB7XHJcbiAgICBjb25zdCBieXRlU3RyaW5nOiBzdHJpbmcgPSBhdG9iKGRhdGFVUkkuc3BsaXQoJywnKVsxXSk7XHJcbiAgICBjb25zdCBhYjogQXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZVN0cmluZy5sZW5ndGgpO1xyXG4gICAgY29uc3QgaWE6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhYik7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpYVtpXSA9IGJ5dGVTdHJpbmcuY2hhckNvZGVBdChpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRmlsZShbYWJdLCB0aGlzLmFkZGl0aW9uYWxGaWxlTmFtZSArICcucGRmJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2xlYXIoKTogdm9pZCB7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuc2lnbmF0dXJlUGFkcykuZm9yRWFjaChzaWduYXR1cmVQYWQgPT4ge1xyXG4gICAgICBzaWduYXR1cmVQYWQ/LmNsZWFyKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2l6ZVNpZ25hdHVyZUNhbnZhcyhzaWduYXR1cmU6IFNpZ25hdHVyZVBhZCwgc2lnbmF0dXJlQ2FudmFzOiBFbGVtZW50UmVmKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbWFnZUJlZm9yZVJlc2l6ZTogc3RyaW5nID0gc2lnbmF0dXJlLnRvRGF0YVVSTCgpO1xyXG4gICAgY29uc3QgcmF0aW86IG51bWJlciA9IE1hdGgubWF4KHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEsIDEpO1xyXG4gICAgc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQud2lkdGggPSBzaWduYXR1cmVDYW52YXMubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAqIHJhdGlvO1xyXG4gICAgc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICogcmF0aW87XHJcbiAgICBzaWduYXR1cmVDYW52YXMubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KFwiMmRcIikuc2NhbGUocmF0aW8sIHJhdGlvKTtcclxuICAgIHNpZ25hdHVyZS5mcm9tRGF0YVVSTChpbWFnZUJlZm9yZVJlc2l6ZSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBkZi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXBkZi9jdXN0b20tcGRmLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDNUIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBK0IxQyxNQUFNLE9BQU8sd0JBQXdCO0lBZ0NuQyxZQUNTLGdCQUFrQyxFQUNqQyxVQUF3QjtRQUR6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWM7UUFqQ2xCLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBY25DLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUdoQyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRzVELDhCQUF5QixHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFD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QUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkQsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQXVCLEVBQUUsZUFBMkI7UUFDakYsTUFBTSxpQkFBaUIsR0FBVyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4RixlQUFlLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUYsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRSxTQUFTLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0MsQ0FBQzs7O1lBek5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBdENPLGdCQUFnQjtZQUNoQixZQUFZOzs7d0JBeUNqQixXQUFXLFNBQUMsNEJBQTRCO3NCQUt4QyxTQUFTLFNBQUMsU0FBUztxQ0FHbkIsS0FBSztpQ0FHTCxLQUFLOzZCQUdMLE1BQU07d0NBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2pzUERGfSBmcm9tICdqc3BkZic7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCBTaWduYXR1cmVQYWQgZnJvbSAnc2lnbmF0dXJlX3BhZCc7XHJcbmltcG9ydCB7dG9KcGVnfSBmcm9tICdodG1sLXRvLWltYWdlJztcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC5ibyc7XHJcbmltcG9ydCB7RmlsZVV0aWxzfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC91dGlscy9maWxlLXV0aWxzJztcclxuXHJcbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vZmlsZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tY3VzdG9tLXBkZi1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nXHJcbiAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgIGlkPVwiY3VzdG9tLXBkZi1kaWFsb2dcIlxyXG4gICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVBERkRpYWxvZy5lbWl0KClcIj5cclxuICAgICAgPCEtLSBjcmVhdGUgYSBuaWNlIGNvbnRhaW5lciBmb3IgbG9hZGVyIHNvIGl0IGlzIG5vdCByYW5kb20gaW4gdGhlIGNvcm5lciBzb21ld2hlcmUgLS0+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93TG9hZGVyXCIgY2xhc3M9XCJsb2FkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGNvLWxvYWRlciAqbmdJZj1cInNob3dMb2FkZXJcIj48L2NvLWxvYWRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICA8ZGl2ICNwZGZCb2R5IGlkPVwicGRmQm9keVwiPlxyXG4gICAgICAgIDxzZWN0aW9uIFtpbm5lckhUTUxdPVwiZmlsZUJvZHlcIj48L3NlY3Rpb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrZWQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUERGRGlhbG9nLmVtaXQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21QZGZEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWN1c3RvbS1wZGYtZGlhbG9nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdwZGZCb2R5JylcclxuICBwdWJsaWMgcGRmQm9keTogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkaXRpb25hbEZpbGVDb250ZW50czogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZU5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VQREZEaWFsb2c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRpdGlvbmFsRmlsZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gIHB1YmxpYyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xyXG4gIHB1YmxpYyBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XHJcbiAgcHVibGljIHNpZ25hdHVyZVBhZHM6IHsgW2tleTogc3RyaW5nXTogU2lnbmF0dXJlUGFkIH0gPSB7fTtcclxuICBwdWJsaWMgc2lnbmF0dXJlQ2FudmFzZXM6IHsgW2tleTogc3RyaW5nXTogRWxlbWVudFJlZiB9ID0ge307XHJcbiAgcHVibGljIGZpbGVCb2R5OiBhbnk7XHJcbiAgcHVibGljIGZpbGVTdHlsZTogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpbGVDb250ZW50cykge1xyXG4gICAgICBjb25zdCBoZWFkOiBIVE1MSGVhZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xyXG4gICAgICBjb25zdCBzdHlsZXM6IHN0cmluZ1tdID0gdGhpcy5leHRyYWN0U3R5bGVQYXJ0cyh0aGlzLmFkZGl0aW9uYWxGaWxlQ29udGVudHMpO1xyXG4gICAgICB0aGlzLmZpbGVTdHlsZSA9IHN0eWxlc1swXTtcclxuICAgICAgY29uc3Qgc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLmZpbGVTdHlsZSkpO1xyXG4gICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcclxuICAgICAgY29uc3QgYm9keTogc3RyaW5nW10gPSB0aGlzLmV4dHJhY3RCb2R5Q29udGVudHModGhpcy5hZGRpdGlvbmFsRmlsZUNvbnRlbnRzKTtcclxuICAgICAgdGhpcy5maWxlQm9keSA9IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChib2R5WzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIFsnc2lnbmF0dXJlQ2FudmFzJywgJ3NpZ25hdHVyZUNhbnZhczInXS5mb3JFYWNoKGlkID0+IHtcclxuICAgICAgY29uc3QgY2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgaWYgKGNhbnZhc0VsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBjYW52YXNSZWYgPSBuZXcgRWxlbWVudFJlZihjYW52YXNFbGVtZW50KTtcclxuICAgICAgICBjb25zdCBzaWduYXR1cmVQYWQgPSBuZXcgU2lnbmF0dXJlUGFkKDxIVE1MQ2FudmFzRWxlbWVudD5jYW52YXNSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVDYW52YXNlc1tpZF0gPSBjYW52YXNSZWY7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWRzW2lkXSA9IHNpZ25hdHVyZVBhZDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlUGFkLCBjYW52YXNSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNsZWFyQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsZWFyQnV0dG9uJyk7XHJcbiAgICBjbGVhckJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmhhbmRsZUNsZWFyKCkpO1xyXG5cclxuICAgIC8vIER1ZSB0byBhIGJ1ZyBvciBrbm93biBpc3N1ZSB3aXRoIGh0bWwtdG8taW1hZ2Ugd2UgbmVlZCBhIGJpdCBvZiBKUyB0aGUgZmlsbCBpbiB0aGUgY2hlY2tlZCB2YWx1ZSB3aGVuIHNlbGVjdGluZyBhIGNoZWNrYm94LlxyXG4gICAgLy8gSGFuZGxpbmcgdGhlIGNoZWNrYm94ZXMgYW5kIHJhZGlvYnV0dG9uc1xyXG4gICAgY29uc3QgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IHRoaXMucGRmQm9keS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAodGFyZ2V0LnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgKHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS50eXBlID09PSAnY2hlY2tib3gnKSB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tib3g6IEhUTUxJbnB1dEVsZW1lbnQgPSB0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgICAgICAgY2hlY2tib3guc2V0QXR0cmlidXRlKCdjaGVja2VkJywgJ3RydWUnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY2hlY2tib3gucmVtb3ZlQXR0cmlidXRlKCdjaGVja2VkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnICYmICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgIGNvbnN0IHJhZGlvOiBIVE1MSW5wdXRFbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSByYWRpby5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHJhZGlvczogTm9kZUxpc3RPZjxFbGVtZW50PiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKGBpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIiR7Z3JvdXBOYW1lfVwiXWApO1xyXG4gICAgICAgIHJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4gcmFkaW8ucmVtb3ZlQXR0cmlidXRlKCdjaGVja2VkJykpO1xyXG4gICAgICAgIGlmIChyYWRpby5jaGVja2VkKSB7XHJcbiAgICAgICAgICByYWRpby5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCAndHJ1ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXh0cmFjdFN0eWxlUGFydHMoaHRtbDogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc3R5bGVQYXR0ZXJuOiBSZWdFeHAgPSAvPHN0eWxlW14+XSo+KFtcXHNcXFNdKj8pPFxcL3N0eWxlPi9naTtcclxuICAgIGNvbnN0IG1hdGNoZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XHJcbiAgICB3aGlsZSAoKG1hdGNoID0gc3R5bGVQYXR0ZXJuLmV4ZWMoaHRtbCkpICE9PSBudWxsKSB7XHJcbiAgICAgIG1hdGNoZXMucHVzaChtYXRjaFsxXS50cmltKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlU3R5bGVBbmRTY3JpcHRUYWdzKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzdHlsZVRhZ1BhdHRlcm46IFJlZ0V4cCA9IC88c3R5bGVbXj5dKj5bXFxzXFxTXSo/PFxcL3N0eWxlPi9naTtcclxuICAgIGNvbnN0IHNjcmlwdFRhZ1BhdHRlcm46IFJlZ0V4cCA9IC88c2NyaXB0W14+XSo+W1xcc1xcU10qPzxcXC9zY3JpcHQ+L2dpO1xyXG4gICAgcmV0dXJuIGh0bWwucmVwbGFjZShzdHlsZVRhZ1BhdHRlcm4sICcnKS5yZXBsYWNlKHNjcmlwdFRhZ1BhdHRlcm4sICcnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHRyYWN0Qm9keUNvbnRlbnRzKGh0bWw6IHN0cmluZyk6IHN0cmluZyBbXSB7XHJcbiAgICBodG1sID0gdGhpcy5yZW1vdmVTdHlsZUFuZFNjcmlwdFRhZ3MoaHRtbCk7XHJcbiAgICBjb25zdCBzdHlsZVBhdHRlcm46IFJlZ0V4cCA9IC88Ym9keVtePl0qPihbXFxzXFxTXSo/KTxcXC9ib2R5Pi9naTtcclxuICAgIGNvbnN0IG1hdGNoZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XHJcbiAgICB3aGlsZSAoKG1hdGNoID0gc3R5bGVQYXR0ZXJuLmV4ZWMoaHRtbCkpICE9PSBudWxsKSB7XHJcbiAgICAgIG1hdGNoZXMucHVzaChtYXRjaFsxXS50cmltKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZUNsaWNrZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgY2xlYXJCdXR0b246IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsZWFyQnV0dG9uJyk7XHJcbiAgICBjbGVhckJ1dHRvbi5oaWRkZW4gPSB0cnVlO1xyXG4gICAgY29uc3QgZG9jOiBqc1BERiA9IG5ldyBqc1BERigpO1xyXG4gICAgY29uc3QgaHRtbERvY3VtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcGRmQm9keVwiKTtcclxuICAgIGNvbnN0IGRvY3VtZW50U2VjdGlvbjogSFRNTENvbGxlY3Rpb25PZjxIVE1MRWxlbWVudD4gPSBodG1sRG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlY3Rpb24nKTtcclxuICAgIGNvbnN0IHNlY3Rpb25zQ291bnQ6IG51bWJlciA9IGRvY3VtZW50U2VjdGlvbi5sZW5ndGg7XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHNlY3Rpb25zQ291bnQ7IGkrKykge1xyXG4gICAgICBjb25zdCBodG1sOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50U2VjdGlvbltpXTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBkYXRhVXJsOiBzdHJpbmcgPSBhd2FpdCB0b0pwZWcoaHRtbCwge1xyXG4gICAgICAgICAgcXVhbGl0eTogMSxcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGltZzogSFRNTEltYWdlRWxlbWVudCA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgIGltZy5zcmMgPSBkYXRhVXJsO1xyXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbWdXaWR0aDogbnVtYmVyID0gMjE4O1xyXG4gICAgICAgICAgICBjb25zdCBpbWdIZWlnaHQ6IG51bWJlciA9IChpbWcuaGVpZ2h0ICogaW1nV2lkdGgpIC8gaW1nLndpZHRoO1xyXG4gICAgICAgICAgICBkb2MuYWRkSW1hZ2UoZGF0YVVybCwgJ0pQRycsIC00LCAwLCBpbWdXaWR0aCwgaW1nSGVpZ2h0KTtcclxuICAgICAgICAgICAgaWYgKGkgPCBzZWN0aW9uc0NvdW50IC0gMSkge1xyXG4gICAgICAgICAgICAgIGRvYy5hZGRQYWdlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBnZW5lcmF0aW5nIGltYWdlOicsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgdGVtcEZpbGU6IHN0cmluZyA9IGRvYy5vdXRwdXQoJ2RhdGF1cmlzdHJpbmcnKTtcclxuICAgIGNvbnN0IGZpbGU6IEZpbGUgPSB0aGlzLmRhdGFVUkl0b0Jsb2IodGVtcEZpbGUpO1xyXG4gICAgY29uc3QgZmlsZUFzQ29Eb2N1bWVudCA9IGF3YWl0IEZpbGVVdGlscy5SZWFkRmlsZUFzTmV3Q29Eb2N1bWVudChmaWxlKTtcclxuICAgIGZpbGVBc0NvRG9jdW1lbnQuZmlsZVR5cGUgPSBGaWxlVXRpbHMuSXNJbWFnZUZpbGUoZmlsZSkgPyBGaWxlVHlwZS5JbWFnZSA6IEZpbGVUeXBlLkRvY3VtZW50O1xyXG4gICAgZmlsZUFzQ29Eb2N1bWVudC5jcmVhdGlvbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZmlsZUFzQ29Eb2N1bWVudC5tb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZmlsZUFzQ29Eb2N1bWVudC5yZXBvcnRzID0gMTtcclxuICAgIHRoaXMuYWRkaXRpb25hbEZpbGVDaGFuZ2VFdmVudC5lbWl0KGZpbGVBc0NvRG9jdW1lbnQpO1xyXG4gICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlUERGRGlhbG9nLmVtaXQoKTtcclxuICAgIGNsZWFyQnV0dG9uLmhpZGRlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRhdGFVUkl0b0Jsb2IoZGF0YVVSSSk6IEZpbGUge1xyXG4gICAgY29uc3QgYnl0ZVN0cmluZzogc3RyaW5nID0gYXRvYihkYXRhVVJJLnNwbGl0KCcsJylbMV0pO1xyXG4gICAgY29uc3QgYWI6IEFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcclxuICAgIGNvbnN0IGlhOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEZpbGUoW2FiXSwgdGhpcy5hZGRpdGlvbmFsRmlsZU5hbWUgKyAnLnBkZicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnNpZ25hdHVyZVBhZHMpLmZvckVhY2goc2lnbmF0dXJlUGFkID0+IHtcclxuICAgICAgc2lnbmF0dXJlUGFkPy5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNpemVTaWduYXR1cmVDYW52YXMoc2lnbmF0dXJlOiBTaWduYXR1cmVQYWQsIHNpZ25hdHVyZUNhbnZhczogRWxlbWVudFJlZik6IHZvaWQge1xyXG4gICAgY29uc3QgaW1hZ2VCZWZvcmVSZXNpemU6IHN0cmluZyA9IHNpZ25hdHVyZS50b0RhdGFVUkwoKTtcclxuICAgIGNvbnN0IHJhdGlvOiBudW1iZXIgPSBNYXRoLm1heCh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxLCAxKTtcclxuICAgIHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50LndpZHRoID0gc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiByYXRpbztcclxuICAgIHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50LmhlaWdodCA9IHNpZ25hdHVyZUNhbnZhcy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAqIHJhdGlvO1xyXG4gICAgc2lnbmF0dXJlQ2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dChcIjJkXCIpLnNjYWxlKHJhdGlvLCByYXRpbyk7XHJcbiAgICBzaWduYXR1cmUuZnJvbURhdGFVUkwoaW1hZ2VCZWZvcmVSZXNpemUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { NgModule } from "@angular/core";
2
- import { ButtonModule, CoDialogModule, IconModule } from "@colijnit/corecomponents_v12";
2
+ import { ButtonModule, CoDialogModule, IconModule, LoaderModule } from '@colijnit/corecomponents_v12';
3
3
  import { CustomPdfDialogComponent } from "./custom-pdf-dialog.component";
4
4
  import { CommonModule } from "@angular/common";
5
5
  import { SharedComponentsTranslationModule } from "../../translation/shared-components-translation.module";
@@ -13,6 +13,7 @@ CustomPdfDialogModule.decorators = [
13
13
  CommonModule,
14
14
  ButtonModule,
15
15
  SharedComponentsTranslationModule,
16
+ LoaderModule
16
17
  ],
17
18
  declarations: [
18
19
  CustomPdfDialogComponent
@@ -23,4 +24,4 @@ CustomPdfDialogModule.decorators = [
23
24
  providers: []
24
25
  },] }
25
26
  ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBkZi1kaWFsb2cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXBkZi9jdXN0b20tcGRmLWRpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFvQnpHLE1BQU0sT0FBTyxxQkFBcUI7OztZQWpCakMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxVQUFVO29CQUNWLGNBQWM7b0JBQ2QsWUFBWTtvQkFDWixZQUFZO29CQUNaLGlDQUFpQztpQkFDbEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHdCQUF3QjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHdCQUF3QjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBDb0RpYWxvZ01vZHVsZSwgSWNvbk1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtDdXN0b21QZGZEaWFsb2dDb21wb25lbnR9IGZyb20gXCIuL2N1c3RvbS1wZGYtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1NoYXJlZENvbXBvbmVudHNUcmFuc2xhdGlvbk1vZHVsZX0gZnJvbSBcIi4uLy4uL3RyYW5zbGF0aW9uL3NoYXJlZC1jb21wb25lbnRzLXRyYW5zbGF0aW9uLm1vZHVsZVwiO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgU2hhcmVkQ29tcG9uZW50c1RyYW5zbGF0aW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDdXN0b21QZGZEaWFsb2dDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEN1c3RvbVBkZkRpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tUGRmRGlhbG9nTW9kdWxlIHtcclxuXHJcbn1cclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBkZi1kaWFsb2cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXBkZi9jdXN0b20tcGRmLWRpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBcUJ6RyxNQUFNLE9BQU8scUJBQXFCOzs7WUFsQmpDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsVUFBVTtvQkFDVixjQUFjO29CQUNkLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixpQ0FBaUM7b0JBQ2pDLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHdCQUF3QjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHdCQUF3QjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBDb0RpYWxvZ01vZHVsZSwgSWNvbk1vZHVsZSwgTG9hZGVyTW9kdWxlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtDdXN0b21QZGZEaWFsb2dDb21wb25lbnR9IGZyb20gXCIuL2N1c3RvbS1wZGYtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1NoYXJlZENvbXBvbmVudHNUcmFuc2xhdGlvbk1vZHVsZX0gZnJvbSBcIi4uLy4uL3RyYW5zbGF0aW9uL3NoYXJlZC1jb21wb25lbnRzLXRyYW5zbGF0aW9uLm1vZHVsZVwiO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgU2hhcmVkQ29tcG9uZW50c1RyYW5zbGF0aW9uTW9kdWxlLFxyXG4gICAgTG9hZGVyTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEN1c3RvbVBkZkRpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ3VzdG9tUGRmRGlhbG9nQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21QZGZEaWFsb2dNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
package/favicon.ico ADDED
Binary file
@@ -46,7 +46,7 @@ import { ArticleExtendedRequest } from '@colijnit/articleapi/build/model/article
46
46
  import * as i1 from '@angular/platform-browser';
47
47
  import { DomSanitizer } from '@angular/platform-browser';
48
48
  import { ArticleStockManagement } from '@colijnit/articleapi/build/model/article-stock-management';
49
- import { BaseModuleScreenConfigService, IconModule, ListOfValuesModule, InputCheckboxModule, CoDialogModule, ButtonModule, ScreenConfigurationModule, OverlayService, ClickoutsideModule, OverlayModule, CoreDialogService, InputRadioButtonModule, SimpleGridModule, ImageModule, InputTextModule, InputNumberPickerModule, CoDialogWizardModule, InputTextareaModule, PopupModule, InputDatePickerModule, ResponsiveTextModule, InputSearchModule, PromptService, FormComponent, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, CoOrientation, CoreComponentsTranslationModule, TemplateWrapperModule, FormModule, FormMasterService, IconCacheService as IconCacheService$1, InputDateRangePickerModule, CollapsibleModule, ColorSequenceService, ListOfIconsModule } from '@colijnit/corecomponents_v12';
49
+ import { BaseModuleScreenConfigService, IconModule, ListOfValuesModule, InputCheckboxModule, CoDialogModule, ButtonModule, LoaderModule, ScreenConfigurationModule, OverlayService, ClickoutsideModule, OverlayModule, CoreDialogService, InputRadioButtonModule, SimpleGridModule, ImageModule, InputTextModule, InputNumberPickerModule, CoDialogWizardModule, InputTextareaModule, PopupModule, InputDatePickerModule, ResponsiveTextModule, InputSearchModule, PromptService, FormComponent, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, CoOrientation, CoreComponentsTranslationModule, TemplateWrapperModule, FormModule, FormMasterService, IconCacheService as IconCacheService$1, InputDateRangePickerModule, CollapsibleModule, ColorSequenceService, ListOfIconsModule } from '@colijnit/corecomponents_v12';
50
50
  import { ArticleTransaction as ArticleTransaction$1 } from '@colijnit/articleapi/build/model/article-transaction';
51
51
  import { PrintPriceStickers } from '@colijnit/sharedapi/build/model/print-price-stickers.bo';
52
52
  import { ReportingDocumentEmailSignDocBaseRequest } from '@colijnit/mainapi/build/model/reporting-document-email-sign-doc-base-request';
@@ -3449,6 +3449,7 @@ class CustomPdfDialogComponent {
3449
3449
  this.additionalFileChangeEvent = new EventEmitter();
3450
3450
  this.signaturePads = {};
3451
3451
  this.signatureCanvases = {};
3452
+ this.showLoader = false;
3452
3453
  }
3453
3454
  showClass() {
3454
3455
  return true;
@@ -3531,6 +3532,7 @@ class CustomPdfDialogComponent {
3531
3532
  }
3532
3533
  handleSaveClicked() {
3533
3534
  return __awaiter(this, void 0, void 0, function* () {
3535
+ this.showLoader = true;
3534
3536
  const clearButton = document.getElementById('clearButton');
3535
3537
  clearButton.hidden = true;
3536
3538
  const doc = new jsPDF();
@@ -3539,38 +3541,39 @@ class CustomPdfDialogComponent {
3539
3541
  const sectionsCount = documentSection.length;
3540
3542
  for (let i = 0; i < sectionsCount; i++) {
3541
3543
  const html = documentSection[i];
3542
- toJpeg(html, {
3543
- quality: 1,
3544
- backgroundColor: 'white'
3545
- }).then((dataUrl) => {
3544
+ try {
3545
+ const dataUrl = yield toJpeg(html, {
3546
+ quality: 1,
3547
+ backgroundColor: 'white'
3548
+ });
3546
3549
  const img = new Image();
3547
3550
  img.src = dataUrl;
3548
- img.onload = () => {
3549
- const imgWidth = 218;
3550
- const imgHeight = (img.height * imgWidth) / img.width;
3551
- doc.addImage(dataUrl, 'JPG', -4, 0, imgWidth, imgHeight);
3552
- if (i === sectionsCount - 1) {
3553
- // doc.save(this.additionalFileName + '.pdf');
3554
- const tempFile = doc.output('datauristring');
3555
- const file = this.dataURItoBlob(tempFile);
3556
- FileUtils.ReadFileAsNewCoDocument(file).then(fileAsCoDocument => {
3557
- // set some extra known fields for the codocument:
3558
- fileAsCoDocument.fileType = FileUtils.IsImageFile(file) ? FileType$1.Image : FileType$1.Document;
3559
- fileAsCoDocument.creationDate = new Date();
3560
- fileAsCoDocument.modifiedDate = new Date();
3561
- fileAsCoDocument.reports = 1;
3562
- this.additionalFileChangeEvent.emit(fileAsCoDocument);
3563
- this.closePDFDialog.emit();
3564
- });
3565
- }
3566
- else {
3567
- doc.addPage();
3568
- }
3569
- };
3570
- }).catch((error) => {
3551
+ yield new Promise((resolve) => {
3552
+ img.onload = () => {
3553
+ const imgWidth = 218;
3554
+ const imgHeight = (img.height * imgWidth) / img.width;
3555
+ doc.addImage(dataUrl, 'JPG', -4, 0, imgWidth, imgHeight);
3556
+ if (i < sectionsCount - 1) {
3557
+ doc.addPage();
3558
+ }
3559
+ resolve();
3560
+ };
3561
+ });
3562
+ }
3563
+ catch (error) {
3571
3564
  console.error('Error generating image:', error);
3572
- });
3565
+ }
3573
3566
  }
3567
+ const tempFile = doc.output('datauristring');
3568
+ const file = this.dataURItoBlob(tempFile);
3569
+ const fileAsCoDocument = yield FileUtils.ReadFileAsNewCoDocument(file);
3570
+ fileAsCoDocument.fileType = FileUtils.IsImageFile(file) ? FileType$1.Image : FileType$1.Document;
3571
+ fileAsCoDocument.creationDate = new Date();
3572
+ fileAsCoDocument.modifiedDate = new Date();
3573
+ fileAsCoDocument.reports = 1;
3574
+ this.additionalFileChangeEvent.emit(fileAsCoDocument);
3575
+ this.showLoader = false;
3576
+ this.closePDFDialog.emit();
3574
3577
  clearButton.hidden = false;
3575
3578
  });
3576
3579
  }
@@ -3601,24 +3604,29 @@ CustomPdfDialogComponent.decorators = [
3601
3604
  { type: Component, args: [{
3602
3605
  selector: 'co-custom-pdf-dialog',
3603
3606
  template: `
3604
- <co-dialog
3605
- [footerTemplate]="footerTemplate"
3606
- id="custom-pdf-dialog"
3607
- (closeClick)="closePDFDialog.emit()">
3608
- <div #pdfBody id="pdfBody">
3609
- <section [innerHTML]="fileBody"></section>
3610
- </div>
3611
- <ng-template #footerTemplate>
3612
- <div class="co-dialog-footer-button-wrapper">
3613
- <co-button class="save-button"
3614
- [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
3615
- (click)="handleSaveClicked()"></co-button>
3616
- <co-button class="close-button"
3617
- [iconData]="iconCacheService.getIcon(icons.CrossSkinny)"
3618
- (click)="closePDFDialog.emit()"></co-button>
3619
- </div>
3620
- </ng-template>
3621
- </co-dialog>
3607
+ <co-dialog
3608
+ [footerTemplate]="footerTemplate"
3609
+ id="custom-pdf-dialog"
3610
+ (closeClick)="closePDFDialog.emit()">
3611
+ <!-- create a nice container for loader so it is not random in the corner somewhere -->
3612
+ <div *ngIf="showLoader" class="loader-container">
3613
+ <co-loader *ngIf="showLoader"></co-loader>
3614
+ </div>
3615
+
3616
+ <div #pdfBody id="pdfBody">
3617
+ <section [innerHTML]="fileBody"></section>
3618
+ </div>
3619
+ <ng-template #footerTemplate>
3620
+ <div class="co-dialog-footer-button-wrapper">
3621
+ <co-button class="save-button"
3622
+ [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
3623
+ (click)="handleSaveClicked()"></co-button>
3624
+ <co-button class="close-button"
3625
+ [iconData]="iconCacheService.getIcon(icons.CrossSkinny)"
3626
+ (click)="closePDFDialog.emit()"></co-button>
3627
+ </div>
3628
+ </ng-template>
3629
+ </co-dialog>
3622
3630
  `,
3623
3631
  encapsulation: ViewEncapsulation.None
3624
3632
  },] }
@@ -3646,6 +3654,7 @@ CustomPdfDialogModule.decorators = [
3646
3654
  CommonModule,
3647
3655
  ButtonModule,
3648
3656
  SharedComponentsTranslationModule,
3657
+ LoaderModule
3649
3658
  ],
3650
3659
  declarations: [
3651
3660
  CustomPdfDialogComponent