@seniorsistemas/yms-integration 1.19.0 → 1.19.1-5faa32ff-77ac-459b-a5e6-0b7a1b7fef2a

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 (64) hide show
  1. package/bundles/seniorsistemas-yms-integration.umd.js +858 -229
  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/index.js +4 -1
  6. package/esm2015/seniorsistemas-yms-integration.js +47 -38
  7. package/esm2015/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.js +32 -1
  8. package/esm2015/src/wms/components/document-grid/document-grid.component.js +163 -0
  9. package/esm2015/src/wms/components/document-grid/document-grid.module.js +35 -0
  10. package/esm2015/src/wms/components/document-grid/insert-key/insert-key.component.js +75 -0
  11. package/esm2015/src/wms/components/document-grid/insert-key/insert-key.module.js +26 -0
  12. package/esm2015/src/wms/components/document-grid/register-document/register-document.component.js +107 -0
  13. package/esm2015/src/wms/components/document-grid/register-document/register-document.module.js +32 -0
  14. package/esm2015/src/wms/entities/agenda/agenda.service.js +22 -0
  15. package/esm2015/src/wms/entities/document/document-dto.js +1 -0
  16. package/esm2015/src/wms/entities/document/document.js +39 -0
  17. package/esm2015/src/wms/entities/document/document.service.js +21 -0
  18. package/esm2015/src/wms/entities/document/find-documents-input.js +1 -0
  19. package/esm2015/src/wms/entities/entity-service.js +4 -0
  20. package/esm2015/src/wms/entities/wms-system/wms-system.js +9 -0
  21. package/esm2015/src/wms/form/form-wms.component.js +60 -0
  22. package/esm2015/src/wms/wms.module.js +68 -0
  23. package/esm5/index.js +4 -1
  24. package/esm5/seniorsistemas-yms-integration.js +47 -38
  25. package/esm5/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.js +32 -1
  26. package/esm5/src/wms/components/document-grid/document-grid.component.js +168 -0
  27. package/esm5/src/wms/components/document-grid/document-grid.module.js +38 -0
  28. package/esm5/src/wms/components/document-grid/insert-key/insert-key.component.js +77 -0
  29. package/esm5/src/wms/components/document-grid/insert-key/insert-key.module.js +29 -0
  30. package/esm5/src/wms/components/document-grid/register-document/register-document.component.js +109 -0
  31. package/esm5/src/wms/components/document-grid/register-document/register-document.module.js +35 -0
  32. package/esm5/src/wms/entities/agenda/agenda.service.js +25 -0
  33. package/esm5/src/wms/entities/document/document-dto.js +1 -0
  34. package/esm5/src/wms/entities/document/document.js +44 -0
  35. package/esm5/src/wms/entities/document/document.service.js +24 -0
  36. package/esm5/src/wms/entities/document/find-documents-input.js +1 -0
  37. package/esm5/src/wms/entities/entity-service.js +11 -0
  38. package/esm5/src/wms/entities/wms-system/wms-system.js +9 -0
  39. package/esm5/src/wms/form/form-wms.component.js +63 -0
  40. package/esm5/src/wms/wms.module.js +69 -0
  41. package/fesm2015/seniorsistemas-yms-integration.js +766 -185
  42. package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
  43. package/fesm5/seniorsistemas-yms-integration.js +799 -182
  44. package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
  45. package/index.d.ts +2 -0
  46. package/package.json +1 -1
  47. package/seniorsistemas-yms-integration.d.ts +46 -37
  48. package/seniorsistemas-yms-integration.metadata.json +1 -1
  49. package/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.d.ts +1 -0
  50. package/src/wms/components/document-grid/document-grid.component.d.ts +43 -0
  51. package/src/wms/components/document-grid/document-grid.module.d.ts +2 -0
  52. package/src/wms/components/document-grid/insert-key/insert-key.component.d.ts +22 -0
  53. package/src/wms/components/document-grid/insert-key/insert-key.module.d.ts +2 -0
  54. package/src/wms/components/document-grid/register-document/register-document.component.d.ts +28 -0
  55. package/src/wms/components/document-grid/register-document/register-document.module.d.ts +2 -0
  56. package/src/wms/entities/agenda/agenda.service.d.ts +9 -0
  57. package/src/wms/entities/document/document-dto.d.ts +16 -0
  58. package/src/wms/entities/document/document.d.ts +20 -0
  59. package/src/wms/entities/document/document.service.d.ts +11 -0
  60. package/src/wms/entities/document/find-documents-input.d.ts +7 -0
  61. package/src/wms/entities/entity-service.d.ts +3 -0
  62. package/src/wms/entities/wms-system/wms-system.d.ts +7 -0
  63. package/src/wms/form/form-wms.component.d.ts +18 -0
  64. package/src/wms/wms.module.d.ts +4 -0
@@ -64,6 +64,16 @@ var VisitanteComponent = /** @class */ (function () {
64
64
  driver: true
65
65
  });
66
66
  }
67
+ if (this.visitors.length > 0) {
68
+ this.visitors[0].visitor = {
69
+ name: mot.nome,
70
+ document: mot.cpf,
71
+ contact: this.getContatoMotorista(mot),
72
+ visitorSituation: VisitorSituation.CHECK_IN_PENDING,
73
+ documentType: this.getDocumentType(),
74
+ driver: true
75
+ };
76
+ }
67
77
  };
