@valtimo/dossier-management 11.1.2 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/esm2022/lib/components/dossier-management-assignee/dossier-management-assignee.component.mjs +5 -5
  2. package/esm2022/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.mjs +56 -27
  3. package/esm2022/lib/components/dossier-management-detail/dossier-management-detail.component.mjs +13 -74
  4. package/esm2022/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.mjs +17 -13
  5. package/esm2022/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.mjs +152 -0
  6. package/esm2022/lib/components/dossier-management-document-definition/dossier-management-document-definition.mjs +48 -0
  7. package/esm2022/lib/components/dossier-management-link-process/dossier-management-link-process.component.mjs +3 -3
  8. package/esm2022/lib/components/dossier-management-list/dossier-management-list.component.mjs +47 -30
  9. package/esm2022/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.mjs +45 -43
  10. package/esm2022/lib/components/dossier-management-processes/dossier-management-processes.component.mjs +110 -0
  11. package/esm2022/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.mjs +67 -58
  12. package/esm2022/lib/components/dossier-management-tabs/dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component.mjs +1 -1
  13. package/esm2022/lib/components/dossier-management-tabs/dossier-management-tabs.component.mjs +14 -27
  14. package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.component.mjs +167 -111
  15. package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.constants.mjs +23 -0
  16. package/esm2022/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.mjs +17 -0
  17. package/esm2022/lib/dossier-management.module.mjs +48 -9
  18. package/esm2022/lib/models/tab.enum.mjs +3 -1
  19. package/esm2022/lib/services/dossier-detail.service.mjs +84 -0
  20. package/esm2022/lib/services/dossier-export.service.mjs +39 -0
  21. package/esm2022/lib/services/dossier-import.service.mjs +38 -0
  22. package/esm2022/lib/services/index.mjs +3 -1
  23. package/esm2022/lib/services/tab.service.mjs +2 -2
  24. package/fesm2022/valtimo-dossier-management.mjs +1174 -654
  25. package/fesm2022/valtimo-dossier-management.mjs.map +1 -1
  26. package/lib/components/dossier-management-assignee/dossier-management-assignee.component.d.ts +1 -1
  27. package/lib/components/dossier-management-assignee/dossier-management-assignee.component.d.ts.map +1 -1
  28. package/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.d.ts +13 -10
  29. package/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.d.ts.map +1 -1
  30. package/lib/components/dossier-management-detail/dossier-management-detail.component.d.ts +7 -22
  31. package/lib/components/dossier-management-detail/dossier-management-detail.component.d.ts.map +1 -1
  32. package/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.d.ts +3 -1
  33. package/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.d.ts.map +1 -1
  34. package/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.d.ts +40 -0
  35. package/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.d.ts.map +1 -0
  36. package/lib/components/dossier-management-document-definition/dossier-management-document-definition.d.ts +15 -0
  37. package/lib/components/dossier-management-document-definition/dossier-management-document-definition.d.ts.map +1 -0
  38. package/lib/components/dossier-management-list/dossier-management-list.component.d.ts +16 -19
  39. package/lib/components/dossier-management-list/dossier-management-list.component.d.ts.map +1 -1
  40. package/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.d.ts +14 -11
  41. package/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.d.ts.map +1 -1
  42. package/lib/components/dossier-management-processes/dossier-management-processes.component.d.ts +29 -0
  43. package/lib/components/dossier-management-processes/dossier-management-processes.component.d.ts.map +1 -0
  44. package/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.d.ts +14 -13
  45. package/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.d.ts.map +1 -1
  46. package/lib/components/dossier-management-tabs/dossier-management-tabs.component.d.ts +3 -2
  47. package/lib/components/dossier-management-tabs/dossier-management-tabs.component.d.ts.map +1 -1
  48. package/lib/components/dossier-management-upload/dossier-management-upload.component.d.ts +42 -30
  49. package/lib/components/dossier-management-upload/dossier-management-upload.component.d.ts.map +1 -1
  50. package/lib/components/dossier-management-upload/dossier-management-upload.constants.d.ts +15 -0
  51. package/lib/components/dossier-management-upload/dossier-management-upload.constants.d.ts.map +1 -0
  52. package/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.d.ts +9 -0
  53. package/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.d.ts.map +1 -0
  54. package/lib/dossier-management.module.d.ts +13 -9
  55. package/lib/dossier-management.module.d.ts.map +1 -1
  56. package/lib/models/tab.enum.d.ts +2 -0
  57. package/lib/models/tab.enum.d.ts.map +1 -1
  58. package/lib/services/dossier-detail.service.d.ts +30 -0
  59. package/lib/services/dossier-detail.service.d.ts.map +1 -0
  60. package/lib/services/dossier-export.service.d.ts +14 -0
  61. package/lib/services/dossier-export.service.d.ts.map +1 -0
  62. package/lib/services/dossier-import.service.d.ts +14 -0
  63. package/lib/services/dossier-import.service.d.ts.map +1 -0
  64. package/lib/services/index.d.ts +2 -0
  65. package/lib/services/index.d.ts.map +1 -1
  66. package/lib/services/tab.service.d.ts.map +1 -1
  67. package/package.json +1 -1
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
68
68
  }], closeModalEvent: [{
69
69
  type: Output
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwvZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwvZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQXlCLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVFsRSxNQUFNLE9BQU8sc0NBQXNDO0lBSWpELElBQW9CLEdBQUcsQ0FBQyxLQUFpQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRTtZQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQ3ZFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FDaEQsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ25FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQU9ELFlBQ21CLEVBQWUsRUFDZixVQUFzQjtRQUR0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVAvQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0lBUS9ELENBQUM7SUFFRyxZQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxPQUFPO1FBQ1osTUFBTSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQWhEVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyx3S0N4Qm5ELDRpREEyQ0E7OzRGRG5CYSxzQ0FBc0M7a0JBSmxELFNBQVM7K0JBQ0UsMkNBQTJDOzJIQUk1QyxJQUFJO3NCQUFaLEtBQUs7Z0JBR2MsR0FBRztzQkFBdEIsS0FBSztnQkFzQkksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBcGlUYWJJdGVtfSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7VGFiU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1lZGl0LXRhYi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTWFuYWdlbWVudEVkaXRUYWJNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdGFiOiBBcGlUYWJJdGVtO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhYih2YWx1ZTogQXBpVGFiSXRlbSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZENvbnRlbnRLZXlzKSB7IFxuICAgICAgdGhpcy5jb25maWd1cmVkS2V5c0ZvckVkaXQgPSB0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZENvbnRlbnRLZXlzLmZpbHRlcihcbiAgICAgICAgKHRhYktleTogc3RyaW5nKSA9PiB0YWJLZXkgIT09IHZhbHVlLmNvbnRlbnRLZXlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFiID0gdmFsdWU7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiB0aGlzLmZiLmNvbnRyb2wodmFsdWUubmFtZSksXG4gICAgICBrZXk6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6IHZhbHVlLmtleSwgZGlzYWJsZWQ6IHRydWV9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNvbnRlbnRLZXk6IHRoaXMuZmIuY29udHJvbCh2YWx1ZS5jb250ZW50S2V5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgZ2V0IHRhYigpOiBBcGlUYWJJdGVtIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiO1xuICB9XG5cbiAgQE91dHB1dCgpIGNsb3NlTW9kYWxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8QXBpVGFiSXRlbSB8IG51bGw+KCk7XG5cbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGNvbmZpZ3VyZWRLZXlzRm9yRWRpdDogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgb25DbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZWRpdFRhYigpOiB2b2lkIHtcbiAgICBjb25zdCB7Y29udGVudEtleSwgbmFtZX0gPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcblxuICAgIGlmICghY29udGVudEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoey4uLnRoaXMudGFiLCBuYW1lLCBjb250ZW50S2V5fSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGNkcy1tb2RhbCAqbmdJZj1cImZvcm1cIiBbb3Blbl09XCJvcGVuXCI+XG4gIDxjZHMtbW9kYWwtaGVhZGVyIHNob3dDbG9zZUJ1dHRvbj1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DbG9zZU1vZGFsKClcIj5cbiAgICA8aDMgY2RzTW9kYWxIZWFkZXJIZWFkaW5nPlxuICAgICAge3tcbiAgICAgICAgJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuZWRpdE1vZGFsLnRpdGxlJ1xuICAgICAgICAgIHwgdHJhbnNsYXRlOiB7bmFtZTogdGFiPy5uYW1lID8/ICdkb3NzaWVyLnRhYnMuJyArIHRhYi5rZXkgfCB0cmFuc2xhdGV9XG4gICAgICB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8c2VjdGlvbiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgPHZhbHRpbW8tdGFiLWZvcm1cbiAgICAgIFtjb25maWd1cmVkQ29udGVudEtleXNdPVwiY29uZmlndXJlZEtleXNGb3JFZGl0XCJcbiAgICAgIFt0YWJUeXBlXT1cInRhYj8udHlwZVwiXG4gICAgPjwvdmFsdGltby10YWItZm9ybT5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cIm9uQ2xvc2VNb2RhbCgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIiAoY2xpY2spPVwiZWRpdFRhYigpXCI+XG4gICAgICB7eyAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5lZGl0TW9kYWwudXBkYXRlVGFiJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwvZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwvZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQXlCLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVFsRSxNQUFNLE9BQU8sc0NBQXNDO0lBSWpELElBQW9CLEdBQUcsQ0FBQyxLQUFpQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRTtZQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQ3ZFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FDaEQsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ25FLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQU9ELFlBQ21CLEVBQWUsRUFDZixVQUFzQjtRQUR0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVAvQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0lBUS9ELENBQUM7SUFFRyxZQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxPQUFPO1FBQ1osTUFBTSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQWhEVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyx3S0N4Qm5ELDRpREEyQ0E7OzRGRG5CYSxzQ0FBc0M7a0JBSmxELFNBQVM7K0JBQ0UsMkNBQTJDOzJIQUk1QyxJQUFJO3NCQUFaLEtBQUs7Z0JBR2MsR0FBRztzQkFBdEIsS0FBSztnQkFzQkksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBcGlUYWJJdGVtfSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7VGFiU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1lZGl0LXRhYi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTWFuYWdlbWVudEVkaXRUYWJNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdGFiOiBBcGlUYWJJdGVtO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRhYih2YWx1ZTogQXBpVGFiSXRlbSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZENvbnRlbnRLZXlzKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyZWRLZXlzRm9yRWRpdCA9IHRoaXMudGFiU2VydmljZS5jb25maWd1cmVkQ29udGVudEtleXMuZmlsdGVyKFxuICAgICAgICAodGFiS2V5OiBzdHJpbmcpID0+IHRhYktleSAhPT0gdmFsdWUuY29udGVudEtleVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl90YWIgPSB2YWx1ZTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IHRoaXMuZmIuY29udHJvbCh2YWx1ZS5uYW1lKSxcbiAgICAgIGtleTogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTogdmFsdWUua2V5LCBkaXNhYmxlZDogdHJ1ZX0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY29udGVudEtleTogdGhpcy5mYi5jb250cm9sKHZhbHVlLmNvbnRlbnRLZXksIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBnZXQgdGFiKCk6IEFwaVRhYkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLl90YWI7XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VNb2RhbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxBcGlUYWJJdGVtIHwgbnVsbD4oKTtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgY29uZmlndXJlZEtleXNGb3JFZGl0OiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYlNlcnZpY2U6IFRhYlNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBvbkNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZU1vZGFsRXZlbnQuZW1pdChudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0VGFiKCk6IHZvaWQge1xuICAgIGNvbnN0IHtjb250ZW50S2V5LCBuYW1lfSA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpO1xuXG4gICAgaWYgKCFjb250ZW50S2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZU1vZGFsRXZlbnQuZW1pdCh7Li4udGhpcy50YWIsIG5hbWUsIGNvbnRlbnRLZXl9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsICpuZ0lmPVwiZm9ybVwiIFtvcGVuXT1cIm9wZW5cIj5cbiAgPGNkcy1tb2RhbC1oZWFkZXIgc2hvd0Nsb3NlQnV0dG9uPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJvbkNsb3NlTW9kYWwoKVwiPlxuICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICB7e1xuICAgICAgICAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5lZGl0TW9kYWwudGl0bGUnXG4gICAgICAgICAgfCB0cmFuc2xhdGU6IHtuYW1lOiB0YWI/Lm5hbWUgPz8gJ2Rvc3NpZXIudGFicy4nICsgdGFiLmtleSB8IHRyYW5zbGF0ZX1cbiAgICAgIH19XG4gICAgPC9oMz5cbiAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuXG4gIDxzZWN0aW9uIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNkc01vZGFsQ29udGVudD5cbiAgICA8dmFsdGltby10YWItZm9ybVxuICAgICAgW2NvbmZpZ3VyZWRDb250ZW50S2V5c109XCJjb25maWd1cmVkS2V5c0ZvckVkaXRcIlxuICAgICAgW3RhYlR5cGVdPVwidGFiPy50eXBlXCJcbiAgICA+PC92YWx0aW1vLXRhYi1mb3JtPlxuICA8L3NlY3Rpb24+XG5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DbG9zZU1vZGFsKClcIj5cbiAgICAgIHt7ICdpbnRlcmZhY2UuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiIChjbGljayk9XCJlZGl0VGFiKClcIj5cbiAgICAgIHt7ICdkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmVkaXRNb2RhbC51cGRhdGVUYWInIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbjwvY2RzLW1vZGFsPlxuIl19
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
17
17
  import { ArrowDown16, ArrowUp16 } from '@carbon/icons';
18
- import { ViewType } from '@valtimo/components';
18
+ import { MoveRowDirection, ViewType, } from '@valtimo/components';
19
19
  import { BehaviorSubject, map, tap } from 'rxjs';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "carbon-components-angular";
@@ -43,6 +43,13 @@ export class DossierManagementTabsComponent {
43
43
  this.tabManagementService = tabManagementService;
44
44
  this.tabService = tabService;
45
45
  this.translateService = translateService;
46
+ this.actionItems = [
47
+ {
48
+ label: 'interface.delete',
49
+ callback: this.openDeleteConfirmationModal.bind(this),
50
+ type: 'danger',
51
+ },
52
+ ];
46
53
  this.deleteRowKey$ = new BehaviorSubject(null);
47
54
  this.showDeleteModal$ = this.deleteRowKey$.pipe(map((key) => !!key));
48
55
  this.openEditModal$ = new BehaviorSubject(false);
@@ -83,35 +90,15 @@ export class DossierManagementTabsComponent {
83
90
  key: '',
84
91
  label: 'dossierManagement.tabManagement.columns.content',
85
92
  },
86
- {
87
- className: 'valtimo-dossier-management-tabs__actions',
88
- key: '',
89
- label: '',
90
- template: this.moveButtonsTemplate,
91
- viewType: ViewType.TEMPLATE,
92
- },
93
- {
94
- actions: [
95
- {
96
- label: 'interface.delete',
97
- callback: this.openDeleteConfirmationModal.bind(this),
98
- type: 'danger',
99
- },
100
- ],
101
- className: 'valtimo-dossier-management-tabs__actions',
102
- key: '',
103
- label: '',
104
- viewType: ViewType.ACTION,
105
- },
106
93
  ]);
107
94
  this.cd.detectChanges();
108
95
  }
