@piserve-tech/form-submission 1.2.6 → 1.2.7

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 (86) hide show
  1. package/README.md +24 -24
  2. package/element-type/form-elements/form-elements.component.d.ts +1 -4
  3. package/esm2022/element-type/element-type.module.mjs +1 -1
  4. package/esm2022/element-type/form-elements/form-elements.component.mjs +4 -10
  5. package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +3 -3
  6. package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +3 -3
  7. package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +3 -3
  8. package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +3 -3
  9. package/esm2022/form-fields/form-fields.module.mjs +1 -1
  10. package/esm2022/form-fields/location-fields/location-fields.component.mjs +3 -3
  11. package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +3 -3
  12. package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +3 -3
  13. package/esm2022/form-fields/number-fields/number-fields.component.mjs +3 -3
  14. package/esm2022/form-fields/password-fields/password-fields.component.mjs +3 -3
  15. package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +3 -3
  16. package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +3 -3
  17. package/esm2022/form-fields/section-fields/section-fields.component.mjs +3 -3
  18. package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +3 -3
  19. package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +3 -3
  20. package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +4 -4
  21. package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +3 -3
  22. package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +3 -3
  23. package/esm2022/form-fields/text-fields/text-fields.component.mjs +3 -3
  24. package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +3 -3
  25. package/esm2022/form-fields/url-fields/url-fields.component.mjs +3 -3
  26. package/esm2022/form-submission/form-submission.module.mjs +1 -1
  27. package/esm2022/form-submission/header/header.component.mjs +3 -3
  28. package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +3 -9
  29. package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +3 -9
  30. package/esm2022/form-submission/submit-form/submit-form.component.mjs +31 -59
  31. package/esm2022/lib/form-submission.component.mjs +3 -3
  32. package/esm2022/lib/form-submission.module.mjs +1 -1
  33. package/esm2022/lib/form-submission.service.mjs +1 -1
  34. package/esm2022/logic/first-child/first-child.component.mjs +3 -3
  35. package/esm2022/logic/forth-child/forth-child.component.mjs +3 -3
  36. package/esm2022/logic/logic.module.mjs +1 -1
  37. package/esm2022/logic/second-child/second-child.component.mjs +3 -3
  38. package/esm2022/logic/third-child/third-child.component.mjs +3 -3
  39. package/esm2022/models/appearance.model.mjs +1 -1
  40. package/esm2022/models/attachment.model.mjs +1 -1
  41. package/esm2022/models/elementOptionAPI.model.mjs +1 -1
  42. package/esm2022/models/elementOptionAPIData.model.mjs +1 -1
  43. package/esm2022/models/elementOptionDB.model.mjs +1 -1
  44. package/esm2022/models/elementOptionDBCriteria.model.mjs +1 -1
  45. package/esm2022/models/enum/condition.enum.mjs +1 -1
  46. package/esm2022/models/enum/elementType .enum.mjs +1 -1
  47. package/esm2022/models/enum/entityType.enum.mjs +1 -1
  48. package/esm2022/models/formConfiguration.model.mjs +1 -1
  49. package/esm2022/models/formElement.model.mjs +1 -1
  50. package/esm2022/models/formElementType.model.mjs +1 -1
  51. package/esm2022/models/grid.model.mjs +1 -1
  52. package/esm2022/models/logic.model.mjs +1 -1
  53. package/esm2022/models/option.model.mjs +1 -1
  54. package/esm2022/models/page.model.mjs +1 -1
  55. package/esm2022/models/publicForm.model.mjs +1 -1
  56. package/esm2022/models/question.model.mjs +1 -1
  57. package/esm2022/models/row.model.mjs +1 -1
  58. package/esm2022/models/section.model.mjs +1 -1
  59. package/esm2022/models/subForm.model.mjs +1 -1
  60. package/esm2022/models/validation.model.mjs +1 -1
  61. package/esm2022/public-api.mjs +1 -1
  62. package/esm2022/question/question/question.component.mjs +3 -3
  63. package/esm2022/question/question.module.mjs +1 -1
  64. package/esm2022/services/countryService.mjs +1 -1
  65. package/esm2022/services/data.service.mjs +1 -1
  66. package/esm2022/services/form.service.mjs +1 -1
  67. package/esm2022/services/mapper.service.mjs +1 -17
  68. package/esm2022/sub-form/sub-form/sub-form.component.mjs +4 -39
  69. package/esm2022/sub-form/sub-form.module.mjs +5 -11
  70. package/fesm2022/piserve-tech-form-submission.mjs +94 -339
  71. package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
  72. package/form-submission/navigation-tabs/navigation-tabs.component.d.ts +1 -3
  73. package/form-submission/next-prev-navigation/next-prev-navigation.component.d.ts +1 -3
  74. package/form-submission/submit-form/submit-form.component.d.ts +6 -3
  75. package/models/subForm.model.d.ts +1 -4
  76. package/package.json +1 -1
  77. package/sub-form/sub-form/sub-form.component.d.ts +2 -8
  78. package/sub-form/sub-form.module.d.ts +4 -7
  79. package/esm2022/models/answer.model.mjs +0 -2
  80. package/esm2022/models/submission.model.mjs +0 -2
  81. package/esm2022/sub-form/multiple-subform/multiple-subform.component.mjs +0 -125
  82. package/esm2022/sub-form/submission-modal/submission-modal.component.mjs +0 -51
  83. package/models/answer.model.d.ts +0 -7
  84. package/models/submission.model.d.ts +0 -5
  85. package/sub-form/multiple-subform/multiple-subform.component.d.ts +0 -34
  86. package/sub-form/submission-modal/submission-modal.component.d.ts +0 -13
@@ -9,10 +9,6 @@ export class NavigationTabsComponent {
9
9
  this.pageChanged = new EventEmitter();
10
10
  this.submitEmit = new EventEmitter();
11
11
  this.edit = false;
12
- this.subFormChange = new EventEmitter();
13
- }
14
- updateSubFormWithSubmissions(event) {
15
- this.subFormChange.emit(event);
16
12
  }