68
78
  VisitanteComponent.prototype.adicionaVisitantesGrid = function () {
69
79
  var _this = this;
@@ -156,6 +166,14 @@ var VisitanteComponent = /** @class */ (function () {
156
166
  if (visitor.document === visitante.document) {
157
167
  visitor.contact = visitante.contact;
158
168
  visitor.name = visitante.name;
169
+ var novoVisitante_1 = _this.buildVisitorCredentialsDto(visitor);
170
+ _this.visitors.forEach(function (result) {
171
+ if (result.visitor.document === novoVisitante_1.visitor.document) {
172
+ result.visitor.name = novoVisitante_1.visitor.name;
173
+ result.visitor.contact = novoVisitante_1.visitor.contact;
174
+ }
175
+ });
176
+ _this.visitorsChange.emit(_this.visitors);
159
177
  _this.visitorFound = true;
160
178
  }
161
179
  });
@@ -183,6 +201,19 @@ var VisitanteComponent = /** @class */ (function () {
183
201
  this.visitorsChange.emit(this.visitors);
184
202
  this.hasChange.emit(true);
185
203
  };
204
+ VisitanteComponent.prototype.buildVisitorCredentialsDto = function (visitor) {
205
+ var visitorCredentialsDto = new VisitorCredentialsDto();
206
+ var visitante = {
207
+ name: visitor.name,
208
+ document: visitor.document,
209
+ contact: visitor.contact,
210
+ documentType: visitor.documentType,
211
+ visitorSituation: visitor.visitorSituation,
212
+ driver: false
213
+ };
214
+ visitorCredentialsDto.visitor = visitante;
215
+ return visitorCredentialsDto;
216
+ };
186
217
  VisitanteComponent.prototype.model = function (visitante) {
187
218
  var _this = this;
188
219
  var isDriver = visitante.document === this.motorista.cpf;
@@ -381,4 +412,4 @@ var VisitanteComponent = /** @class */ (function () {
381
412
  return VisitanteComponent;
382
413
  }());
383
414
  export { VisitanteComponent };
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1saXN0L3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRyx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFFO0lBZ0JFLDRCQUNVLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzNCLG1CQUE4QztRQUYvQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTJCO1FBakJ4QyxhQUFRLEdBQTRCLEVBQUUsQ0FBQztRQUM5QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzdELGNBQVMsR0FBSSxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVE5QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPbEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQ2xELENBQUM7SUFFRCxxQ0FBUSxHQUFSO1FBQ0UsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0NBQWtCLEdBQWxCO1FBQUEsaUJBYUM7UUFaQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxvQkFBb0I7YUFDdEIsNkJBQTZCLEVBQUU7YUFDL0IsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFFBQVEsQ0FBQyxVQUFDLFNBQVM7WUFDakIsS0FBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sOENBQWlCLEdBQXpCLFVBQTBCLEdBQWM7UUFDdEMsSUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUNwRCxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxNQUFNLEVBQVgsQ0FBVyxDQUN0QixDQUFDO1FBRUYsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFLLGtCQUFrQixDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2hJLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUMxQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztnQkFDdEMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCO2dCQUNuRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEMsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDO1NBQ0g7YUFDSTtZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtnQkFDZCxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUc7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDO2dCQUN0QyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0I7Z0JBQ25ELFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztTQUNKO0lBRUgsQ0FBQztJQUVPLG1EQUFzQixHQUE5QjtRQUFBLGlCQTZDQztRQTVDQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLENBQUM7WUFFNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFZO2dCQUNqQyxJQUFJLEtBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO29CQUNuRCxLQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO3dCQUMxQixFQUFFLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJO3dCQUMxQixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRO3dCQUNsQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPO3dCQUNoQyxnQkFBZ0IsRUFBRSxLQUFJLENBQUMsbUJBQW1CLENBQ3hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ2pDO3dCQUNELFlBQVksRUFBRSxLQUFJLENBQUMsZUFBZSxFQUFFO3dCQUNwQyxNQUFNLEVBQUUsSUFBSTtxQkFDYixDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsS0FBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBTSxnQkFBYyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtZQUNsRCxnQkFBYyxDQUFDLE9BQU8sR0FBRztnQkFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtnQkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRztnQkFDNUIsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNqRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCO2dCQUNuRCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUE7WUFFRCxJQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ25ELFVBQUMsZ0JBQWdCLElBQUssT0FBQSxnQkFBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLENBQUMsUUFBUSxFQUE3RCxDQUE2RCxDQUNsRixDQUFDO1lBQ0YsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWMsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0Y7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxtREFBc0IsR0FBN0IsVUFBOEIsT0FBZ0I7UUFDNUMsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDOUMsVUFBQyxzQkFBc0I7WUFDckIsT0FBQSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxRQUFRO1FBQTVELENBQTRELENBQy9ELENBQUM7UUFFRixJQUFJLHFCQUFxQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNqRCxVQUFDLGNBQThCO1lBQzdCLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUF4QyxDQUF3QyxDQUMzQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQztJQUVPLGlFQUFvQyxHQUE1QztRQUFBLGlCQTJCQztRQTFCQyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMzQyxVQUFDLE9BQU8sSUFBSyxPQUFBLEtBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUEvQyxDQUErQyxDQUM3RCxDQUFDO1FBRUYsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtnQkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRztnQkFDNUIsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNqRCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0I7Z0JBQ25ELFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUMxQixFQUFFLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDckMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUM3QyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELGdCQUFnQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FDeEMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUM1QztnQkFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEMsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxzREFBeUIsR0FBaEMsVUFBaUMsT0FBZ0I7UUFBakQsaUJBY0M7UUFiQyxJQUFJLENBQUMsYUFBYTthQUNmLElBQUksQ0FBQyxzQkFBc0IscUJBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDNUIseUNBQXlDLENBQzFDLElBQ0UsWUFBWSxFQUNaLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFDbEM7YUFDRCxPQUFPLENBQUMsSUFBSSxDQUNYLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLE1BQU0sQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsS0FBSSxDQUFDLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxFQUEzQyxDQUEyQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLHdEQUEyQixHQUFsQyxVQUFtQyxTQUFrQjtRQUFyRCxpQkFzQ0M7UUFyQ0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFBLE9BQU87WUFDcEMsSUFBRyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDcEMsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUM5QixLQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBRyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFakMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFaEQsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQzVDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztTQUNoRTtRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRWxDLElBQU0sY0FBYyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtRQUNsRCxjQUFjLENBQUMsT0FBTyxHQUFHO1lBQ3ZCLElBQUksRUFBRyxTQUFTLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUcsU0FBUyxDQUFDLFFBQVE7WUFDN0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzFCLFlBQVksRUFBRyxTQUFTLENBQUMsWUFBWTtZQUNyQyxnQkFBZ0IsRUFBRyxTQUFTLENBQUMsZ0JBQWdCO1lBQzdDLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQTtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sa0NBQUssR0FBWixVQUFhLFNBQWtCO1FBQS9CLGlCQThCQztRQTdCQyxJQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBRTNELElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNwQyxVQUFDLHNCQUFzQjtZQUNyQixPQUFBLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLFFBQVE7UUFBOUQsQ0FBOEQsQ0FDakUsQ0FBQztRQUVGLE9BQU87WUFDTDtnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7Z0JBQ3JFLE9BQU8sRUFBRSxjQUFNLE9BQUEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBL0IsQ0FBK0I7Z0JBQzlDLE9BQU8sRUFBRyxDQUFDLFFBQVE7YUFDcEI7WUFDRDtnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pELE9BQU8sRUFBRSxjQUFNLE9BQUEsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFoQyxDQUFnQztnQkFDL0MsT0FBTyxFQUFHLENBQUMsUUFBUTthQUNwQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQztnQkFDbEYsT0FBTyxFQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQWxDLENBQWtDO2dCQUNqRCxPQUFPLEVBQUcsUUFBUSxJQUFJLENBQUMsUUFBUTthQUNoQztZQUNEO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztnQkFDOUQsT0FBTyxFQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQXBDLENBQW9DO2dCQUNuRCxPQUFPLEVBQUcsV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsZUFBZSxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDO2FBQy9HO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxpREFBb0IsR0FBNUIsVUFBNkIsU0FBYztRQUN6QyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQUMsYUFBYTtnQkFDOUQsSUFBSSxhQUFhLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxFQUFFLEVBQUU7b0JBQ25DLE9BQU8sU0FBUyxDQUFDO2lCQUNwQjtnQkFDRCxPQUFPLGFBQWEsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVRLCtDQUFrQixHQUF6QixVQUEwQixTQUFrQjtRQUE1QyxpQkFnQkM7UUFmQyxJQUFJLENBQUMsYUFBYTthQUNmLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzVCLDBDQUEwQyxDQUMzQztZQUNELElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsU0FBUzthQUNyQjtTQUNGLENBQUM7YUFDRCxPQUFPLENBQUMsSUFBSSxDQUNYLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLE1BQU0sQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLFVBQUMscUJBQTBCO1lBQ3RDLE9BQUEsS0FBSSxDQUFDLDhCQUE4QixDQUFDLHFCQUFxQixDQUFDO1FBQTFELENBQTBELENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sMkRBQThCLEdBQXRDLFVBQXVDLHFCQUEwQjtRQUMvRCxJQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUM5QyxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQW5FLENBQW1FLENBQ2pGLENBQUM7UUFFRixJQUFJLHFCQUFxQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsT0FBTyxFQUFFLHFCQUFxQixDQUFDLE9BQU87Z0JBQ3RDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3BFLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7U0FDOUY7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sNENBQWUsR0FBdEIsVUFBdUIsU0FBa0I7UUFDdkMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSw2Q0FBZ0IsR0FBdkIsVUFBd0IsU0FBa0I7UUFBMUMsaUJBWUM7UUFYQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSyxFQUFFLEtBQUs7WUFDMUMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pDLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUV4QyxJQUFNLGFBQWEsR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQTNDLENBQTJDLENBQUMsQ0FBQztnQkFDeEcsSUFBRyxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3ZCLEtBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDdkMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzNCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSwrQ0FBa0IsR0FBekIsVUFBMEIsa0JBQXlDO1FBQ2pFLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU8sZ0RBQW1CLEdBQTNCLFVBQTRCLFNBQW9CO1FBQzlDLE9BQU8sU0FBUyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNyRSxDQUFDO0lBRU0sK0NBQWtCLEdBQXpCLFVBQTBCLE9BQWdCO1FBQTFDLGlCQXNCQztRQXJCQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNqQixJQUFJLENBQ0gsVUFBQyxzQkFBc0I7WUFDckIsT0FBQSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxRQUFRO1FBQTVELENBQTRELENBQy9EO2FBQ0EsZUFBZSxDQUFDLE1BQU0sQ0FDckIsVUFBQyxjQUFjLElBQUssT0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQXhDLENBQXdDLENBQzdEO2FBQ0EsR0FBRyxDQUFDLFVBQUMsY0FBOEI7WUFDbEMsT0FBTztnQkFDTCxjQUFjLEVBQUUsS0FBSSxDQUFDLDRCQUE0QixDQUMvQyxjQUFjLENBQUMsY0FBYyxDQUM5QjtnQkFDRCxVQUFVLEVBQUUsY0FBYyxDQUFDLFVBQVU7Z0JBQ3JDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTzthQUNoQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sOENBQWlCLEdBQXpCLFVBQTBCLFNBQWtCO1FBQzFDLElBQUksYUFBYSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQ2pELGFBQWEsR0FBRztnQkFDZCxJQUFJLEVBQUU7b0JBQ0osRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7b0JBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtvQkFDNUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO29CQUMxQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQ3hDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDM0I7b0JBQ0QsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7aUJBQ3JDO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVPLGlEQUFvQixHQUE1QixVQUE2QixxQkFBcUM7UUFDaEUsT0FBTztZQUNMLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxFQUFFO1lBQ2pDLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQyxjQUFjO1lBQ3BELFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxVQUFVO1lBQzVDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0lBRU8seURBQTRCLEdBQXBDLFVBQXFDLGNBQThCO1FBQ2pFLElBQUksY0FBYyxLQUFLLGNBQWMsQ0FBQyxZQUFZLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsMkNBQTJDLENBQzVDLENBQUM7U0FDSDtRQUVELElBQUksY0FBYyxLQUFLLGNBQWMsQ0FBQyxTQUFTLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxjQUFjLEtBQUssY0FBYyxDQUFDLFVBQVUsRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDcEU7SUFDSCxDQUFDO0lBRU8sZ0RBQW1CLEdBQTNCLFVBQTRCLGdCQUFrQztRQUM1RCxPQUFPLGdCQUFnQixLQUFLLFNBQVM7WUFDbkMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQjtZQUNuQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFDdkIsQ0FBQztJQUVPLHlEQUE0QixHQUFwQztRQUNFLElBQUksQ0FBQyxvQkFBb0IsR0FBRztZQUMxQjtnQkFDRSxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUM7YUFDckU7WUFDRDtnQkFDRSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUM1Qix5Q0FBeUMsQ0FDMUM7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUM7YUFDeEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLDRDQUFlLEdBQXZCO1FBQ0UsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBMWFRO1FBQVIsS0FBSyxFQUFFOzt5REFBOEI7SUFDN0I7UUFBUixLQUFLLEVBQUU7O3dEQUFnRDtJQUM5QztRQUFULE1BQU0sRUFBRTs7OERBQThEO0lBQzdEO1FBQVQsTUFBTSxFQUFFOzt5REFBMEM7SUFKeEMsa0JBQWtCO1FBTDlCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsODhLQUFpRDs7U0FFbEQsQ0FBQztpREFrQnFCLGdCQUFnQjtZQUNaLGFBQWE7WUFDTix5QkFBeUI7T0FuQjlDLGtCQUFrQixDQTRhOUI7SUFBRCx5QkFBQztDQUFBLEFBNWFELElBNGFDO1NBNWFZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpc2l0b3JDcmVkZW50aWFsc0R0byB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3Zpc2l0b3ItY3JlZGVudGlhbHMtZHRvJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBWaXNpdG9yIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy92aXNpdG9yXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICBDYXJkVGVjaG5vbG9neSxcbiAgQ3JlZGVudGlhbENhcmQsXG59IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvY2FyZC1jcmVkZW50aWFsXCI7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFZpc2l0b3JTaXR1YXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3Zpc2l0b3Itc2l0dWF0aW9uXCI7XG5pbXBvcnQgeyBNb3RvcmlzdGEgfSBmcm9tIFwiLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL21vdG9yaXN0YS9tb3RvcmlzdGFcIjtcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IENyZWRlbmNpYWxGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NyZWRlbmNpYWwtZm9ybS9jcmVkZW5jaWFsLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBWaXNpdGFudGVGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzL3V0aWxzXCI7XG5pbXBvcnQgeyAgSW50ZWdyYXRpb25FdmVudHNDYWxsYmFjayB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMveW1zLXJvdXRpbmVzXCI7XG5pbXBvcnQgeyBWaXNpdG9yRHRvIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvdmlzaXRvci1kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXNpdGFudGUtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaXRhbnRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgcHJpdmF0ZSBtb3RvcmlzdGE6IE1vdG9yaXN0YTtcbiAgQElucHV0KCkgcHJpdmF0ZSB2aXNpdG9yczogVmlzaXRvckNyZWRlbnRpYWxzRHRvW10gPSBbXTtcbiAgQE91dHB1dCgpIHZpc2l0b3JzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWaXNpdG9yQ3JlZGVudGlhbHNEdG9bXT4oKTtcbiAgQE91dHB1dCgpIGhhc0NoYW5nZSAgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWREYXRhOiBWaXNpdG9yRHRvW107XG4gIHB1YmxpYyB2aXNpdGFudGVHcmlkQ29sdW1uczogYW55W107XG4gIHB1YmxpYyB2aXNpdGFudGVUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWRMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgdmlzaXRvckZvdW5kOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGVncmF0aW9uQ2FsbGJhY2s6IEludGVncmF0aW9uRXZlbnRzQ2FsbGJhY2s7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcmVhZG9ubHkgaW50ZWdyYXRpb25DYWxsYmFjazogSW50ZWdyYXRpb25FdmVudHNDYWxsYmFja1xuICApIHtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbkNhbGxiYWNrID0gaW50ZWdyYXRpb25DYWxsYmFjaztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpO1xuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gMDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5hZGljaW9uYVZpc2l0YW50ZXNHcmlkKCk7XG4gICAgdGhpcy5faW50ZWdyYXRpb25DYWxsYmFja1xuICAgICAgLm9uQWdlbmRhbWVudG9Nb3RvcmlzdGFDaGFuZ2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBtZXJnZU1hcCgobW90b3Jpc3RhKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdHVhbGl6YU1vdG9yaXN0YShtb3RvcmlzdGEpO1xuICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHVhbGl6YU1vdG9yaXN0YShtb3Q6IE1vdG9yaXN0YSkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZmluZChcbiAgICAgIChpdGVtKSA9PiBpdGVtLmRyaXZlclxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlICYmIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPT09IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCkgJiYgIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudCA9PT0gbW90LmNwZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGFbMF0gPSB7XG4gICAgICAgIG5hbWU6IG1vdC5ub21lLFxuICAgICAgICBkb2N1bWVudDogbW90LmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKG1vdCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH07ICAgICAgXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgbmFtZTogbW90Lm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiBtb3QuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEobW90KSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgcHJpdmF0ZSBhZGljaW9uYVZpc2l0YW50ZXNHcmlkKCkge1xuICAgIGlmICh0aGlzLnZpc2l0b3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IFtdO1xuICAgICAgdGhpcy5hZGljaW9uYU1vdG9yaXN0YU5vVmlzaXRhbnRlR3JpZERhdGEoKTtcblxuICAgICAgdGhpcy52aXNpdG9ycy5mb3JFYWNoKCh2aXNpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW90b3Jpc3RhLmNwZiAhPT0gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50KSB7XG4gICAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgICAgIGlkOiB2aXNpdG9yLnZpc2l0b3IuaWQsXG4gICAgICAgICAgICBuYW1lOiB2aXNpdG9yLnZpc2l0b3IubmFtZSxcbiAgICAgICAgICAgIGRvY3VtZW50OiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICAgICAgICBjb250YWN0OiB2aXNpdG9yLnZpc2l0b3IuY29udGFjdCxcbiAgICAgICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICAgICAgdmlzaXRvci52aXNpdG9yLnZpc2l0b3JTaXR1YXRpb25cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gdGhpcy52aXNpdG9ycy5sZW5ndGg7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IFtdO1xuICAgICAgY29uc3Qgbm92b192aXNpdGFudGUgPSBuZXcgVmlzaXRvckNyZWRlbnRpYWxzRHRvKClcbiAgICAgIG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMubW90b3Jpc3RhLm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiB0aGlzLm1vdG9yaXN0YS5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmlzaXRhbnRlQnVzY2FuZG8gPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZpbmQoXG4gICAgICAgICh2aXNpdGFudGVOYUxpc3RhKSA9PiBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGVOYUxpc3RhLmRvY3VtZW50XG4gICAgICAgICk7XG4gICAgICAgIGlmICh2aXNpdGFudGVCdXNjYW5kbyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IpOyAgICAgICAgXG4gICAgICAgICAgdGhpcy52aXNpdG9ycy5wdXNoKG5vdm9fdmlzaXRhbnRlKTtcbiAgICAgICAgdGhpcy52aXNpdGFudGVUb3RhbFJlY29yZHMgPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NyZWRlbnRpYWxDYXJkc0VtcHR5KHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICBjb25zdCB2aXNpdGFudGVzRW5jb250cmFkb3MgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcldpdGhDcmVkZW50aWFscykgPT5cbiAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmICh2aXNpdGFudGVzRW5jb250cmFkb3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGFudGVzRW5jb250cmFkb3MuY3JlZGVudGlhbENhcmRzLmZpbHRlcihcbiAgICAgIChjcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGNyZWRlbnRpYWxDYXJkKS5sZW5ndGggIT09IDBcbiAgICApLmxlbmd0aCA+IDBcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFNb3RvcmlzdGFOb1Zpc2l0YW50ZUdyaWREYXRhKCkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yKSA9PiB0aGlzLm1vdG9yaXN0YS5jcGYgPT09IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudFxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgIG5hbWU6IHRoaXMubW90b3Jpc3RhLm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiB0aGlzLm1vdG9yaXN0YS5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgaWQ6IG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLmlkLFxuICAgICAgICBuYW1lOiBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci5uYW1lLFxuICAgICAgICBkb2N1bWVudDogbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICksXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyaWFyT3VBdHVhbGl6YXJWaXNpdGFudGUodmlzaXRvcjogVmlzaXRvcikge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oVmlzaXRhbnRlRm9ybUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX2FkaWNpb25hcl92aXNpdGFudGVcIlxuICAgICAgICApLFxuICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgIC4uLnRoaXMuY29uc3Ryb2lWaXNpdGFudGUodmlzaXRvciksXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2UucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2aXNpdGFudGUpID0+IHRoaXMuYWRpY2lvbmFWaXNpdGFudGVQYXJhU2FsdmFyKHZpc2l0YW50ZSkpO1xuICB9XG5cbiAgcHVibGljIGFkaWNpb25hVmlzaXRhbnRlUGFyYVNhbHZhcih2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZvckVhY2godmlzaXRvciA9PiB7XG4gICAgICBpZih2aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGUuZG9jdW1lbnQpIHtcbiAgICAgICAgdmlzaXRvci5jb250YWN0ID0gdmlzaXRhbnRlLmNvbnRhY3Q7XG4gICAgICAgIHZpc2l0b3IubmFtZSA9IHZpc2l0YW50ZS5uYW1lO1xuICAgICAgICB0aGlzLnZpc2l0b3JGb3VuZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZih0aGlzLnZpc2l0b3JGb3VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPSB0aGlzLmdldERvY3VtZW50VHlwZSgpO1xuXG4gICAgaWYgKHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uID0gVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HO1xuICAgIH1cblxuICAgIHRoaXMuYWRkVmlzaXRhbnRlTmFUYWJlbGEodmlzaXRhbnRlKTtcblxuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzKys7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm92b192aXNpdGFudGUgPSBuZXcgVmlzaXRvckNyZWRlbnRpYWxzRHRvKClcbiAgICBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yID0ge1xuICAgICAgbmFtZSA6IHZpc2l0YW50ZS5uYW1lLFxuICAgICAgZG9jdW1lbnQgOiB2aXNpdGFudGUuZG9jdW1lbnQsXG4gICAgICBjb250YWN0OiB2aXNpdGFudGUuY29udGFjdCxcbiAgICAgIGRvY3VtZW50VHlwZSA6IHZpc2l0YW50ZS5kb2N1bWVudFR5cGUsXG4gICAgICB2aXNpdG9yU2l0dWF0aW9uIDogdmlzaXRhbnRlLnZpc2l0b3JTaXR1YXRpb24sXG4gICAgICBkcml2ZXI6IGZhbHNlXG4gICAgfVxuXG4gICAgdGhpcy52aXNpdG9ycy5wdXNoKG5vdm9fdmlzaXRhbnRlKVxuICAgIHRoaXMudmlzaXRvcnNDaGFuZ2UuZW1pdCh0aGlzLnZpc2l0b3JzKVxuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgY29uc3QgaXNEcml2ZXIgPSB2aXNpdGFudGUuZG9jdW1lbnQgPT09IHRoaXMubW90b3Jpc3RhLmNwZjtcblxuICAgIGNvbnN0IGZpbmRWaXNpdG9yID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50XG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ubW90b3Jpc3RhX2VkaXRhcl92aXNpdGFudGUnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5lZGl0YXJWaXNpdGFudGUodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5kZWxldGUnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5kZWxldGFyVmlzaXRhbnRlKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9lbnRyZWdhcl9jcmVkZW5jaWFsJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZW50cmVnYXJDcmVkZW5jaWFsKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiBpc0RyaXZlciB8fCAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ucmVtb3Zlcl9jcmVkZW5jaWFpcycpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmRlbGV0YXJDcmVkZW5jaWFpcyhmaW5kVmlzaXRvciksXG4gICAgICAgIHZpc2libGUgOiBmaW5kVmlzaXRvciAhPSBudWxsICYmIGZpbmRWaXNpdG9yLmNyZWRlbnRpYWxDYXJkcyAhPSBudWxsICYmIGZpbmRWaXNpdG9yLmNyZWRlbnRpYWxDYXJkcy5sZW5ndGggPiAwXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGFkZFZpc2l0YW50ZU5hVGFiZWxhKHZpc2l0YW50ZTogYW55KSB7XG4gICAgaWYgKHZpc2l0YW50ZS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLm1hcCgodmlzaXRhbnRlR3JpZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHZpc2l0YW50ZUdyaWQuaWQgPT09IHZpc2l0YW50ZS5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aXNpdGFudGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmlzaXRhbnRlR3JpZDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHZpc2l0YW50ZSk7XG4gICAgfVxufVxuXG4gIHB1YmxpYyBlbnRyZWdhckNyZWRlbmNpYWwodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAub3BlbihDcmVkZW5jaWFsRm9ybUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9jcmVkZW5jaWFsXCJcbiAgICAgICAgKSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHZpc2l0YW50ZTogdmlzaXRhbnRlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmlzaXRvckNyZWRlbnRpYWxDYXJkOiBhbnkpID0+IFxuICAgICAgdGhpcy5hZGljaW9uYUNyZWRlbmNpYWxQYXJhRW50cmVnYXIodmlzaXRvckNyZWRlbnRpYWxDYXJkKSk7XG4gIH1cblxuICBwcml2YXRlIGFkaWNpb25hQ3JlZGVuY2lhbFBhcmFFbnRyZWdhcih2aXNpdG9yQ3JlZGVudGlhbENhcmQ6IGFueSkge1xuICAgIGNvbnN0IHZpc2l0b3JXaXRoQ3JlZGVuY2lhbCA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yKSA9PiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC52aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmICh2aXNpdG9yV2l0aENyZWRlbmNpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpdG9ycy5wdXNoKHtcbiAgICAgICAgdmlzaXRvcjogdmlzaXRvckNyZWRlbnRpYWxDYXJkLnZpc2l0b3IsXG4gICAgICAgIGNyZWRlbnRpYWxDYXJkczogW3RoaXMuY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkKV0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRvcldpdGhDcmVkZW5jaWFsLmNyZWRlbnRpYWxDYXJkcy5wdXNoKHRoaXMuY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkKSk7XG4gICAgfVxuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdGFyVmlzaXRhbnRlKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIHRoaXMuY3JpYXJPdUF0dWFsaXphclZpc2l0YW50ZSh2aXNpdGFudGUpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0YXJWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5mb3JFYWNoKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgIGlmICh2YWx1ZS5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50KSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBjb25zdCByZW1vdmVWaXNpdG9yID0gdGhpcy52aXNpdG9ycy5maW5kSW5kZXgoKHZpc2l0b3IpID0+IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCA9PT0gdmFsdWUuZG9jdW1lbnQpO1xuICAgICAgICBpZihyZW1vdmVWaXNpdG9yICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMudmlzaXRvcnMuc3BsaWNlKHJlbW92ZVZpc2l0b3IsIDEpO1xuICAgICAgICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGFyQ3JlZGVuY2lhaXModmlpc2l0b3JDcmVkZW50aWFsOiBWaXNpdG9yQ3JlZGVudGlhbHNEdG8pIHtcbiAgICB2aWlzaXRvckNyZWRlbnRpYWwuY3JlZGVudGlhbENhcmRzLnNwbGljZSgwLCB2aWlzaXRvckNyZWRlbnRpYWwuY3JlZGVudGlhbENhcmRzLmxlbmd0aCk7XG4gICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGF0b01vdG9yaXN0YShtb3RvcmlzdGE6IE1vdG9yaXN0YSkge1xuICAgIHJldHVybiBtb3RvcmlzdGEudGVsZWZvbmUgPT09IHVuZGVmaW5lZCA/IFwiMFwiIDogbW90b3Jpc3RhLnRlbGVmb25lO1xuICB9XG5cbiAgcHVibGljIGdldENyZWRlbnRpYWxDYXJkcyh2aXNpdG9yOiBWaXNpdG9yKSB7XG4gICAgaWYgKHRoaXMudmlzaXRvcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdG9yc1xuICAgICAgLmZpbmQoXG4gICAgICAgICh2aXNpdG9yV2l0aENyZWRlbnRpYWxzKSA9PlxuICAgICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvci5kb2N1bWVudFxuICAgICAgKVxuICAgICAgLmNyZWRlbnRpYWxDYXJkcy5maWx0ZXIoXG4gICAgICAgIChjcmVkZW50aWFsQ2FyZCkgPT4gT2JqZWN0LmtleXMoY3JlZGVudGlhbENhcmQpLmxlbmd0aCAhPT0gMFxuICAgICAgKVxuICAgICAgLm1hcCgoY3JlZGVudGlhbENhcmQ6IENyZWRlbnRpYWxDYXJkKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2FyZFRlY2hub2xvZ3k6IHRoaXMuZ2V0VGVjbm9sb2dpYUNyYWNoYVRyYWR1emlkYShcbiAgICAgICAgICAgIGNyZWRlbnRpYWxDYXJkLmNhcmRUZWNobm9sb2d5XG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXJkTnVtYmVyOiBjcmVkZW50aWFsQ2FyZC5jYXJkTnVtYmVyLFxuICAgICAgICAgIGVuZERhdGU6IGNyZWRlbnRpYWxDYXJkLmVuZERhdGUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3Ryb2lWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgbGV0IHZpc2l0YW50ZURhdGEgPSB7IGRhdGE6IHt9IH07XG4gICAgaWYgKHZpc2l0YW50ZSAhPT0gdW5kZWZpbmVkICYmIHZpc2l0YW50ZSAhPT0gbnVsbCkge1xuICAgICAgdmlzaXRhbnRlRGF0YSA9IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlkOiB2aXNpdGFudGUuaWQsXG4gICAgICAgICAgbmFtZTogdmlzaXRhbnRlLm5hbWUsXG4gICAgICAgICAgZG9jdW1lbnQ6IHZpc2l0YW50ZS5kb2N1bWVudCxcbiAgICAgICAgICBjb250YWN0OiB2aXNpdGFudGUuY29udGFjdCxcbiAgICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgICB2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvblxuICAgICAgICAgICksXG4gICAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZpc2l0YW50ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNyZWRlbnRpYWxDYXJkKHZpc2l0b3JDcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpOiBDcmVkZW50aWFsQ2FyZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc2l0b3I6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5pZCxcbiAgICAgIGNhcmRUZWNobm9sb2d5OiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuY2FyZFRlY2hub2xvZ3ksXG4gICAgICBjYXJkTnVtYmVyOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuY2FyZE51bWJlcixcbiAgICAgIGVuZERhdGU6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5lbmREYXRlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRlY25vbG9naWFDcmFjaGFUcmFkdXppZGEoY2FyZFRlY2hub2xvZ3k6IENhcmRUZWNobm9sb2d5KTogc3RyaW5nIHtcbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LkJBUkNPREVfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX2NvZGlnb19iYXJyYXNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlJGSURfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfcmZpZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlNNQVJUX0NBUkQpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX3NtYXJ0XCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmlzaXRvclNpdHVhdGlvbih2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uKSB7XG4gICAgcmV0dXJuIHZpc2l0b3JTaXR1YXRpb24gPT09IHVuZGVmaW5lZFxuICAgICAgPyBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkdcbiAgICAgIDogdmlzaXRvclNpdHVhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRDb2x1bW5zID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZDogXCJuYW1lXCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX25vbWVcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZDogXCJkb2N1bWVudFwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9kb2N1bWVudG9cIlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6IFwiY29udGFjdFwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9jb250YXRvXCIpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2N1bWVudFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjcGZcIjtcbiAgfVxufSJdfQ==
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1saXN0L3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRyx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFFO0lBZ0JFLDRCQUNVLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzNCLG1CQUE4QztRQUYvQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFB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LElBa2RDO1NBbGRZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpc2l0b3JDcmVkZW50aWFsc0R0byB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3Zpc2l0b3ItY3JlZGVudGlhbHMtZHRvJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBWaXNpdG9yIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy92aXNpdG9yXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICBDYXJkVGVjaG5vbG9neSxcbiAgQ3JlZGVudGlhbENhcmQsXG59IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvY2FyZC1jcmVkZW50aWFsXCI7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFZpc2l0b3JTaXR1YXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3Zpc2l0b3Itc2l0dWF0aW9uXCI7XG5pbXBvcnQgeyBNb3RvcmlzdGEgfSBmcm9tIFwiLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL21vdG9yaXN0YS9tb3RvcmlzdGFcIjtcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IENyZWRlbmNpYWxGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NyZWRlbmNpYWwtZm9ybS9jcmVkZW5jaWFsLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBWaXNpdGFudGVGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzL3V0aWxzXCI7XG5pbXBvcnQgeyAgSW50ZWdyYXRpb25FdmVudHNDYWxsYmFjayB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMveW1zLXJvdXRpbmVzXCI7XG5pbXBvcnQgeyBWaXNpdG9yRHRvIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvdmlzaXRvci1kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXNpdGFudGUtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaXRhbnRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgcHJpdmF0ZSBtb3RvcmlzdGE6IE1vdG9yaXN0YTtcbiAgQElucHV0KCkgcHJpdmF0ZSB2aXNpdG9yczogVmlzaXRvckNyZWRlbnRpYWxzRHRvW10gPSBbXTtcbiAgQE91dHB1dCgpIHZpc2l0b3JzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWaXNpdG9yQ3JlZGVudGlhbHNEdG9bXT4oKTtcbiAgQE91dHB1dCgpIGhhc0NoYW5nZSAgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWREYXRhOiBWaXNpdG9yRHRvW107XG4gIHB1YmxpYyB2aXNpdGFudGVHcmlkQ29sdW1uczogYW55W107XG4gIHB1YmxpYyB2aXNpdGFudGVUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWRMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgdmlzaXRvckZvdW5kOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGVncmF0aW9uQ2FsbGJhY2s6IEludGVncmF0aW9uRXZlbnRzQ2FsbGJhY2s7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcmVhZG9ubHkgaW50ZWdyYXRpb25DYWxsYmFjazogSW50ZWdyYXRpb25FdmVudHNDYWxsYmFja1xuICApIHtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbkNhbGxiYWNrID0gaW50ZWdyYXRpb25DYWxsYmFjaztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpO1xuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gMDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5hZGljaW9uYVZpc2l0YW50ZXNHcmlkKCk7XG4gICAgdGhpcy5faW50ZWdyYXRpb25DYWxsYmFja1xuICAgICAgLm9uQWdlbmRhbWVudG9Nb3RvcmlzdGFDaGFuZ2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBtZXJnZU1hcCgobW90b3Jpc3RhKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdHVhbGl6YU1vdG9yaXN0YShtb3RvcmlzdGEpO1xuICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHVhbGl6YU1vdG9yaXN0YShtb3Q6IE1vdG9yaXN0YSkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZmluZChcbiAgICAgIChpdGVtKSA9PiBpdGVtLmRyaXZlclxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlICYmIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPT09IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCkgJiYgIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudCA9PT0gbW90LmNwZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGFbMF0gPSB7XG4gICAgICAgIG5hbWU6IG1vdC5ub21lLFxuICAgICAgICBkb2N1bWVudDogbW90LmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKG1vdCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH07ICAgICAgXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgbmFtZTogbW90Lm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiBtb3QuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEobW90KSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmlzaXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy52aXNpdG9yc1swXS52aXNpdG9yID0ge1xuICAgICAgICBuYW1lOiBtb3Qubm9tZSxcbiAgICAgICAgZG9jdW1lbnQ6IG1vdC5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YShtb3QpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkcsXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFWaXNpdGFudGVzR3JpZCgpIHtcbiAgICBpZiAodGhpcy52aXNpdG9ycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSBbXTtcbiAgICAgIHRoaXMuYWRpY2lvbmFNb3RvcmlzdGFOb1Zpc2l0YW50ZUdyaWREYXRhKCk7XG5cbiAgICAgIHRoaXMudmlzaXRvcnMuZm9yRWFjaCgodmlzaXRvcjogYW55KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1vdG9yaXN0YS5jcGYgIT09IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCkge1xuICAgICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgICAgICBpZDogdmlzaXRvci52aXNpdG9yLmlkLFxuICAgICAgICAgICAgbmFtZTogdmlzaXRvci52aXNpdG9yLm5hbWUsXG4gICAgICAgICAgICBkb2N1bWVudDogdmlzaXRvci52aXNpdG9yLmRvY3VtZW50LFxuICAgICAgICAgICAgY29udGFjdDogdmlzaXRvci52aXNpdG9yLmNvbnRhY3QsXG4gICAgICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgICAgIHZpc2l0b3IudmlzaXRvci52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpc2l0YW50ZVRvdGFsUmVjb3JkcyA9IHRoaXMudmlzaXRvcnMubGVuZ3RoO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSBbXTtcbiAgICAgIGNvbnN0IG5vdm9fdmlzaXRhbnRlID0gbmV3IFZpc2l0b3JDcmVkZW50aWFsc0R0bygpXG4gICAgICBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yID0ge1xuICAgICAgICBuYW1lOiB0aGlzLm1vdG9yaXN0YS5ub21lLFxuICAgICAgICBkb2N1bWVudDogdGhpcy5tb3RvcmlzdGEuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEodGhpcy5tb3RvcmlzdGEpLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZpc2l0YW50ZUJ1c2NhbmRvID0gdGhpcy52aXNpdGFudGVHcmlkRGF0YS5maW5kKFxuICAgICAgICAodmlzaXRhbnRlTmFMaXN0YSkgPT4gbm92b192aXNpdGFudGUudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRhbnRlTmFMaXN0YS5kb2N1bWVudFxuICAgICAgICApO1xuICAgICAgICBpZiAodmlzaXRhbnRlQnVzY2FuZG8gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaChub3ZvX3Zpc2l0YW50ZS52aXNpdG9yKTsgICAgICAgIFxuICAgICAgICAgIHRoaXMudmlzaXRvcnMucHVzaChub3ZvX3Zpc2l0YW50ZSk7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNDcmVkZW50aWFsQ2FyZHNFbXB0eSh2aXNpdG9yOiBWaXNpdG9yKSB7XG4gICAgY29uc3QgdmlzaXRhbnRlc0VuY29udHJhZG9zID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvci5kb2N1bWVudFxuICAgICk7XG5cbiAgICBpZiAodmlzaXRhbnRlc0VuY29udHJhZG9zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmlzaXRhbnRlc0VuY29udHJhZG9zLmNyZWRlbnRpYWxDYXJkcy5maWx0ZXIoXG4gICAgICAoY3JlZGVudGlhbENhcmQ6IENyZWRlbnRpYWxDYXJkKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhjcmVkZW50aWFsQ2FyZCkubGVuZ3RoICE9PSAwXG4gICAgKS5sZW5ndGggPiAwXG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFkaWNpb25hTW90b3Jpc3RhTm9WaXNpdGFudGVHcmlkRGF0YSgpIHtcbiAgICBjb25zdCBtb3RvcmlzdGFWaXNpdGFudGUgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcikgPT4gdGhpcy5tb3RvcmlzdGEuY3BmID09PSB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgaWYgKG1vdG9yaXN0YVZpc2l0YW50ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2goe1xuICAgICAgICBuYW1lOiB0aGlzLm1vdG9yaXN0YS5ub21lLFxuICAgICAgICBkb2N1bWVudDogdGhpcy5tb3RvcmlzdGEuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEodGhpcy5tb3RvcmlzdGEpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkcsXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgIGlkOiBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci5pZCxcbiAgICAgICAgbmFtZTogbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IubmFtZSxcbiAgICAgICAgZG9jdW1lbnQ6IG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLmRvY3VtZW50LFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEodGhpcy5tb3RvcmlzdGEpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IudmlzaXRvclNpdHVhdGlvblxuICAgICAgICApLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmlhck91QXR1YWxpemFyVmlzaXRhbnRlKHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKFZpc2l0YW50ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIFwieW1zLnBhdGlvLm1vdG9yaXN0YV9hZGljaW9uYXJfdmlzaXRhbnRlXCJcbiAgICAgICAgKSxcbiAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAuLi50aGlzLmNvbnN0cm9pVmlzaXRhbnRlKHZpc2l0b3IpLFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmlzaXRhbnRlKSA9PiB0aGlzLmFkaWNpb25hVmlzaXRhbnRlUGFyYVNhbHZhcih2aXNpdGFudGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGljaW9uYVZpc2l0YW50ZVBhcmFTYWx2YXIodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5mb3JFYWNoKHZpc2l0b3IgPT4ge1xuICAgICAgaWYodmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50KSB7XG4gICAgICAgIHZpc2l0b3IuY29udGFjdCA9IHZpc2l0YW50ZS5jb250YWN0O1xuICAgICAgICB2aXNpdG9yLm5hbWUgPSB2aXNpdGFudGUubmFtZTtcblxuICAgICAgICBjb25zdCBub3ZvVmlzaXRhbnRlID0gdGhpcy5idWlsZFZpc2l0b3JDcmVkZW50aWFsc0R0byh2aXNpdG9yKTtcblxuICAgICAgICB0aGlzLnZpc2l0b3JzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZihyZXN1bHQudmlzaXRvci5kb2N1bWVudCA9PT0gbm92b1Zpc2l0YW50ZS52aXNpdG9yLmRvY3VtZW50KSB7XG4gICAgICAgICAgICByZXN1bHQudmlzaXRvci5uYW1lID0gbm92b1Zpc2l0YW50ZS52aXNpdG9yLm5hbWU7XG4gICAgICAgICAgICByZXN1bHQudmlzaXRvci5jb250YWN0ID0gbm92b1Zpc2l0YW50ZS52aXNpdG9yLmNvbnRhY3Q7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgdGhpcy52aXNpdG9yc0NoYW5nZS5lbWl0KHRoaXMudmlzaXRvcnMpO1xuICAgICAgdGhpcy52aXNpdG9yRm91bmQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYodGhpcy52aXNpdG9yRm91bmQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IHRydWU7XG5cbiAgICB2aXNpdGFudGUuZG9jdW1lbnRUeXBlID0gdGhpcy5nZXREb2N1bWVudFR5cGUoKTtcblxuICAgIGlmICh2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvbiA9IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORztcbiAgICB9XG5cbiAgICB0aGlzLmFkZFZpc2l0YW50ZU5hVGFiZWxhKHZpc2l0YW50ZSk7XG5cbiAgICB0aGlzLnZpc2l0YW50ZVRvdGFsUmVjb3JkcysrO1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vdm9fdmlzaXRhbnRlID0gbmV3IFZpc2l0b3JDcmVkZW50aWFsc0R0bygpXG4gICAgbm92b192aXNpdGFudGUudmlzaXRvciA9IHtcbiAgICAgIG5hbWUgOiB2aXNpdGFudGUubmFtZSxcbiAgICAgIGRvY3VtZW50IDogdmlzaXRhbnRlLmRvY3VtZW50LFxuICAgICAgY29udGFjdDogdmlzaXRhbnRlLmNvbnRhY3QsXG4gICAgICBkb2N1bWVudFR5cGUgOiB2aXNpdGFudGUuZG9jdW1lbnRUeXBlLFxuICAgICAgdmlzaXRvclNpdHVhdGlvbiA6IHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uLFxuICAgICAgZHJpdmVyOiBmYWxzZVxuICAgIH1cblxuICAgIHRoaXMudmlzaXRvcnMucHVzaChub3ZvX3Zpc2l0YW50ZSlcbiAgICB0aGlzLnZpc2l0b3JzQ2hhbmdlLmVtaXQodGhpcy52aXNpdG9ycylcbiAgICB0aGlzLmhhc0NoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFZpc2l0b3JDcmVkZW50aWFsc0R0byAodmlzaXRvcjogVmlzaXRvckR0bykge1xuICAgIGNvbnN0IHZpc2l0b3JDcmVkZW50aWFsc0R0byA9IG5ldyBWaXNpdG9yQ3JlZGVudGlhbHNEdG8oKTtcblxuICAgIGNvbnN0IHZpc2l0YW50ZTogVmlzaXRvckR0byA9IHtcbiAgICAgIG5hbWUgOiB2aXNpdG9yLm5hbWUsXG4gICAgICBkb2N1bWVudCA6IHZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICBjb250YWN0OiB2aXNpdG9yLmNvbnRhY3QsXG4gICAgICBkb2N1bWVudFR5cGUgOiB2aXNpdG9yLmRvY3VtZW50VHlwZSxcbiAgICAgIHZpc2l0b3JTaXR1YXRpb24gOiB2aXNpdG9yLnZpc2l0b3JTaXR1YXRpb24sXG4gICAgICBkcml2ZXI6IGZhbHNlXG4gICAgfTtcblxuICAgIHZpc2l0b3JDcmVkZW50aWFsc0R0by52aXNpdG9yID0gdmlzaXRhbnRlO1xuXG4gICAgcmV0dXJuIHZpc2l0b3JDcmVkZW50aWFsc0R0bztcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbCh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICBjb25zdCBpc0RyaXZlciA9IHZpc2l0YW50ZS5kb2N1bWVudCA9PT0gdGhpcy5tb3RvcmlzdGEuY3BmO1xuXG4gICAgY29uc3QgZmluZFZpc2l0b3IgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcldpdGhDcmVkZW50aWFscykgPT5cbiAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGUuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5tb3RvcmlzdGFfZWRpdGFyX3Zpc2l0YW50ZScpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmVkaXRhclZpc2l0YW50ZSh2aXNpdGFudGUpLFxuICAgICAgICB2aXNpYmxlIDogIWlzRHJpdmVyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneW1zLnBhdGlvLmRlbGV0ZScpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmRlbGV0YXJWaXNpdGFudGUodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2VudHJlZ2FyX2NyZWRlbmNpYWwnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5lbnRyZWdhckNyZWRlbmNpYWwodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6IGlzRHJpdmVyIHx8ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5yZW1vdmVyX2NyZWRlbmNpYWlzJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZGVsZXRhckNyZWRlbmNpYWlzKGZpbmRWaXNpdG9yKSxcbiAgICAgICAgdmlzaWJsZSA6IGZpbmRWaXNpdG9yICE9IG51bGwgJiYgZmluZFZpc2l0b3IuY3JlZGVudGlhbENhcmRzICE9IG51bGwgJiYgZmluZFZpc2l0b3IuY3JlZGVudGlhbENhcmRzLmxlbmd0aCA+IDBcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmlzaXRhbnRlTmFUYWJlbGEodmlzaXRhbnRlOiBhbnkpIHtcbiAgICBpZiAodmlzaXRhbnRlLmlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEubWFwKCh2aXNpdGFudGVHcmlkKSA9PiB7XG4gICAgICAgICAgICBpZiAodmlzaXRhbnRlR3JpZC5pZCA9PT0gdmlzaXRhbnRlLmlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZpc2l0YW50ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2aXNpdGFudGVHcmlkO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2godmlzaXRhbnRlKTtcbiAgICB9XG59XG5cbiAgcHVibGljIGVudHJlZ2FyQ3JlZGVuY2lhbCh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKENyZWRlbmNpYWxGb3JtQ29tcG9uZW50LCB7XG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICBcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2NyZWRlbmNpYWxcIlxuICAgICAgICApLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdmlzaXRhbnRlOiB2aXNpdGFudGUsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2UucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2aXNpdG9yQ3JlZGVudGlhbENhcmQ6IGFueSkgPT4gXG4gICAgICB0aGlzLmFkaWNpb25hQ3JlZGVuY2lhbFBhcmFFbnRyZWdhcih2aXNpdG9yQ3JlZGVudGlhbENhcmQpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFDcmVkZW5jaWFsUGFyYUVudHJlZ2FyKHZpc2l0b3JDcmVkZW50aWFsQ2FyZDogYW55KSB7XG4gICAgY29uc3QgdmlzaXRvcldpdGhDcmVkZW5jaWFsID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3IpID0+IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvckNyZWRlbnRpYWxDYXJkLnZpc2l0b3IuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgaWYgKHZpc2l0b3JXaXRoQ3JlZGVuY2lhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpc2l0b3JzLnB1c2goe1xuICAgICAgICB2aXNpdG9yOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQudmlzaXRvcixcbiAgICAgICAgY3JlZGVudGlhbENhcmRzOiBbdGhpcy5jcmVhdGVDcmVkZW50aWFsQ2FyZCh2aXNpdG9yQ3JlZGVudGlhbENhcmQpXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2aXNpdG9yV2l0aENyZWRlbmNpYWwuY3JlZGVudGlhbENhcmRzLnB1c2godGhpcy5jcmVhdGVDcmVkZW50aWFsQ2FyZCh2aXNpdG9yQ3JlZGVudGlhbENhcmQpKTtcbiAgICB9XG4gICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0YXJWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy5jcmlhck91QXR1YWxpemFyVmlzaXRhbnRlKHZpc2l0YW50ZSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRhclZpc2l0YW50ZSh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHZhbHVlLmRvY3VtZW50ID09PSB2aXNpdGFudGUuZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGNvbnN0IHJlbW92ZVZpc2l0b3IgPSB0aGlzLnZpc2l0b3JzLmZpbmRJbmRleCgodmlzaXRvcikgPT4gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50ID09PSB2YWx1ZS5kb2N1bWVudCk7XG4gICAgICAgIGlmKHJlbW92ZVZpc2l0b3IgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy52aXNpdG9ycy5zcGxpY2UocmVtb3ZlVmlzaXRvciwgMSk7XG4gICAgICAgICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0YXJDcmVkZW5jaWFpcyh2aWlzaXRvckNyZWRlbnRpYWw6IFZpc2l0b3JDcmVkZW50aWFsc0R0bykge1xuICAgIHZpaXNpdG9yQ3JlZGVudGlhbC5jcmVkZW50aWFsQ2FyZHMuc3BsaWNlKDAsIHZpaXNpdG9yQ3JlZGVudGlhbC5jcmVkZW50aWFsQ2FyZHMubGVuZ3RoKTtcbiAgICB0aGlzLmhhc0NoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YXRvTW90b3Jpc3RhKG1vdG9yaXN0YTogTW90b3Jpc3RhKSB7XG4gICAgcmV0dXJuIG1vdG9yaXN0YS50ZWxlZm9uZSA9PT0gdW5kZWZpbmVkID8gXCIwXCIgOiBtb3RvcmlzdGEudGVsZWZvbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3JlZGVudGlhbENhcmRzKHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICBpZiAodGhpcy52aXNpdG9ycy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnZpc2l0b3JzXG4gICAgICAuZmluZChcbiAgICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdG9yLmRvY3VtZW50XG4gICAgICApXG4gICAgICAuY3JlZGVudGlhbENhcmRzLmZpbHRlcihcbiAgICAgICAgKGNyZWRlbnRpYWxDYXJkKSA9PiBPYmplY3Qua2V5cyhjcmVkZW50aWFsQ2FyZCkubGVuZ3RoICE9PSAwXG4gICAgICApXG4gICAgICAubWFwKChjcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjYXJkVGVjaG5vbG9neTogdGhpcy5nZXRUZWNub2xvZ2lhQ3JhY2hhVHJhZHV6aWRhKFxuICAgICAgICAgICAgY3JlZGVudGlhbENhcmQuY2FyZFRlY2hub2xvZ3lcbiAgICAgICAgICApLFxuICAgICAgICAgIGNhcmROdW1iZXI6IGNyZWRlbnRpYWxDYXJkLmNhcmROdW1iZXIsXG4gICAgICAgICAgZW5kRGF0ZTogY3JlZGVudGlhbENhcmQuZW5kRGF0ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJvaVZpc2l0YW50ZSh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICBsZXQgdmlzaXRhbnRlRGF0YSA9IHsgZGF0YToge30gfTtcbiAgICBpZiAodmlzaXRhbnRlICE9PSB1bmRlZmluZWQgJiYgdmlzaXRhbnRlICE9PSBudWxsKSB7XG4gICAgICB2aXNpdGFudGVEYXRhID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaWQ6IHZpc2l0YW50ZS5pZCxcbiAgICAgICAgICBuYW1lOiB2aXNpdGFudGUubmFtZSxcbiAgICAgICAgICBkb2N1bWVudDogdmlzaXRhbnRlLmRvY3VtZW50LFxuICAgICAgICAgIGNvbnRhY3Q6IHZpc2l0YW50ZS5jb250YWN0LFxuICAgICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICAgIHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICAgKSxcbiAgICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdmlzaXRhbnRlRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkOiBDcmVkZW50aWFsQ2FyZCk6IENyZWRlbnRpYWxDYXJkIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmlzaXRvcjogdmlzaXRvckNyZWRlbnRpYWxDYXJkLmlkLFxuICAgICAgY2FyZFRlY2hub2xvZ3k6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5jYXJkVGVjaG5vbG9neSxcbiAgICAgIGNhcmROdW1iZXI6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5jYXJkTnVtYmVyLFxuICAgICAgZW5kRGF0ZTogdmlzaXRvckNyZWRlbnRpYWxDYXJkLmVuZERhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGVjbm9sb2dpYUNyYWNoYVRyYWR1emlkYShjYXJkVGVjaG5vbG9neTogQ2FyZFRlY2hub2xvZ3kpOiBzdHJpbmcge1xuICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuQkFSQ09ERV9DQVJEKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfY29kaWdvX2JhcnJhc1wiXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuUkZJRF9DQVJEKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5jYXJ0YW9fY3JlZGVuY2lhbF9yZmlkXCIpO1xuICAgIH1cblxuICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuU01BUlRfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfc21hcnRcIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaXNpdG9yU2l0dWF0aW9uKHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24pIHtcbiAgICByZXR1cm4gdmlzaXRvclNpdHVhdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICA/IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElOR1xuICAgICAgOiB2aXNpdG9yU2l0dWF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJvaUNhbXBvc1RhYmVsYVZpc3RhbnRlKCkge1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZENvbHVtbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiBcIm5hbWVcIixcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLm1vdG9yaXN0YV92aXNpdGFudGVfbm9tZVwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiBcImRvY3VtZW50XCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICBcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2RvY3VtZW50b1wiXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZDogXCJjb250YWN0XCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2NvbnRhdG9cIiksXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGdldERvY3VtZW50VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImNwZlwiO1xuICB9XG59Il19
@@ -0,0 +1,168 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { DocumentService } from '../../entities/document/document.service';
3
+ import { Component, Input, TemplateRef, ViewChild } from "@angular/core";
4
+ import { TranslateService } from "@ngx-translate/core";
5
+ import { MessageService } from "primeng/api";
6
+ import { Table } from "primeng/table";
7
+ import { InsertKeyComponent } from "./insert-key/insert-key.component";
8
+ import { RegisterDocumentComponent } from './register-document/register-document.component';
9
+ import { Subject } from 'rxjs';
10
+ import { finalize, takeUntil } from 'rxjs/operators';
11
+ var DocumentGridComponent = /** @class */ (function () {
12
+ function DocumentGridComponent(translate, documentService, messageService) {
13
+ this.translate = translate;
14
+ this.documentService = documentService;
15
+ this.messageService = messageService;
16
+ this.ngUnsubscribe = new Subject();
17
+ }
18
+ DocumentGridComponent.prototype.ngOnInit = function () {
19
+ this.gridColumns = this.getGridColumns();
20
+ this.listDocuments();
21
+ };
22
+ DocumentGridComponent.prototype.onChangeDocument = function (document) {
23
+ this.gridData.push(document);
24
+ this.disabled = true;
25
+ };
26
+ DocumentGridComponent.prototype.getActions = function () {
27
+ var _this = this;
28
+ return [
29
+ {
30
+ label: this.translate.instant("yms.int.wms_add_document_invoice_key"),
31
+ command: function () {
32
+ _this.registerDocumentComponent.showRegister(false, false);
33
+ _this.showInsertKey = true;
34
+ _this.insertKeyComponent.showInsertKey(_this.showInsertKey);
35
+ },
36
+ icon: "fa fa-search"
37
+ },
38
+ {
39
+ label: this.translate.instant("yms.int.wms_add_document_register"),
40
+ command: function () {
41
+ _this.insertKeyComponent.showInsertKey(false);
42
+ _this.showRegisterDocument = true;
43
+ _this.registerDocumentComponent.showRegister(_this.showRegisterDocument, true);
44
+ },
45
+ icon: "fas fa-pen-square"
46
+ }
47
+ ];
48
+ };
49
+ DocumentGridComponent.prototype.getProp = function (obj, path) {
50
+ return path.split(".").reduce(function (result, prop) { return (result[prop] === undefined ? "" : result[prop]); }, obj);
51
+ };
52
+ DocumentGridComponent.prototype.view = function () {
53
+ var documentSelectec = this.selection;
54
+ this.showRegisterDocument = true;
55
+ this.registerDocumentComponent.showRegister(this.showRegisterDocument, false, documentSelectec);
56
+ };
57
+ DocumentGridComponent.prototype.save = function () {
58
+ var _this = this;
59
+ if (this.gridData.length > 1) {
60
+ this.gridData.forEach(function (data) {
61
+ if (!data.id) {
62
+ if (!data.schedulingId) {
63
+ data.schedulingId = _this.agenda.id;
64
+ }
65
+ _this.documentService.insert(data).subscribe(function () {
66
+ _this.message("success", "saved_message_title", "saved_message_content");
67
+ });
68
+ _this.disabled = true;
69
+ }
70
+ });
71
+ }
72
+ };
73
+ DocumentGridComponent.prototype.onDelete = function (selection) {
74
+ var _this = this;
75
+ if (!selection.id) {
76
+ return;
77
+ }
78
+ this.documentService.delete(selection.id)
79
+ .pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
80
+ _this.listDocuments();
81
+ })).
82
+ subscribe(function () { return _this.message("success", "deleted_message_title", "deleted_message_content"); });
83
+ };
84
+ DocumentGridComponent.prototype.listDocuments = function () {
85
+ var _this = this;
86
+ this.documentService.list({
87
+ filterQuery: "schedulingId eq '" + this.agenda.id + "'"
88
+ })
89
+ .subscribe(function (contents) {
90
+ if (contents.totalElements > 0) {
91
+ _this.gridData = contents.contents;
92
+ _this.documentTotalRecords = contents.totalElements;
93
+ }
94
+ else {
95
+ _this.disabled = true;
96
+ }
97
+ _this.loading = false;
98
+ });
99
+ };
100
+ DocumentGridComponent.prototype.getGridColumns = function () {
101
+ return [
102
+ { field: "logistcUnitName", header: this.translate.instant("yms.int.wms_register_document_logistc_unit_name") },
103
+ { field: "logistcUnitDocument", header: this.translate.instant("yms.int.wms_register_document_logistc_unit_document") },
104
+ { field: "invoiceKey", header: this.translate.instant("yms.int.wms_register_document_invoice_key") },
105
+ { field: "invoiceNumber", header: this.translate.instant("yms.int.wms_register_document_invoice_number") },
106
+ { field: "invoiceSerialNumber", header: this.translate.instant("yms.int.wms_register_document_invoice_serial_number") },
107
+ { field: "ownerName", header: this.translate.instant("yms.int.wms_register_document_owner_name") },
108
+ { field: "ownerDocument", header: this.translate.instant("yms.int.wms_register_document_owner_document") },
109
+ { field: "orderReceivingCode", header: this.translate.instant("yms.int.wms_register_document_order_receiving_code") },
110
+ ];
111
+ };
112
+ DocumentGridComponent.prototype.message = function (severity, summary, detail) {
113
+ this.messageService.add({
114
+ severity: severity,
115
+ summary: this.translate.instant(summary),
116
+ detail: this.translate.instant(detail),
117
+ });
118
+ };
119
+ tslib_1.__decorate([
120
+ Input(),
121
+ tslib_1.__metadata("design:type", Object)
122
+ ], DocumentGridComponent.prototype, "agenda", void 0);
123
+ tslib_1.__decorate([
124
+ ViewChild("documentTable"),
125
+ tslib_1.__metadata("design:type", Table)
126
+ ], DocumentGridComponent.prototype, "table", void 0);
127
+ tslib_1.__decorate([
128
+ ViewChild("customTemplate"),
129
+ tslib_1.__metadata("design:type", TemplateRef)
130
+ ], DocumentGridComponent.prototype, "customTemplate", void 0);
131
+ tslib_1.__decorate([
132
+ ViewChild("customFilterFields"),
133
+ tslib_1.__metadata("design:type", TemplateRef)
134
+ ], DocumentGridComponent.prototype, "customFilterFields", void 0);
135
+ tslib_1.__decorate([
136
+ ViewChild("customGridColgroup"),
137
+ tslib_1.__metadata("design:type", TemplateRef)
138
+ ], DocumentGridComponent.prototype, "customGridColgroup", void 0);
139
+ tslib_1.__decorate([
140
+ ViewChild("customGridHeader"),
141
+ tslib_1.__metadata("design:type", TemplateRef)
142
+ ], DocumentGridComponent.prototype, "customGridHeader", void 0);
143
+ tslib_1.__decorate([
144
+ ViewChild("customGridBody"),
145
+ tslib_1.__metadata("design:type", TemplateRef)
146
+ ], DocumentGridComponent.prototype, "customGridBody", void 0);
147
+ tslib_1.__decorate([
148
+ ViewChild("registerDocument"),
149
+ tslib_1.__metadata("design:type", RegisterDocumentComponent)
150
+ ], DocumentGridComponent.prototype, "registerDocumentComponent", void 0);
151
+ tslib_1.__decorate([
152
+ ViewChild("insertKey"),
153
+ tslib_1.__metadata("design:type", InsertKeyComponent)
154
+ ], DocumentGridComponent.prototype, "insertKeyComponent", void 0);
155
+ DocumentGridComponent = tslib_1.__decorate([
156
+ Component({
157
+ selector: 'document-grid',
158
+ template: "<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 </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || disabled\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || disabled\"\n (click)=\"onDelete(selection)\">\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=\"single\" [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=\"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 (click)=\"selection = rowData\">\n <span>{{ rowData[\"logistcUnitName\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"logistcUnitDocument\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"invoiceKey\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"invoiceNumber\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"invoiceSerialNumber\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"ownerName\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"ownerDocument\"] }}</span>\n </td>\n <td (click)=\"selection = rowData\">\n <span>{{ rowData[\"orderReceivingCode\"] }}</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 #registerDocument (document)=\"onChangeDocument($event)\" [agenda]=\"agenda\"></register-document>\n <insert-key #insertKey (document)=\"onChangeDocument($event)\"></insert-key>\n</p-panel>\n<div class=\"button-save\">\n <s-button \n priority=\"primary\" [label]=\"'save' | translate\" [disabled]=\"!disabled\" (click)=\"save()\">\n </s-button>\n</div>\n\n\n<ng-template #emptyList>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\" [title]=\"'yms.dock.area_dock_empty_state_title' | translate\"\n [description]=\"'yms.dock.area_dock_empty_state_description' | translate\">\n </s-empty-state>\n </div>\n</ng-template>\n",
159
+ 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}"]
160
+ }),
161
+ tslib_1.__metadata("design:paramtypes", [TranslateService,
162
+ DocumentService,
163
+ MessageService])
164
+ ], DocumentGridComponent);
165
+ return DocumentGridComponent;
166
+ }());
167
+ export { DocumentGridComponent };
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPckQ7SUF1Q0ksK0JBQ3FCLFNBQTJCLEVBQzNCLGVBQWdDLEVBQ2hDLGNBQThCO1FBRjlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUE3QmxDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQThCNUMsQ0FBQztJQUVKLHdDQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENB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QUNMLFdBQVc7aUVBQU07SUFHeEM7UUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7MENBQ0wsV0FBVztxRUFBTTtJQUc1QztRQURDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQzswQ0FDTCxXQUFXO3FFQUFNO0lBRzVDO1FBREMsU0FBUyxDQUFDLGtCQUFrQixDQUFDOzBDQUNMLFdBQVc7bUVBQU07SUFHMUM7UUFEQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7MENBQ0wsV0FBVztpRUFBTTtJQUd4QztRQURDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzswQ0FDSSx5QkFBeUI7NEVBQUM7SUFHNUQ7UUFEQyxTQUFTLENBQUMsV0FBVyxDQUFDOzBDQUNJLGtCQUFrQjtxRUFBQztJQXJDckMscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLDg0SkFBNkM7O1NBRWhELENBQUM7aURBeUNrQyxnQkFBZ0I7WUFDVixlQUFlO1lBQ2hCLGNBQWM7T0ExQzFDLHFCQUFxQixDQTRKakM7SUFBRCw0QkFBQztDQUFBLEFBNUpELElBNEpDO1NBNUpZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQge0RvY3VtZW50IH0gZnJvbSBcIi4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50XCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBJbnNlcnRLZXlDb21wb25lbnQgfSBmcm9tIFwiLi9pbnNlcnQta2V5L2luc2VydC1rZXkuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBSZWdpc3RlckRvY3VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9yZWdpc3Rlci1kb2N1bWVudC9yZWdpc3Rlci1kb2N1bWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb2N1bWVudC1ncmlkJyxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgYWdlbmRhO1xuXG4gICAgcHVibGljIGRvY3VtZW50VG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcHVibGljIGdyaWRDb2x1bW5zOiBhbnk7XG4gICAgcHVibGljIGdyaWREYXRhOiBEb2N1bWVudFtdO1xuICAgIHB1YmxpYyBzZWxlY3Rpb246IERvY3VtZW50O1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHNob3dSZWdpc3RlckRvY3VtZW50OiBib29sZWFuO1xuICAgIHByaXZhdGUgc2hvd0luc2VydEtleTogYm9vbGVhbjtcbiAgICBwdWJsaWMgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBAVmlld0NoaWxkKFwiZG9jdW1lbnRUYWJsZVwiKVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tVGVtcGxhdGVcIilcbiAgICBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tRmlsdGVyRmllbGRzXCIpXG4gICAgcHVibGljIGN1c3RvbUZpbHRlckZpZWxkczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQ29sZ3JvdXBcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZENvbGdyb3VwOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRIZWFkZXJcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEhlYWRlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQm9keVwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJyZWdpc3RlckRvY3VtZW50XCIpXG4gICAgcHVibGljIHJlZ2lzdGVyRG9jdW1lbnRDb21wb25lbnQ6IFJlZ2lzdGVyRG9jdW1lbnRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFwiaW5zZXJ0S2V5XCIpXG4gICAgcHVibGljIGluc2VydEtleUNvbXBvbmVudDogSW5zZXJ0S2V5Q29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5nZXRHcmlkQ29sdW1ucygpO1xuXG4gICAgICAgIHRoaXMubGlzdERvY3VtZW50cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goZG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aW9ucygpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2FkZF9kb2N1bWVudF9pbnZvaWNlX2tleVwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJEb2N1bWVudENvbXBvbmVudC5zaG93UmVnaXN0ZXIoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93SW5zZXJ0S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRLZXlDb21wb25lbnQuc2hvd0luc2VydEtleSh0aGlzLnNob3dJbnNlcnRLZXkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYSBmYS1zZWFyY2hcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2FkZF9kb2N1bWVudF9yZWdpc3RlclwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0S2V5Q29tcG9uZW50LnNob3dJbnNlcnRLZXkoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dSZWdpc3RlckRvY3VtZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRvY3VtZW50Q29tcG9uZW50LnNob3dSZWdpc3Rlcih0aGlzLnNob3dSZWdpc3RlckRvY3VtZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmFzIGZhLXBlbi1zcXVhcmVcIlxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIHZpZXcoKSB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50U2VsZWN0ZWMgPSB0aGlzLnNlbGVjdGlvbjtcbiAgICAgICAgdGhpcy5zaG93UmVnaXN0ZXJEb2N1bWVudCA9IHRydWU7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEb2N1bWVudENvbXBvbmVudC5zaG93UmVnaXN0ZXIodGhpcy5zaG93UmVnaXN0ZXJEb2N1bWVudCwgZmFsc2UsIGRvY3VtZW50U2VsZWN0ZWMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICBpZih0aGlzLmdyaWREYXRhLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBpZighZGF0YS5pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZighZGF0YS5zY2hlZHVsaW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5pbnNlcnQoZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZShcInN1Y2Nlc3NcIiwgXCJzYXZlZF9tZXNzYWdlX3RpdGxlXCIsIFwic2F2ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25EZWxldGUoc2VsZWN0aW9uOiBhbnkpIHtcbiAgICAgICAgaWYoIXNlbGVjdGlvbi5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZGVsZXRlKHNlbGVjdGlvbi5pZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkuXG4gICAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLm1lc3NhZ2UoXCJzdWNjZXNzXCIsIFwiZGVsZXRlZF9tZXNzYWdlX3RpdGxlXCIsIFwiZGVsZXRlZF9tZXNzYWdlX2NvbnRlbnRcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5saXN0KHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5OiBgc2NoZWR1bGluZ0lkIGVxICcke3RoaXMuYWdlbmRhLmlkfSdgXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmKGNvbnRlbnRzLnRvdGFsRWxlbWVudHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGNvbnRlbnRzLmNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEdyaWRDb2x1bW5zKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJsb2dpc3RjVW5pdE5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXREb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9sb2dpc3RjX3VuaXRfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZUtleVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX2tleVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlTnVtYmVyXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2VfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VTZXJpYWxOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9zZXJpYWxfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9vd25lcl9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwib3JkZXJSZWNlaXZpbmdDb2RlXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X29yZGVyX3JlY2VpdmluZ19jb2RlXCIpIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtZXNzYWdlKHNldmVyaXR5OiBzdHJpbmcsIHN1bW1hcnk6IHN0cmluZywgZGV0YWlsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHksXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHN1bW1hcnkpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRldGFpbCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { DocumentGridComponent } from './document-grid.component';
3
+ import { NgModule } from "@angular/core";
4
+ import { CommonModule } from "@angular/common";
5
+ import { TranslateModule } from "@ngx-translate/core";
6
+ import { ButtonModule, EmptyStateModule } from "@seniorsistemas/angular-components";
7
+ import { PanelModule } from 'primeng/primeng';
8
+ import { TableModule } from "primeng/table";
9
+ import { RegisterDocumentModule } from './register-document/register-document.module';
10
+ import { InsertKeyModule } from './insert-key/insert-key.module';
11
+ import { ButtonModule as PrimeButtonModule } from "primeng/button";
12
+ import { ComponentsModule as LogisticaComponentsModule } from "@seniorsistemas/yms-components";
13
+ var DocumentGridModule = /** @class */ (function () {
14
+ function DocumentGridModule() {
15
+ }
16
+ DocumentGridModule = tslib_1.__decorate([
17
+ NgModule({
18
+ declarations: [DocumentGridComponent],
19
+ entryComponents: [DocumentGridComponent],
20
+ exports: [DocumentGridComponent],
21
+ imports: [
22
+ CommonModule,
23
+ TranslateModule,
24
+ ButtonModule,
25
+ PanelModule,
26
+ TableModule,
27
+ RegisterDocumentModule,
28
+ InsertKeyModule,
29
+ PrimeButtonModule,
30
+ LogisticaComponentsModule,
31
+ EmptyStateModule
32
+ ],
33
+ })
34
+ ], DocumentGridModule);
35
+ return DocumentGridModule;
36
+ }());
37
+ export { DocumentGridModule };
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLElBQUksaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLElBQUkseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQW1CL0Y7SUFBQTtJQUNBLENBQUM7SUFEWSxrQkFBa0I7UUFqQjlCLFFBQVEsQ0FBQztZQUNOLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQ3JDLGVBQWUsRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQ3hDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQ2hDLE9BQU8sRUFBRTtnQkFDUCxZQUFZO2dCQUNaLGVBQWU7Z0JBQ2YsWUFBWTtnQkFDWixXQUFXO2dCQUNYLFdBQVc7Z0JBQ1gsc0JBQXNCO2dCQUN0QixlQUFlO2dCQUNmLGlCQUFpQjtnQkFDakIseUJBQXlCO2dCQUN6QixnQkFBZ0I7YUFDakI7U0FDSixDQUFDO09BQ1csa0JBQWtCLENBQzlCO0lBQUQseUJBQUM7Q0FBQSxBQURELElBQ0M7U0FEWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEVtcHR5U3RhdGVNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3ByaW1lbmcnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgUmVnaXN0ZXJEb2N1bWVudE1vZHVsZSB9IGZyb20gJy4vcmVnaXN0ZXItZG9jdW1lbnQvcmVnaXN0ZXItZG9jdW1lbnQubW9kdWxlJztcbmltcG9ydCB7IEluc2VydEtleU1vZHVsZSB9IGZyb20gJy4vaW5zZXJ0LWtleS9pbnNlcnQta2V5Lm1vZHVsZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgYXMgUHJpbWVCdXR0b25Nb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9idXR0b25cIjtcbmltcG9ydCB7IENvbXBvbmVudHNNb2R1bGUgYXMgTG9naXN0aWNhQ29tcG9uZW50c01vZHVsZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMveW1zLWNvbXBvbmVudHNcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtEb2N1bWVudEdyaWRDb21wb25lbnRdLFxuICAgIGVudHJ5Q29tcG9uZW50czogW0RvY3VtZW50R3JpZENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0RvY3VtZW50R3JpZENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgUGFuZWxNb2R1bGUsXG4gICAgICBUYWJsZU1vZHVsZSxcbiAgICAgIFJlZ2lzdGVyRG9jdW1lbnRNb2R1bGUsXG4gICAgICBJbnNlcnRLZXlNb2R1bGUsXG4gICAgICBQcmltZUJ1dHRvbk1vZHVsZSxcbiAgICAgIExvZ2lzdGljYUNvbXBvbmVudHNNb2R1bGUsXG4gICAgICBFbXB0eVN0YXRlTW9kdWxlXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRHcmlkTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { DocumentService } from './../../../entities/document/document.service';
3
+ import { Component, EventEmitter, Output } from "@angular/core";
4
+ import { FormBuilder } from "@angular/forms";
5
+ import { MessageService } from 'primeng/api';
6
+ import { TranslateService } from '@ngx-translate/core';
7
+ var InsertKeyComponent = /** @class */ (function () {
8
+ function InsertKeyComponent(formBuilder, documentService, messageService, translate) {
9
+ this.formBuilder = formBuilder;
10
+ this.documentService = documentService;
11
+ this.messageService = messageService;
12
+ this.translate = translate;
13
+ this.document = new EventEmitter();
14
+ }
15
+ InsertKeyComponent.prototype.ngOnInit = function () {
16
+ this.formGroup = this.formBuilder.group({
17
+ key: [undefined]
18
+ });
19
+ };
20
+ InsertKeyComponent.prototype.showInsertKey = function (visible) {
21
+ this.visible = visible;
22
+ };
23
+ InsertKeyComponent.prototype.add = function () {
24
+ this.visible = false;
25
+ if (!this.formGroup.get('key').value) {
26
+ return;
27
+ }
28
+ this.searchKey();
29
+ };
30
+ InsertKeyComponent.prototype.searchKey = function () {
31
+ var _this = this;
32
+ var key = {
33
+ documentKeys: [this.formGroup.get('key').value],
34
+ invoices: undefined,
35
+ logistcUnitName: undefined,
36
+ size: 0,
37
+ offset: 0
38
+ };
39
+ this.documentService.findDocuments(key).subscribe(function (content) {
40
+ if (content.totalElements < 1) {
41
+ _this.message("warn", "yms.int.wms_insert_key_warning_message_header", "yms.int.wms_insert_key_warning_message_description");
42
+ return;
43
+ }
44
+ _this.document.emit(content.contents[0]);
45
+ _this.message("success", "yms.int.wms_insert_key_success_message_header", "yms.int.wms_insert_key_success_message_description");
46
+ _this.formGroup.reset();
47
+ });
48
+ };
49
+ InsertKeyComponent.prototype.message = function (success, header, description) {
50
+ this.messageService.add({
51
+ severity: success,
52
+ summary: this.translate.instant(header),
53
+ detail: this.translate.instant(description),
54
+ });
55
+ };
56
+ InsertKeyComponent.prototype.cancel = function () {
57
+ this.visible = false;
58
+ };
59
+ tslib_1.__decorate([
60
+ Output(),
61
+ tslib_1.__metadata("design:type", EventEmitter)
62
+ ], InsertKeyComponent.prototype, "document", void 0);
63
+ InsertKeyComponent = tslib_1.__decorate([
64
+ Component({
65
+ selector: "insert-key",
66
+ template: "<form [formGroup]=\"formGroup\">\n <p-dialog [(visible)]=\"visible\">\n <p-header>{{'yms.insert_key_header' | translate}}</p-header>\n <div class=\"flex py-2 justify-content-center spacing-bottom\">\n <label for=\"key\">{{'yms.insert_key_label'}}</label>\n <input id=\"key\" class=\"size-input\" pInputText type=\"text\" formControlName=\"key\">\n </div>\n <div class=\"separator\"></div>\n <div class=\"spacing-top\">\n <s-button pButton label=\"{{'save' | 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>",
67
+ 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:550px}"]
68
+ }),
69
+ tslib_1.__metadata("design:paramtypes", [FormBuilder,
70
+ DocumentService,
71
+ MessageService,
72
+ TranslateService])
73
+ ], InsertKeyComponent);
74
+ return InsertKeyComponent;
75
+ }());
76
+ export { InsertKeyComponent };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU92RDtJQU9JLDRCQUNxQixXQUF3QixFQUN4QixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixTQUEyQjtRQUgzQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBVnRDLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVc3RCxDQUFDO0lBRUoscUNBQVEsR0FBUjtRQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDcEMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ25CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSwwQ0FBYSxHQUFwQixVQUFxQixPQUFnQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRU0sZ0NBQUcsR0FBVjtRQUNJLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDakMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxzQ0FBUyxHQUFqQjtRQUFBLGlCQW1CQztRQWxCRyxJQUFNLEdBQUcsR0FBdUI7WUFDNUIsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQy9DLFFBQVEsRUFBRSxTQUFTO1lBQ25CLGVBQWUsRUFBRSxTQUFTO1lBQzFCLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFLENBQUM7U0FDWixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUMsT0FBWTtZQUMzRCxJQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixLQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSwrQ0FBK0MsRUFBRSxvREFBb0QsQ0FBQyxDQUFDO2dCQUM1SCxPQUFPO2FBQ1Y7WUFFRCxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsK0NBQStDLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztZQUMvSCxLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9DQUFPLEdBQWYsVUFBZ0IsT0FBZSxFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztZQUNwQixRQUFRLEVBQUUsT0FBTztZQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG1DQUFNLEdBQWI7UUFDSSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBaEVTO1FBQVQsTUFBTSxFQUFFOzBDQUFXLFlBQVk7d0RBQWdDO0lBRHZELGtCQUFrQjtRQUw5QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsWUFBWTtZQUN0QixnMUJBQTBDOztTQUU3QyxDQUFDO2lEQVNvQyxXQUFXO1lBQ1AsZUFBZTtZQUNoQixjQUFjO1lBQ25CLGdCQUFnQjtPQVh2QyxrQkFBa0IsQ0FrRTlCO0lBQUQseUJBQUM7Q0FBQSxBQWxFRCxJQWtFQztTQWxFWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kRG9jdW1lbnRzSW5wdXQgfSBmcm9tICcuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2ZpbmQtZG9jdW1lbnRzLWlucHV0JztcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImluc2VydC1rZXlcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2luc2VydC1rZXkuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFsnLi9pbnNlcnQta2V5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5zZXJ0S2V5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgZG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgdmlzaWJsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMga2V5OiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGtleTogW3VuZGVmaW5lZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dJbnNlcnRLZXkodmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgICAgIGlmKCF0aGlzLmZvcm1Hcm91cC5nZXQoJ2tleScpLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEtleSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoS2V5KCkge1xuICAgICAgICBjb25zdCBrZXk6IEZpbmREb2N1bWVudHNJbnB1dCA9IHtcbiAgICAgICAgICAgIGRvY3VtZW50S2V5czogW3RoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWVdLFxuICAgICAgICAgICAgaW52b2ljZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2l6ZTogMCxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmZpbmREb2N1bWVudHMoa2V5KS5zdWJzY3JpYmUoKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYoY29udGVudC50b3RhbEVsZW1lbnRzIDwgMSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZShcIndhcm5cIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9oZWFkZXJcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuZW1pdChjb250ZW50LmNvbnRlbnRzWzBdKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZShcInN1Y2Nlc3NcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3N1Y2Nlc3NfbWVzc2FnZV9oZWFkZXJcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3N1Y2Nlc3NfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWVzc2FnZShzdWNjZXNzOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiBzdWNjZXNzLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChoZWFkZXIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGRlc2NyaXB0aW9uKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { NgModule } from "@angular/core";
3
+ import { InsertKeyComponent } from "./insert-key.component";
4
+ import { CommonModule } from "@angular/common";
5
+ import { ReactiveFormsModule } from "@angular/forms";
6
+ import { ButtonModule } from "@seniorsistemas/angular-components";
7
+ import { TranslateModule } from "@ngx-translate/core";
8
+ import { DialogModule, InputTextModule } from "primeng/primeng";
9
+ var InsertKeyModule = /** @class */ (function () {
10
+ function InsertKeyModule() {
11
+ }
12
+ InsertKeyModule = tslib_1.__decorate([
13
+ NgModule({
14
+ imports: [
15
+ CommonModule,
16
+ ReactiveFormsModule,
17
+ ButtonModule,
18
+ TranslateModule,
19
+ DialogModule,
20
+ InputTextModule
21
+ ],
22
+ exports: [InsertKeyComponent],
23
+ declarations: [InsertKeyComponent]
24
+ })
25
+ ], InsertKeyModule);
26
+ return InsertKeyModule;
27
+ }());
28
+ export { InsertKeyModule };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBY2hFO0lBQUE7SUFFQSxDQUFDO0lBRlksZUFBZTtRQVozQixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osZUFBZTtnQkFDZixZQUFZO2dCQUNaLGVBQWU7YUFDbEI7WUFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUM3QixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNyQyxDQUFDO09BQ1csZUFBZSxDQUUzQjtJQUFELHNCQUFDO0NBQUEsQUFGRCxJQUVDO1NBRlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEluc2VydEtleUNvbXBvbmVudCB9IGZyb20gXCIuL2luc2VydC1rZXkuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IERpYWxvZ01vZHVsZSwgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvcHJpbWVuZ1wiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtJbnNlcnRLZXlDb21wb25lbnRdLFxuICAgIGRlY2xhcmF0aW9uczogW0luc2VydEtleUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSW5zZXJ0S2V5TW9kdWxlIHtcblxufVxuIl19