109
96
  isTranslated(key) {
110
97
  return this.translateService.instant(key) !== key;
111
98
  }
112
- onArrowClick(direction, index, event) {
113
- event.stopImmediatePropagation();
114
- const orderedTabs = direction === 'UP'
99
+ onMoveRowClick(event) {
100
+ const { direction, index } = event;
101
+ const orderedTabs = direction === MoveRowDirection.UP
115
102
  ? this.swapTabs(this._tabs, index - 1, index)
116
103
  : this.swapTabs(this._tabs, index, index + 1);
117
104
  this.tabManagementService.dispatchAction(this.tabManagementService.editTabsOrder(orderedTabs));
@@ -159,11 +146,11 @@ export class DossierManagementTabsComponent {
159
146
  return temp;
160
147
  }
161
148
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementTabsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.IconService }, { token: i2.TabManagementService }, { token: i2.TabService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementTabsComponent, selector: "valtimo-dossier-management-tabs", inputs: { documentDefinitionName: "documentDefinitionName" }, viewQueries: [{ propertyName: "tabContentColumnTemplate", first: true, predicate: ["tabContentColumn"], descendants: true }, { propertyName: "tabTypeColumnTemplate", first: true, predicate: ["tabTypeColumn"], descendants: true }, { propertyName: "moveButtonsTemplate", first: true, predicate: ["moveButtonsTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{fields: fields$ | async, loading: loading$ | async, tabs: tabs$ | async} as obs\"\n [items]=\"obs.tabs\"\n [fields]=\"obs.fields\"\n header=\"false\"\n [loading]=\"obs.loading\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTabButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTabButton\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #tabTypeColumn let-data=\"data\">\n {{\n isTranslated('dossierManagement.tabType.' + data.item.type)\n ? ('dossierManagement.tabType.' + data.item.type | translate)\n : data.item.type\n }}\n</ng-template>\n\n<ng-template #tabContentColumn let-data=\"data\">\n {{\n isTranslated('dossier.tabs.' + data.item.contentKey)\n ? ('dossier.tabs.' + data.item.contentKey | translate)\n : data.item.contentKey\n }}\n</ng-template>\n\n<ng-template #addTabButton>\n <button cdsButton=\"primary\" (click)=\"openAddTabModal()\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveButtonsTemplate let-data=\"data\">\n <div class=\"move-buttons-container\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('UP', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"(lastItemIndex$ | async) === data.index\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('DOWN', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-add-tab-modal\n *ngIf=\"openAddModal$ | async\"\n [documentDefinitionName]=\"documentDefinitionName\"\n [open]=\"openAddModal$ | async\"\n (closeModalEvent)=\"onCloseAddModalEvent($event)\"\n></valtimo-dossier-management-add-tab-modal>\n\n<valtimo-dossier-management-edit-tab-modal\n *ngIf=\"openEditModal$ | async\"\n [tab]=\"tab$ | async\"\n (closeModalEvent)=\"onCloseEditModalEvent($event)\"\n [open]=\"openEditModal$ | async\"\n></valtimo-dossier-management-edit-tab-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.tabManagement.deleteModal.description\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dossierManagement.tabManagement.deleteModal.title\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n", styles: [".valtimo-dossier-management-tabs__actions{width:1px}.valtimo-dossier-management-tabs__actions .move-buttons-container{display:flex;gap:8px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i5.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent", "cancelEvent"] }, { kind: "component", type: i5.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "header", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i5.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i6.DossierManagementAddTabModalComponent, selector: "valtimo-dossier-management-add-tab-modal", inputs: ["documentDefinitionName", "open"], outputs: ["closeModalEvent"] }, { kind: "component", type: i7.DossierManagementEditTabModalComponent, selector: "valtimo-dossier-management-edit-tab-modal", inputs: ["open", "tab"], outputs: ["closeModalEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementTabsComponent, selector: "valtimo-dossier-management-tabs", inputs: { documentDefinitionName: "documentDefinitionName" }, viewQueries: [{ propertyName: "tabContentColumnTemplate", first: true, predicate: ["tabContentColumn"], descendants: true }, { propertyName: "tabTypeColumnTemplate", first: true, predicate: ["tabTypeColumn"], descendants: true }, { propertyName: "moveButtonsTemplate", first: true, predicate: ["moveButtonsTemplate"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{fields: fields$ | async, loading: loading$ | async, tabs: tabs$ | async} as obs\"\n [actionItems]=\"actionItems\"\n [items]=\"obs.tabs\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event)\"\n>\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTabButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTabButton\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #tabTypeColumn let-data=\"data\">\n {{\n isTranslated('dossierManagement.tabType.' + data.item.type)\n ? ('dossierManagement.tabType.' + data.item.type | translate)\n : data.item.type\n }}\n</ng-template>\n\n<ng-template #tabContentColumn let-data=\"data\">\n {{\n isTranslated('dossier.tabs.' + data.item.contentKey)\n ? ('dossier.tabs.' + data.item.contentKey | translate)\n : data.item.contentKey\n }}\n</ng-template>\n\n<ng-template #addTabButton>\n <button cdsButton=\"primary\" (click)=\"openAddTabModal()\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<valtimo-dossier-management-add-tab-modal\n *ngIf=\"openAddModal$ | async\"\n [documentDefinitionName]=\"documentDefinitionName\"\n [open]=\"openAddModal$ | async\"\n (closeModalEvent)=\"onCloseAddModalEvent($event)\"\n></valtimo-dossier-management-add-tab-modal>\n\n<valtimo-dossier-management-edit-tab-modal\n *ngIf=\"openEditModal$ | async\"\n [tab]=\"tab$ | async\"\n (closeModalEvent)=\"onCloseEditModalEvent($event)\"\n [open]=\"openEditModal$ | async\"\n></valtimo-dossier-management-edit-tab-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.tabManagement.deleteModal.description\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dossierManagement.tabManagement.deleteModal.title\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n", styles: [".valtimo-dossier-management-tabs__actions{width:1px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i5.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent", "cancelEvent"] }, { kind: "component", type: i5.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow"] }, { kind: "component", type: i5.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i6.DossierManagementAddTabModalComponent, selector: "valtimo-dossier-management-add-tab-modal", inputs: ["documentDefinitionName", "open"], outputs: ["closeModalEvent"] }, { kind: "component", type: i7.DossierManagementEditTabModalComponent, selector: "valtimo-dossier-management-edit-tab-modal", inputs: ["open", "tab"], outputs: ["closeModalEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
163
150
  }
164
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementTabsComponent, decorators: [{
165
152
  type: Component,
166
- args: [{ selector: 'valtimo-dossier-management-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{fields: fields$ | async, loading: loading$ | async, tabs: tabs$ | async} as obs\"\n [items]=\"obs.tabs\"\n [fields]=\"obs.fields\"\n header=\"false\"\n [loading]=\"obs.loading\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTabButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTabButton\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #tabTypeColumn let-data=\"data\">\n {{\n isTranslated('dossierManagement.tabType.' + data.item.type)\n ? ('dossierManagement.tabType.' + data.item.type | translate)\n : data.item.type\n }}\n</ng-template>\n\n<ng-template #tabContentColumn let-data=\"data\">\n {{\n isTranslated('dossier.tabs.' + data.item.contentKey)\n ? ('dossier.tabs.' + data.item.contentKey | translate)\n : data.item.contentKey\n }}\n</ng-template>\n\n<ng-template #addTabButton>\n <button cdsButton=\"primary\" (click)=\"openAddTabModal()\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<ng-template #moveButtonsTemplate let-data=\"data\">\n <div class=\"move-buttons-container\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('UP', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"(lastItemIndex$ | async) === data.index\"\n [iconOnly]=\"true\"\n (click)=\"onArrowClick('DOWN', data.index, $event)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-add-tab-modal\n *ngIf=\"openAddModal$ | async\"\n [documentDefinitionName]=\"documentDefinitionName\"\n [open]=\"openAddModal$ | async\"\n (closeModalEvent)=\"onCloseAddModalEvent($event)\"\n></valtimo-dossier-management-add-tab-modal>\n\n<valtimo-dossier-management-edit-tab-modal\n *ngIf=\"openEditModal$ | async\"\n [tab]=\"tab$ | async\"\n (closeModalEvent)=\"onCloseEditModalEvent($event)\"\n [open]=\"openEditModal$ | async\"\n></valtimo-dossier-management-edit-tab-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.tabManagement.deleteModal.description\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dossierManagement.tabManagement.deleteModal.title\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n", styles: [".valtimo-dossier-management-tabs__actions{width:1px}.valtimo-dossier-management-tabs__actions .move-buttons-container{display:flex;gap:8px}\n"] }]
153
+ args: [{ selector: 'valtimo-dossier-management-tabs', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{fields: fields$ | async, loading: loading$ | async, tabs: tabs$ | async} as obs\"\n [actionItems]=\"actionItems\"\n [items]=\"obs.tabs\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event)\"\n>\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTabButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTabButton\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #tabTypeColumn let-data=\"data\">\n {{\n isTranslated('dossierManagement.tabType.' + data.item.type)\n ? ('dossierManagement.tabType.' + data.item.type | translate)\n : data.item.type\n }}\n</ng-template>\n\n<ng-template #tabContentColumn let-data=\"data\">\n {{\n isTranslated('dossier.tabs.' + data.item.contentKey)\n ? ('dossier.tabs.' + data.item.contentKey | translate)\n : data.item.contentKey\n }}\n</ng-template>\n\n<ng-template #addTabButton>\n <button cdsButton=\"primary\" (click)=\"openAddTabModal()\">\n {{ 'dossierManagement.tabManagement.addModal.addTab' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<valtimo-dossier-management-add-tab-modal\n *ngIf=\"openAddModal$ | async\"\n [documentDefinitionName]=\"documentDefinitionName\"\n [open]=\"openAddModal$ | async\"\n (closeModalEvent)=\"onCloseAddModalEvent($event)\"\n></valtimo-dossier-management-add-tab-modal>\n\n<valtimo-dossier-management-edit-tab-modal\n *ngIf=\"openEditModal$ | async\"\n [tab]=\"tab$ | async\"\n (closeModalEvent)=\"onCloseEditModalEvent($event)\"\n [open]=\"openEditModal$ | async\"\n></valtimo-dossier-management-edit-tab-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dossierManagement.tabManagement.deleteModal.description\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dossierManagement.tabManagement.deleteModal.title\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n", styles: [".valtimo-dossier-management-tabs__actions{width:1px}\n"] }]
167
154
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.IconService }, { type: i2.TabManagementService }, { type: i2.TabService }, { type: i3.TranslateService }]; }, propDecorators: { tabContentColumnTemplate: [{
168
155
  type: ViewChild,
169
156
  args: ['tabContentColumn']
@@ -176,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
176
163
  }], documentDefinitionName: [{
177
164
  type: Input
178
165
  }] } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBZSxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUczRCxPQUFPLEVBQUMsZUFBZSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVUzRCxNQUFNLE9BQU8sOEJBQThCO0lBTXpDLElBQW9CLHNCQUFzQixDQUFDLEtBQWE7UUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFD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b0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQWU7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQXNCLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDckUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXRLVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qix5ZEN4QzNDLG9sSEF3R0E7OzRGRGhFYSw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzZOQUdOLHdCQUF3QjtzQkFBdEQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0QscUJBQXFCO3NCQUFoRCxTQUFTO3VCQUFDLGVBQWU7Z0JBQ1EsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFHWixzQkFBc0I7c0JBQXpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fycm93RG93bjE2LCBBcnJvd1VwMTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29sdW1uQ29uZmlnLCBWaWV3VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0FwaVRhYkl0ZW19IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYWJNYW5hZ2VtZW50U2VydmljZSwgVGFiU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9zc2llci1tYW5hZ2VtZW50LXRhYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50VGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd0YWJDb250ZW50Q29sdW1uJykgdGFiQ29udGVudENvbHVtblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCd0YWJUeXBlQ29sdW1uJykgdGFiVHlwZUNvbHVtblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdtb3ZlQnV0dG9uc1RlbXBsYXRlJykgbW92ZUJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lID0gdmFsdWU7XG4gICAgdGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5zZXRDYXNlRGVmaW5pdGlvbklkKHZhbHVlKTtcbiAgICB0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLmxvYWRUYWJzKCk7XG4gIH1cbiAgcHVibGljIGdldCBkb2N1bWVudERlZmluaXRpb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWU7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlUm93S2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93RGVsZXRlTW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5kZWxldGVSb3dLZXkkLnBpcGUoXG4gICAgbWFwKChrZXk6IHN0cmluZyB8IG51bGwpID0+ICEha2V5KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbkVkaXRNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGZpZWxkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbHVtbkNvbmZpZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UubG9hZGluZyQ7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuQWRkTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBsYXN0SXRlbUluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigtMSk7XG5cbiAgcHJpdmF0ZSBfdGFiczogQXBpVGFiSXRlbVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFicyQgPSB0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLnRhYnMkLnBpcGUoXG4gICAgdGFwKCh0YWJzOiBBcGlUYWJJdGVtW10pID0+IHtcbiAgICAgIHRoaXMuX3RhYnMgPSB0YWJzO1xuICAgICAgdGhpcy50YWJTZXJ2aWNlLmNvbmZpZ3VyZWRDb250ZW50S2V5cyA9IHRhYnMubWFwKCh0YWI6IEFwaVRhYkl0ZW0pID0+IHRhYi5jb250ZW50S2V5KTtcbiAgICAgIHRoaXMudGFiU2VydmljZS5jb25maWd1cmVkVGFiS2V5cyA9IHRhYnMubWFwKCh0YWI6IEFwaVRhYkl0ZW0pID0+IHRhYi5rZXkpO1xuICAgICAgdGhpcy5sYXN0SXRlbUluZGV4JC5uZXh0KHRhYnMubGVuZ3RoIC0gMSk7XG4gICAgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHRhYiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFwaVRhYkl0ZW0gfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYk1hbmFnZW1lbnRTZXJ2aWNlOiBUYWJNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYlNlcnZpY2U6IFRhYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJBbGwoW0Fycm93RG93bjE2LCBBcnJvd1VwMTZdKTtcbiAgICB0aGlzLmZpZWxkcyQubmV4dChbXG4gICAgICB7XG4gICAgICAgIGtleTogJ25hbWUnLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy5uYW1lJyxcbiAgICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRFWFQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdrZXknLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy5rZXknLFxuICAgICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMudGFiVHlwZUNvbHVtblRlbXBsYXRlLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy50eXBlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMudGFiQ29udGVudENvbHVtblRlbXBsYXRlLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuY29sdW1ucy5jb250ZW50JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXRhYnNfX2FjdGlvbnMnLFxuICAgICAgICBrZXk6ICcnLFxuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLm1vdmVCdXR0b25zVGVtcGxhdGUsXG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URU1QTEFURSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ2ludGVyZmFjZS5kZWxldGUnLFxuICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMub3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsLmJpbmQodGhpcyksXG4gICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC10YWJzX19hY3Rpb25zJyxcbiAgICAgICAga2V5OiAnJyxcbiAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICB2aWV3VHlwZTogVmlld1R5cGUuQUNUSU9OLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGlzVHJhbnNsYXRlZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChrZXkpICE9PSBrZXk7XG4gIH1cblxuICBwdWJsaWMgb25BcnJvd0NsaWNrKGRpcmVjdGlvbjogJ1VQJyB8ICdET1dOJywgaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3Qgb3JkZXJlZFRhYnM6IEFwaVRhYkl0ZW1bXSA9XG4gICAgICBkaXJlY3Rpb24gPT09ICdVUCdcbiAgICAgICAgPyB0aGlzLnN3YXBUYWJzKHRoaXMuX3RhYnMsIGluZGV4IC0gMSwgaW5kZXgpXG4gICAgICAgIDogdGhpcy5zd2FwVGFicyh0aGlzLl90YWJzLCBpbmRleCwgaW5kZXggKyAxKTtcblxuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5lZGl0VGFic09yZGVyKG9yZGVyZWRUYWJzKSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkFkZFRhYk1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkFkZE1vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uUm93Q2xpY2tlZCh0YWI6IEFwaVRhYkl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnRhYiQubmV4dCh0YWIpO1xuICAgIHRoaXMub3BlbkVkaXRNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlQWRkTW9kYWxFdmVudCh0YWI6IEFwaVRhYkl0ZW0gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuQWRkTW9kYWwkLm5leHQoZmFsc2UpO1xuXG4gICAgaWYgKCF0YWIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFRhYih0YWIpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2VFZGl0TW9kYWxFdmVudCh0YWI6IEFwaVRhYkl0ZW0gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRWRpdE1vZGFsJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLnRhYiQubmV4dChudWxsKTtcblxuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0VGFiKHRhYik7XG4gIH1cblxuICBwdWJsaWMgb3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKHRhYjogQXBpVGFiSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlUm93S2V5JC5uZXh0KHRhYi5rZXkpO1xuICB9XG5cbiAgcHVibGljIG9uQ29uZmlybUV2ZW50KHRhYktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVUYWIodGFiS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVGFiKHRhYjogUGFydGlhbDxBcGlUYWJJdGVtPik6IHZvaWQge1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5hZGRUYWIodGFiKSk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZVRhYih0YWJLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5kZWxldGVUYWIodGFiS2V5KSk7XG4gIH1cblxuICBwcml2YXRlIGVkaXRUYWIodGFiOiBBcGlUYWJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5kaXNwYXRjaEFjdGlvbih0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLmVkaXRUYWIodGFiLCB0YWIua2V5KSk7XG4gIH1cblxuICBwcml2YXRlIHN3YXBUYWJzKHRhYkl0ZW1zOiBBcGlUYWJJdGVtW10sIGluZGV4MTogbnVtYmVyLCBpbmRleDI6IG51bWJlcik6IEFwaVRhYkl0ZW1bXSB7XG4gICAgY29uc3QgdGVtcCA9IFsuLi50YWJJdGVtc107XG4gICAgdGVtcFtpbmRleDFdID0gdGVtcC5zcGxpY2UoaW5kZXgyLCAxLCB0ZW1wW2luZGV4MV0pWzBdO1xuXG4gICAgcmV0dXJuIHRlbXA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgKm5nSWY9XCJ7ZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsIHRhYnM6IHRhYnMkIHwgYXN5bmN9IGFzIG9ic1wiXG4gIFtpdGVtc109XCJvYnMudGFic1wiXG4gIFtmaWVsZHNdPVwib2JzLmZpZWxkc1wiXG4gIGhlYWRlcj1cImZhbHNlXCJcbiAgW2xvYWRpbmddPVwib2JzLmxvYWRpbmdcIlxuICAocm93Q2xpY2tlZCk9XCJvblJvd0NsaWNrZWQoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250YWluZXIgY2FyYm9uVG9vbGJhckNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGRUYWJCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgIFthY3Rpb25dPVwiYWRkVGFiQnV0dG9uXCJcbiAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIudGFicy5ub1Jlc3VsdHNEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgIFt0aXRsZV09XCInZG9zc2llci50YWJzLm5vUmVzdWx0cycgfCB0cmFuc2xhdGVcIlxuICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG48L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbjxuZy10ZW1wbGF0ZSAjdGFiVHlwZUNvbHVtbiBsZXQtZGF0YT1cImRhdGFcIj5cbiAge3tcbiAgICBpc1RyYW5zbGF0ZWQoJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYlR5cGUuJyArIGRhdGEuaXRlbS50eXBlKVxuICAgICAgPyAoJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYlR5cGUuJyArIGRhdGEuaXRlbS50eXBlIHwgdHJhbnNsYXRlKVxuICAgICAgOiBkYXRhLml0ZW0udHlwZVxuICB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJDb250ZW50Q29sdW1uIGxldC1kYXRhPVwiZGF0YVwiPlxuICB7e1xuICAgIGlzVHJhbnNsYXRlZCgnZG9zc2llci50YWJzLicgKyBkYXRhLml0ZW0uY29udGVudEtleSlcbiAgICAgID8gKCdkb3NzaWVyLnRhYnMuJyArIGRhdGEuaXRlbS5jb250ZW50S2V5IHwgdHJhbnNsYXRlKVxuICAgICAgOiBkYXRhLml0ZW0uY29udGVudEtleVxuICB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhZGRUYWJCdXR0b24+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQWRkVGFiTW9kYWwoKVwiPlxuICAgIHt7ICdkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmFkZE1vZGFsLmFkZFRhYicgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxzdmcgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vdmVCdXR0b25zVGVtcGxhdGUgbGV0LWRhdGE9XCJkYXRhXCI+XG4gIDxkaXYgY2xhc3M9XCJtb3ZlLWJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2RzQnV0dG9uPVwidGVydGlhcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRhdGEuaW5kZXggPT09IDBcIlxuICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm9uQXJyb3dDbGljaygnVVAnLCBkYXRhLmluZGV4LCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnIGNkc0ljb249XCJhcnJvdy0tdXBcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJ0ZXJ0aWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiKGxhc3RJdGVtSW5kZXgkIHwgYXN5bmMpID09PSBkYXRhLmluZGV4XCJcbiAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJvbkFycm93Q2xpY2soJ0RPV04nLCBkYXRhLmluZGV4LCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnIGNkc0ljb249XCJhcnJvdy0tZG93blwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbFxuICAqbmdJZj1cIm9wZW5BZGRNb2RhbCQgfCBhc3luY1wiXG4gIFtkb2N1bWVudERlZmluaXRpb25OYW1lXT1cImRvY3VtZW50RGVmaW5pdGlvbk5hbWVcIlxuICBbb3Blbl09XCJvcGVuQWRkTW9kYWwkIHwgYXN5bmNcIlxuICAoY2xvc2VNb2RhbEV2ZW50KT1cIm9uQ2xvc2VBZGRNb2RhbEV2ZW50KCRldmVudClcIlxuPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtYWRkLXRhYi1tb2RhbD5cblxuPHZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LWVkaXQtdGFiLW1vZGFsXG4gICpuZ0lmPVwib3BlbkVkaXRNb2RhbCQgfCBhc3luY1wiXG4gIFt0YWJdPVwidGFiJCB8IGFzeW5jXCJcbiAgKGNsb3NlTW9kYWxFdmVudCk9XCJvbkNsb3NlRWRpdE1vZGFsRXZlbnQoJGV2ZW50KVwiXG4gIFtvcGVuXT1cIm9wZW5FZGl0TW9kYWwkIHwgYXN5bmNcIlxuPjwvdmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWw+XG5cbjx2YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbFxuICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmRlbGV0ZVwiXG4gIGNvbmZpcm1CdXR0b25UeXBlPVwiZGFuZ2VyXCJcbiAgY29udGVudFRyYW5zbGF0aW9uS2V5PVwiZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5kZWxldGVNb2RhbC5kZXNjcmlwdGlvblwiXG4gIFtvdXRwdXRPbkNvbmZpcm1dPVwiZGVsZXRlUm93S2V5JCB8IGFzeW5jXCJcbiAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwiZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5kZWxldGVNb2RhbC50aXRsZVwiXG4gIChjb25maXJtRXZlbnQpPVwib25Db25maXJtRXZlbnQoJGV2ZW50KVwiXG4+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzL2Rvc3NpZXItbWFuYWdlbWVudC10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFHTCxnQkFBZ0IsRUFFaEIsUUFBUSxHQUNULE1BQU0scUJBQXFCLENBQUM7QUFHN0IsT0FBTyxFQUFDLGVBQWUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFVM0QsTUFBTSxPQUFPLDhCQUE4QjtJQU16QyxJQUFvQixzQkFBc0IsQ0FBQyxLQUFhO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENB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QUUsTUFBYztRQUNyRSxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBMUpVLDhCQUE4QjttR0FBOUIsOEJBQThCLHlkQzlDM0MsZ2hHQXFGQTs7NEZEdkNhLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7Nk5BR04sd0JBQXdCO3NCQUF0RCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDRCxxQkFBcUI7c0JBQWhELFNBQVM7dUJBQUMsZUFBZTtnQkFDUSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUdaLHNCQUFzQjtzQkFBekMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXJyb3dEb3duMTYsIEFycm93VXAxNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uSXRlbSxcbiAgQ29sdW1uQ29uZmlnLFxuICBNb3ZlUm93RGlyZWN0aW9uLFxuICBNb3ZlUm93RXZlbnQsXG4gIFZpZXdUeXBlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7QXBpVGFiSXRlbX0gZnJvbSAnQHZhbHRpbW8vZG9zc2llcic7XG5pbXBvcnQge0ljb25TZXJ2aWNlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RhYk1hbmFnZW1lbnRTZXJ2aWNlLCBUYWJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnRUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3RhYkNvbnRlbnRDb2x1bW4nKSB0YWJDb250ZW50Q29sdW1uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RhYlR5cGVDb2x1bW4nKSB0YWJUeXBlQ29sdW1uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ21vdmVCdXR0b25zVGVtcGxhdGUnKSBtb3ZlQnV0dG9uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgX2RvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNldCBkb2N1bWVudERlZmluaXRpb25OYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLnNldENhc2VEZWZpbml0aW9uSWQodmFsdWUpO1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UubG9hZFRhYnMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnREZWZpbml0aW9uTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpb25JdGVtczogQWN0aW9uSXRlbVtdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnaW50ZXJmYWNlLmRlbGV0ZScsXG4gICAgICBjYWxsYmFjazogdGhpcy5vcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwuYmluZCh0aGlzKSxcbiAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgIH0sXG4gIF07XG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVSb3dLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dEZWxldGVNb2RhbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmRlbGV0ZVJvd0tleSQucGlwZShcbiAgICBtYXAoKGtleTogc3RyaW5nIHwgbnVsbCkgPT4gISFrZXkpXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuRWRpdE1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uQ29uZmlnW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5sb2FkaW5nJDtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5BZGRNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGxhc3RJdGVtSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KC0xKTtcblxuICBwcml2YXRlIF90YWJzOiBBcGlUYWJJdGVtW107XG4gIHB1YmxpYyByZWFkb25seSB0YWJzJCA9IHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UudGFicyQucGlwZShcbiAgICB0YXAoKHRhYnM6IEFwaVRhYkl0ZW1bXSkgPT4ge1xuICAgICAgdGhpcy5fdGFicyA9IHRhYnM7XG4gICAgICB0aGlzLnRhYlNlcnZpY2UuY29uZmlndXJlZENvbnRlbnRLZXlzID0gdGFicy5tYXAoKHRhYjogQXBpVGFiSXRlbSkgPT4gdGFiLmNvbnRlbnRLZXkpO1xuICAgICAgdGhpcy50YWJTZXJ2aWNlLmNvbmZpZ3VyZWRUYWJLZXlzID0gdGFicy5tYXAoKHRhYjogQXBpVGFiSXRlbSkgPT4gdGFiLmtleSk7XG4gICAgICB0aGlzLmxhc3RJdGVtSW5kZXgkLm5leHQodGFicy5sZW5ndGggLSAxKTtcbiAgICB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFiJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXBpVGFiSXRlbSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFiTWFuYWdlbWVudFNlcnZpY2U6IFRhYk1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFiU2VydmljZTogVGFiU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbQXJyb3dEb3duMTYsIEFycm93VXAxNl0pO1xuICAgIHRoaXMuZmllbGRzJC5uZXh0KFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnbmFtZScsXG4gICAgICAgIGxhYmVsOiAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5jb2x1bW5zLm5hbWUnLFxuICAgICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2tleScsXG4gICAgICAgIGxhYmVsOiAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5jb2x1bW5zLmtleScsXG4gICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URVhULFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRFTVBMQVRFLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy50YWJUeXBlQ29sdW1uVGVtcGxhdGUsXG4gICAgICAgIGtleTogJycsXG4gICAgICAgIGxhYmVsOiAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5jb2x1bW5zLnR5cGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRFTVBMQVRFLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy50YWJDb250ZW50Q29sdW1uVGVtcGxhdGUsXG4gICAgICAgIGtleTogJycsXG4gICAgICAgIGxhYmVsOiAnZG9zc2llck1hbmFnZW1lbnQudGFiTWFuYWdlbWVudC5jb2x1bW5zLmNvbnRlbnQnLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGlzVHJhbnNsYXRlZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChrZXkpICE9PSBrZXk7XG4gIH1cblxuICBwdWJsaWMgb25Nb3ZlUm93Q2xpY2soZXZlbnQ6IE1vdmVSb3dFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHtkaXJlY3Rpb24sIGluZGV4fSA9IGV2ZW50O1xuXG4gICAgY29uc3Qgb3JkZXJlZFRhYnM6IEFwaVRhYkl0ZW1bXSA9XG4gICAgICBkaXJlY3Rpb24gPT09IE1vdmVSb3dEaXJlY3Rpb24uVVBcbiAgICAgICAgPyB0aGlzLnN3YXBUYWJzKHRoaXMuX3RhYnMsIGluZGV4IC0gMSwgaW5kZXgpXG4gICAgICAgIDogdGhpcy5zd2FwVGFicyh0aGlzLl90YWJzLCBpbmRleCwgaW5kZXggKyAxKTtcblxuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5lZGl0VGFic09yZGVyKG9yZGVyZWRUYWJzKSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkFkZFRhYk1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkFkZE1vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uUm93Q2xpY2tlZCh0YWI6IEFwaVRhYkl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnRhYiQubmV4dCh0YWIpO1xuICAgIHRoaXMub3BlbkVkaXRNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlQWRkTW9kYWxFdmVudCh0YWI6IEFwaVRhYkl0ZW0gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuQWRkTW9kYWwkLm5leHQoZmFsc2UpO1xuXG4gICAgaWYgKCF0YWIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFRhYih0YWIpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2VFZGl0TW9kYWxFdmVudCh0YWI6IEFwaVRhYkl0ZW0gfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRWRpdE1vZGFsJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLnRhYiQubmV4dChudWxsKTtcblxuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lZGl0VGFiKHRhYik7XG4gIH1cblxuICBwdWJsaWMgb3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKHRhYjogQXBpVGFiSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlUm93S2V5JC5uZXh0KHRhYi5rZXkpO1xuICB9XG5cbiAgcHVibGljIG9uQ29uZmlybUV2ZW50KHRhYktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVUYWIodGFiS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVGFiKHRhYjogUGFydGlhbDxBcGlUYWJJdGVtPik6IHZvaWQge1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5hZGRUYWIodGFiKSk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZVRhYih0YWJLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGFiTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24odGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5kZWxldGVUYWIodGFiS2V5KSk7XG4gIH1cblxuICBwcml2YXRlIGVkaXRUYWIodGFiOiBBcGlUYWJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy50YWJNYW5hZ2VtZW50U2VydmljZS5kaXNwYXRjaEFjdGlvbih0aGlzLnRhYk1hbmFnZW1lbnRTZXJ2aWNlLmVkaXRUYWIodGFiLCB0YWIua2V5KSk7XG4gIH1cblxuICBwcml2YXRlIHN3YXBUYWJzKHRhYkl0ZW1zOiBBcGlUYWJJdGVtW10sIGluZGV4MTogbnVtYmVyLCBpbmRleDI6IG51bWJlcik6IEFwaVRhYkl0ZW1bXSB7XG4gICAgY29uc3QgdGVtcCA9IFsuLi50YWJJdGVtc107XG4gICAgdGVtcFtpbmRleDFdID0gdGVtcC5zcGxpY2UoaW5kZXgyLCAxLCB0ZW1wW2luZGV4MV0pWzBdO1xuXG4gICAgcmV0dXJuIHRlbXA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgKm5nSWY9XCJ7ZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsIHRhYnM6IHRhYnMkIHwgYXN5bmN9IGFzIG9ic1wiXG4gIFthY3Rpb25JdGVtc109XCJhY3Rpb25JdGVtc1wiXG4gIFtpdGVtc109XCJvYnMudGFic1wiXG4gIFtmaWVsZHNdPVwib2JzLmZpZWxkc1wiXG4gIFtoZWFkZXJdPVwiZmFsc2VcIlxuICBbbG9hZGluZ109XCJvYnMubG9hZGluZ1wiXG4gIFttb3ZpbmdSb3dzRW5hYmxlZF09XCJ0cnVlXCJcbiAgKHJvd0NsaWNrZWQpPVwib25Sb3dDbGlja2VkKCRldmVudClcIlxuICAobW92ZVJvdyk9XCJvbk1vdmVSb3dDbGljaygkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBjYXJib25Ub29sYmFyQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZFRhYkJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgW2FjdGlvbl09XCJhZGRUYWJCdXR0b25cIlxuICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci50YWJzLm5vUmVzdWx0c0Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3RpdGxlXT1cIidkb3NzaWVyLnRhYnMubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZVwiXG4gID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbjwvdmFsdGltby1jYXJib24tbGlzdD5cblxuPG5nLXRlbXBsYXRlICN0YWJUeXBlQ29sdW1uIGxldC1kYXRhPVwiZGF0YVwiPlxuICB7e1xuICAgIGlzVHJhbnNsYXRlZCgnZG9zc2llck1hbmFnZW1lbnQudGFiVHlwZS4nICsgZGF0YS5pdGVtLnR5cGUpXG4gICAgICA/ICgnZG9zc2llck1hbmFnZW1lbnQudGFiVHlwZS4nICsgZGF0YS5pdGVtLnR5cGUgfCB0cmFuc2xhdGUpXG4gICAgICA6IGRhdGEuaXRlbS50eXBlXG4gIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RhYkNvbnRlbnRDb2x1bW4gbGV0LWRhdGE9XCJkYXRhXCI+XG4gIHt7XG4gICAgaXNUcmFuc2xhdGVkKCdkb3NzaWVyLnRhYnMuJyArIGRhdGEuaXRlbS5jb250ZW50S2V5KVxuICAgICAgPyAoJ2Rvc3NpZXIudGFicy4nICsgZGF0YS5pdGVtLmNvbnRlbnRLZXkgfCB0cmFuc2xhdGUpXG4gICAgICA6IGRhdGEuaXRlbS5jb250ZW50S2V5XG4gIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FkZFRhYkJ1dHRvbj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5BZGRUYWJNb2RhbCgpXCI+XG4gICAge3sgJ2Rvc3NpZXJNYW5hZ2VtZW50LnRhYk1hbmFnZW1lbnQuYWRkTW9kYWwuYWRkVGFiJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPHN2ZyBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjx2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1hZGQtdGFiLW1vZGFsXG4gICpuZ0lmPVwib3BlbkFkZE1vZGFsJCB8IGFzeW5jXCJcbiAgW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwiZG9jdW1lbnREZWZpbml0aW9uTmFtZVwiXG4gIFtvcGVuXT1cIm9wZW5BZGRNb2RhbCQgfCBhc3luY1wiXG4gIChjbG9zZU1vZGFsRXZlbnQpPVwib25DbG9zZUFkZE1vZGFsRXZlbnQoJGV2ZW50KVwiXG4+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1hZGQtdGFiLW1vZGFsPlxuXG48dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtZWRpdC10YWItbW9kYWxcbiAgKm5nSWY9XCJvcGVuRWRpdE1vZGFsJCB8IGFzeW5jXCJcbiAgW3RhYl09XCJ0YWIkIHwgYXN5bmNcIlxuICAoY2xvc2VNb2RhbEV2ZW50KT1cIm9uQ2xvc2VFZGl0TW9kYWxFdmVudCgkZXZlbnQpXCJcbiAgW29wZW5dPVwib3BlbkVkaXRNb2RhbCQgfCBhc3luY1wiXG4+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1lZGl0LXRhYi1tb2RhbD5cblxuPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gIGNvbmZpcm1CdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJpbnRlcmZhY2UuZGVsZXRlXCJcbiAgY29uZmlybUJ1dHRvblR5cGU9XCJkYW5nZXJcIlxuICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmRlbGV0ZU1vZGFsLmRlc2NyaXB0aW9uXCJcbiAgW291dHB1dE9uQ29uZmlybV09XCJkZWxldGVSb3dLZXkkIHwgYXN5bmNcIlxuICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gIHRpdGxlVHJhbnNsYXRpb25LZXk9XCJkb3NzaWVyTWFuYWdlbWVudC50YWJNYW5hZ2VtZW50LmRlbGV0ZU1vZGFsLnRpdGxlXCJcbiAgKGNvbmZpcm1FdmVudCk9XCJvbkNvbmZpcm1FdmVudCgkZXZlbnQpXCJcbj48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuIl19