@seniorsistemas/yms-integration 1.30.2 → 1.31.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.
Files changed (21) hide show
  1. package/bundles/seniorsistemas-yms-integration.umd.js +96 -71
  2. package/bundles/seniorsistemas-yms-integration.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-yms-integration.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-yms-integration.umd.min.js.map +1 -1
  5. package/esm2015/src/wms/components/document-grid/document-grid.component.js +26 -16
  6. package/esm2015/src/wms/components/document-grid/insert-key/insert-key.component.js +30 -7
  7. package/esm2015/src/wms/components/document-grid/insert-key/insert-key.module.js +6 -5
  8. package/esm2015/src/wms/components/document-grid/register-document/register-document.component.js +5 -14
  9. package/esm5/src/wms/components/document-grid/document-grid.component.js +27 -16
  10. package/esm5/src/wms/components/document-grid/insert-key/insert-key.component.js +30 -7
  11. package/esm5/src/wms/components/document-grid/insert-key/insert-key.module.js +6 -5
  12. package/esm5/src/wms/components/document-grid/register-document/register-document.component.js +5 -14
  13. package/fesm2015/seniorsistemas-yms-integration.js +91 -67
  14. package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
  15. package/fesm5/seniorsistemas-yms-integration.js +96 -71
  16. package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
  17. package/package.json +1 -1
  18. package/seniorsistemas-yms-integration.metadata.json +1 -1
  19. package/src/wms/components/document-grid/document-grid.component.d.ts +5 -5
  20. package/src/wms/components/document-grid/insert-key/insert-key.component.d.ts +4 -2
  21. package/src/wms/components/document-grid/register-document/register-document.component.d.ts +2 -3
@@ -1,15 +1,14 @@
1
1
  import * as tslib_1 from "tslib";
2
- import { IntegrationService } from './../../entities/integration/integration.service';
3
- import { empty } from 'rxjs';
4
- import { DocumentService } from '../../entities/document/document.service';
5
2
  import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from "@angular/core";
6
3
  import { TranslateService } from "@ngx-translate/core";
7
4
  import { ConfirmationService, MessageService } from "primeng/api";
8
5
  import { Table } from "primeng/table";
9
- import { Subject, forkJoin } from 'rxjs';
6
+ import { Subject, empty, forkJoin } from 'rxjs';
10
7
  import { takeUntil } from 'rxjs/operators';
11
- import { WmsSystem } from '../../entities/wms-system/wms-system';
12
8
  import { AgendaService } from '../../entities/agenda/agenda.service';