17
13
  setCurrentPage(index) {
18
14
  this.pageChanged.emit(index);
@@ -21,11 +17,11 @@ export class NavigationTabsComponent {
21
17
  this.submitEmit.emit();
22
18
  }
23
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavigationTabsComponent, selector: "lib-navigation-tabs", inputs: { pages: "pages", currentPageIndex: "currentPageIndex", edit: "edit" }, outputs: { pageChanged: "pageChanged", submitEmit: "submitEmit", subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"tab-inner-container\">\r\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\r\n <li\r\n class=\"nav-item\"\r\n role=\"presentation\"\r\n *ngFor=\"let page of pages; let i = index\"\r\n >\r\n <button\r\n class=\"nav-link\"\r\n [class.active]=\"i === currentPageIndex\"\r\n id=\"tab-{{ i }}\"\r\n [attr.data-bs-toggle]=\"'tab'\"\r\n [attr.data-bs-target]=\"'#content-' + i\"\r\n type=\"button\"\r\n role=\"tab\"\r\n [attr.aria-controls]=\"'content-' + i\"\r\n [attr.aria-selected]=\"i === 0\"\r\n (click)=\"setCurrentPage(i)\"\r\n >\r\n {{ page.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pt-5 pb-3 px-1\">\r\n <div\r\n *ngFor=\"let page of pages; let i = index\"\r\n class=\"tab-pane fade\"\r\n [class.show]=\"i === 0\"\r\n [class.active]=\"i === 0\"\r\n id=\"content-{{ i }}\"\r\n role=\"tabpanel\"\r\n [attr.aria-labelledby]=\"'tab-' + i\"\r\n >\r\n <div *ngFor=\"let row of page.rows\">\r\n <div class=\"margin\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n class=\"footerButton d-flex justify-content-end\"\r\n >\r\n <button\r\n class=\"btn btn-primary me-md-2 rounded-pill\"\r\n type=\"button\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tab-inner-container{width:100%;position:relative;padding:3rem}@media (max-width: 1024px){.tab-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.tab-inner-container{padding:2rem .5rem}}.navTabs{overflow-x:auto;overflow-y:hidden;flex-wrap:unset;margin:0 0 -1px!important}.nav-item{background-color:#fff;border-radius:5px;margin-right:.5%}.nav-link{position:relative;margin-bottom:-2px}.nav-link:after{content:\"\";position:absolute;left:0;bottom:0;width:101%;height:6px;background:#efefef}.nav-link.active:after{display:none}.tab-content{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormElementsComponent, selector: "lib-form-elements", inputs: ["grid", "currentPageIndex", "edit"], outputs: ["subFormChange"] }] }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavigationTabsComponent, selector: "lib-navigation-tabs", inputs: { pages: "pages", currentPageIndex: "currentPageIndex", edit: "edit" }, outputs: { pageChanged: "pageChanged", submitEmit: "submitEmit" }, ngImport: i0, template: "<div class=\"tab-inner-container\">\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\n <li\n class=\"nav-item\"\n role=\"presentation\"\n *ngFor=\"let page of pages; let i = index\"\n >\n <button\n class=\"nav-link\"\n [class.active]=\"i === currentPageIndex\"\n id=\"tab-{{ i }}\"\n [attr.data-bs-toggle]=\"'tab'\"\n [attr.data-bs-target]=\"'#content-' + i\"\n type=\"button\"\n role=\"tab\"\n [attr.aria-controls]=\"'content-' + i\"\n [attr.aria-selected]=\"i === 0\"\n (click)=\"setCurrentPage(i)\"\n >\n {{ page.title }}\n </button>\n </li>\n </ul>\n\n <div class=\"tab-content pt-5 pb-3 px-1\">\n <div\n *ngFor=\"let page of pages; let i = index\"\n class=\"tab-pane fade\"\n [class.show]=\"i === 0\"\n [class.active]=\"i === 0\"\n id=\"content-{{ i }}\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + i\"\n >\n <div *ngFor=\"let row of page.rows\">\n <div class=\"margin\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [edit]=\"edit\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"currentPageIndex == pages.length - 1\"\n class=\"footerButton d-flex justify-content-end\"\n >\n <button\n class=\"btn btn-primary me-md-2 rounded-pill\"\n type=\"button\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".tab-inner-container{width:100%;position:relative;padding:3rem}@media (max-width: 1024px){.tab-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.tab-inner-container{padding:2rem .5rem}}.navTabs{overflow-x:auto;overflow-y:hidden;flex-wrap:unset;margin:0 0 -1px!important}.nav-item{background-color:#fff;border-radius:5px;margin-right:.5%}.nav-link{position:relative;margin-bottom:-2px}.nav-link:after{content:\"\";position:absolute;left:0;bottom:0;width:101%;height:6px;background:#efefef}.nav-link.active:after{display:none}.tab-content{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormElementsComponent, selector: "lib-form-elements", inputs: ["grid", "currentPageIndex", "edit"] }] }); }
25
21
  }
26
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationTabsComponent, decorators: [{
27
23
  type: Component,
28
- args: [{ selector: 'lib-navigation-tabs', template: "<div class=\"tab-inner-container\">\r\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\r\n <li\r\n class=\"nav-item\"\r\n role=\"presentation\"\r\n *ngFor=\"let page of pages; let i = index\"\r\n >\r\n <button\r\n class=\"nav-link\"\r\n [class.active]=\"i === currentPageIndex\"\r\n id=\"tab-{{ i }}\"\r\n [attr.data-bs-toggle]=\"'tab'\"\r\n [attr.data-bs-target]=\"'#content-' + i\"\r\n type=\"button\"\r\n role=\"tab\"\r\n [attr.aria-controls]=\"'content-' + i\"\r\n [attr.aria-selected]=\"i === 0\"\r\n (click)=\"setCurrentPage(i)\"\r\n >\r\n {{ page.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pt-5 pb-3 px-1\">\r\n <div\r\n *ngFor=\"let page of pages; let i = index\"\r\n class=\"tab-pane fade\"\r\n [class.show]=\"i === 0\"\r\n [class.active]=\"i === 0\"\r\n id=\"content-{{ i }}\"\r\n role=\"tabpanel\"\r\n [attr.aria-labelledby]=\"'tab-' + i\"\r\n >\r\n <div *ngFor=\"let row of page.rows\">\r\n <div class=\"margin\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n class=\"footerButton d-flex justify-content-end\"\r\n >\r\n <button\r\n class=\"btn btn-primary me-md-2 rounded-pill\"\r\n type=\"button\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tab-inner-container{width:100%;position:relative;padding:3rem}@media (max-width: 1024px){.tab-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.tab-inner-container{padding:2rem .5rem}}.navTabs{overflow-x:auto;overflow-y:hidden;flex-wrap:unset;margin:0 0 -1px!important}.nav-item{background-color:#fff;border-radius:5px;margin-right:.5%}.nav-link{position:relative;margin-bottom:-2px}.nav-link:after{content:\"\";position:absolute;left:0;bottom:0;width:101%;height:6px;background:#efefef}.nav-link.active:after{display:none}.tab-content{background-color:#fff}\n"] }]
24
+ args: [{ selector: 'lib-navigation-tabs', template: "<div class=\"tab-inner-container\">\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\n <li\n class=\"nav-item\"\n role=\"presentation\"\n *ngFor=\"let page of pages; let i = index\"\n >\n <button\n class=\"nav-link\"\n [class.active]=\"i === currentPageIndex\"\n id=\"tab-{{ i }}\"\n [attr.data-bs-toggle]=\"'tab'\"\n [attr.data-bs-target]=\"'#content-' + i\"\n type=\"button\"\n role=\"tab\"\n [attr.aria-controls]=\"'content-' + i\"\n [attr.aria-selected]=\"i === 0\"\n (click)=\"setCurrentPage(i)\"\n >\n {{ page.title }}\n </button>\n </li>\n </ul>\n\n <div class=\"tab-content pt-5 pb-3 px-1\">\n <div\n *ngFor=\"let page of pages; let i = index\"\n class=\"tab-pane fade\"\n [class.show]=\"i === 0\"\n [class.active]=\"i === 0\"\n id=\"content-{{ i }}\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + i\"\n >\n <div *ngFor=\"let row of page.rows\">\n <div class=\"margin\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [edit]=\"edit\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"currentPageIndex == pages.length - 1\"\n class=\"footerButton d-flex justify-content-end\"\n >\n <button\n class=\"btn btn-primary me-md-2 rounded-pill\"\n type=\"button\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".tab-inner-container{width:100%;position:relative;padding:3rem}@media (max-width: 1024px){.tab-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.tab-inner-container{padding:2rem .5rem}}.navTabs{overflow-x:auto;overflow-y:hidden;flex-wrap:unset;margin:0 0 -1px!important}.nav-item{background-color:#fff;border-radius:5px;margin-right:.5%}.nav-link{position:relative;margin-bottom:-2px}.nav-link:after{content:\"\";position:absolute;left:0;bottom:0;width:101%;height:6px;background:#efefef}.nav-link.active:after{display:none}.tab-content{background-color:#fff}\n"] }]
29
25
  }], propDecorators: { pages: [{
30
26
  type: Input
31
27
  }], currentPageIndex: [{
@@ -36,7 +32,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36
32
  type: Output
37
33
  }], edit: [{
38
34
  type: Input
39
- }], subFormChange: [{
40
- type: Output
41
35
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1zdWJtaXNzaW9uL25hdmlnYXRpb24tdGFicy9uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmF2aWdhdGlvbi10YWJzL25hdmlnYXRpb24tdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFNVyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pELFNBQUksR0FBYSxLQUFLLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0tBZW5EO0lBWkMsNEJBQTRCLENBQUMsS0FBUztRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBcEJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhPQ1BwQywyMERBNERBOzs0RkRyRGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLdEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbmF2aWdhdGlvbi10YWJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25UYWJzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBwYWdlczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJtaXRFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIGVkaXQgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHN1YkZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gIHVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoZXZlbnQ6YW55KXtcclxuICAgIHRoaXMuc3ViRm9ybUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG5cclxuICBzZXRDdXJyZW50UGFnZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIHRoaXMuc3VibWl0RW1pdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YWItaW5uZXItY29udGFpbmVyXCI+XHJcbiAgPHVsIGNsYXNzPVwibmF2IG5hdi10YWJzIG5hdlRhYnNcIiBpZD1cIm15VGFiXCIgcm9sZT1cInRhYmxpc3RcIj5cclxuICAgIDxsaVxyXG4gICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcclxuICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gY3VycmVudFBhZ2VJbmRleFwiXHJcbiAgICAgICAgaWQ9XCJ0YWIte3sgaSB9fVwiXHJcbiAgICAgICAgW2F0dHIuZGF0YS1icy10b2dnbGVdPVwiJ3RhYidcIlxyXG4gICAgICAgIFthdHRyLmRhdGEtYnMtdGFyZ2V0XT1cIicjY29udGVudC0nICsgaVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgcm9sZT1cInRhYlwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInY29udGVudC0nICsgaVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpID09PSAwXCJcclxuICAgICAgICAoY2xpY2spPVwic2V0Q3VycmVudFBhZ2UoaSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgcGFnZS50aXRsZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50IHB0LTUgcGItMyBweC0xXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgY2xhc3M9XCJ0YWItcGFuZSBmYWRlXCJcclxuICAgICAgW2NsYXNzLnNob3ddPVwiaSA9PT0gMFwiXHJcbiAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gMFwiXHJcbiAgICAgIGlkPVwiY29udGVudC17eyBpIH19XCJcclxuICAgICAgcm9sZT1cInRhYnBhbmVsXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItJyArIGlcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZS5yb3dzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpblwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZ3JpZCBvZiByb3cuZ3JpZFwiPlxyXG4gICAgICAgICAgICA8bGliLWZvcm0tZWxlbWVudHNcclxuICAgICAgICAgICAgICBbZ3JpZF09XCJncmlkXCJcclxuICAgICAgICAgICAgICBbZWRpdF09XCJlZGl0XCJcclxuICAgICAgICAgICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9saWItZm9ybS1lbGVtZW50cz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiY3VycmVudFBhZ2VJbmRleCA9PSBwYWdlcy5sZW5ndGggLSAxXCJcclxuICAgICAgICBjbGFzcz1cImZvb3RlckJ1dHRvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtZS1tZC0yIHJvdW5kZWQtcGlsbFwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFN1Ym1pdFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1zdWJtaXNzaW9uL25hdmlnYXRpb24tdGFicy9uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmF2aWdhdGlvbi10YWJzL25hdmlnYXRpb24tdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFNVyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pELFNBQUksR0FBYSxLQUFLLENBQUM7S0FTakM7SUFQQyxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FiVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qiw4TUNQcEMsMm9EQTJEQTs7NEZEcERhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uYXZpZ2F0aW9uLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25UYWJzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcGFnZXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgc3VibWl0RW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgZWRpdCA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZXRDdXJyZW50UGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGluZGV4KTtcbiAgfVxuXG4gIHN1Ym1pdEZvcm0oKSB7XG4gICAgdGhpcy5zdWJtaXRFbWl0LmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYi1pbm5lci1jb250YWluZXJcIj5cbiAgPHVsIGNsYXNzPVwibmF2IG5hdi10YWJzIG5hdlRhYnNcIiBpZD1cIm15VGFiXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwibmF2LWl0ZW1cIlxuICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBjdXJyZW50UGFnZUluZGV4XCJcbiAgICAgICAgaWQ9XCJ0YWIte3sgaSB9fVwiXG4gICAgICAgIFthdHRyLmRhdGEtYnMtdG9nZ2xlXT1cIid0YWInXCJcbiAgICAgICAgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyNjb250ZW50LScgKyBpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidjb250ZW50LScgKyBpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpID09PSAwXCJcbiAgICAgICAgKGNsaWNrKT1cInNldEN1cnJlbnRQYWdlKGkpXCJcbiAgICAgID5cbiAgICAgICAge3sgcGFnZS50aXRsZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cblxuICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgcHQtNSBwYi0zIHB4LTFcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cInRhYi1wYW5lIGZhZGVcIlxuICAgICAgW2NsYXNzLnNob3ddPVwiaSA9PT0gMFwiXG4gICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IDBcIlxuICAgICAgaWQ9XCJjb250ZW50LXt7IGkgfX1cIlxuICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyBpXCJcbiAgICA+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZS5yb3dzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW5cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBncmlkIG9mIHJvdy5ncmlkXCI+XG4gICAgICAgICAgICA8bGliLWZvcm0tZWxlbWVudHNcbiAgICAgICAgICAgICAgW2dyaWRdPVwiZ3JpZFwiXG4gICAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIlxuICAgICAgICAgICAgPjwvbGliLWZvcm0tZWxlbWVudHM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY3VycmVudFBhZ2VJbmRleCA9PSBwYWdlcy5sZW5ndGggLSAxXCJcbiAgICAgICAgY2xhc3M9XCJmb290ZXJCdXR0b24gZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWUtbWQtMiByb3VuZGVkLXBpbGxcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICA+XG4gICAgICAgICAgU3VibWl0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -13,10 +13,6 @@ export class NextPrevNavigationComponent {
13
13
  this.navigatePrevious = new EventEmitter();
14
14
  this.submitEmit = new EventEmitter();
15
15
  this.edit = false;
16
- this.subFormChange = new EventEmitter();
17
- }
18
- updateSubFormWithSubmissions(event) {
19
- this.subFormChange.emit(event);
20
16
  }
21
17
  onNavigateNext() {
22
18
  this.navigateNext.emit();
@@ -28,11 +24,11 @@ export class NextPrevNavigationComponent {
28
24
  this.submitEmit.emit();
29
25
  }
30
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NextPrevNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NextPrevNavigationComponent, selector: "lib-next-prev-navigation", inputs: { currentPageIndex: "currentPageIndex", pages: "pages", previousPage: "previousPage", nextPage: "nextPage", currentPage: "currentPage", edit: "edit" }, outputs: { navigateNext: "navigateNext", navigatePrevious: "navigatePrevious", submitEmit: "submitEmit", subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"pageTitleDiv\">\r\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\r\n</div>\r\n<div class=\"button-inner-container rounded\">\r\n <div class=\"tab-content pt-5 pb-3 row\">\r\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n <div class=\"footerButton\">\r\n <div class=\"prevButtonDiv\">\r\n <button\r\n class=\"me-md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigatePrevious()\"\r\n *ngIf=\"0 < currentPageIndex\"\r\n >\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Previous | {{ previousPage.title }}\r\n </button>\r\n </div>\r\n <div class=\"nextButtonDiv\">\r\n <button\r\n class=\"md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigateNext()\"\r\n *ngIf=\"currentPageIndex < pages.length - 1\"\r\n >\r\n Next | {{ nextPage.title }}\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <button\r\n class=\"submitBtn me-md-2 rounded-pill\"\r\n type=\"button\"\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".pageTitle{font-size:15px;font-weight:500}.pageTitleDiv{padding-left:3rem;padding-top:3rem}@media (max-width: 1024px){.pageTitleDiv{padding-left:1rem;padding-top:2rem}}@media (max-width: 576px){.pageTitleDiv{padding-left:.4rem;padding-top:1.5rem}}.button-inner-container{width:100%;position:relative;padding:0rem 3rem 3rem}@media (max-width: 1024px){.button-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.button-inner-container{padding:.1rem .5rem 2rem}}@media (max-width: 576px){.marginSize{padding:0!important}}.footerButton{padding:10px 32px 16px 30px;display:flex;flex-wrap:wrap}@media (max-width: 576px){.footerButton{padding-left:20px;padding-right:17px}}.navButton{background:#084fff;color:#fff;border:none;padding:10px 8px;width:auto}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.prevButtonDiv{display:flex;justify-content:center;margin-bottom:5px}.nextButtonDiv{display:flex;justify-content:end;margin-left:auto;margin-bottom:5px}.tab-content,.row{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormElementsComponent, selector: "lib-form-elements", inputs: ["grid", "currentPageIndex", "edit"], outputs: ["subFormChange"] }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NextPrevNavigationComponent, selector: "lib-next-prev-navigation", inputs: { currentPageIndex: "currentPageIndex", pages: "pages", previousPage: "previousPage", nextPage: "nextPage", currentPage: "currentPage", edit: "edit" }, outputs: { navigateNext: "navigateNext", navigatePrevious: "navigatePrevious", submitEmit: "submitEmit" }, ngImport: i0, template: "<div class=\"pageTitleDiv\">\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\n</div>\n<div class=\"button-inner-container rounded\">\n <div class=\"tab-content pt-5 pb-3 row\">\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n ></lib-form-elements>\n </div>\n </div>\n <div class=\"footerButton\">\n <div class=\"prevButtonDiv\">\n <button\n class=\"me-md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigatePrevious()\"\n *ngIf=\"0 < currentPageIndex\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Previous | {{ previousPage.title }}\n </button>\n </div>\n <div class=\"nextButtonDiv\">\n <button\n class=\"md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigateNext()\"\n *ngIf=\"currentPageIndex < pages.length - 1\"\n >\n Next | {{ nextPage.title }}\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n <button\n class=\"submitBtn me-md-2 rounded-pill\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pages.length - 1\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".pageTitle{font-size:15px;font-weight:500}.pageTitleDiv{padding-left:3rem;padding-top:3rem}@media (max-width: 1024px){.pageTitleDiv{padding-left:1rem;padding-top:2rem}}@media (max-width: 576px){.pageTitleDiv{padding-left:.4rem;padding-top:1.5rem}}.button-inner-container{width:100%;position:relative;padding:0rem 3rem 3rem}@media (max-width: 1024px){.button-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.button-inner-container{padding:.1rem .5rem 2rem}}@media (max-width: 576px){.marginSize{padding:0!important}}.footerButton{padding:10px 32px 16px 30px;display:flex;flex-wrap:wrap}@media (max-width: 576px){.footerButton{padding-left:20px;padding-right:17px}}.navButton{background:#084fff;color:#fff;border:none;padding:10px 8px;width:auto}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.prevButtonDiv{display:flex;justify-content:center;margin-bottom:5px}.nextButtonDiv{display:flex;justify-content:end;margin-left:auto;margin-bottom:5px}.tab-content,.row{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormElementsComponent, selector: "lib-form-elements", inputs: ["grid", "currentPageIndex", "edit"] }] }); }
32
28
  }
33
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NextPrevNavigationComponent, decorators: [{
34
30
  type: Component,
35
- args: [{ selector: 'lib-next-prev-navigation', template: "<div class=\"pageTitleDiv\">\r\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\r\n</div>\r\n<div class=\"button-inner-container rounded\">\r\n <div class=\"tab-content pt-5 pb-3 row\">\r\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\r\n <div *ngFor=\"let grid of row.grid\">\r\n <lib-form-elements\r\n [grid]=\"grid\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-form-elements>\r\n </div>\r\n </div>\r\n <div class=\"footerButton\">\r\n <div class=\"prevButtonDiv\">\r\n <button\r\n class=\"me-md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigatePrevious()\"\r\n *ngIf=\"0 < currentPageIndex\"\r\n >\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M4.51025 11.9883L19.5003 11.9883\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n Previous | {{ previousPage.title }}\r\n </button>\r\n </div>\r\n <div class=\"nextButtonDiv\">\r\n <button\r\n class=\"md-2 rounded-pill navButton\"\r\n type=\"button\"\r\n (click)=\"onNavigateNext()\"\r\n *ngIf=\"currentPageIndex < pages.length - 1\"\r\n >\r\n Next | {{ nextPage.title }}\r\n <svg\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M19.4897 12.0117L4.49975 12.0117\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n <button\r\n class=\"submitBtn me-md-2 rounded-pill\"\r\n type=\"button\"\r\n *ngIf=\"currentPageIndex == pages.length - 1\"\r\n (click)=\"submitForm()\"\r\n >\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".pageTitle{font-size:15px;font-weight:500}.pageTitleDiv{padding-left:3rem;padding-top:3rem}@media (max-width: 1024px){.pageTitleDiv{padding-left:1rem;padding-top:2rem}}@media (max-width: 576px){.pageTitleDiv{padding-left:.4rem;padding-top:1.5rem}}.button-inner-container{width:100%;position:relative;padding:0rem 3rem 3rem}@media (max-width: 1024px){.button-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.button-inner-container{padding:.1rem .5rem 2rem}}@media (max-width: 576px){.marginSize{padding:0!important}}.footerButton{padding:10px 32px 16px 30px;display:flex;flex-wrap:wrap}@media (max-width: 576px){.footerButton{padding-left:20px;padding-right:17px}}.navButton{background:#084fff;color:#fff;border:none;padding:10px 8px;width:auto}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.prevButtonDiv{display:flex;justify-content:center;margin-bottom:5px}.nextButtonDiv{display:flex;justify-content:end;margin-left:auto;margin-bottom:5px}.tab-content,.row{background-color:#fff}\n"] }]
31
+ args: [{ selector: 'lib-next-prev-navigation', template: "<div class=\"pageTitleDiv\">\n <p class=\"pageTitle\">{{ currentPage.title }}</p>\n</div>\n<div class=\"button-inner-container rounded\">\n <div class=\"tab-content pt-5 pb-3 row\">\n <div *ngFor=\"let row of pages[currentPageIndex].rows\" class=\"marginSize\">\n <div *ngFor=\"let grid of row.grid\">\n <lib-form-elements\n [grid]=\"grid\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n ></lib-form-elements>\n </div>\n </div>\n <div class=\"footerButton\">\n <div class=\"prevButtonDiv\">\n <button\n class=\"me-md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigatePrevious()\"\n *ngIf=\"0 < currentPageIndex\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Previous | {{ previousPage.title }}\n </button>\n </div>\n <div class=\"nextButtonDiv\">\n <button\n class=\"md-2 rounded-pill navButton\"\n type=\"button\"\n (click)=\"onNavigateNext()\"\n *ngIf=\"currentPageIndex < pages.length - 1\"\n >\n Next | {{ nextPage.title }}\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n <button\n class=\"submitBtn me-md-2 rounded-pill\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pages.length - 1\"\n (click)=\"submitForm()\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".pageTitle{font-size:15px;font-weight:500}.pageTitleDiv{padding-left:3rem;padding-top:3rem}@media (max-width: 1024px){.pageTitleDiv{padding-left:1rem;padding-top:2rem}}@media (max-width: 576px){.pageTitleDiv{padding-left:.4rem;padding-top:1.5rem}}.button-inner-container{width:100%;position:relative;padding:0rem 3rem 3rem}@media (max-width: 1024px){.button-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.button-inner-container{padding:.1rem .5rem 2rem}}@media (max-width: 576px){.marginSize{padding:0!important}}.footerButton{padding:10px 32px 16px 30px;display:flex;flex-wrap:wrap}@media (max-width: 576px){.footerButton{padding-left:20px;padding-right:17px}}.navButton{background:#084fff;color:#fff;border:none;padding:10px 8px;width:auto}.submitBtn{background:#084fff;color:#fff;border:none;padding:10px 27px;width:auto}.prevButtonDiv{display:flex;justify-content:center;margin-bottom:5px}.nextButtonDiv{display:flex;justify-content:end;margin-left:auto;margin-bottom:5px}.tab-content,.row{background-color:#fff}\n"] }]
36
32
  }], propDecorators: { currentPageIndex: [{
37
33
  type: Input
38
34
  }], pages: [{
@@ -51,7 +47,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
51
47
  type: Output
52
48
  }], edit: [{
53
49
  type: Input
54
- }], subFormChange: [{
55
- type: Output
56
50
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmV4dC1wcmV2LW5hdmlnYXRpb24vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmV4dC1wcmV2LW5hdmlnYXRpb24vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9sRixNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBT1cscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1QyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekQsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FrQm5EO0lBZkMsNEJBQTRCLENBQUMsS0FBVTtRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBNUJVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDJXQ1B4QyxnM0ZBdUZBOzs0RkRoRmEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs4QkFNM0IsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbmV4dC1wcmV2LW5hdmlnYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXh0LXByZXYtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV4dFByZXZOYXZpZ2F0aW9uQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgY3VycmVudFBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBwYWdlczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBwcmV2aW91c1BhZ2U6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIG5leHRQYWdlOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBjdXJyZW50UGFnZTogYW55ID0ge307XHJcbiAgQE91dHB1dCgpIG5hdmlnYXRlTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgbmF2aWdhdGVQcmV2aW91cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgc3VibWl0RW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHN1YkZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gIHVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zdWJGb3JtQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25OYXZpZ2F0ZU5leHQoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlTmV4dC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbk5hdmlnYXRlUHJldmlvdXMoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlUHJldmlvdXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIHRoaXMuc3VibWl0RW1pdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdlVGl0bGVEaXZcIj5cclxuICA8cCBjbGFzcz1cInBhZ2VUaXRsZVwiPnt7IGN1cnJlbnRQYWdlLnRpdGxlIH19PC9wPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImJ1dHRvbi1pbm5lci1jb250YWluZXIgcm91bmRlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBwdC01IHBiLTMgcm93XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZXNbY3VycmVudFBhZ2VJbmRleF0ucm93c1wiIGNsYXNzPVwibWFyZ2luU2l6ZVwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBncmlkIG9mIHJvdy5ncmlkXCI+XHJcbiAgICAgICAgPGxpYi1mb3JtLWVsZW1lbnRzXHJcbiAgICAgICAgICBbZ3JpZF09XCJncmlkXCJcclxuICAgICAgICAgIFtjdXJyZW50UGFnZUluZGV4XT1cImN1cnJlbnRQYWdlSW5kZXhcIlxyXG4gICAgICAgICAgW2VkaXRdPVwiZWRpdFwiXHJcbiAgICAgICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxyXG4gICAgICAgID48L2xpYi1mb3JtLWVsZW1lbnRzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJldkJ1dHRvbkRpdlwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwibWUtbWQtMiByb3VuZGVkLXBpbGwgbmF2QnV0dG9uXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGVQcmV2aW91cygpXCJcclxuICAgICAgICAgICpuZ0lmPVwiMCA8IGN1cnJlbnRQYWdlSW5kZXhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk00LjUxMDI1IDExLjk4ODNMMTkuNTAwMyAxMS45ODgzXCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTAuNTE0IDE3Ljk3NjZMNC40OTgwNSAxMS45OTk2TDEwLjUxNCA2LjAyMjU2XCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICBQcmV2aW91cyB8IHt7IHByZXZpb3VzUGFnZS50aXRsZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5leHRCdXR0b25EaXZcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cIm1kLTIgcm91bmRlZC1waWxsIG5hdkJ1dHRvblwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbk5hdmlnYXRlTmV4dCgpXCJcclxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudFBhZ2VJbmRleCA8IHBhZ2VzLmxlbmd0aCAtIDFcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIE5leHQgfCB7eyBuZXh0UGFnZS50aXRsZSB9fVxyXG4gICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTE5LjQ4OTcgMTIuMDExN0w0LjQ5OTc1IDEyLjAxMTdcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xMy40ODYgNi4wMjM0NEwxOS41MDIgMTIuMDAwNEwxMy40ODYgMTcuOTc3NFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwic3VibWl0QnRuIG1lLW1kLTIgcm91bmRlZC1waWxsXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50UGFnZUluZGV4ID09IHBhZ2VzLmxlbmd0aCAtIDFcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmV4dC1wcmV2LW5hdmlnYXRpb24vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmV4dC1wcmV2LW5hdmlnYXRpb24vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9sRixNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBT1cscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1QyxlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUQsU0FBSSxHQUFhLEtBQUssQ0FBQztLQWFqQztJQVhDLGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQXRCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwyVUNQeEMsOG5GQXNGQTs7NEZEL0VhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OEJBTTNCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uZXh0LXByZXYtbmF2aWdhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXh0LXByZXYtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25leHQtcHJldi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTmV4dFByZXZOYXZpZ2F0aW9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcHJldmlvdXNQYWdlOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgbmV4dFBhZ2U6IGFueSA9IHt9O1xuICBASW5wdXQoKSBjdXJyZW50UGFnZTogYW55ID0ge307XG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZU5leHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZVByZXZpb3VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3VibWl0RW1pdCA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGVkaXQgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgb25OYXZpZ2F0ZU5leHQoKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZU5leHQuZW1pdCgpO1xuICB9XG5cbiAgb25OYXZpZ2F0ZVByZXZpb3VzKCkge1xuICAgIHRoaXMubmF2aWdhdGVQcmV2aW91cy5lbWl0KCk7XG4gIH1cblxuICBzdWJtaXRGb3JtKCl7XG4gICAgdGhpcy5zdWJtaXRFbWl0LmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBhZ2VUaXRsZURpdlwiPlxuICA8cCBjbGFzcz1cInBhZ2VUaXRsZVwiPnt7IGN1cnJlbnRQYWdlLnRpdGxlIH19PC9wPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYnV0dG9uLWlubmVyLWNvbnRhaW5lciByb3VuZGVkXCI+XG4gIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBwdC01IHBiLTMgcm93XCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgcm93IG9mIHBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLnJvd3NcIiBjbGFzcz1cIm1hcmdpblNpemVcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGdyaWQgb2Ygcm93LmdyaWRcIj5cbiAgICAgICAgPGxpYi1mb3JtLWVsZW1lbnRzXG4gICAgICAgICAgW2dyaWRdPVwiZ3JpZFwiXG4gICAgICAgICAgW2N1cnJlbnRQYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VJbmRleFwiXG4gICAgICAgICAgW2VkaXRdPVwiZWRpdFwiXG4gICAgICAgID48L2xpYi1mb3JtLWVsZW1lbnRzPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInByZXZCdXR0b25EaXZcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwibWUtbWQtMiByb3VuZGVkLXBpbGwgbmF2QnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwib25OYXZpZ2F0ZVByZXZpb3VzKClcIlxuICAgICAgICAgICpuZ0lmPVwiMCA8IGN1cnJlbnRQYWdlSW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNC41MTAyNSAxMS45ODgzTDE5LjUwMDMgMTEuOTg4M1wiXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTEwLjUxNCAxNy45NzY2TDQuNDk4MDUgMTEuOTk5NkwxMC41MTQgNi4wMjI1NlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgUHJldmlvdXMgfCB7eyBwcmV2aW91c1BhZ2UudGl0bGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuZXh0QnV0dG9uRGl2XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1kLTIgcm91bmRlZC1waWxsIG5hdkJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGVOZXh0KClcIlxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudFBhZ2VJbmRleCA8IHBhZ2VzLmxlbmd0aCAtIDFcIlxuICAgICAgICA+XG4gICAgICAgICAgTmV4dCB8IHt7IG5leHRQYWdlLnRpdGxlIH19XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNMTkuNDg5NyAxMi4wMTE3TDQuNDk5NzUgMTIuMDExN1wiXG4gICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTEzLjQ4NiA2LjAyMzQ0TDE5LjUwMiAxMi4wMDA0TDEzLjQ4NiAxNy45Nzc0XCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInN1Ym1pdEJ0biBtZS1tZC0yIHJvdW5kZWQtcGlsbFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50UGFnZUluZGV4ID09IHBhZ2VzLmxlbmd0aCAtIDFcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICA+XG4gICAgICAgICAgU3VibWl0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -3,14 +3,16 @@ import * as mapper from '../../services/mapper.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../services/form.service";
5
5
  import * as i2 from "ngx-toastr";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "../header/header.component";
8
- import * as i5 from "../navigation-tabs/navigation-tabs.component";
9
- import * as i6 from "../next-prev-navigation/next-prev-navigation.component";
6
+ import * as i3 from "@angular/router";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "../header/header.component";
9
+ import * as i6 from "../navigation-tabs/navigation-tabs.component";
10
+ import * as i7 from "../next-prev-navigation/next-prev-navigation.component";
10
11
  export class SubmitFormComponent {
11
- constructor(formService, toastr) {
12
+ constructor(formService, toastr, router) {
12
13
  this.formService = formService;
13
14
  this.toastr = toastr;
15
+ this.router = router;
14
16
  this.question = null;
15
17
  this.moduleName = '';
16
18
  this.edit = false;
@@ -39,29 +41,9 @@ export class SubmitFormComponent {
39
41
  this.lastTab = false;
40
42
  this.questionAnswers = { answers: [], forms: [] };
41
43
  this.files = [];
42
- this.updateSubForm = (pages, updatedSubForm) => {
43
- pages.forEach(page => {
44
- page.rows.forEach((row) => {
45
- row.grid.forEach((element) => {
46
- if (element.entityType === 'SUBFORM' && element.element.id === updatedSubForm.formId) {
47
- // Update the existing subform with the new data
48
- element.element = updatedSubForm;
49
- }
50
- else if (element.entityType === 'SUBFORM' && element.element.id !== updatedSubForm.formId) {
51
- // Handle multiple subforms logic here if needed
52
- }
53
- else if (element.entityType === 'QUESTION' && element.element.childLogics) {
54
- // Recursively update child logics
55
- element.element.childLogics.forEach((logic) => {
56
- if (logic.showLogic) {
57
- this.updateSubForm(logic.formElements, updatedSubForm);
58
- }
59
- });
60
- }
61
- });
62
- });
63
- });
64
- };
44
+ this.submission = {};
45
+ const navigation = this.router.getCurrentNavigation();
46
+ this.submission = navigation?.extras.state?.['submission'];
65
47
  }
66
48
  ngOnInit() {
67
49
  if (this.edit && this.submissionId) {
@@ -71,6 +53,12 @@ export class SubmitFormComponent {
71
53
  this.getFormData();
72
54
  }
73
55
  }
56
+ objectKeys(obj) {
57
+ return obj ? Object.keys(obj) : [];
58
+ }
59
+ isImageUrl(url) {
60
+ return url.match(/\.(jpeg|jpg|gif|png)$/) != null;
61
+ }
74
62
  getFormData() {
75
63
  this.formService.getQuestions(this.moduleName).subscribe((response) => {
76
64
  this.question = mapper.mapPublicFormToModel(response);
@@ -215,29 +203,16 @@ export class SubmitFormComponent {
215
203
  }
216
204
  else if (element.entityType === 'SUBFORM') {
217
205
  const subformId = element.element.id;
218
- const submissionId = element.element.submissionId;
219
- if (element.element.subFormStructure === 'single') {
220
- const subformQuestions = extractQuestions(element.element.formElements, subformId, true, forms.length);
221
- const subform = {
222
- formId: subformId,
223
- deletedSubmissions: [],
224
- submissions: [{
225
- submissionId: submissionId,
226
- answers: subformQuestions.answers
227
- }]
228
- };
229
- forms.push(subform);
230
- }
231
- else if (element.element.subFormStructure === 'multiple') {
232
- const subformQuestions = extractQuestions(element.element.formElements, subformId, true, forms.length);
233
- const existingSubform = forms.find(form => form.formId === subformId);
234
- const subform = {
235
- formId: subformId,
236
- deletedSubmissions: element.element.deletedSubmissions,
237
- submissions: element.element.submissions
238
- };
239
- forms.push(subform);
240
- }
206
+ const subformQuestions = extractQuestions(element.element.formElements, subformId, true, forms.length);
207
+ const subform = {
208
+ formId: subformId,
209
+ deletedSubmissions: [],
210
+ submissions: [{
211
+ submissionId: '',
212
+ answers: subformQuestions.answers
213
+ }]
214
+ };
215
+ forms.push(subform);
241
216
  }
242
217
  });
243
218
  return { answers: questions, forms: forms };
@@ -433,16 +408,13 @@ export class SubmitFormComponent {
433
408
  }
434
409
  return { isValid: true, message: 'All required questions are answered.' };
435
410
  }
436
- updateSubFormWithSubmissions(event) {
437
- this.updateSubForm(this.pages, event);
438
- }
439
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmitFormComponent, deps: [{ token: i1.FormService }, { token: i2.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
440
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmitFormComponent, selector: "lib-submit-form", inputs: { moduleName: "moduleName", edit: "edit", submissionId: "submissionId" }, outputs: { submit: "submit" }, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div class=\"head container\">\r\n <lib-header [name]=\"name\"></lib-header>\r\n </div>\r\n <div class=\"body container\">\r\n <lib-navigation-tabs\r\n *ngIf=\"navigation == 'TAB'\"\r\n [pages]=\"pages\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n (pageChanged)=\"setCurrentPage($event)\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-navigation-tabs>\r\n <lib-next-prev-navigation\r\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [pages]=\"pages\"\r\n [previousPage]=\"previousPage\"\r\n [currentPage]=\"currentPage\"\r\n [nextPage]=\"nextPage\"\r\n (navigateNext)=\"navigateToNextPage()\"\r\n (navigatePrevious)=\"navigateToPreviousPage()\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-next-prev-navigation>\r\n </div>\r\n</div>\r\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.head{background-color:#fff;padding:0!important}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.HeaderComponent, selector: "lib-header", inputs: ["name"] }, { kind: "component", type: i5.NavigationTabsComponent, selector: "lib-navigation-tabs", inputs: ["pages", "currentPageIndex", "edit"], outputs: ["pageChanged", "submitEmit", "subFormChange"] }, { kind: "component", type: i6.NextPrevNavigationComponent, selector: "lib-next-prev-navigation", inputs: ["currentPageIndex", "pages", "previousPage", "nextPage", "currentPage", "edit"], outputs: ["navigateNext", "navigatePrevious", "submitEmit", "subFormChange"] }] }); }
411
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmitFormComponent, deps: [{ token: i1.FormService }, { token: i2.ToastrService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
412
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmitFormComponent, selector: "lib-submit-form", inputs: { moduleName: "moduleName", edit: "edit", submissionId: "submissionId" }, outputs: { submit: "submit" }, ngImport: i0, template: "<div class=\"outer-container\">\n <div class=\"submission-container container mb-2\">\n <div *ngFor=\"let key of objectKeys(submission?.answerMap)\" class=\"submission-item\">\n <div class=\"key\">{{ key }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"isImageUrl(submission?.answerMap[key]); else text\">\n <img [src]=\"submission?.answerMap[key]\" alt=\"{{ key }}\" class=\"image\">\n </ng-container>\n <ng-template #text>{{ submission.answerMap[key] }}</ng-template>\n </div>\n </div>\n </div>\n <div class=\"head container\">\n <lib-header [name]=\"name\"></lib-header>\n </div>\n <div class=\"body container\">\n <lib-navigation-tabs\n *ngIf=\"navigation == 'TAB'\"\n [pages]=\"pages\"\n [currentPageIndex]=\"currentPageIndex\"\n (pageChanged)=\"setCurrentPage($event)\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n ></lib-navigation-tabs>\n <lib-next-prev-navigation\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\n [currentPageIndex]=\"currentPageIndex\"\n [pages]=\"pages\"\n [previousPage]=\"previousPage\"\n [currentPage]=\"currentPage\"\n [nextPage]=\"nextPage\"\n (navigateNext)=\"navigateToNextPage()\"\n (navigatePrevious)=\"navigateToPreviousPage()\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n ></lib-next-prev-navigation>\n </div>\n</div>\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.head{background-color:#fff;padding:0!important}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.submission-container{display:flex;flex-wrap:wrap;box-shadow:0 4px 4px #00000040;border-radius:6px}.submission-item{flex:1 0 21%;margin:5px;padding:10px;border-radius:4px;display:flex;flex-direction:column}.key{font-weight:700;margin-bottom:5px}.value{word-break:break-word}.image{max-width:100%;height:auto;max-height:150px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.HeaderComponent, selector: "lib-header", inputs: ["name"] }, { kind: "component", type: i6.NavigationTabsComponent, selector: "lib-navigation-tabs", inputs: ["pages", "currentPageIndex", "edit"], outputs: ["pageChanged", "submitEmit"] }, { kind: "component", type: i7.NextPrevNavigationComponent, selector: "lib-next-prev-navigation", inputs: ["currentPageIndex", "pages", "previousPage", "nextPage", "currentPage", "edit"], outputs: ["navigateNext", "navigatePrevious", "submitEmit"] }] }); }
441
413
  }
442
414
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmitFormComponent, decorators: [{
443
415
  type: Component,
444
- args: [{ selector: 'lib-submit-form', template: "<div class=\"outer-container\">\r\n <div class=\"head container\">\r\n <lib-header [name]=\"name\"></lib-header>\r\n </div>\r\n <div class=\"body container\">\r\n <lib-navigation-tabs\r\n *ngIf=\"navigation == 'TAB'\"\r\n [pages]=\"pages\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n (pageChanged)=\"setCurrentPage($event)\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-navigation-tabs>\r\n <lib-next-prev-navigation\r\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\r\n [currentPageIndex]=\"currentPageIndex\"\r\n [pages]=\"pages\"\r\n [previousPage]=\"previousPage\"\r\n [currentPage]=\"currentPage\"\r\n [nextPage]=\"nextPage\"\r\n (navigateNext)=\"navigateToNextPage()\"\r\n (navigatePrevious)=\"navigateToPreviousPage()\"\r\n (submitEmit)=\"submitForm()\"\r\n [edit]=\"edit\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n ></lib-next-prev-navigation>\r\n </div>\r\n</div>\r\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.head{background-color:#fff;padding:0!important}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}\n"] }]
445
- }], ctorParameters: function () { return [{ type: i1.FormService }, { type: i2.ToastrService }]; }, propDecorators: { moduleName: [{
416
+ args: [{ selector: 'lib-submit-form', template: "<div class=\"outer-container\">\n <div class=\"submission-container container mb-2\">\n <div *ngFor=\"let key of objectKeys(submission?.answerMap)\" class=\"submission-item\">\n <div class=\"key\">{{ key }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"isImageUrl(submission?.answerMap[key]); else text\">\n <img [src]=\"submission?.answerMap[key]\" alt=\"{{ key }}\" class=\"image\">\n </ng-container>\n <ng-template #text>{{ submission.answerMap[key] }}</ng-template>\n </div>\n </div>\n </div>\n <div class=\"head container\">\n <lib-header [name]=\"name\"></lib-header>\n </div>\n <div class=\"body container\">\n <lib-navigation-tabs\n *ngIf=\"navigation == 'TAB'\"\n [pages]=\"pages\"\n [currentPageIndex]=\"currentPageIndex\"\n (pageChanged)=\"setCurrentPage($event)\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n ></lib-navigation-tabs>\n <lib-next-prev-navigation\n *ngIf=\"navigation == 'NEXT_AND_PREVIOUS_BUTTON'\"\n [currentPageIndex]=\"currentPageIndex\"\n [pages]=\"pages\"\n [previousPage]=\"previousPage\"\n [currentPage]=\"currentPage\"\n [nextPage]=\"nextPage\"\n (navigateNext)=\"navigateToNextPage()\"\n (navigatePrevious)=\"navigateToPreviousPage()\"\n (submitEmit)=\"submitForm()\"\n [edit]=\"edit\"\n ></lib-next-prev-navigation>\n </div>\n</div>\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.head{background-color:#fff;padding:0!important}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.submission-container{display:flex;flex-wrap:wrap;box-shadow:0 4px 4px #00000040;border-radius:6px}.submission-item{flex:1 0 21%;margin:5px;padding:10px;border-radius:4px;display:flex;flex-direction:column}.key{font-weight:700;margin-bottom:5px}.value{word-break:break-word}.image{max-width:100%;height:auto;max-height:150px}\n"] }]
417
+ }], ctorParameters: function () { return [{ type: i1.FormService }, { type: i2.ToastrService }, { type: i3.Router }]; }, propDecorators: { moduleName: [{
446
418
  type: Input
447
419
  }], edit: [{
448
420
  type: Input
@@ -451,4 +423,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
451
423
  }], submit: [{
452
424
  type: Output
453
425
  }] } });
454
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssTUFBTSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQWdDeEQsTUFBTSxPQUFPLG1CQUFtQjtJQStCOUIsWUFDVSxXQUF3QixFQUN4QixNQUFxQjtRQURyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBaEMvQixhQUFRLEdBQXNCLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXBFLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFDM0IsNEJBQXVCLEdBQVksS0FB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Q0FBQztRQUVGLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUN6QixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ25CLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxLQUFVO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQXBhVSxtQkFBbUI7bUdBQW5CLG1CQUFtQix3S0NsQ2hDLDRrQ0E2QkE7OzRGREthLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEhBTWxCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIG1hcHBlciBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFB1YmxpY0Zvcm0gfSBmcm9tICcuLi8uLi9tb2RlbHMvcHVibGljRm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbmludGVyZmFjZSBBbnN3ZXIge1xyXG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcclxuICBhbnN3ZXI6IGFueTtcclxuICBhbnN3ZXJJZD86IHN0cmluZztcclxuICBkZWxldGVGaWxlcz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU3VibWlzc2lvbiB7XHJcbiAgc3VibWlzc2lvbklkOiBzdHJpbmc7XHJcbiAgYW5zd2VyczogQW5zd2VyW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBGb3JtIHtcclxuICBmb3JtSWQ6IHN0cmluZztcclxuICBkZWxldGVkU3VibWlzc2lvbnM6IGFueVtdO1xyXG4gIHN1Ym1pc3Npb25zOiBTdWJtaXNzaW9uW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBRdWVzdGlvbkFuc3dlcnNXcmFwcGVyIHtcclxuICBhbnN3ZXJzOiBBbnN3ZXJbXTtcclxuICBmb3JtczogRm9ybVtdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdWJtaXQtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Ym1pdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdWJtaXQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VibWl0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcXVlc3Rpb246IFB1YmxpY0Zvcm0gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBtb2R1bGVOYW1lOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWlzc2lvbklkOiBzdHJpbmcgPSAnJztcclxuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBuYW1lOiBzdHJpbmcgPSAnJztcclxuICBzYXZlQXV0b21hdGljYWxseTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNhdmVJbnRlcnZhbDogbnVtYmVyID0gMDtcclxuICBjdXN0b21pemVGb250OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZm9udEZhbWlseTogc3RyaW5nID0gJyc7XHJcbiAgZm9udFNpemU6IG51bWJlciA9IDA7XHJcbiAgZW5hYmxlRGF0YUV4cG9ydDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZpbGVGb3JtYXRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGVuYWJsZVF1ZXN0aW9uTnVtYmVyaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcXVlc3Rpb25OdW1iZXJpbmc6IHN0cmluZyA9ICcnO1xyXG4gIGVuYWJsZUdvb2dsZVJlY2FwdGNoYTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdvb2dsZVJlY2FwdGNoYUtleTogc3RyaW5nID0gJyc7XHJcbiAgZ29vZ2xlUmVjYXB0Y2hhU2VjcmV0OiBzdHJpbmcgPSAnJztcclxuICBuYXZpZ2F0aW9uOiBzdHJpbmcgPSAnJztcclxuICBtYXJrQWxsUXVlc3Rpb25zQXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBhZ2VzOiBhbnkgPSBbXTtcclxuICBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIHByZXZpb3VzUGFnZTogYW55ID0ge307XHJcbiAgY3VycmVudFBhZ2U6IGFueSA9IHt9O1xyXG4gIG5leHRQYWdlOiBhbnkgPSB7fTtcclxuICBsYXN0VGFiOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcXVlc3Rpb25BbnN3ZXJzOiBRdWVzdGlvbkFuc3dlcnNXcmFwcGVyID0geyBhbnN3ZXJzOiBbXSwgZm9ybXM6IFtdIH07XHJcbiAgZmlsZXM6IHsgcXVlc3Rpb25JZDogc3RyaW5nOyBmaWxlOiBhbnkgfVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5lZGl0ICYmIHRoaXMuc3VibWlzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuZ2V0U3VibWl0dGVkRm9ybURhdGEoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0Rm9ybURhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZvcm1EYXRhKCkge1xyXG4gICAgdGhpcy5mb3JtU2VydmljZS5nZXRRdWVzdGlvbnModGhpcy5tb2R1bGVOYW1lKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMucXVlc3Rpb24gPSBtYXBwZXIubWFwUHVibGljRm9ybVRvTW9kZWwocmVzcG9uc2UpO1xyXG4gICAgICB0aGlzLmFzc2lnblF1ZXN0aW9uUHJvcGVydGllcyh0aGlzLnF1ZXN0aW9uKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3VibWl0dGVkRm9ybURhdGEoKSB7XHJcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmdldFN1Ym1pdHRlZEZvcm0odGhpcy5tb2R1bGVOYW1lLCB0aGlzLnN1Ym1pc3Npb25JZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLnF1ZXN0aW9uID0gbWFwcGVyLm1hcFB1YmxpY0Zvcm1Ub01vZGVsKHJlc3BvbnNlKTtcclxuICAgICAgdGhpcy5hc3NpZ25RdWVzdGlvblByb3BlcnRpZXModGhpcy5xdWVzdGlvbik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzc2lnblF1ZXN0aW9uUHJvcGVydGllcyhxdWVzdGlvbjogUHVibGljRm9ybSkge1xyXG4gICAgdGhpcy5uYW1lID0gcXVlc3Rpb24ubmFtZTtcclxuICAgIHRoaXMucGFnZXMgPSBxdWVzdGlvbi5wYWdlcztcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzWzBdO1xyXG4gICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbMV07XHJcbiAgICB0aGlzLnNhdmVBdXRvbWF0aWNhbGx5ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uc2F2ZUF1dG9tYXRpY2FsbHk7XHJcbiAgICB0aGlzLnNhdmVJbnRlcnZhbCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLnNhdmVJbnRlcnZhbDtcclxuICAgIHRoaXMuY3VzdG9taXplRm9udCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmN1c3RvbWl6ZUZvbnQ7XHJcbiAgICB0aGlzLmZvbnRGYW1pbHkgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5mb250RmFtaWx5O1xyXG4gICAgdGhpcy5mb250U2l6ZSA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmZvbnRTaXplO1xyXG4gICAgdGhpcy5lbmFibGVEYXRhRXhwb3J0ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlRGF0YUV4cG9ydDtcclxuICAgIHRoaXMuZmlsZUZvcm1hdHMgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5maWxlRm9ybWF0cztcclxuICAgIHRoaXMuZW5hYmxlUXVlc3Rpb25OdW1iZXJpbmcgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5lbmFibGVRdWVzdGlvbk51bWJlcmluZztcclxuICAgIHRoaXMucXVlc3Rpb25OdW1iZXJpbmcgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5xdWVzdGlvbk51bWJlcmluZztcclxuICAgIHRoaXMuZW5hYmxlR29vZ2xlUmVjYXB0Y2hhID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlR29vZ2xlUmVjYXB0Y2hhO1xyXG4gICAgdGhpcy5nb29nbGVSZWNhcHRjaGFLZXkgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5nb29nbGVSZWNhcHRjaGFLZXk7XHJcbiAgICB0aGlzLmdvb2dsZVJlY2FwdGNoYVNlY3JldCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmdvb2dsZVJlY2FwdGNoYVNlY3JldDtcclxuICAgIHRoaXMubmF2aWdhdGlvbiA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLm5hdmlnYXRpb247XHJcbiAgICB0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQ7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvTmV4dFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUluZGV4IDwgdGhpcy5wYWdlcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIGlmICh0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXNwb25zZSA9IHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xyXG4gICAgICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4Kys7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4ICsgMV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcodmFsaWRhdGlvblJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4Kys7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcclxuICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggKyAxXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb1ByZXZpb3VzUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlSW5kZXggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXNwb25zZSA9IHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xyXG4gICAgICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXgtLTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XHJcbiAgICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4IC0gMV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcodmFsaWRhdGlvblJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXgtLTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xyXG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggLSAxXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q3VycmVudFBhZ2UoaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcclxuICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xyXG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPSB0aGlzLnZhbGlkYXRlUmVxdWlyZWRRdWVzdGlvbnMoY3VycmVudFBhZ2VEYXRhKTtcclxuICAgICAgaWYgKHZhbGlkYXRpb25SZXNwb25zZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4ID0gaW5kZXg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b2FzdHIud2FybmluZyh2YWxpZGF0aW9uUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVRdWVzdGlvbkFuc3dlcnMoKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gW107XHJcbiAgXHJcbiAgICBjb25zdCBleHRyYWN0UXVlc3Rpb25zID0gKFxyXG4gICAgICBmb3JtRWxlbWVudHM6IGFueVtdLCBcclxuICAgICAgcGFyZW50Rm9ybUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgXHJcbiAgICAgIGlzSW5TdWJGb3JtOiBib29sZWFuID0gZmFsc2UsIFxyXG4gICAgICBzdWJGb3JtSW5kZXg6IG51bWJlciA9IDBcclxuICAgICk6IHsgYW5zd2VyczogQW5zd2VyW10sIGZvcm1zOiBGb3JtW10gfSA9PiB7XHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uczogQW5zd2VyW10gPSBbXTtcclxuICAgICAgY29uc3QgZm9ybXM6IEZvcm1bXSA9IFtdO1xyXG4gICAgICAgIFxyXG4gICAgICBmb3JtRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdRVUVTVElPTicpIHtcclxuICAgICAgICAgIGxldCBiYXNlUXVlc3Rpb246IGFueTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcclxuICAgICAgICAgICAgYmFzZVF1ZXN0aW9uID0ge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcclxuICAgICAgICAgICAgICBhbnN3ZXI6ICcnXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnQuZWxlbWVudC5hbnN3ZXIpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25JZCA9IGlzSW5TdWJGb3JtIFxyXG4gICAgICAgICAgICAgICAgPyBgJHtwYXJlbnRGb3JtSWR9XyR7c3ViRm9ybUluZGV4fV8ke2VsZW1lbnQuZWxlbWVudC5pZH1gXHJcbiAgICAgICAgICAgICAgICA6IGVsZW1lbnQuZWxlbWVudC5pZDtcclxuICAgICAgICAgICAgICB0aGlzLmZpbGVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgIGZpbGU6IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGJhc2VRdWVzdGlvbiA9IHtcclxuICAgICAgICAgICAgICBxdWVzdGlvbklkOiBlbGVtZW50LmVsZW1lbnQuaWQsXHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGVtZW50LmVsZW1lbnQuYW5zd2VyXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5lZGl0KSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAuLi5iYXNlUXVlc3Rpb24sXHJcbiAgICAgICAgICAgICAgYW5zd2VySWQ6IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCB8fCAnJyxcclxuICAgICAgICAgICAgICBkZWxldGVGaWxlczogZWxlbWVudC5lbGVtZW50LmRlbGV0ZUZpbGVzIHx8IFtdXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goYmFzZVF1ZXN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgbG9naWMgb2YgZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0cmFjdFF1ZXN0aW9ucyhsb2dpYy5mb3JtRWxlbWVudHMsIHBhcmVudEZvcm1JZCwgaXNJblN1YkZvcm0sIHN1YkZvcm1JbmRleCk7XHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbnMucHVzaCguLi5yZXN1bHQuYW5zd2Vycyk7XHJcbiAgICAgICAgICAgICAgICBmb3Jtcy5wdXNoKC4uLnJlc3VsdC5mb3Jtcyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJykge1xyXG4gICAgICAgICAgY29uc3Qgc3ViZm9ybUlkID0gZWxlbWVudC5lbGVtZW50LmlkO1xyXG4gICAgICAgICAgY29uc3Qgc3VibWlzc2lvbklkID0gZWxlbWVudC5lbGVtZW50LnN1Ym1pc3Npb25JZDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5zdWJGb3JtU3RydWN0dXJlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgICBjb25zdCBzdWJmb3JtUXVlc3Rpb25zID0gZXh0cmFjdFF1ZXN0aW9ucyhlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzLCBzdWJmb3JtSWQsIHRydWUsIGZvcm1zLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN1YmZvcm06IEZvcm0gPSB7XHJcbiAgICAgICAgICAgICAgZm9ybUlkOiBzdWJmb3JtSWQsXHJcbiAgICAgICAgICAgICAgZGVsZXRlZFN1Ym1pc3Npb25zOiBbXSxcclxuICAgICAgICAgICAgICBzdWJtaXNzaW9uczogW3tcclxuICAgICAgICAgICAgICAgIHN1Ym1pc3Npb25JZDogc3VibWlzc2lvbklkLCBcclxuICAgICAgICAgICAgICAgIGFuc3dlcnM6IHN1YmZvcm1RdWVzdGlvbnMuYW5zd2Vyc1xyXG4gICAgICAgICAgICAgIH1dXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGZvcm1zLnB1c2goc3ViZm9ybSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZWxlbWVudC5zdWJGb3JtU3RydWN0dXJlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN1YmZvcm1RdWVzdGlvbnMgPSBleHRyYWN0UXVlc3Rpb25zKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMsIHN1YmZvcm1JZCwgdHJ1ZSwgZm9ybXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdTdWJmb3JtID0gZm9ybXMuZmluZChmb3JtID0+IGZvcm0uZm9ybUlkID09PSBzdWJmb3JtSWQpO1xyXG4gIFxyXG4gICAgICAgICAgICAgIGNvbnN0IHN1YmZvcm06IEZvcm0gPSB7XHJcbiAgICAgICAgICAgICAgICBmb3JtSWQ6IHN1YmZvcm1JZCxcclxuICAgICAgICAgICAgICAgIGRlbGV0ZWRTdWJtaXNzaW9uczogZWxlbWVudC5lbGVtZW50LmRlbGV0ZWRTdWJtaXNzaW9ucyxcclxuICAgICAgICAgICAgICAgIHN1Ym1pc3Npb25zOiBlbGVtZW50LmVsZW1lbnQuc3VibWlzc2lvbnNcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGZvcm1zLnB1c2goc3ViZm9ybSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICAgICAgXHJcbiAgICAgIHJldHVybiB7IGFuc3dlcnM6IHF1ZXN0aW9ucywgZm9ybXM6IGZvcm1zIH07XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgY29uc3QgcHJvY2Vzc1BhZ2VzID0gKHBhZ2VzOiBhbnlbXSk6IHsgYW5zd2VyczogQW5zd2VyW10sIGZvcm1zOiBGb3JtW10gfSA9PiB7XHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uczogQW5zd2VyW10gPSBbXTtcclxuICAgICAgY29uc3QgZm9ybXM6IEZvcm1bXSA9IFtdO1xyXG4gIFxyXG4gICAgICBwYWdlcy5mb3JFYWNoKChwYWdlKSA9PiB7XHJcbiAgICAgICAgcGFnZS5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBleHRyYWN0UXVlc3Rpb25zKHJvdy5ncmlkKTtcclxuICAgICAgICAgIHF1ZXN0aW9ucy5wdXNoKC4uLnJlc3VsdC5hbnN3ZXJzKTtcclxuICAgICAgICAgIGZvcm1zLnB1c2goLi4ucmVzdWx0LmZvcm1zKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgXHJcbiAgICAgIHJldHVybiB7IGFuc3dlcnM6IHF1ZXN0aW9ucywgZm9ybXM6IGZvcm1zIH07XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgY29uc3QgcmVzdWx0ID0gcHJvY2Vzc1BhZ2VzKHRoaXMucGFnZXMpO1xyXG4gIFxyXG4gICAgdGhpcy5xdWVzdGlvbkFuc3dlcnMgPSB7XHJcbiAgICAgIGFuc3dlcnM6IHJlc3VsdC5hbnN3ZXJzLFxyXG4gICAgICBmb3JtczogcmVzdWx0LmZvcm1zXHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgbGV0IHZhbGlkYXRpb25SZXNwb25zZSA9IHRoaXMudmFsaWRhdGVGb3JtKHRoaXMucGFnZXMpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVF1ZXN0aW9uQW5zd2VycygpOyAgICBcclxuICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2pzb24nLCBKU09OLnN0cmluZ2lmeSh0aGlzLnF1ZXN0aW9uQW5zd2VycykpO1xyXG4gICAgICBpZiAodGhpcy5maWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlSXRlbSkgPT4ge1xyXG4gICAgICAgICAgZmlsZUl0ZW0uZmlsZS5mb3JFYWNoKChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpbGVJdGVtLnF1ZXN0aW9uSWQsIGZpbGUuX2ZpbGUpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZWRpdCAmJiB0aGlzLnN1Ym1pc3Npb25JZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlRm9ybSh0aGlzLm1vZHVsZU5hbWUsIHRoaXMuc3VibWlzc2lvbklkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0Zvcm0gdXBkYXRlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCgnc3VjY2VzcycpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHRvIHVwZGF0ZSBmb3JtJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnN1Ym1pdEZvcm0odGhpcy5tb2R1bGVOYW1lLCBmb3JtRGF0YSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0Zvcm0gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KCdzdWNjZXNzJyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdG8gc3VibWl0IGZvcm0nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcih2YWxpZGF0aW9uUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUZvcm0oanNvbkRhdGE6IGFueSk6IHsgaXNWYWxpZDogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nOyBwYWdlSW5kZXg6IG51bWJlciB8IDAgfSB7XHJcbiAgICBjb25zdCB2YWxpZGF0ZVF1ZXN0aW9ucyA9IChmb3JtRWxlbWVudHM6IGFueVtdKTogeyBpc1ZhbGlkOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmc7IHBhZ2VJbmRleDogbnVtYmVyIHwgMCB9ID0+IHtcclxuICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBmb3JtRWxlbWVudHMpIHtcclxuICAgICAgICBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nKSB7XHJcbiAgICAgICAgICBjb25zdCByZXF1aXJlZCA9IGVsZW1lbnQuZWxlbWVudC5yZXF1aXJlZDtcclxuICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XHJcbiAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uID0gZWxlbWVudC5lbGVtZW50LnZhbGlkYXRpb247XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBlbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHM7XHJcbiAgICAgICAgICAgIGlmIChyZXF1aXJlZCkge1xyXG4gICAgICAgICAgICAgIGlmICgoIWFuc3dlciB8fCBhbnN3ZXIubGVuZ3RoID09PSAwKSAmJiBhdHRhY2htZW50Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFJlcXVpcmVkIGZpbGUgcXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGhhcyBubyBmaWxlcyB1cGxvYWRlZC5gLFxyXG4gICAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHJlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIgfHwgT2JqZWN0LmtleXMoYW5zd2VyKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRm9ybSBpcyBpbnZhbGlkIC0gUXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGlzIHJlcXVpcmVkIGJ1dCBubyBhbnN3ZXIgcHJvdmlkZWQuYCxcclxuICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyByZXF1aXJlZCBidXQgdmFsaWRhdGlvbiBpcyBmYWxzZS5gLFxyXG4gICAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmICghcmVxdWlyZWQgJiYgYW5zd2VyICYmIE9iamVjdC5rZXlzKGFuc3dlcikubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBGb3JtIGlzIGludmFsaWQgLSBRdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaXMgbm90IHJlcXVpcmVkIGJ1dCBhbnN3ZXIgcHJvdmlkZWQgd2l0aCB2YWxpZGF0aW9uIGZhbHNlLmAsXHJcbiAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGxvZ2ljIG9mIGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xyXG4gICAgICAgICAgICAgIGlmIChsb2dpYy5zaG93TG9naWMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGxvZ2ljLmZvcm1FbGVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBtZXNzYWdlOiAnJywgcGFnZUluZGV4OiAwIH07XHJcbiAgICB9O1xyXG5cclxuICAgIGZvciAobGV0IHBhZ2VJbmRleCA9IDA7IHBhZ2VJbmRleCA8IGpzb25EYXRhLmxlbmd0aDsgcGFnZUluZGV4KyspIHtcclxuICAgICAgY29uc3QgcGFnZSA9IGpzb25EYXRhW3BhZ2VJbmRleF07XHJcbiAgICAgIGZvciAobGV0IHJvdyBvZiBwYWdlLnJvd3MpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhyb3cuZ3JpZCk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBQYWdlICR7cGFnZUluZGV4ICsgMX06ICR7cmVzdWx0Lm1lc3NhZ2V9YCxcclxuICAgICAgICAgICAgcGFnZUluZGV4OiBwYWdlSW5kZXgsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaXNWYWxpZDogdHJ1ZSxcclxuICAgICAgbWVzc2FnZTogJ0Zvcm0gaXMgdmFsaWQuJyxcclxuICAgICAgcGFnZUluZGV4OiAwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlUmVxdWlyZWRRdWVzdGlvbnMocGFnZTogYW55KTogeyBpc1ZhbGlkOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmcgfSB7XHJcbiAgICBjb25zdCB2YWxpZGF0ZVF1ZXN0aW9ucyA9IChmb3JtRWxlbWVudHM6IGFueVtdKTogeyBpc1ZhbGlkOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmcgfSA9PiB7XHJcbiAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZm9ybUVsZW1lbnRzKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xyXG4gICAgICAgICAgY29uc3QgcmVxdWlyZWQgPSBlbGVtZW50LmVsZW1lbnQucmVxdWlyZWQ7XHJcbiAgICAgICAgICBjb25zdCBhbnN3ZXIgPSBlbGVtZW50LmVsZW1lbnQuYW5zd2VyO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJykge1xyXG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgICBpZiAoIWFuc3dlciB8fCBhbnN3ZXIubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYFJlcXVpcmVkIGZpbGUgcXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGlzIG5vdCBhbnN3ZXJlZC5gLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChyZXF1aXJlZCkge1xyXG4gICAgICAgICAgICAgIGlmICghYW5zd2VyIHx8IE9iamVjdC5rZXlzKGFuc3dlcikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYFJlcXVpcmVkIHF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyBub3QgYW5zd2VyZWQuYCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGxvZ2ljIG9mIGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xyXG4gICAgICAgICAgICAgIGlmIChsb2dpYy5zaG93TG9naWMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGxvZ2ljLmZvcm1FbGVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBtZXNzYWdlOiAnQWxsIHJlcXVpcmVkIHF1ZXN0aW9ucyBhcmUgYW5zd2VyZWQuJyB9O1xyXG4gICAgfTtcclxuXHJcbiAgICBmb3IgKGxldCByb3cgb2YgcGFnZS5yb3dzKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKHJvdy5ncmlkKTtcclxuICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIG1lc3NhZ2U6ICdBbGwgcmVxdWlyZWQgcXVlc3Rpb25zIGFyZSBhbnN3ZXJlZC4nIH07XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudXBkYXRlU3ViRm9ybSh0aGlzLnBhZ2VzLCBldmVudCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdWJGb3JtID0gKHBhZ2VzOiBhbnlbXSwgdXBkYXRlZFN1YkZvcm06IGFueSkgPT4ge1xyXG4gICAgcGFnZXMuZm9yRWFjaChwYWdlID0+IHtcclxuICAgICAgcGFnZS5yb3dzLmZvckVhY2goKHJvdzphbnkpID0+IHtcclxuICAgICAgICByb3cuZ3JpZC5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1NVQkZPUk0nICYmIGVsZW1lbnQuZWxlbWVudC5pZCA9PT0gdXBkYXRlZFN1YkZvcm0uZm9ybUlkKSB7XHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgZXhpc3Rpbmcgc3ViZm9ybSB3aXRoIHRoZSBuZXcgZGF0YVxyXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQgPSB1cGRhdGVkU3ViRm9ybTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScgJiYgZWxlbWVudC5lbGVtZW50LmlkICE9PSB1cGRhdGVkU3ViRm9ybS5mb3JtSWQpIHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIG11bHRpcGxlIHN1YmZvcm1zIGxvZ2ljIGhlcmUgaWYgbmVlZGVkXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJyAmJiBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcclxuICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgdXBkYXRlIGNoaWxkIGxvZ2ljc1xyXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MuZm9yRWFjaCgobG9naWM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdWJGb3JtKGxvZ2ljLmZvcm1FbGVtZW50cywgdXBkYXRlZFN1YkZvcm0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcblxyXG59IiwiPGRpdiBjbGFzcz1cIm91dGVyLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkIGNvbnRhaW5lclwiPlxyXG4gICAgPGxpYi1oZWFkZXIgW25hbWVdPVwibmFtZVwiPjwvbGliLWhlYWRlcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYm9keSBjb250YWluZXJcIj5cclxuICAgIDxsaWItbmF2aWdhdGlvbi10YWJzXHJcbiAgICAgICpuZ0lmPVwibmF2aWdhdGlvbiA9PSAnVEFCJ1wiXHJcbiAgICAgIFtwYWdlc109XCJwYWdlc1wiXHJcbiAgICAgIFtjdXJyZW50UGFnZUluZGV4XT1cImN1cnJlbnRQYWdlSW5kZXhcIlxyXG4gICAgICAocGFnZUNoYW5nZWQpPVwic2V0Q3VycmVudFBhZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChzdWJtaXRFbWl0KT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgIFtlZGl0XT1cImVkaXRcIlxyXG4gICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxyXG4gICAgPjwvbGliLW5hdmlnYXRpb24tdGFicz5cclxuICAgIDxsaWItbmV4dC1wcmV2LW5hdmlnYXRpb25cclxuICAgICAgKm5nSWY9XCJuYXZpZ2F0aW9uID09ICdORVhUX0FORF9QUkVWSU9VU19CVVRUT04nXCJcclxuICAgICAgW2N1cnJlbnRQYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VJbmRleFwiXHJcbiAgICAgIFtwYWdlc109XCJwYWdlc1wiXHJcbiAgICAgIFtwcmV2aW91c1BhZ2VdPVwicHJldmlvdXNQYWdlXCJcclxuICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgW25leHRQYWdlXT1cIm5leHRQYWdlXCJcclxuICAgICAgKG5hdmlnYXRlTmV4dCk9XCJuYXZpZ2F0ZVRvTmV4dFBhZ2UoKVwiXHJcbiAgICAgIChuYXZpZ2F0ZVByZXZpb3VzKT1cIm5hdmlnYXRlVG9QcmV2aW91c1BhZ2UoKVwiXHJcbiAgICAgIChzdWJtaXRFbWl0KT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgIFtlZGl0XT1cImVkaXRcIlxyXG4gICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxyXG4gICAgPjwvbGliLW5leHQtcHJldi1uYXZpZ2F0aW9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssTUFBTSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFpQ3hELE1BQU0sT0FBTyxtQkFBbUI7SUFnQzlCLFlBQ1UsV0FBd0IsRUFDeEIsTUFBcUIsRUFDckIsTUFBYztRQUZkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWxDeEIsYUFBUSxHQUFzQixJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGdCQUFX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QUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDbkIsT0FBTyxNQUFNLENBQUM7YUFDZjtTQUNGO1FBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLENBQUM7SUFDNUUsQ0FBQzsrR0FqYVUsbUJBQW1CO21HQUFuQixtQkFBbUIsd0tDbkNoQyxnNkNBc0NBOzs0RkRIYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO21KQU1sQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIG1hcHBlciBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXBwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQdWJsaWNGb3JtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3B1YmxpY0Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW50ZXJmYWNlIEFuc3dlciB7XG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcbiAgYW5zd2VyOiBhbnk7XG4gIGFuc3dlcklkPzogc3RyaW5nO1xuICBkZWxldGVGaWxlcz86IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgU3VibWlzc2lvbiB7XG4gIHN1Ym1pc3Npb25JZDogc3RyaW5nO1xuICBhbnN3ZXJzOiBBbnN3ZXJbXTtcbn1cblxuaW50ZXJmYWNlIEZvcm0ge1xuICBmb3JtSWQ6IHN0cmluZztcbiAgZGVsZXRlZFN1Ym1pc3Npb25zOiBhbnlbXTtcbiAgc3VibWlzc2lvbnM6IFN1Ym1pc3Npb25bXTtcbn1cblxuaW50ZXJmYWNlIFF1ZXN0aW9uQW5zd2Vyc1dyYXBwZXIge1xuICBhbnN3ZXJzOiBBbnN3ZXJbXTtcbiAgZm9ybXM6IEZvcm1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN1Ym1pdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Ym1pdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VibWl0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VibWl0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHF1ZXN0aW9uOiBQdWJsaWNGb3JtIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG1vZHVsZU5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb25JZDogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKSBzdWJtaXQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgbmFtZTogc3RyaW5nID0gJyc7XG4gIHNhdmVBdXRvbWF0aWNhbGx5OiBib29sZWFuID0gZmFsc2U7XG4gIHNhdmVJbnRlcnZhbDogbnVtYmVyID0gMDtcbiAgY3VzdG9taXplRm9udDogYm9vbGVhbiA9IGZhbHNlO1xuICBmb250RmFtaWx5OiBzdHJpbmcgPSAnJztcbiAgZm9udFNpemU6IG51bWJlciA9IDA7XG4gIGVuYWJsZURhdGFFeHBvcnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsZUZvcm1hdHM6IHN0cmluZ1tdID0gW107XG4gIGVuYWJsZVF1ZXN0aW9uTnVtYmVyaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHF1ZXN0aW9uTnVtYmVyaW5nOiBzdHJpbmcgPSAnJztcbiAgZW5hYmxlR29vZ2xlUmVjYXB0Y2hhOiBib29sZWFuID0gZmFsc2U7XG4gIGdvb2dsZVJlY2FwdGNoYUtleTogc3RyaW5nID0gJyc7XG4gIGdvb2dsZVJlY2FwdGNoYVNlY3JldDogc3RyaW5nID0gJyc7XG4gIG5hdmlnYXRpb246IHN0cmluZyA9ICcnO1xuICBtYXJrQWxsUXVlc3Rpb25zQXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwYWdlczogYW55ID0gW107XG4gIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciA9IDA7XG4gIHByZXZpb3VzUGFnZTogYW55ID0ge307XG4gIGN1cnJlbnRQYWdlOiBhbnkgPSB7fTtcbiAgbmV4dFBhZ2U6IGFueSA9IHt9O1xuICBsYXN0VGFiOiBib29sZWFuID0gZmFsc2U7XG4gIHF1ZXN0aW9uQW5zd2VyczogUXVlc3Rpb25BbnN3ZXJzV3JhcHBlciA9IHsgYW5zd2VyczogW10sIGZvcm1zOiBbXSB9O1xuICBmaWxlczogeyBxdWVzdGlvbklkOiBzdHJpbmc7IGZpbGU6IGFueSB9W10gPSBbXTtcbiAgc3VibWlzc2lvbjphbnk9e307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcbiAgICB0aGlzLnN1Ym1pc3Npb249IG5hdmlnYXRpb24/LmV4dHJhcy5zdGF0ZT8uWydzdWJtaXNzaW9uJ10gXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5lZGl0ICYmIHRoaXMuc3VibWlzc2lvbklkKSB7XG4gICAgICB0aGlzLmdldFN1Ym1pdHRlZEZvcm1EYXRhKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0Rm9ybURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBvYmplY3RLZXlzKG9iajogYW55KTogc3RyaW5nW10ge1xuICAgIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XG4gIH1cblxuICBpc0ltYWdlVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHVybC5tYXRjaCgvXFwuKGpwZWd8anBnfGdpZnxwbmcpJC8pICE9IG51bGw7XG4gIH1cblxuICBnZXRGb3JtRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmdldFF1ZXN0aW9ucyh0aGlzLm1vZHVsZU5hbWUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMucXVlc3Rpb24gPSBtYXBwZXIubWFwUHVibGljRm9ybVRvTW9kZWwocmVzcG9uc2UpO1xuICAgICAgdGhpcy5hc3NpZ25RdWVzdGlvblByb3BlcnRpZXModGhpcy5xdWVzdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTdWJtaXR0ZWRGb3JtRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmdldFN1Ym1pdHRlZEZvcm0odGhpcy5tb2R1bGVOYW1lLCB0aGlzLnN1Ym1pc3Npb25JZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5xdWVzdGlvbiA9IG1hcHBlci5tYXBQdWJsaWNGb3JtVG9Nb2RlbChyZXNwb25zZSk7XG4gICAgICB0aGlzLmFzc2lnblF1ZXN0aW9uUHJvcGVydGllcyh0aGlzLnF1ZXN0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzc2lnblF1ZXN0aW9uUHJvcGVydGllcyhxdWVzdGlvbjogUHVibGljRm9ybSkge1xuICAgIHRoaXMubmFtZSA9IHF1ZXN0aW9uLm5hbWU7XG4gICAgdGhpcy5wYWdlcyA9IHF1ZXN0aW9uLnBhZ2VzO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzWzBdO1xuICAgIHRoaXMubmV4dFBhZ2UgPSB0aGlzLnBhZ2VzWzFdO1xuICAgIHRoaXMuc2F2ZUF1dG9tYXRpY2FsbHkgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5zYXZlQXV0b21hdGljYWxseTtcbiAgICB0aGlzLnNhdmVJbnRlcnZhbCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLnNhdmVJbnRlcnZhbDtcbiAgICB0aGlzLmN1c3RvbWl6ZUZvbnQgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5jdXN0b21pemVGb250O1xuICAgIHRoaXMuZm9udEZhbWlseSA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmZvbnRGYW1pbHk7XG4gICAgdGhpcy5mb250U2l6ZSA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmZvbnRTaXplO1xuICAgIHRoaXMuZW5hYmxlRGF0YUV4cG9ydCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmVuYWJsZURhdGFFeHBvcnQ7XG4gICAgdGhpcy5maWxlRm9ybWF0cyA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmZpbGVGb3JtYXRzO1xuICAgIHRoaXMuZW5hYmxlUXVlc3Rpb25OdW1iZXJpbmcgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5lbmFibGVRdWVzdGlvbk51bWJlcmluZztcbiAgICB0aGlzLnF1ZXN0aW9uTnVtYmVyaW5nID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ucXVlc3Rpb25OdW1iZXJpbmc7XG4gICAgdGhpcy5lbmFibGVHb29nbGVSZWNhcHRjaGEgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5lbmFibGVHb29nbGVSZWNhcHRjaGE7XG4gICAgdGhpcy5nb29nbGVSZWNhcHRjaGFLZXkgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5nb29nbGVSZWNhcHRjaGFLZXk7XG4gICAgdGhpcy5nb29nbGVSZWNhcHRjaGFTZWNyZXQgPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5nb29nbGVSZWNhcHRjaGFTZWNyZXQ7XG4gICAgdGhpcy5uYXZpZ2F0aW9uID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ubmF2aWdhdGlvbjtcbiAgICB0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQ7XG4gIH1cblxuICBuYXZpZ2F0ZVRvTmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VJbmRleCA8IHRoaXMucGFnZXMubGVuZ3RoIC0gMSkge1xuICAgICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPSB0aGlzLnZhbGlkYXRlUmVxdWlyZWRRdWVzdGlvbnMoY3VycmVudFBhZ2VEYXRhKTtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25SZXNwb25zZS5pc1ZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleCsrO1xuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XG4gICAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4ICsgMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b2FzdHIud2FybmluZyh2YWxpZGF0aW9uUmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4Kys7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XG4gICAgICAgIHRoaXMubmV4dFBhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleCArIDFdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlVG9QcmV2aW91c1BhZ2UoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VJbmRleCA+IDApIHtcbiAgICAgIGlmICh0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlRGF0YSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3BvbnNlID0gdGhpcy52YWxpZGF0ZVJlcXVpcmVkUXVlc3Rpb25zKGN1cnJlbnRQYWdlRGF0YSk7XG4gICAgICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xuICAgICAgICAgIHRoaXMubmV4dFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleC0tO1xuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XG4gICAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleCAtIDFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcodmFsaWRhdGlvblJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4LS07XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggLSAxXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRDdXJyZW50UGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYWdlRGF0YSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXNwb25zZSA9IHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXNwb25zZS5pc1ZhbGlkKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleCA9IGluZGV4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2FzdHIud2FybmluZyh2YWxpZGF0aW9uUmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlUXVlc3Rpb25BbnN3ZXJzKCkge1xuICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgXG4gICAgY29uc3QgZXh0cmFjdFF1ZXN0aW9ucyA9IChcbiAgICAgIGZvcm1FbGVtZW50czogYW55W10sIFxuICAgICAgcGFyZW50Rm9ybUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgXG4gICAgICBpc0luU3ViRm9ybTogYm9vbGVhbiA9IGZhbHNlLCBcbiAgICAgIHN1YkZvcm1JbmRleDogbnVtYmVyID0gMFxuICAgICk6IHsgYW5zd2VyczogQW5zd2VyW10sIGZvcm1zOiBGb3JtW10gfSA9PiB7XG4gICAgICBjb25zdCBxdWVzdGlvbnM6IEFuc3dlcltdID0gW107XG4gICAgICBjb25zdCBmb3JtczogRm9ybVtdID0gW107XG4gIFxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGxldCBiYXNlUXVlc3Rpb246IGFueTtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInKSB7XG4gICAgICAgICAgICBiYXNlUXVlc3Rpb24gPSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgYW5zd2VyOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnQuZWxlbWVudC5hbnN3ZXIpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uSWQgPSBpc0luU3ViRm9ybSBcbiAgICAgICAgICAgICAgICA/IGAke3BhcmVudEZvcm1JZH1fJHtzdWJGb3JtSW5kZXh9XyR7ZWxlbWVudC5lbGVtZW50LmlkfWBcbiAgICAgICAgICAgICAgICA6IGVsZW1lbnQuZWxlbWVudC5pZDtcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgICAgICAgICAgIGZpbGU6IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlUXVlc3Rpb24gPSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGVtZW50LmVsZW1lbnQuYW5zd2VyXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5lZGl0KSB7XG4gICAgICAgICAgICBxdWVzdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgIC4uLmJhc2VRdWVzdGlvbixcbiAgICAgICAgICAgICAgYW5zd2VySWQ6IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCB8fCAnJyxcbiAgICAgICAgICAgICAgZGVsZXRlRmlsZXM6IGVsZW1lbnQuZWxlbWVudC5kZWxldGVGaWxlcyB8fCBbXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXN0aW9ucy5wdXNoKGJhc2VRdWVzdGlvbik7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBsb2dpYyBvZiBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4dHJhY3RRdWVzdGlvbnMobG9naWMuZm9ybUVsZW1lbnRzLCBwYXJlbnRGb3JtSWQsIGlzSW5TdWJGb3JtLCBzdWJGb3JtSW5kZXgpO1xuICAgICAgICAgICAgICAgIHF1ZXN0aW9ucy5wdXNoKC4uLnJlc3VsdC5hbnN3ZXJzKTtcbiAgICAgICAgICAgICAgICBmb3Jtcy5wdXNoKC4uLnJlc3VsdC5mb3Jtcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScpIHtcbiAgICAgICAgICBjb25zdCBzdWJmb3JtSWQgPSBlbGVtZW50LmVsZW1lbnQuaWQ7XG4gICAgICAgICAgY29uc3Qgc3ViZm9ybVF1ZXN0aW9ucyA9IGV4dHJhY3RRdWVzdGlvbnMoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50cywgc3ViZm9ybUlkLCB0cnVlLCBmb3Jtcy5sZW5ndGgpO1xuICBcbiAgICAgICAgICBjb25zdCBzdWJmb3JtOiBGb3JtID0ge1xuICAgICAgICAgICAgZm9ybUlkOiBzdWJmb3JtSWQsXG4gICAgICAgICAgICBkZWxldGVkU3VibWlzc2lvbnM6IFtdLFxuICAgICAgICAgICAgc3VibWlzc2lvbnM6IFt7XG4gICAgICAgICAgICAgIHN1Ym1pc3Npb25JZDogJycsXG4gICAgICAgICAgICAgIGFuc3dlcnM6IHN1YmZvcm1RdWVzdGlvbnMuYW5zd2Vyc1xuICAgICAgICAgICAgfV1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZvcm1zLnB1c2goc3ViZm9ybSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICBcbiAgICAgIHJldHVybiB7IGFuc3dlcnM6IHF1ZXN0aW9ucywgZm9ybXM6IGZvcm1zIH07XG4gICAgfTtcbiAgXG4gICAgY29uc3QgcHJvY2Vzc1BhZ2VzID0gKHBhZ2VzOiBhbnlbXSk6IHsgYW5zd2VyczogQW5zd2VyW10sIGZvcm1zOiBGb3JtW10gfSA9PiB7XG4gICAgICBjb25zdCBxdWVzdGlvbnM6IEFuc3dlcltdID0gW107XG4gICAgICBjb25zdCBmb3JtczogRm9ybVtdID0gW107XG4gIFxuICAgICAgcGFnZXMuZm9yRWFjaCgocGFnZSkgPT4ge1xuICAgICAgICBwYWdlLnJvd3MuZm9yRWFjaCgocm93OiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBleHRyYWN0UXVlc3Rpb25zKHJvdy5ncmlkKTtcbiAgICAgICAgICBxdWVzdGlvbnMucHVzaCguLi5yZXN1bHQuYW5zd2Vycyk7XG4gICAgICAgICAgZm9ybXMucHVzaCguLi5yZXN1bHQuZm9ybXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICBcbiAgICAgIHJldHVybiB7IGFuc3dlcnM6IHF1ZXN0aW9ucywgZm9ybXM6IGZvcm1zIH07XG4gICAgfTtcbiAgXG4gICAgY29uc3QgcmVzdWx0ID0gcHJvY2Vzc1BhZ2VzKHRoaXMucGFnZXMpO1xuICBcbiAgICB0aGlzLnF1ZXN0aW9uQW5zd2VycyA9IHtcbiAgICAgIGFuc3dlcnM6IHJlc3VsdC5hbnN3ZXJzLFxuICAgICAgZm9ybXM6IHJlc3VsdC5mb3Jtc1xuICAgIH07XG4gIH1cbiAgXG4gIFxuICBzdWJtaXRGb3JtKCkge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzcG9uc2UgPSB0aGlzLnZhbGlkYXRlRm9ybSh0aGlzLnBhZ2VzKTtcbiAgICB0aGlzLmdlbmVyYXRlUXVlc3Rpb25BbnN3ZXJzKCk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXNwb25zZS5pc1ZhbGlkKSB7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdqc29uJywgSlNPTi5zdHJpbmdpZnkodGhpcy5xdWVzdGlvbkFuc3dlcnMpKTtcbiAgICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlSXRlbSkgPT4ge1xuICAgICAgICAgIGZpbGVJdGVtLmZpbGUuZm9yRWFjaCgoZmlsZTogYW55KSA9PiB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZmlsZUl0ZW0ucXVlc3Rpb25JZCwgZmlsZS5fZmlsZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZWRpdCAmJiB0aGlzLnN1Ym1pc3Npb25JZCkge1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZvcm0odGhpcy5tb2R1bGVOYW1lLCB0aGlzLnN1Ym1pc3Npb25JZCwgZm9ybURhdGEpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0Zvcm0gdXBkYXRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0LmVtaXQoJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB0byB1cGRhdGUgZm9ybScpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uuc3VibWl0Rm9ybSh0aGlzLm1vZHVsZU5hbWUsIGZvcm1EYXRhKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdGb3JtIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0LmVtaXQoJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB0byBzdWJtaXQgZm9ybScpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2FzdHIuZXJyb3IodmFsaWRhdGlvblJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlRm9ybShqc29uRGF0YTogYW55KTogeyBpc1ZhbGlkOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmc7IHBhZ2VJbmRleDogbnVtYmVyIHwgMCB9IHtcbiAgICBjb25zdCB2YWxpZGF0ZVF1ZXN0aW9ucyA9IChmb3JtRWxlbWVudHM6IGFueVtdKTogeyBpc1ZhbGlkOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmc7IHBhZ2VJbmRleDogbnVtYmVyIHwgMCB9ID0+IHtcbiAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgZm9ybUVsZW1lbnRzKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdRVUVTVElPTicpIHtcbiAgICAgICAgICBjb25zdCByZXF1aXJlZCA9IGVsZW1lbnQuZWxlbWVudC5yZXF1aXJlZDtcbiAgICAgICAgICBjb25zdCBhbnN3ZXIgPSBlbGVtZW50LmVsZW1lbnQuYW5zd2VyO1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSBlbGVtZW50LmVsZW1lbnQudmFsaWRhdGlvbjtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRhY2htZW50ID0gZWxlbWVudC5lbGVtZW50LmF0dGFjaG1lbnRzO1xuICAgICAgICAgICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIGlmICgoIWFuc3dlciB8fCBhbnN3ZXIubGVuZ3RoID09PSAwKSAmJiBhdHRhY2htZW50Lmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFJlcXVpcmVkIGZpbGUgcXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGhhcyBubyBmaWxlcyB1cGxvYWRlZC5gLFxuICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIGlmICghYW5zd2VyIHx8IE9iamVjdC5rZXlzKGFuc3dlcikubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyByZXF1aXJlZCBidXQgbm8gYW5zd2VyIHByb3ZpZGVkLmAsXG4gICAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghdmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBGb3JtIGlzIGludmFsaWQgLSBRdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaXMgcmVxdWlyZWQgYnV0IHZhbGlkYXRpb24gaXMgZmFsc2UuYCxcbiAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFyZXF1aXJlZCAmJiBhbnN3ZXIgJiYgT2JqZWN0LmtleXMoYW5zd2VyKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBGb3JtIGlzIGludmFsaWQgLSBRdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaXMgbm90IHJlcXVpcmVkIGJ1dCBhbnN3ZXIgcHJvdmlkZWQgd2l0aCB2YWxpZGF0aW9uIGZhbHNlLmAsXG4gICAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBsb2dpYyBvZiBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGxvZ2ljLmZvcm1FbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJykge1xuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzKTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBtZXNzYWdlOiAnJywgcGFnZUluZGV4OiAwIH07XG4gICAgfTtcblxuICAgIGZvciAobGV0IHBhZ2VJbmRleCA9IDA7IHBhZ2VJbmRleCA8IGpzb25EYXRhLmxlbmd0aDsgcGFnZUluZGV4KyspIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBqc29uRGF0YVtwYWdlSW5kZXhdO1xuICAgICAgZm9yIChsZXQgcm93IG9mIHBhZ2Uucm93cykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhyb3cuZ3JpZCk7XG4gICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBgUGFnZSAke3BhZ2VJbmRleCArIDF9OiAke3Jlc3VsdC5tZXNzYWdlfWAsXG4gICAgICAgICAgICBwYWdlSW5kZXg6IHBhZ2VJbmRleCxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiB0cnVlLFxuICAgICAgbWVzc2FnZTogJ0Zvcm0gaXMgdmFsaWQuJyxcbiAgICAgIHBhZ2VJbmRleDogMCxcbiAgICB9O1xuICB9XG5cbiAgdmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhwYWdlOiBhbnkpOiB7IGlzVmFsaWQ6IGJvb2xlYW47IG1lc3NhZ2U6IHN0cmluZyB9IHtcbiAgICBjb25zdCB2YWxpZGF0ZVF1ZXN0aW9ucyA9IChmb3JtRWxlbWVudHM6IGFueVtdKTogeyBpc1ZhbGlkOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmcgfSA9PiB7XG4gICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGZvcm1FbGVtZW50cykge1xuICAgICAgICBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nKSB7XG4gICAgICAgICAgY29uc3QgcmVxdWlyZWQgPSBlbGVtZW50LmVsZW1lbnQucmVxdWlyZWQ7XG4gICAgICAgICAgY29uc3QgYW5zd2VyID0gZWxlbWVudC5lbGVtZW50LmFuc3dlcjtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInKSB7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIgfHwgYW5zd2VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBSZXF1aXJlZCBmaWxlIHF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyBub3QgYW5zd2VyZWQuYCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICBpZiAoIWFuc3dlciB8fCBPYmplY3Qua2V5cyhhbnN3ZXIpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBSZXF1aXJlZCBxdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaXMgbm90IGFuc3dlcmVkLmAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBsb2dpYyBvZiBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGxvZ2ljLmZvcm1FbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJykge1xuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnRzKTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBtZXNzYWdlOiAnQWxsIHJlcXVpcmVkIHF1ZXN0aW9ucyBhcmUgYW5zd2VyZWQuJyB9O1xuICAgIH07XG5cbiAgICBmb3IgKGxldCByb3cgb2YgcGFnZS5yb3dzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhyb3cuZ3JpZCk7XG4gICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIG1lc3NhZ2U6ICdBbGwgcmVxdWlyZWQgcXVlc3Rpb25zIGFyZSBhbnN3ZXJlZC4nIH07XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJzdWJtaXNzaW9uLWNvbnRhaW5lciBjb250YWluZXIgbWItMlwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtleSBvZiBvYmplY3RLZXlzKHN1Ym1pc3Npb24/LmFuc3dlck1hcClcIiBjbGFzcz1cInN1Ym1pc3Npb24taXRlbVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImtleVwiPnt7IGtleSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ltYWdlVXJsKHN1Ym1pc3Npb24/LmFuc3dlck1hcFtrZXldKTsgZWxzZSB0ZXh0XCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cInN1Ym1pc3Npb24/LmFuc3dlck1hcFtrZXldXCIgYWx0PVwie3sga2V5IH19XCIgY2xhc3M9XCJpbWFnZVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0Pnt7IHN1Ym1pc3Npb24uYW5zd2VyTWFwW2tleV0gfX08L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZCBjb250YWluZXJcIj5cbiAgICA8bGliLWhlYWRlciBbbmFtZV09XCJuYW1lXCI+PC9saWItaGVhZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvZHkgY29udGFpbmVyXCI+XG4gICAgPGxpYi1uYXZpZ2F0aW9uLXRhYnNcbiAgICAgICpuZ0lmPVwibmF2aWdhdGlvbiA9PSAnVEFCJ1wiXG4gICAgICBbcGFnZXNdPVwicGFnZXNcIlxuICAgICAgW2N1cnJlbnRQYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VJbmRleFwiXG4gICAgICAocGFnZUNoYW5nZWQpPVwic2V0Q3VycmVudFBhZ2UoJGV2ZW50KVwiXG4gICAgICAoc3VibWl0RW1pdCk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgW2VkaXRdPVwiZWRpdFwiXG4gICAgPjwvbGliLW5hdmlnYXRpb24tdGFicz5cbiAgICA8bGliLW5leHQtcHJldi1uYXZpZ2F0aW9uXG4gICAgICAqbmdJZj1cIm5hdmlnYXRpb24gPT0gJ05FWFRfQU5EX1BSRVZJT1VTX0JVVFRPTidcIlxuICAgICAgW2N1cnJlbnRQYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VJbmRleFwiXG4gICAgICBbcGFnZXNdPVwicGFnZXNcIlxuICAgICAgW3ByZXZpb3VzUGFnZV09XCJwcmV2aW91c1BhZ2VcIlxuICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgIFtuZXh0UGFnZV09XCJuZXh0UGFnZVwiXG4gICAgICAobmF2aWdhdGVOZXh0KT1cIm5hdmlnYXRlVG9OZXh0UGFnZSgpXCJcbiAgICAgIChuYXZpZ2F0ZVByZXZpb3VzKT1cIm5hdmlnYXRlVG9QcmV2aW91c1BhZ2UoKVwiXG4gICAgICAoc3VibWl0RW1pdCk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgW2VkaXRdPVwiZWRpdFwiXG4gICAgPjwvbGliLW5leHQtcHJldi1uYXZpZ2F0aW9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -18,11 +18,11 @@ export class FormSubmissionComponent {
18
18
  this.submitForm.emit(event);
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormSubmissionComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormSubmissionComponent, selector: "lib-formSubmission", inputs: { formData: "formData", edit: "edit", submissionId: "submissionId" }, outputs: { submitForm: "submitForm" }, ngImport: i0, template: "<lib-submit-form\r\n [moduleName]=\"formData.moduleName\"\r\n [submissionId]=\"submissionId\"\r\n [edit]=\"edit\"\r\n (submit)=\"submit($event)\"\r\n></lib-submit-form>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.SubmitFormComponent, selector: "lib-submit-form", inputs: ["moduleName", "edit", "submissionId"], outputs: ["submit"] }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormSubmissionComponent, selector: "lib-formSubmission", inputs: { formData: "formData", edit: "edit", submissionId: "submissionId" }, outputs: { submitForm: "submitForm" }, ngImport: i0, template: "<lib-submit-form\n [moduleName]=\"formData.moduleName\"\n [submissionId]=\"submissionId\"\n [edit]=\"edit\"\n (submit)=\"submit($event)\"\n></lib-submit-form>\n", styles: [""], dependencies: [{ kind: "component", type: i2.SubmitFormComponent, selector: "lib-submit-form", inputs: ["moduleName", "edit", "submissionId"], outputs: ["submit"] }] }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormSubmissionComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'lib-formSubmission', template: "<lib-submit-form\r\n [moduleName]=\"formData.moduleName\"\r\n [submissionId]=\"submissionId\"\r\n [edit]=\"edit\"\r\n (submit)=\"submit($event)\"\r\n></lib-submit-form>\r\n" }]
25
+ args: [{ selector: 'lib-formSubmission', template: "<lib-submit-form\n [moduleName]=\"formData.moduleName\"\n [submissionId]=\"submissionId\"\n [edit]=\"edit\"\n (submit)=\"submit($event)\"\n></lib-submit-form>\n" }]
26
26
  }], ctorParameters: function () { return [{ type: i1.DataService }]; }, propDecorators: { formData: [{
27
27
  type: Input
28
28
  }], edit: [{
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
32
32
  }], submitForm: [{
33
33
  type: Output
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvbGliL2Zvcm0tc3VibWlzc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2xpYi9mb3JtLXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTG5DLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFeEIsQ0FBQztJQUNqRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBZFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0tDUnBDLGtMQU1BOzs0RkRFYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usb0JBQW9CO2tHQUtyQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtU3VibWlzc2lvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tc3VibWlzc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1zdWJtaXNzaW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU3VibWlzc2lvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybURhdGE6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWJtaXNzaW9uSWQ6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBzdWJtaXRGb3JtOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkgeyB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnNldEFwaVVybCh0aGlzLmZvcm1EYXRhLmFwaXVybCk7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnNldEhlYWRlcih0aGlzLmZvcm1EYXRhLmhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc3VibWl0Rm9ybS5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGxpYi1zdWJtaXQtZm9ybVxyXG4gIFttb2R1bGVOYW1lXT1cImZvcm1EYXRhLm1vZHVsZU5hbWVcIlxyXG4gIFtzdWJtaXNzaW9uSWRdPVwic3VibWlzc2lvbklkXCJcclxuICBbZWRpdF09XCJlZGl0XCJcclxuICAoc3VibWl0KT1cInN1Ym1pdCgkZXZlbnQpXCJcclxuPjwvbGliLXN1Ym1pdC1mb3JtPlxyXG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvbGliL2Zvcm0tc3VibWlzc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2xpYi9mb3JtLXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTG5DLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFeEIsQ0FBQztJQUNqRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBZFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0tDUnBDLHNLQU1BOzs0RkRFYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usb0JBQW9CO2tHQUtyQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZm9ybVN1Ym1pc3Npb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1zdWJtaXNzaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1zdWJtaXNzaW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1TdWJtaXNzaW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybURhdGE6IGFueSA9IHt9O1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb25JZDogc3RyaW5nID0gJyc7XG4gIEBPdXRwdXQoKSBzdWJtaXRGb3JtOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7IH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5zZXRBcGlVcmwodGhpcy5mb3JtRGF0YS5hcGl1cmwpO1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0SGVhZGVyKHRoaXMuZm9ybURhdGEuaGVhZGVycyk7XG4gIH1cblxuICBzdWJtaXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc3VibWl0Rm9ybS5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiPGxpYi1zdWJtaXQtZm9ybVxuICBbbW9kdWxlTmFtZV09XCJmb3JtRGF0YS5tb2R1bGVOYW1lXCJcbiAgW3N1Ym1pc3Npb25JZF09XCJzdWJtaXNzaW9uSWRcIlxuICBbZWRpdF09XCJlZGl0XCJcbiAgKHN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiXG4+PC9saWItc3VibWl0LWZvcm0+XG4iXX0=