9
+ import { DocumentService } from '../../entities/document/document.service';
10
+ import { WmsSystem } from '../../entities/wms-system/wms-system';
11
+ import { IntegrationService } from './../../entities/integration/integration.service';
13
12
  var DocumentGridComponent = /** @class */ (function () {
14
13
  function DocumentGridComponent(translate, documentService, messageService, confirmationService, integrationService, agendaService) {
15
14
  this.translate = translate;
@@ -27,7 +26,7 @@ var DocumentGridComponent = /** @class */ (function () {
27
26
  DocumentGridComponent.prototype.ngOnInit = function () {
28
27
  this.verifyClienteExterno();
29
28
  this.getProcessTypeByScheduling();
30
- this.listDocuments();
29
+ this.listDocuments(false);
31
30
  };
32
31
  DocumentGridComponent.prototype.ngAfterContentChecked = function () {
33
32
  this.gridColumns = this.getGridColumns();
@@ -46,8 +45,17 @@ var DocumentGridComponent = /** @class */ (function () {
46
45
  .subscribe(function (result) { return _this.processType = result.processType; });
47
46
  };
48
47
  DocumentGridComponent.prototype.onChangeDocument = function (document) {
48
+ var duplicateDocument = this.gridData.find(function (gridData) { return gridData.key === document.key; });
49
+ if (duplicateDocument) {
50
+ this.message("error", "yms.int.wms_error_register_document_message_title", "yms.int.wms_error_register_document_message_description");
51
+ this.selection[0] = document;
52
+ this.visibleDocumentRegister = true;
53
+ return;
54
+ }
49
55
  this.gridData.push(document);
50
56
  this.disabled = false;
57
+ this.message("success", "yms.int.wms_saved_document_message_title", "yms.int.wms_success_message_description");
58
+ this.visibleDocumentRegister = false;
51
59
  };
52
60
  DocumentGridComponent.prototype.cantEditStatus = function () {
53
61
  var cantEditStatus = [
@@ -108,9 +116,10 @@ var DocumentGridComponent = /** @class */ (function () {
108
116
  }
109
117
  data.key = _this.updateKeyByWms(data);
110
118
  _this.documentService.insert(data).subscribe(function () {
111
- _this.message("success", "saved_message_title", "saved_message_content");
119
+ _this.message("success", "yms.int.wms_saved_document_message_title", "saved_message_content");
112
120
  });
113
121
  _this.disabled = true;
122
+ _this.listDocuments(false);
114
123
  }
115
124
  });
116
125
  }
@@ -142,8 +151,7 @@ var DocumentGridComponent = /** @class */ (function () {
142
151
  summary: _this.translate.instant("deleted_message_title"),
143
152
  detail: _this.translate.instant("deleted_message_content"),
144
153
  });
145
- _this.gridData = [];
146
- _this.listDocuments();
154
+ _this.listDocuments(true);
147
155
  });
148
156
  }
149
157
  });
@@ -152,26 +160,29 @@ var DocumentGridComponent = /** @class */ (function () {
152
160
  var _this = this;
153
161
  this.selection.forEach(function (value, index) {
154
162
  if (!value.id) {
155
- _this.gridData.splice(index, 1);
163
+ var indexGridData = _this.gridData.findIndex(function (document) { return document.key === value.key; });
164
+ _this.gridData.splice(indexGridData, 1);
156
165
  _this.selection.splice(index, 1);
157
166
  }
158
167
  });
159
168
  };
160
- DocumentGridComponent.prototype.listDocuments = function () {
169
+ DocumentGridComponent.prototype.listDocuments = function (isDelete) {
161
170
  var _this = this;
162
171
  this.documentService.list({
163
172
  filterQuery: "schedulingId eq '" + this.agenda.id + "'"
164
173
  })
165
174
  .subscribe(function (contents) {
166
- _this.gridData = [];
175
+ var _a;
176
+ _this.gridData = isDelete ? _this.gridData.filter(function (item) { return !item.id; }) : [];
167
177
  if (contents.totalElements > 0) {
168
- _this.gridData = contents.contents;
178
+ (_a = _this.gridData).push.apply(_a, tslib_1.__spread(contents.contents));
169
179
  _this.documentTotalRecords = contents.totalElements;
170
180
  }
171
181
  else {
172
182
  _this.documentTotalRecords = _this.gridData.length;
173
183
  }
174
- _this.disabled = true;
184
+ var hasElementWithoutId = _this.gridData.some(function (item) { return !item.id; });
185
+ _this.disabled = !hasElementWithoutId;
175
186
  _this.loading = false;
176
187
  });
177
188
  };
@@ -266,7 +277,7 @@ var DocumentGridComponent = /** @class */ (function () {
266
277
  DocumentGridComponent = tslib_1.__decorate([
267
278
  Component({
268
279
  selector: 'document-grid',
269
- template: "<div *ngIf=\"this.processType === 'RECEBIMENTO_WMS'; else processNotConfigured\">\n <p-panel>\n <p-header>\n <div class=\"buttons\">\n <div>\n <s-button\n label=\"{{'yms.int.wms_add_document' | translate}}\"\n priority=\"primary\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [disabled]=\"!enableButtonIsClienteExterno\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || selection.length !== 1\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [disabled]=\"!selection || !selection.length || !enableButtonIsClienteExterno\"\n (click)=\"onDelete()\">\n </s-button>\n </div>\n <s-button\n id=\"refresh-button\"\n priority=\"default\"\n iconClass=\"fa fa-refresh\"\n (onClick)=\"listDocuments()\"\n >\n </s-button>\n </div>\n </p-header>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\" *ngIf=\"gridData && gridData.length; else emptyList\">\n <p-table #documentTable [value]=\"gridData\"\n [columns]=\"gridColumns\" dataKey=\"id\" [lazy]=\"true\" [scrollable]=\"true\" [resizableColumns]=\"true\"\n sortMode=\"multiple\" [paginator]=\"true\" [totalRecords]=\"documentTotalRecords\" rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\" [(selection)]=\"selection\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\"/>\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th id=\"checkbox\" class=\"table-checkbox\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th id=\"col\" *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"table-checkbox\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let column of getGridColumns()\" (click)=\"selection = [rowData]\">\n <span>{{ rowData[ column.field ] }}</span>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [translate]=\"'total_records'\" [translateParams]=\"{ value: documentTotalRecords }\"></span>\n </ng-template>\n </p-table> \n </div>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\">\n </register-document> \n <insert-key [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\" [(visible)]=\"visibleInvoiceKey\"></insert-key>\n </p-panel>\n</div>\n <div class=\"button-save\">\n <s-button \n priority=\"primary\" [label]=\"'save' | translate\"\n [disabled]=\"disabled || !this.gridData || !enableButtonIsClienteExterno\"\n (click)=\"save()\">\n </s-button>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\">\n </register-document> \n <insert-key [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\" [(visible)]=\"visibleInvoiceKey\"></insert-key>\n\n<ng-template #emptyList>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\" [title]=\"'detail_empty_state_title' | translate\"\n [description]=\"'detail_empty_state_description' | translate\">\n </s-empty-state>\n </div>\n</ng-template>\n\n<ng-template #processNotConfigured>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\"\n [title]=\"'yms.int.wms_there_no_process_type_configured_for_this_type_scheduling' | translate\"\n >\n </s-empty-state>\n </div>\n</ng-template>",
280
+ template: "<div *ngIf=\"this.processType === 'RECEBIMENTO_WMS'; else processNotConfigured\">\n <p-panel>\n <p-header>\n <div class=\"buttons\">\n <div>\n <s-button\n label=\"{{'yms.int.wms_add_document' | translate}}\"\n priority=\"primary\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [disabled]=\"!enableButtonIsClienteExterno\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || selection.length !== 1\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [disabled]=\"!selection || !selection.length || !enableButtonIsClienteExterno\"\n (click)=\"onDelete()\">\n </s-button>\n </div>\n <s-button\n id=\"refresh-button\"\n priority=\"default\"\n iconClass=\"fa fa-refresh\"\n (onClick)=\"listDocuments(false)\"\n >\n </s-button>\n </div>\n </p-header>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\" *ngIf=\"gridData && gridData.length; else emptyList\">\n <p-table #documentTable [value]=\"gridData\"\n [columns]=\"gridColumns\" dataKey=\"key\" [lazy]=\"true\" [scrollable]=\"true\" [resizableColumns]=\"true\"\n sortMode=\"multiple\" [paginator]=\"true\" [totalRecords]=\"documentTotalRecords\" rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\" [(selection)]=\"selection\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\"/>\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th id=\"checkbox\" class=\"table-checkbox\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th id=\"col\" *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"table-checkbox\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *ngFor=\"let column of getGridColumns()\" (click)=\"selection = [rowData]\">\n <span>{{ rowData[ column.field ] }}</span>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [translate]=\"'total_records'\" [translateParams]=\"{ value: documentTotalRecords }\"></span>\n </ng-template>\n </p-table> \n </div>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\">\n </register-document> \n <insert-key [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\" [(visible)]=\"visibleInvoiceKey\"></insert-key>\n </p-panel>\n</div>\n <div class=\"button-save\">\n <s-button \n priority=\"primary\" [label]=\"'save' | translate\"\n [disabled]=\"disabled || !this.gridData || !enableButtonIsClienteExterno\"\n (click)=\"save()\">\n </s-button>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\">\n </register-document> \n <insert-key [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\" [(visible)]=\"visibleInvoiceKey\"></insert-key>\n\n<ng-template #emptyList>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\" [title]=\"'detail_empty_state_title' | translate\"\n [description]=\"'detail_empty_state_description' | translate\">\n </s-empty-state>\n </div>\n</ng-template>\n\n<ng-template #processNotConfigured>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\"\n [title]=\"'yms.int.wms_there_no_process_type_configured_for_this_type_scheduling' | translate\"\n >\n </s-empty-state>\n </div>\n</ng-template>",
270
281
  styles: [".buttons{display:flex;justify-content:space-between}.center{flex-direction:column;text-align:center}.ui-g{display:block}.button-save{margin:5px 0}#refresh-button{color:#fff}.table-checkbox{width:50px}"]
271
282
  }),
272
283
  tslib_1.__metadata("design:paramtypes", [TranslateService,
@@ -279,4 +290,4 @@ var DocumentGridComponent = /** @class */ (function () {
279
290
  return DocumentGridComponent;
280
291
  }());
281
292
  export { DocumentGridComponent };
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBb0Msa0JBQWtCLEVBQWUsTUFBTSxrREFBa0QsQ0FBQztBQUNySSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBWSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sc0NBQXNDLENBQUM7QUFPdkY7SUF5Q0ksK0JBQ3FCLFNBQTJCLEVBQzNCLGVBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsYUFBNEI7UUFMNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQs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VHlwZUJ5U2NoZWR1bGluZ091dHB1dCwgSW50ZWdyYXRpb25TZXJ2aWNlLCBQcm9jZXNzVHlwZSB9IGZyb20gJy4vLi4vLi4vZW50aXRpZXMvaW50ZWdyYXRpb24vaW50ZWdyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQge0RvY3VtZW50IH0gZnJvbSBcIi4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50XCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IEFnZW5kYVNlcnZpY2UsIElzQ2xpZW50ZUV4dGVybm8gfSBmcm9tICcuLi8uLi9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvY3VtZW50LWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgICBASW5wdXQoKSBhZ2VuZGE7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQE91dHB1dCgpIHZpc2libGVJbnZvaWNlS2V5OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlRG9jdW1lbnRSZWdpc3RlcjogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB2aWV3RG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZG9jdW1lbnRUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IGFueTtcbiAgICBwdWJsaWMgZ3JpZERhdGE6IERvY3VtZW50W10gPSBbXTtcbiAgICBwdWJsaWMgc2VsZWN0aW9uOiBEb2N1bWVudFtdO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHB1YmxpYyBlZGl0OiBib29sZWFuO1xuICAgIHB1YmxpYyBwcm9jZXNzVHlwZTogUHJvY2Vzc1R5cGU7XG4gICAgcHJpdmF0ZSBpc0NsaWVudGVFeHRlcm5vOiBib29sZWFuO1xuICAgIHB1YmxpYyBlbmFibGVCdXR0b25Jc0NsaWVudGVFeHRlcm5vID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBAVmlld0NoaWxkKFwiZG9jdW1lbnRUYWJsZVwiKVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tVGVtcGxhdGVcIilcbiAgICBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tRmlsdGVyRmllbGRzXCIpXG4gICAgcHVibGljIGN1c3RvbUZpbHRlckZpZWxkczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQ29sZ3JvdXBcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZENvbGdyb3VwOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRIZWFkZXJcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEhlYWRlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQm9keVwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnRlZ3JhdGlvblNlcnZpY2U6IEludGVncmF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZ2VuZGFTZXJ2aWNlOiBBZ2VuZGFTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyaWZ5Q2xpZW50ZUV4dGVybm8oKTtcbiAgICAgICAgdGhpcy5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZygpO1xuICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLmdldEdyaWRDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2ZXJpZnlDbGllbnRlRXh0ZXJubygpIHtcbiAgICAgICAgdGhpcy5hZ2VuZGFTZXJ2aWNlLmlzQ2xpZW50ZUV4dGVybm8oKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IElzQ2xpZW50ZUV4dGVybm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNDbGllbnRlRXh0ZXJubyA9IHJlc3VsdC5pc0NsaWVudGVFeHRlcm5vO1xuICAgICAgICAgICAgdGhpcy5jYW50RWRpdFN0YXR1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKCkge1xuICAgICAgICB0aGlzLmludGVncmF0aW9uU2VydmljZS5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZyh0aGlzLmFnZW5kYS50aXBvQWdlbmRhbWVudG8uaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0KSA9PiB0aGlzLnByb2Nlc3NUeXBlID0gcmVzdWx0LnByb2Nlc3NUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2VEb2N1bWVudChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5wdXNoKGRvY3VtZW50KTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FudEVkaXRTdGF0dXMoKSB7XG4gICAgICAgIGNvbnN0IGNhbnRFZGl0U3RhdHVzID0gW1xuICAgICAgICAgICAgJ0NBTkNFTEFETycsXG4gICAgICAgICAgICAnRU1fRVhFQ1VDQU8nLFxuICAgICAgICAgICAgJ0NPTkNMVUlETycsXG4gICAgICAgICAgICAnQUdVQVJEQU5ET19QT1JfVkFMSURBQ0FPJ1xuICAgICAgICBdLmluY2x1ZGVzKHRoaXMuYWdlbmRhLnN0YXR1cy50b1N0cmluZygpKTtcblxuICAgICAgICBpZihjYW50RWRpdFN0YXR1cykge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVCdXR0b25Jc0NsaWVudGVFeHRlcm5vID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aW9ucygpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5jaGVja1dtc1N5c3RlbUludmFsaWQoKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3NlYXJjaFwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUludm9pY2VLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYSBmYS1zZWFyY2hcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5jaGVja1dtc1N5c3RlbUludmFsaWQoKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2FkZF9kb2N1bWVudF9yZWdpc3RlclwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYXMgZmEtcGVuLXNxdWFyZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrV21zU3lzdGVtSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMud21zU3lzdGVtICYmIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uTk9ORSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIHZpZXcoKSB7XG4gICAgICAgIHRoaXMudmlld0RvY3VtZW50LmVtaXQodGhpcy5zZWxlY3Rpb25bMF0pO1xuICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lZGl0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmUoKSB7XG4gICAgICAgIGlmKHRoaXMuZ3JpZERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIGlmKCFkYXRhLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFkYXRhLnNjaGVkdWxpbmdJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zY2hlZHVsaW5nSWQgPSB0aGlzLmFnZW5kYS5pZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkYXRhLmtleSA9IHRoaXMudXBkYXRlS2V5QnlXbXMoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmluc2VydChkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlKFwic3VjY2Vzc1wiLCBcInNhdmVkX21lc3NhZ2VfdGl0bGVcIiwgXCJzYXZlZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlS2V5QnlXbXMoZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFkYXRhLmtleSkge1xuICAgICAgICAgICAgZGF0YS5rZXkgPSBkYXRhLmludm9pY2VLZXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uV0lTKSB7XG4gICAgICAgICAgICBkYXRhLmtleSA9IGAke2RhdGEuaW52b2ljZU51bWJlcn06JHtkYXRhLmludm9pY2VTZXJpYWxOdW1iZXJ9OiR7ZGF0YS5wYXJ0bmVyRG9jdW1lbnR9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YS5rZXk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGVsZXRlKCkge1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiZGVsZXRlX2NvbmZpcm1hdGlvbl9tZXNzYWdlXCIpLFxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiZGVsZXRlX2NvbmZpcm1hdGlvbl90aXRsZVwiKSxcbiAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnRJZklkVW5kZmluZWQoKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JrSm9pbih0aGlzLnNlbGVjdGlvbi5tYXAoZG9jdW1lbnQgPT4gdGhpcy5kb2N1bWVudFNlcnZpY2UuZGVsZXRlKGRvY3VtZW50LmlkKSkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJkZWxldGVkX21lc3NhZ2VfdGl0bGVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJkZWxldGVkX21lc3NhZ2VfY29udGVudFwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0RG9jdW1lbnRzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRG9jdW1lbnRJZklkVW5kZmluZWQoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZS5pZCkge1xuICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5saXN0KHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5OiBgc2NoZWR1bGluZ0lkIGVxICcke3RoaXMuYWdlbmRhLmlkfSdgXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBbXTtcbiAgICAgICAgICAgIGlmKGNvbnRlbnRzLnRvdGFsRWxlbWVudHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGNvbnRlbnRzLmNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gdGhpcy5ncmlkRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZENvbHVtbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzV21zU2VuaW9yQ29ubmVjdCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHsgZmllbGQ6IFwia2V5XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3B1cmNoYXNlT3JkZXJcIikgfSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldENvbHVtblBhcnRuZXIoKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzV21zV0lTKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZUtleVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX2tleVwiKSB9LFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwib3duZXJOYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X293bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwib3duZXJEb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9vd25lcl9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlTnVtYmVyXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2VfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VTZXJpYWxOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9zZXJpYWxfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtblBhcnRuZXIoKSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXROYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2xvZ2lzdGNfdW5pdF9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImxvZ2lzdGNVbml0RG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X2RvY3VtZW50XCIpIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5QYXJ0bmVyKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9wYXJ0bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwicGFydG5lckRvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXSVMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwcml2YXRlIG1lc3NhZ2Uoc2V2ZXJpdHk6IHN0cmluZywgc3VtbWFyeTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eSxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoc3VtbWFyeSksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZGV0YWlsKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFZLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBb0Msa0JBQWtCLEVBQWUsTUFBTSxrREFBa0QsQ0FBQztBQU9ySTtJQXlDSSwrQkFDcUIsU0FBMkIsRUFDM0IsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsbUJBQXdDLEVBQ3hDLGtCQUFzQyxFQUN0QyxhQUE0QjtRQUw1QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixt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QU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdFJRO1FBQVIsS0FBSyxFQUFFOzt5REFBUTtJQUNQO1FBQVIsS0FBSyxFQUFFOzs0REFBc0I7SUFDcEI7UUFBVCxNQUFNLEVBQUU7O29FQUE0QjtJQUMzQjtRQUFULE1BQU0sRUFBRTs7MEVBQWtDO0lBRWpDO1FBQVQsTUFBTSxFQUFFOzBDQUFlLFlBQVk7K0RBQWdDO0lBaUJwRTtRQURDLFNBQVMsQ0FBQyxlQUFlLENBQUM7MENBQ2IsS0FBSzt3REFBQztJQUdwQjtRQURDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQzswQ0FDTCxXQUFXO2lFQUFNO0lBR3hDO1FBREMsU0FBUyxDQUFDLG9CQUFvQixDQUFDOzBDQUNMLFdBQVc7cUVBQU07SUFHNUM7UUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7MENBQ0wsV0FBVztxRUFBTTtJQUc1QztRQURDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzswQ0FDTCxXQUFXO21FQUFNO0lBRzFDO1FBREMsU0FBUyxDQUFDLGdCQUFnQixDQUFDOzBDQUNMLFdBQVc7aUVBQU07SUF2Qy9CLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6QiwycUxBQTZDOztTQUVoRCxDQUFDO2lEQTJDa0MsZ0JBQWdCO1lBQ1YsZUFBZTtZQUNoQixjQUFjO1lBQ1QsbUJBQW1CO1lBQ3BCLGtCQUFrQjtZQUN2QixhQUFhO09BL0N4QyxxQkFBcUIsQ0F5UmpDO0lBQUQsNEJBQUM7Q0FBQSxBQXpSRCxJQXlSQztTQXpSWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFnZW5kYVNlcnZpY2UsIElzQ2xpZW50ZUV4dGVybm8gfSBmcm9tICcuLi8uLi9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnRcIjtcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0LCBJbnRlZ3JhdGlvblNlcnZpY2UsIFByb2Nlc3NUeXBlIH0gZnJvbSAnLi8uLi8uLi9lbnRpdGllcy9pbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb2N1bWVudC1ncmlkJyxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQge1xuXG4gICAgQElucHV0KCkgYWdlbmRhO1xuICAgIEBJbnB1dCgpIHdtc1N5c3RlbTogV21zU3lzdGVtO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlSW52b2ljZUtleTogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZURvY3VtZW50UmVnaXN0ZXI6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgdmlld0RvY3VtZW50OiBFdmVudEVtaXR0ZXI8RG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGRvY3VtZW50VG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcHVibGljIGdyaWRDb2x1bW5zOiBhbnk7XG4gICAgcHVibGljIGdyaWREYXRhOiBEb2N1bWVudFtdID0gW107XG4gICAgcHVibGljIHNlbGVjdGlvbjogRG9jdW1lbnRbXTtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICBwdWJsaWMgZWRpdDogYm9vbGVhbjtcbiAgICBwdWJsaWMgcHJvY2Vzc1R5cGU6IFByb2Nlc3NUeXBlO1xuICAgIHByaXZhdGUgaXNDbGllbnRlRXh0ZXJubzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlQnV0dG9uSXNDbGllbnRlRXh0ZXJubyA9IHRydWU7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgQFZpZXdDaGlsZChcImRvY3VtZW50VGFibGVcIilcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbVRlbXBsYXRlXCIpXG4gICAgcHVibGljIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUZpbHRlckZpZWxkc1wiKVxuICAgIHB1YmxpYyBjdXN0b21GaWx0ZXJGaWVsZHM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZENvbGdyb3VwXCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRDb2xncm91cDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkSGVhZGVyXCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZEJvZHlcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEJvZHk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25TZXJ2aWNlOiBJbnRlZ3JhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWdlbmRhU2VydmljZTogQWdlbmRhU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52ZXJpZnlDbGllbnRlRXh0ZXJubygpO1xuICAgICAgICB0aGlzLmdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKCk7XG4gICAgICAgIHRoaXMubGlzdERvY3VtZW50cyhmYWxzZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5nZXRHcmlkQ29sdW1ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmVyaWZ5Q2xpZW50ZUV4dGVybm8oKSB7XG4gICAgICAgIHRoaXMuYWdlbmRhU2VydmljZS5pc0NsaWVudGVFeHRlcm5vKClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBJc0NsaWVudGVFeHRlcm5vKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzQ2xpZW50ZUV4dGVybm8gPSByZXN1bHQuaXNDbGllbnRlRXh0ZXJubztcbiAgICAgICAgICAgIHRoaXMuY2FudEVkaXRTdGF0dXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZygpIHtcbiAgICAgICAgdGhpcy5pbnRlZ3JhdGlvblNlcnZpY2UuZ2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmcodGhpcy5hZ2VuZGEudGlwb0FnZW5kYW1lbnRvLmlkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBHZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZ091dHB1dCkgPT4gdGhpcy5wcm9jZXNzVHlwZSA9IHJlc3VsdC5wcm9jZXNzVHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlRG9jdW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgICAgIGNvbnN0IGR1cGxpY2F0ZURvY3VtZW50ID0gdGhpcy5ncmlkRGF0YS5maW5kKGdyaWREYXRhID0+IGdyaWREYXRhLmtleSA9PT0gZG9jdW1lbnQua2V5KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZURvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdID0gZG9jdW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEucHVzaChkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlKFwic3VjY2Vzc1wiLCBcInltcy5pbnQud21zX3NhdmVkX2RvY3VtZW50X21lc3NhZ2VfdGl0bGVcIiwgXCJ5bXMuaW50Lndtc19zdWNjZXNzX21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbnRFZGl0U3RhdHVzKCkge1xuICAgICAgICBjb25zdCBjYW50RWRpdFN0YXR1cyA9IFtcbiAgICAgICAgICAgICdDQU5DRUxBRE8nLFxuICAgICAgICAgICAgJ0VNX0VYRUNVQ0FPJyxcbiAgICAgICAgICAgICdDT05DTFVJRE8nLFxuICAgICAgICAgICAgJ0FHVUFSREFORE9fUE9SX1ZBTElEQUNBTydcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLmFnZW5kYS5zdGF0dXMudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYoY2FudEVkaXRTdGF0dXMpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQnV0dG9uSXNDbGllbnRlRXh0ZXJubyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjdGlvbnMoKTogTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19zZWFyY2hcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVJbnZvaWNlS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmEgZmEtc2VhcmNoXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19hZGRfZG9jdW1lbnRfcmVnaXN0ZXJcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmFzIGZhLXBlbi1zcXVhcmVcIlxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja1dtc1N5c3RlbUludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSAmJiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLk5PTkUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJvcChvYmo6IGFueSwgcGF0aDogYW55KSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdDogYW55LCBwcm9wOiBhbnkpID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyB2aWV3KCkge1xuICAgICAgICB0aGlzLnZpZXdEb2N1bWVudC5lbWl0KHRoaXMuc2VsZWN0aW9uWzBdKTtcbiAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IHRydWU7XG4gICAgICAgIHRoaXMuZWRpdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICBpZih0aGlzLmdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBpZighZGF0YS5pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZighZGF0YS5zY2hlZHVsaW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5rZXkgPSB0aGlzLnVwZGF0ZUtleUJ5V21zKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5pbnNlcnQoZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZShcInN1Y2Nlc3NcIiwgXCJ5bXMuaW50Lndtc19zYXZlZF9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCIsIFwic2F2ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdERvY3VtZW50cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUtleUJ5V21zKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0YS5rZXkpIHtcbiAgICAgICAgICAgIGRhdGEua2V5ID0gZGF0YS5pbnZvaWNlS2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUykge1xuICAgICAgICAgICAgZGF0YS5rZXkgPSBgJHtkYXRhLmludm9pY2VOdW1iZXJ9OiR7ZGF0YS5pbnZvaWNlU2VyaWFsTnVtYmVyfToke2RhdGEucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGEua2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZVwiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZURvY3VtZW50SWZJZFVuZGZpbmVkKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4odGhpcy5zZWxlY3Rpb24ubWFwKGRvY3VtZW50ID0+IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmRlbGV0ZShkb2N1bWVudC5pZCkpKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiZGVsZXRlZF9tZXNzYWdlX3RpdGxlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiZGVsZXRlZF9tZXNzYWdlX2NvbnRlbnRcIiksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdERvY3VtZW50cyh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudElmSWRVbmRmaW5lZCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhHcmlkRGF0YSA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KGRvY3VtZW50ID0+IGRvY3VtZW50LmtleSA9PT0gdmFsdWUua2V5KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuc3BsaWNlKGluZGV4R3JpZERhdGEsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKGlzRGVsZXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmxpc3Qoe1xuICAgICAgICAgICAgZmlsdGVyUXVlcnk6IGBzY2hlZHVsaW5nSWQgZXEgJyR7dGhpcy5hZ2VuZGEuaWR9J2BcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGlzRGVsZXRlID8gdGhpcy5ncmlkRGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pZCkgOiBbXTtcblxuICAgICAgICAgICAgaWYoY29udGVudHMudG90YWxFbGVtZW50cyA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goLi4uY29udGVudHMuY29udGVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gdGhpcy5ncmlkRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFbGVtZW50V2l0aG91dElkID0gdGhpcy5ncmlkRGF0YS5zb21lKGl0ZW0gPT4gIWl0ZW0uaWQpO1xuXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gIWhhc0VsZW1lbnRXaXRob3V0SWQ7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEdyaWRDb2x1bW5zKCkge1xuICAgICAgICBpZiAodGhpcy5pc1dtc1NlbmlvckNvbm5lY3QoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB7IGZpZWxkOiBcImtleVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19wdXJjaGFzZU9yZGVyXCIpIH0sXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5QYXJ0bmVyKClcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1dtc1dJUygpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VLZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9rZXlcIikgfSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCksXG4gICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9vd25lcl9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZU51bWJlclwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX251bWJlclwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlU2VyaWFsTnVtYmVyXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2Vfc2VyaWFsX251bWJlclwiKSB9LFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5QYXJ0bmVyKCksXG4gICAgICAgICAgICB7IGZpZWxkOiBcImxvZ2lzdGNVbml0TmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9sb2dpc3RjX3VuaXRfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJsb2dpc3RjVW5pdERvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2xvZ2lzdGNfdW5pdF9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uUGFydG5lcigpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgZmllbGQ6IFwicGFydG5lck5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfcGFydG5lcl9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcInBhcnRuZXJEb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9wYXJ0bmVyX2RvY3VtZW50XCIpIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2VuaW9yQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zV0lTKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtZXNzYWdlKHNldmVyaXR5OiBzdHJpbmcsIHN1bW1hcnk6IHN0cmluZywgZGV0YWlsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHksXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHN1bW1hcnkpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRldGFpbCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,10 +1,12 @@
1
1
  import * as tslib_1 from "tslib";
2
- import { DocumentService } from './../../../entities/document/document.service';
3
2
  import { Component, EventEmitter, Input, Output } from "@angular/core";
4
3
  import { FormBuilder } from "@angular/forms";
5
- import { MessageService } from 'primeng/api';
6
4
  import { TranslateService } from '@ngx-translate/core';
5
+ import { MessageService } from 'primeng/api';
6
+ import { throwError } from "rxjs";
7
+ import { catchError, finalize } from 'rxjs/operators';
7
8
  import { WmsSystem } from '../../../entities/wms-system/wms-system';
9
+ import { DocumentService } from './../../../entities/document/document.service';
8
10
  var InsertKeyComponent = /** @class */ (function () {
9
11
  function InsertKeyComponent(formBuilder, documentService, messageService, translate) {
10
12
  this.formBuilder = formBuilder;
@@ -14,6 +16,7 @@ var InsertKeyComponent = /** @class */ (function () {
14
16
  this.document = new EventEmitter();
15
17
  this.visible = new EventEmitter();
16
18
  this.visibleChange = new EventEmitter();
19
+ this.isLoading = false;
17
20
  }
18
21
  InsertKeyComponent.prototype.ngOnInit = function () {
19
22
  this.formGroup = this.formBuilder.group({
@@ -31,11 +34,11 @@ var InsertKeyComponent = /** @class */ (function () {
31
34
  return this.wmsSystem === WmsSystem.SENIOR_CONNECT;
32
35
  };
33
36
  InsertKeyComponent.prototype.add = function () {
34
- this.visibleChange.emit(false);
35
37
  this.searchKey();
36
38
  };
37
39
  InsertKeyComponent.prototype.searchKey = function () {
38
40
  var _this = this;
41
+ this.isLoading = true;
39
42
  var key = {
40
43
  documentKeys: [this.formGroup.get('key').value],
41
44
  invoices: [{
@@ -47,8 +50,25 @@ var InsertKeyComponent = /** @class */ (function () {
47
50
  size: 0,
48
51
  offset: 0
49
52
  };
50
- this.documentService.findDocuments(key).subscribe(function (content) {
51
- if (content.totalElements < 1) {
53
+ this.documentService.findDocuments(key)
54
+ .pipe(catchError(function (err) {
55
+ if (err.error && err.error.message.includes("404")) {
56
+ _this.message("error", "yms.int.wms_error_search_document_message_header", "yms.int.wms_error_search_document_not_found_message_content");
57
+ }
58
+ else {
59
+ _this.messageService.add({
60
+ severity: "error",
61
+ summary: _this.translate.instant("yms.int.wms_error_search_document_message_header"),
62
+ detail: _this.translate.instant("yms.int.wms_error_unknown_search_document_message_content") + err.error.message,
63
+ });
64
+ }
65
+ return throwError(err);
66
+ }), finalize(function () {
67
+ _this.isLoading = false;
68
+ }))
69
+ .subscribe(function (content) {
70
+ _this.visibleChange.emit(false);
71
+ if (!content || content.totalElements < 1) {
52
72
  _this.message("warn", "yms.int.wms_insert_key_warning_message_header", "yms.int.wms_insert_key_warning_message_description");
53
73
  return;
54
74
  }
@@ -67,6 +87,9 @@ var InsertKeyComponent = /** @class */ (function () {
67
87
  InsertKeyComponent.prototype.cancel = function () {
68
88
  this.visibleChange.emit(false);
69
89
  };
90
+ InsertKeyComponent.prototype.onDialogShow = function () {
91
+ this.formGroup.reset();
92
+ };
70
93
  tslib_1.__decorate([
71
94
  Output(),
72
95
  tslib_1.__metadata("design:type", EventEmitter)
@@ -86,7 +109,7 @@ var InsertKeyComponent = /** @class */ (function () {
86
109
  InsertKeyComponent = tslib_1.__decorate([
87
110
  Component({
88
111
  selector: "insert-key",
89
- template: "<form [formGroup]=\"formGroup\">\n <p-dialog [(visible)]=\"visible\" [modal]=\"true\" [draggable]=\"false\" (visibleChange)=\"cancel()\">\n <p-header>{{'yms.int.wms_search_document' | translate}} {{ wmsSystem }}</p-header>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" \n *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"key\">{{'yms.int.wms_insert_key_label' | translate}}</label>\n <input id=\"key\" class=\"size-input\" pInputText type=\"text\" formControlName=\"key\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsSeniorConnect()\">\n <label for=\"purchaseOrder\">{{'yms.int.wms_purchaseOrder' | translate}} </label>\n <input id=\"purchaseOrder\" class=\"size-input\" pInputText type=\"text\" formControlName=\"purchaseOrder\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"invoiceNumber\">{{'yms.int.wms_invoice_number' | translate}}</label>\n <input id=\"invoiceNumber\" class=\"size-input\" pInputText type=\"text\" formControlName=\"invoiceNumber\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"invoiceSerie\">{{'yms.int.wms_invoice_serie' | translate}}</label>\n <input id=\"invoiceSerie\" class=\"size-input\" pInputText type=\"text\" formControlName=\"invoiceSerie\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"partnerDocument\">{{'yms.int.wms_partner_document' | translate}}</label>\n <input id=\"partnerDocument\" class=\"size-input\" pInputText type=\"text\" formControlName=\"partnerDocument\">\n </div>\n <div class=\"separator\"></div>\n <div class=\"spacing-top\">\n <s-button pButton label=\"{{'yms.int.wms_search' | translate}}\" (click)=\"add()\"></s-button>\n <s-button\n type=\"button\"\n class=\"ui-button-link\"\n pButton label=\"{{'cancel' | translate}}\"\n (click)=\"cancel()\">\n </s-button>\n </div>\n </p-dialog>\n</form>",
112
+ template: "<form [formGroup]=\"formGroup\">\n <p-dialog [(visible)]=\"visible\" [modal]=\"true\" \n [draggable]=\"false\" (visibleChange)=\"cancel()\" (onShow)=\"onDialogShow()\">\n <p-header>{{'yms.int.wms_search_document' | translate}} {{ wmsSystem }}</p-header>\n <s-loading-state [loading]=\"isLoading\">\n <div class=\"flex py-2 justify-content-center spacing-bottom\" \n *ngIf=\"!isWmsSeniorConnect() && !isWmsWis()\">\n <label for=\"key\">{{'yms.int.wms_insert_key_label' | translate}}</label>\n <input id=\"key\" class=\"size-input\" pInputText type=\"text\" formControlName=\"key\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsSeniorConnect()\">\n <label for=\"purchaseOrder\">{{'yms.int.wms_purchaseOrder' | translate}} </label>\n <input id=\"purchaseOrder\" class=\"size-input\" pInputText type=\"text\" formControlName=\"purchaseOrder\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"invoiceNumber\">{{'yms.int.wms_invoice_number' | translate}}</label>\n <input id=\"invoiceNumber\" class=\"size-input\" pInputText type=\"text\" formControlName=\"invoiceNumber\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"invoiceSerie\">{{'yms.int.wms_invoice_serie' | translate}}</label>\n <input id=\"invoiceSerie\" class=\"size-input\" pInputText type=\"text\" formControlName=\"invoiceSerie\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"partnerDocument\">{{'yms.int.wms_partner_document' | translate}}</label>\n <input id=\"partnerDocument\" class=\"size-input\" pInputText type=\"text\" formControlName=\"partnerDocument\">\n </div>\n <div class=\"separator\"></div>\n <div class=\"spacing-top\">\n <s-button pButton label=\"{{'yms.int.wms_search' | translate}}\" (click)=\"add()\"></s-button>\n <s-button\n type=\"button\"\n class=\"ui-button-link\"\n pButton label=\"{{'cancel' | translate}}\"\n (click)=\"cancel()\">\n </s-button>\n </div>\n </s-loading-state>\n </p-dialog>\n\n</form>\n",
90
113
  styles: [".spacing-top{margin-top:10px}.spacing-bottom{margin-bottom:10px}.separator{width:100%;margin:5px 0;height:1px;background-color:#ccc}.size-input{width:480px}"]
91
114
  }),
92
115
  tslib_1.__metadata("design:paramtypes", [FormBuilder,
@@ -97,4 +120,4 @@ var InsertKeyComponent = /** @class */ (function () {
97
120
  return InsertKeyComponent;
98
121
  }());
99
122
  export { InsertKeyComponent };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBT3BFO0lBVUksNEJBQ3FCLFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLFNBQTJCO1FBSDNCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFidEMsYUFBUSxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELFlBQU8sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFVMUMsQ0FBQztJQUVKLHFDQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNoQixhQUFhLEVBQUUs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O1lBQ25CLGdCQUFnQjtPQWR2QyxrQkFBa0IsQ0E0RTlCO0lBQUQseUJBQUM7Q0FBQSxBQTVFRCxJQTRFQztTQTVFWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kRG9jdW1lbnRzSW5wdXQgfSBmcm9tICcuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2ZpbmQtZG9jdW1lbnRzLWlucHV0JztcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiaW5zZXJ0LWtleVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vaW5zZXJ0LWtleS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogWycuL2luc2VydC1rZXkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbnNlcnRLZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBkb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHZpc2libGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBrZXk6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAga2V5OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHB1cmNoYXNlT3JkZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZU51bWJlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlU2VyaWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiBbdW5kZWZpbmVkXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoS2V5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hLZXkoKSB7XG4gICAgICAgIGNvbnN0IGtleTogRmluZERvY3VtZW50c0lucHV0ID0ge1xuICAgICAgICAgICAgZG9jdW1lbnRLZXlzOiBbdGhpcy5mb3JtR3JvdXAuZ2V0KCdrZXknKS52YWx1ZV0sXG4gICAgICAgICAgICBpbnZvaWNlczogW3tcbiAgICAgICAgICAgICAgICBudW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZU51bWJlcicpLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNlcmlhbE51bWJlcjogdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlU2VyaWUnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IHRoaXMuZm9ybUdyb3VwLmdldCgncGFydG5lckRvY3VtZW50JykudmFsdWVcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgbG9naXN0Y1VuaXROYW1lOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzaXplOiAwLFxuICAgICAgICAgICAgb2Zmc2V0OiAwXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZmluZERvY3VtZW50cyhrZXkpLnN1YnNjcmliZSgoY29udGVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZihjb250ZW50LnRvdGFsRWxlbWVudHMgPCAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlKFwid2FyblwiLCBcInltcy5pbnQud21zX2luc2VydF9rZXlfd2FybmluZ19tZXNzYWdlX2hlYWRlclwiLCBcInltcy5pbnQud21zX2luc2VydF9rZXlfd2FybmluZ19tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5lbWl0KGNvbnRlbnQuY29udGVudHNbMF0pO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlKFwic3VjY2Vzc1wiLCBcInltcy5pbnQud21zX2luc2VydF9rZXlfc3VjY2Vzc19tZXNzYWdlX2hlYWRlclwiLCBcInltcy5pbnQud21zX3N1Y2Nlc3NfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWVzc2FnZShzdWNjZXNzOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiBzdWNjZXNzLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChoZWFkZXIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRlc2NyaXB0aW9uKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cbn1cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQVFoRjtJQVVJLDRCQUNxQixXQUF3QixFQUN4QixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixTQUEyQjtRQUgzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBYnRDLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSXRDLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFNdEIsQ0FB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LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy93bXMtc3lzdGVtL3dtcy1zeXN0ZW0nO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbmREb2N1bWVudHNJbnB1dCB9IGZyb20gJy4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZmluZC1kb2N1bWVudHMtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJpbnNlcnQta2V5XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pbnNlcnQta2V5LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5zZXJ0LWtleS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEluc2VydEtleUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpIGRvY3VtZW50OiBFdmVudEVtaXR0ZXI8RG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQElucHV0KCkgdmlzaWJsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBJbnB1dCgpIHdtc1N5c3RlbTogV21zU3lzdGVtO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGtleTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwdXJjaGFzZU9yZGVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VOdW1iZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZVNlcmllOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHBhcnRuZXJEb2N1bWVudDogW3VuZGVmaW5lZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zV2lzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2VuaW9yQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZCgpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hLZXkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaEtleSgpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGtleTogRmluZERvY3VtZW50c0lucHV0ID0ge1xuICAgICAgICAgICAgZG9jdW1lbnRLZXlzOiBbdGhpcy5mb3JtR3JvdXAuZ2V0KCdrZXknKS52YWx1ZV0sXG4gICAgICAgICAgICBpbnZvaWNlczogW3tcbiAgICAgICAgICAgICAgICBudW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZU51bWJlcicpLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNlcmlhbE51bWJlcjogdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlU2VyaWUnKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IHRoaXMuZm9ybUdyb3VwLmdldCgncGFydG5lckRvY3VtZW50JykudmFsdWVcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgbG9naXN0Y1VuaXROYW1lOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzaXplOiAwLFxuICAgICAgICAgICAgb2Zmc2V0OiAwXG4gICAgICAgIH07XG4gICAgXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmZpbmREb2N1bWVudHMoa2V5KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yICYmIGVyci5lcnJvci5tZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZShcImVycm9yXCIsIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfaGVhZGVyXCIsIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X25vdF9mb3VuZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19lcnJvcl9zZWFyY2hfZG9jdW1lbnRfbWVzc2FnZV9oZWFkZXJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19lcnJvcl91bmtub3duX3NlYXJjaF9kb2N1bWVudF9tZXNzYWdlX2NvbnRlbnRcIikrIGVyci5lcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG5cbiAgICAgICAgICAgIGlmICghY29udGVudCB8fCBjb250ZW50LnRvdGFsRWxlbWVudHMgPCAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlKFwid2FyblwiLCBcInltcy5pbnQud21zX2luc2VydF9rZXlfd2FybmluZ19tZXNzYWdlX2hlYWRlclwiLCBcInltcy5pbnQud21zX2luc2VydF9rZXlfd2FybmluZ19tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuZW1pdChjb250ZW50LmNvbnRlbnRzWzBdKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZShcInN1Y2Nlc3NcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3N1Y2Nlc3NfbWVzc2FnZV9oZWFkZXJcIiwgXCJ5bXMuaW50Lndtc19zdWNjZXNzX21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1lc3NhZ2Uoc3VjY2Vzczogc3RyaW5nLCBoZWFkZXI6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogc3VjY2VzcyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaGVhZGVyKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChkZXNjcmlwdGlvbiksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBvbkRpYWxvZ1Nob3coKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  import * as tslib_1 from "tslib";
2
- import { NgModule } from "@angular/core";
3
- import { InsertKeyComponent } from "./insert-key.component";
4
2
  import { CommonModule } from "@angular/common";
3
+ import { NgModule } from "@angular/core";
5
4
  import { ReactiveFormsModule } from "@angular/forms";
6
- import { ButtonModule } from "@seniorsistemas/angular-components";
7
5
  import { TranslateModule } from "@ngx-translate/core";
6
+ import { ButtonModule, LoadingStateModule } from "@seniorsistemas/angular-components";
8
7
  import { DialogModule, InputTextModule } from "primeng/primeng";
8
+ import { InsertKeyComponent } from "./insert-key.component";
9
9
  var InsertKeyModule = /** @class */ (function () {
10
10
  function InsertKeyModule() {
11
11
  }
@@ -17,7 +17,8 @@ var InsertKeyModule = /** @class */ (function () {
17
17
  ButtonModule,
18
18
  TranslateModule,
19
19
  DialogModule,
20
- InputTextModule
20
+ InputTextModule,
21
+ LoadingStateModule
21
22
  ],
22
23
  exports: [InsertKeyComponent],
23
24
  declarations: [InsertKeyComponent]
@@ -26,4 +27,4 @@ var InsertKeyModule = /** @class */ (function () {
26
27
  return InsertKeyModule;
27
28
  }());
28
29
  export { InsertKeyModule };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBY2hFO0lBQUE7SUFFQSxDQUFDO0lBRlksZUFBZTtRQVozQixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osZUFBZTtnQkFDZixZQUFZO2dCQUNaLGVBQWU7YUFDbEI7WUFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUM3QixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNyQyxDQUFDO09BQ1csZUFBZSxDQUUzQjtJQUFELHNCQUFDO0NBQUEsQUFGRCxJQUVDO1NBRlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEluc2VydEtleUNvbXBvbmVudCB9IGZyb20gXCIuL2luc2VydC1rZXkuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IERpYWxvZ01vZHVsZSwgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcHJpbWVuZ1wiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtJbnNlcnRLZXlDb21wb25lbnRdLFxuICAgIGRlY2xhcmF0aW9uczogW0luc2VydEtleUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSW5zZXJ0S2V5TW9kdWxlIHtcblxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBZTVEO0lBQUE7SUFFQSxDQUFDO0lBRlksZUFBZTtRQWIzQixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osZUFBZTtnQkFDZixZQUFZO2dCQUNaLGVBQWU7Z0JBQ2Ysa0JBQWtCO2FBQ3JCO1lBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDN0IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDckMsQ0FBQztPQUNXLGVBQWUsQ0FFM0I7SUFBRCxzQkFBQztDQUFBLEFBRkQsSUFFQztTQUZZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBMb2FkaW5nU3RhdGVNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlLCBJbnB1dFRleHRNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9wcmltZW5nXCI7XG5pbXBvcnQgeyBJbnNlcnRLZXlDb21wb25lbnQgfSBmcm9tIFwiLi9pbnNlcnQta2V5LmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgICAgIExvYWRpbmdTdGF0ZU1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW0luc2VydEtleUNvbXBvbmVudF0sXG4gICAgZGVjbGFyYXRpb25zOiBbSW5zZXJ0S2V5Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJbnNlcnRLZXlNb2R1bGUge1xuXG59XG4iXX0=
@@ -1,10 +1,10 @@
1
1
  import * as tslib_1 from "tslib";
2
2
  import { Component, EventEmitter, Input, Output } from "@angular/core";
3
3
  import { FormBuilder, Validators } from "@angular/forms";
4
- import { Document } from '../../../entities/document/document';
5
- import { MessageService } from 'primeng/api';
6
4
  import { TranslateService } from '@ngx-translate/core';
5
+ import { MessageService } from 'primeng/api';
7
6
  import { Agenda } from '../../../../erp-senior/core/entities/agenda/agenda';
7
+ import { Document } from '../../../entities/document/document';
8
8
  import { WmsSystem } from "../../../entities/wms-system/wms-system";
9
9
  var RegisterDocumentComponent = /** @class */ (function () {
10
10
  function RegisterDocumentComponent(fb, messageService, translateService) {
@@ -35,7 +35,6 @@ var RegisterDocumentComponent = /** @class */ (function () {
35
35
  };
36
36
  RegisterDocumentComponent.prototype.close = function () {
37
37
  this.visibleChange.emit(false);
38
- this.formGroup.reset();
39
38
  };
40
39
  RegisterDocumentComponent.prototype.setValuesFormGroup = function (document) {
41
40
  this.formGroup.get('key').setValue(document.key);
@@ -74,24 +73,16 @@ var RegisterDocumentComponent = /** @class */ (function () {
74
73
  if (this.agenda.id !== undefined) {
75
74
  value.schedulingId = this.agenda.id;
76
75
  }
77
- if (value.key === undefined) {
76
+ if (value.key === undefined || value.key === null) {
78
77
  value.key = value.invoiceKey;
79
78
  if (this.isWmsWis()) {
80
79
  value.key = value.invoiceNumber + ":" + value.invoiceSerialNumber + ":" + value.partnerDocument;
81
80
  }
82
81
  }
82
+ this.formGroup.reset();
83
83
  this.document.emit(Document.fromDto(value));
84
- this.successMessage();
85
- this.visibleChange.emit(false);
86
84
  }
87
85
  };
88
- RegisterDocumentComponent.prototype.successMessage = function () {
89
- this.messageService.add({
90
- severity: "success",
91
- summary: this.translateService.instant("yms.saved_message_title"),
92
- detail: this.translateService.instant("yms.int.wms_success_message_description"),
93
- });
94
- };
95
86
  RegisterDocumentComponent.prototype.isWmsWis = function () {
96
87
  return this.wmsSystem === WmsSystem.WIS;
97
88
  };
@@ -138,4 +129,4 @@ var RegisterDocumentComponent = /** @class */ (function () {
138
129
  return RegisterDocumentComponent;
139
130
  }());
140
131
  export { RegisterDocumentComponent };
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy93bXMvY29tcG9uZW50cy9kb2N1bWVudC1ncmlkL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBTXBFO0lBYUksbUNBQ3FCLEVBQWUsRUFDZixjQUE4QixFQUM5QixnQkFBa0M7UUFGbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBWDdDLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBUzFDLENBQUM7SUFFSiw0Q0FBUSxHQUFSO1FBQ0ksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCwrQ0FBVyxHQUFYO1FBQ0ksSUFB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dHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFnZW5kYSB9IGZyb20gJy4uLy4uLy4uLy4uL2VycC1zZW5pb3IvY29yZS9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhJztcbmltcG9ydCB7IFdtc1N5c3RlbSB9IGZyb20gXCIuLi8uLi8uLi9lbnRpdGllcy93bXMtc3lzdGVtL3dtcy1zeXN0ZW1cIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicmVnaXN0ZXItZG9jdW1lbnRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC5odG1sXCIsXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBASW5wdXQoKSB2aWV3RG9jdW1lbnQ6IERvY3VtZW50W107XG4gICAgQElucHV0KCkgZWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhZ2VuZGE6IEFnZW5kYTtcbiAgICBAT3V0cHV0KCkgZG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQElucHV0KCkgdmlzaWJsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBoaWRlU2F2ZUJ1dHRvbjogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRGb3JtR3JvdXAoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHZpc2liaWxpdHlDb25maWcoKSB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0ICYmIHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXNGb3JtR3JvdXAodGhpcy52aWV3RG9jdW1lbnRbMF0pO1xuICAgICAgICAgICAgdGhpcy5oaWRlU2F2ZUJ1dHRvbiA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlO1xuICAgICAgICB9IFxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZVNhdmVCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVzRm9ybUdyb3VwKGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2tleScpLnNldFZhbHVlKGRvY3VtZW50LmtleSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZUtleScpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VLZXkpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlTnVtYmVyKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlU2VyaWFsTnVtYmVyJykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZVNlcmlhbE51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnbG9naXN0Y1VuaXREb2N1bWVudCcpLnNldFZhbHVlKGRvY3VtZW50LmxvZ2lzdGNVbml0RG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2xvZ2lzdGNVbml0TmFtZScpLnNldFZhbHVlKGRvY3VtZW50LmxvZ2lzdGNVbml0TmFtZSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnbm90ZXMnKS5zZXRWYWx1ZShkb2N1bWVudC5ub3Rlcyk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY29kZScpLnNldFZhbHVlKGRvY3VtZW50LmNvZGUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJOYW1lJykuc2V0VmFsdWUoZG9jdW1lbnQucGFydG5lck5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnNldFZhbHVlKGRvY3VtZW50LnBhcnRuZXJEb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnb3duZXJEb2N1bWVudCcpLnNldFZhbHVlKGRvY3VtZW50Lm93bmVyRG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ293bmVyTmFtZScpLnNldFZhbHVlKGRvY3VtZW50Lm93bmVyTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBrZXk6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgaW52b2ljZUtleTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBzY2hlZHVsaW5nSWQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZU51bWJlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlU2VyaWFsTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0TmFtZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBsb2dpc3RjVW5pdERvY3VtZW50OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIG93bmVyTmFtZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBvd25lckRvY3VtZW50OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHBhcnRuZXJOYW1lOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHBhcnRuZXJEb2N1bWVudDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBub3RlczogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBjb2RlOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmUoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgaWYgKHZhbHVlLmlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFnZW5kYS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUua2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5rZXkgPSB2YWx1ZS5pbnZvaWNlS2V5O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzV21zV2lzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUua2V5ID0gYCR7dmFsdWUuaW52b2ljZU51bWJlcn06JHt2YWx1ZS5pbnZvaWNlU2VyaWFsTnVtYmVyfToke3ZhbHVlLnBhcnRuZXJEb2N1bWVudH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuZW1pdChEb2N1bWVudC5mcm9tRHRvKHZhbHVlKSk7XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NNZXNzYWdlKCk7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1Y2Nlc3NNZXNzYWdlKCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInltcy5zYXZlZF9tZXNzYWdlX3RpdGxlXCIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInltcy5pbnQud21zX3N1Y2Nlc3NfbWVzc2FnZV9kZXNjcmlwdGlvblwiKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zV2lzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2VuaW9yQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q7XG4gICAgfVxufVxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy93bXMvY29tcG9uZW50cy9kb2N1bWVudC1ncmlkL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBTXBFO0lBYUksbUNBQ3FCLEVBQWUsRUFDZixjQUE4QixFQUM5QixnQkFBa0M7UUFGbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBWDdDLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBUzFDLENBQUM7SUFFSiw0Q0FBUSxHQUFSO1FBQ0ksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCwrQ0FBVyxHQUFYO1FBQ0ksSUFB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QUMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFDTSw0Q0FBUSxHQUFmO1FBQ0ksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDNUMsQ0FBQztJQUVNLHNEQUFrQixHQUF6QjtRQUNJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsY0FBYyxDQUFDO0lBQ3ZELENBQUM7SUFuR1E7UUFBUixLQUFLLEVBQUU7O21FQUEwQjtJQUN6QjtRQUFSLEtBQUssRUFBRTs7MkRBQWU7SUFDZDtRQUFSLEtBQUssRUFBRTswQ0FBUyxNQUFNOzZEQUFDO0lBQ2Q7UUFBVCxNQUFNLEVBQUU7MENBQVcsWUFBWTsrREFBZ0M7SUFDdkQ7UUFBUixLQUFLLEVBQUU7O2dFQUFzQjtJQUNyQjtRQUFSLEtBQUssRUFBRTswQ0FBVSxZQUFZOzhEQUErQjtJQUNuRDtRQUFULE1BQU0sRUFBRTs7b0VBQW9DO0lBUnBDLHlCQUF5QjtRQUpyQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLGt2SUFBaUQ7U0FDcEQsQ0FBQztpREFlMkIsV0FBVztZQUNDLGNBQWM7WUFDWixnQkFBZ0I7T0FoQjlDLHlCQUF5QixDQXNHckM7SUFBRCxnQ0FBQztDQUFBLEFBdEdELElBc0dDO1NBdEdZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEFnZW5kYSB9IGZyb20gJy4uLy4uLy4uLy4uL2VycC1zZW5pb3IvY29yZS9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhJztcbmltcG9ydCB7IERvY3VtZW50IH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSBcIi4uLy4uLy4uL2VudGl0aWVzL3dtcy1zeXN0ZW0vd21zLXN5c3RlbVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJyZWdpc3Rlci1kb2N1bWVudFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJEb2N1bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAgIEBJbnB1dCgpIHZpZXdEb2N1bWVudDogRG9jdW1lbnRbXTtcbiAgICBASW5wdXQoKSBlZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFnZW5kYTogQWdlbmRhO1xuICAgIEBPdXRwdXQoKSBkb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBASW5wdXQoKSB2aXNpYmxlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGhpZGVTYXZlQnV0dG9uOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldEZvcm1Hcm91cCgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHlDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlzaWJpbGl0eUNvbmZpZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXQgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc0Zvcm1Hcm91cCh0aGlzLnZpZXdEb2N1bWVudFswXSk7XG4gICAgICAgICAgICB0aGlzLmhpZGVTYXZlQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmhpZGVTYXZlQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlc0Zvcm1Hcm91cChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdrZXknKS5zZXRWYWx1ZShkb2N1bWVudC5rZXkpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VLZXknKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlS2V5KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlTnVtYmVyJykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZU51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmlhbE51bWJlcicpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VTZXJpYWxOdW1iZXIpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2xvZ2lzdGNVbml0RG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5sb2dpc3RjVW5pdERvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdsb2dpc3RjVW5pdE5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5sb2dpc3RjVW5pdE5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ25vdGVzJykuc2V0VmFsdWUoZG9jdW1lbnQubm90ZXMpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvZGUnKS5zZXRWYWx1ZShkb2N1bWVudC5jb2RlKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyTmFtZScpLnNldFZhbHVlKGRvY3VtZW50LnBhcnRuZXJOYW1lKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5wYXJ0bmVyRG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ293bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5vd25lckRvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdvd25lck5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5vd25lck5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAga2V5OiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGludm9pY2VLZXk6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgc2NoZWR1bGluZ0lkOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VOdW1iZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZVNlcmlhbE51bWJlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBsb2dpc3RjVW5pdE5hbWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgbG9naXN0Y1VuaXREb2N1bWVudDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBvd25lck5hbWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgb3duZXJEb2N1bWVudDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyTmFtZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgbm90ZXM6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgY29kZTogW3VuZGVmaW5lZF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGlmICh2YWx1ZS5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hZ2VuZGEuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlLnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlLmtleSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlLmtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhbHVlLmtleSA9IHZhbHVlLmludm9pY2VLZXk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNXbXNXaXMoKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5rZXkgPSBgJHt2YWx1ZS5pbnZvaWNlTnVtYmVyfToke3ZhbHVlLmludm9pY2VTZXJpYWxOdW1iZXJ9OiR7dmFsdWUucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5lbWl0KERvY3VtZW50LmZyb21EdG8odmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG59XG4iXX0=