@hmcts/ccd-case-ui-toolkit 7.1.51-read-only-query-collection → 7.1.52

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 (111) hide show
  1. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +154 -33
  2. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +103 -43
  3. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +7 -4
  4. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +7 -1
  5. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +14 -4
  6. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +15 -5
  7. package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +2 -2
  8. package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +2 -2
  9. package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +2 -2
  10. package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +2 -2
  11. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +95 -0
  12. package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +81 -0
  13. package/esm2022/lib/shared/components/palette/base-field/index.mjs +3 -1
  14. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +30 -21
  15. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
  16. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +25 -22
  17. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +154 -36
  18. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +33 -29
  19. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +33 -28
  20. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +177 -71
  21. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +32 -28
  22. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +123 -105
  23. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +31 -4
  24. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +147 -33
  25. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +44 -23
  26. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +29 -7
  27. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +84 -50
  28. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +13 -9
  29. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +84 -44
  30. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +25 -2
  31. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +110 -30
  32. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
  33. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +21 -8
  34. package/esm2022/lib/shared/domain/index.mjs +2 -1
  35. package/esm2022/lib/shared/domain/journey/index.mjs +3 -0
  36. package/esm2022/lib/shared/domain/journey/journey-instigator.model.mjs +2 -0
  37. package/esm2022/lib/shared/domain/journey/journey.model.mjs +2 -0
  38. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
  39. package/esm2022/lib/shared/services/index.mjs +2 -1
  40. package/esm2022/lib/shared/services/journey/index.mjs +2 -0
  41. package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +117 -0
  42. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1881 -792
  43. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  44. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +19 -3
  45. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  46. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +11 -2
  47. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  48. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  49. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +3 -0
  50. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -1
  51. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +2 -1
  52. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  53. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +5 -1
  54. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  55. package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts +30 -0
  56. package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts.map +1 -0
  57. package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts +27 -0
  58. package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts.map +1 -0
  59. package/lib/shared/components/palette/base-field/index.d.ts +2 -0
  60. package/lib/shared/components/palette/base-field/index.d.ts.map +1 -1
  61. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +4 -2
  62. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  63. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +4 -2
  64. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -1
  65. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +16 -4
  66. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  67. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +6 -3
  68. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  69. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +5 -2
  70. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  71. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +21 -6
  72. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  73. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +5 -2
  74. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -1
  75. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +7 -3
  76. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  77. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +1 -0
  78. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  79. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +18 -6
  80. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  81. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +6 -4
  82. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
  83. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +8 -3
  84. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -1
  85. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +8 -3
  86. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
  87. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +5 -2
  88. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
  89. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +9 -3
  90. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
  91. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +8 -0
  92. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
  93. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +10 -3
  94. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
  95. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +3 -2
  96. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  97. package/lib/shared/domain/index.d.ts +1 -0
  98. package/lib/shared/domain/index.d.ts.map +1 -1
  99. package/lib/shared/domain/journey/index.d.ts +3 -0
  100. package/lib/shared/domain/journey/index.d.ts.map +1 -0
  101. package/lib/shared/domain/journey/journey-instigator.model.d.ts +5 -0
  102. package/lib/shared/domain/journey/journey-instigator.model.d.ts.map +1 -0
  103. package/lib/shared/domain/journey/journey.model.d.ts +19 -0
  104. package/lib/shared/domain/journey/journey.model.d.ts.map +1 -0
  105. package/lib/shared/services/index.d.ts +1 -0
  106. package/lib/shared/services/index.d.ts.map +1 -1
  107. package/lib/shared/services/journey/index.d.ts +2 -0
  108. package/lib/shared/services/journey/index.d.ts.map +1 -0
  109. package/lib/shared/services/journey/multipage-component-state.service.d.ts +26 -0
  110. package/lib/shared/services/journey/multipage-component-state.service.d.ts.map +1 -0
  111. package/package.json +1 -1
@@ -1,10 +1,13 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { LinkedCasesService } from '../../services/linked-cases.service';
4
+ import { AbstractJourneyComponent } from '../../../base-field';
5
+ import { MultipageComponentStateService } from '../../../../../services';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@angular/router";
6
8
  import * as i2 from "../../services/linked-cases.service";
7
- import * as i3 from "@angular/common";
9
+ import * as i3 from "../../../../../services";
10
+ import * as i4 from "@angular/common";
8
11
  function NoLinkedCasesComponent_h1_2_Template(rf, ctx) { if (rf & 1) {
9
12
  i0.ɵɵelementStart(0, "h1", 9);
10
13
  i0.ɵɵtext(1, "There is a problem");
@@ -26,11 +29,12 @@ function NoLinkedCasesComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
26
29
  i0.ɵɵtext(1, "There are no cases linked to this one.");
27
30
  i0.ɵɵelementEnd();
28
31
  } }
29
- export class NoLinkedCasesComponent {
32
+ export class NoLinkedCasesComponent extends AbstractJourneyComponent {
30
33
  router;
31
34
  linkedCasesService;
32
35
  serverLinkedApiError;
33
- constructor(router, linkedCasesService) {
36
+ constructor(router, linkedCasesService, multipageComponentStateService) {
37
+ super(multipageComponentStateService);
34
38
  this.router = router;
35
39
  this.linkedCasesService = linkedCasesService;
36
40
  }
@@ -40,8 +44,8 @@ export class NoLinkedCasesComponent {
40
44
  onBack() {
41
45
  this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId], { fragment: 'Linked cases' });
42
46
  }
43
- static ɵfac = function NoLinkedCasesComponent_Factory(t) { return new (t || NoLinkedCasesComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService)); };
44
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoLinkedCasesComponent, selectors: [["ccd-no-linked-cases"]], decls: 12, vars: 3, consts: [["noLinkedCases", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], ["class", "govuk-heading-xl", 4, "ngIf"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf", "ngIfElse"], [1, "govuk-body"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], [1, "govuk-button-group"], ["type", "button", "id", "back-button", 1, "button", "button-primary", 3, "click"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"]], template: function NoLinkedCasesComponent_Template(rf, ctx) { if (rf & 1) {
47
+ static ɵfac = function NoLinkedCasesComponent_Factory(t) { return new (t || NoLinkedCasesComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.MultipageComponentStateService)); };
48
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoLinkedCasesComponent, selectors: [["ccd-no-linked-cases"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 3, consts: [["noLinkedCases", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], ["class", "govuk-heading-xl", 4, "ngIf"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf", "ngIfElse"], [1, "govuk-body"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], [1, "govuk-button-group"], ["type", "button", "id", "back-button", 1, "button", "button-primary", 3, "click"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"]], template: function NoLinkedCasesComponent_Template(rf, ctx) { if (rf & 1) {
45
49
  const _r1 = i0.ɵɵgetCurrentView();
46
50
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
47
51
  i0.ɵɵtemplate(2, NoLinkedCasesComponent_h1_2_Template, 2, 0, "h1", 3)(3, NoLinkedCasesComponent_p_3_Template, 4, 1, "p", 4)(4, NoLinkedCasesComponent_ng_template_4_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
@@ -59,11 +63,11 @@ export class NoLinkedCasesComponent {
59
63
  i0.ɵɵproperty("ngIf", ctx.serverLinkedApiError);
60
64
  i0.ɵɵadvance();
61
65
  i0.ɵɵproperty("ngIf", ctx.serverLinkedApiError)("ngIfElse", noLinkedCases_r3);
62
- } }, dependencies: [i3.NgIf], encapsulation: 2 });
66
+ } }, dependencies: [i4.NgIf], encapsulation: 2 });
63
67
  }
64
68
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoLinkedCasesComponent, [{
65
69
  type: Component,
66
70
  args: [{ selector: 'ccd-no-linked-cases', template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <h1 class=\"govuk-heading-xl\" *ngIf=\"serverLinkedApiError\">There is a problem</h1>\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\"\n *ngIf=\"serverLinkedApiError;else noLinkedCases;\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n </p>\n <ng-template #noLinkedCases>\n <p class=\"govuk-body\">There are no cases linked to this one.</p>\n </ng-template>\n <p class=\"govuk-body\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\" (click)=\"onBack()\">Go back to the Linked cases tab</a>\n </p>\n <div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" id=\"back-button\" (click)=\"onBack()\">Back</button>\n </div>\n </div>\n</div>\n" }]
67
- }], () => [{ type: i1.Router }, { type: i2.LinkedCasesService }], null); })();
68
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoLinkedCasesComponent, { className: "NoLinkedCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.ts", lineNumber: 9 }); })();
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL25vLWxpbmtlZC1jYXNlcy9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbm8tbGlua2VkLWNhc2VzL25vLWxpbmtlZC1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0lDQXJFLDZCQUEwRDtJQUFBLGtDQUFrQjtJQUFBLGlCQUFLOzs7SUFHL0UsQUFGRiw2QkFDbUQsZUFDYjtJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQyxZQUNwRDtJQUFBLGlCQUFJOzs7SUFEZ0QsZUFDcEQ7SUFEb0Qsb0VBQ3BEOzs7SUFFRSw0QkFBc0I7SUFBQSxzREFBc0M7SUFBQSxpQkFBSTs7QURBdEUsTUFBTSxPQUFPLHNCQUFzQjtJQUlKO0lBQ1Y7SUFIWixvQkFBb0IsQ0FBa0M7SUFFN0QsWUFBNkIsTUFBYyxFQUN4QixrQkFBc0M7UUFENUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQ3pELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztJQUMzRSxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoSCxDQUFDO2dGQWRVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ1BqQyxBQURGLDhCQUE0QixhQUNVO1lBTWxDLEFBSkEsQUFEQSxxRUFBMEQsc0RBRVAsMkdBR3ZCO1lBSTFCLEFBREYsNEJBQXNCLFdBQytDO1lBQW5CLG9JQUFTLFlBQVEsS0FBQztZQUFDLCtDQUErQjtZQUNwRyxBQURvRyxpQkFBSSxFQUNwRztZQUVGLEFBREYsOEJBQWdDLGlCQUMwRDtZQUFuQiwwSUFBUyxZQUFRLEtBQUM7WUFBQyxxQkFBSTtZQUdsRyxBQURFLEFBREUsQUFEOEYsaUJBQVMsRUFDakcsRUFDRixFQUNGOzs7WUFmNEIsZUFBMEI7WUFBMUIsK0NBQTBCO1lBRXJELGNBQTJCO1lBQUEsQUFBM0IsK0NBQTJCLDhCQUFtQjs7O2lGREl4QyxzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUdwQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW5vLWxpbmtlZC1jYXNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5vTGlua2VkQ2FzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZlckxpbmtlZEFwaUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2Uuc2VydmVyTGlua2VkQXBpRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgb25CYWNrKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY2FzZXMnLCAnY2FzZS1kZXRhaWxzJywgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkXSwgeyBmcmFnbWVudDogJ0xpbmtlZCBjYXNlcycgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGxcIiAqbmdJZj1cInNlcnZlckxpbmtlZEFwaUVycm9yXCI+VGhlcmUgaXMgYSBwcm9ibGVtPC9oMT5cbiAgICA8cCBpZD1cInVubGluay1jYXNlcy1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAqbmdJZj1cInNlcnZlckxpbmtlZEFwaUVycm9yO2Vsc2Ugbm9MaW5rZWRDYXNlcztcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e3NlcnZlckxpbmtlZEFwaUVycm9yLm1lc3NhZ2V9fVxuICAgIDwvcD5cbiAgICA8bmctdGVtcGxhdGUgI25vTGlua2VkQ2FzZXM+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj5UaGVyZSBhcmUgbm8gY2FzZXMgbGlua2VkIHRvIHRoaXMgb25lLjwvcD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvbkJhY2soKVwiPkdvIGJhY2sgdG8gdGhlIExpbmtlZCBjYXNlcyB0YWI8L2E+XG4gICAgPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJiYWNrLWJ1dHRvblwiIChjbGljayk9XCJvbkJhY2soKVwiPkJhY2s8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
71
+ }], () => [{ type: i1.Router }, { type: i2.LinkedCasesService }, { type: i3.MultipageComponentStateService }], null); })();
72
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoLinkedCasesComponent, { className: "NoLinkedCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.ts", lineNumber: 12 }); })();
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL25vLWxpbmtlZC1jYXNlcy9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbm8tbGlua2VkLWNhc2VzL25vLWxpbmtlZC1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztJQ0ZyRSw2QkFBMEQ7SUFBQSxrQ0FBa0I7SUFBQSxpQkFBSzs7O0lBRy9FLEFBRkYsNkJBQ21ELGVBQ2I7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELG9FQUNwRDs7O0lBRUUsNEJBQXNCO0lBQUEsc0RBQXNDO0lBQUEsaUJBQUk7O0FER3RFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFJckM7SUFDVjtJQUhaLG9CQUFvQixDQUFrQztJQUU3RCxZQUE2QixNQUFjLEVBQ3hCLGtCQUFzQyxFQUN2RCw4QkFBOEQ7UUFDNUQsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFIYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFHekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO0lBQzNFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Z0ZBaEJVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ1ZqQyxBQURGLDhCQUE0QixhQUNVO1lBTWxDLEFBSkEsQUFEQSxxRUFBMEQsc0RBRVAsMkdBR3ZCO1lBSTFCLEFBREYsNEJBQXNCLFdBQytDO1lBQW5CLG9JQUFTLFlBQVEsS0FBQztZQUFDLCtDQUErQjtZQUNwRyxBQURvRyxpQkFBSSxFQUNwRztZQUVGLEFBREYsOEJBQWdDLGlCQUMwRDtZQUFuQiwwSUFBUyxZQUFRLEtBQUM7WUFBQyxxQkFBSTtZQUdsRyxBQURFLEFBREUsQUFEOEYsaUJBQVMsRUFDakcsRUFDRixFQUNGOzs7WUFmNEIsZUFBMEI7WUFBMUIsK0NBQTBCO1lBRXJELGNBQTJCO1lBQUEsQUFBM0IsK0NBQTJCLDhCQUFtQjs7O2lGRE94QyxzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUdwQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1uby1saW5rZWQtY2FzZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOb0xpbmtlZENhc2VzQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBKb3VybmV5IHtcblxuICBwdWJsaWMgc2VydmVyTGlua2VkQXBpRXJyb3I6IHsgaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZTogTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKSB7XG4gICAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zZXJ2ZXJMaW5rZWRBcGlFcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWRdLCB7IGZyYWdtZW50OiAnTGlua2VkIGNhc2VzJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3JcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3I7ZWxzZSBub0xpbmtlZENhc2VzO1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9MaW5rZWRDYXNlcz5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlRoZXJlIGFyZSBubyBjYXNlcyBsaW5rZWQgdG8gdGhpcyBvbmUuPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+R28gYmFjayB0byB0aGUgTGlua2VkIGNhc2VzIHRhYjwvYT5cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJhY2stYnV0dG9uXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+QmFjazwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -4,78 +4,78 @@ import { forkJoin } from 'rxjs';
4
4
  import { CasesService } from '../../../../case-editor/services/cases.service';
5
5
  import { LinkedCasesErrorMessages, LinkedCasesPages } from '../../enums/write-linked-cases-field.enum';
6
6
  import { LinkedCasesService } from '../../services/linked-cases.service';
7
+ import { AbstractFieldWriteJourneyComponent } from '../../../base-field';
8
+ import { MultipageComponentStateService } from '../../../../../services';
7
9
  import * as i0 from "@angular/core";
8
10
  import * as i1 from "@angular/forms";
9
11
  import * as i2 from "../../../../case-editor/services/cases.service";
10
12
  import * as i3 from "../../services/linked-cases.service";
11
- import * as i4 from "@angular/common";
12
- import * as i5 from "../../../../../pipes/case-reference/case-reference.pipe";
13
+ import * as i4 from "../../../../../services";
14
+ import * as i5 from "@angular/common";
15
+ import * as i6 from "../../../../../pipes/case-reference/case-reference.pipe";
13
16
  const _c0 = a0 => ({ "govuk-form-group--error": a0 });
14
17
  function UnLinkCasesComponent_div_0_div_4_p_1_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelementStart(0, "p", 11)(1, "span", 12);
18
+ i0.ɵɵelementStart(0, "p", 9)(1, "span", 10);
16
19
  i0.ɵɵtext(2, "Error:");
17
20
  i0.ɵɵelementEnd();
18
21
  i0.ɵɵtext(3);
19
22
  i0.ɵɵelementEnd();
20
23
  } if (rf & 2) {
21
- const ctx_r1 = i0.ɵɵnextContext(3);
24
+ const ctx_r0 = i0.ɵɵnextContext(3);
22
25
  i0.ɵɵadvance(3);
23
- i0.ɵɵtextInterpolate1(" ", ctx_r1.unlinkErrorMessage, " ");
26
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.unlinkErrorMessage, " ");
24
27
  } }
25
28
  function UnLinkCasesComponent_div_0_div_4_div_3_Template(rf, ctx) { if (rf & 1) {
26
- const _r3 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "div", 13)(1, "input", 14);
28
- i0.ɵɵlistener("change", function UnLinkCasesComponent_div_0_div_4_div_3_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onChange($event.target)); });
29
+ const _r2 = i0.ɵɵgetCurrentView();
30
+ i0.ɵɵelementStart(0, "div", 11)(1, "input", 12);
31
+ i0.ɵɵlistener("change", function UnLinkCasesComponent_div_0_div_4_div_3_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.onChange($event.target)); });
29
32
  i0.ɵɵelementEnd();
30
- i0.ɵɵelementStart(2, "label", 15);
33
+ i0.ɵɵelementStart(2, "label", 13);
31
34
  i0.ɵɵtext(3);
32
35
  i0.ɵɵpipe(4, "ccdCaseReference");
33
36
  i0.ɵɵelementEnd()();
34
37
  } if (rf & 2) {
35
- const case_r4 = ctx.$implicit;
38
+ const case_r3 = ctx.$implicit;
36
39
  i0.ɵɵadvance();
37
- i0.ɵɵpropertyInterpolate1("id", "case-reference-", case_r4.caseReference, "");
38
- i0.ɵɵproperty("value", case_r4.caseReference)("checked", case_r4.unlink);
40
+ i0.ɵɵpropertyInterpolate1("id", "case-reference-", case_r3.caseReference, "");
41
+ i0.ɵɵproperty("value", case_r3.caseReference)("checked", case_r3.unlink);
39
42
  i0.ɵɵadvance();
40
- i0.ɵɵpropertyInterpolate("for", case_r4.caseReference);
43
+ i0.ɵɵpropertyInterpolate("for", case_r3.caseReference);
41
44
  i0.ɵɵadvance();
42
- i0.ɵɵtextInterpolate2(" ", case_r4.caseName, " ", i0.ɵɵpipeBind1(4, 7, case_r4.caseReference), " ");
45
+ i0.ɵɵtextInterpolate2(" ", case_r3.caseName, " ", i0.ɵɵpipeBind1(4, 7, case_r3.caseReference), " ");
43
46
  } }
44
47
  function UnLinkCasesComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelementStart(0, "div", 7);
46
- i0.ɵɵtemplate(1, UnLinkCasesComponent_div_0_div_4_p_1_Template, 4, 1, "p", 8);
47
- i0.ɵɵelementStart(2, "div", 9);
48
- i0.ɵɵtemplate(3, UnLinkCasesComponent_div_0_div_4_div_3_Template, 5, 9, "div", 10);
48
+ i0.ɵɵelementStart(0, "div", 5);
49
+ i0.ɵɵtemplate(1, UnLinkCasesComponent_div_0_div_4_p_1_Template, 4, 1, "p", 6);
50
+ i0.ɵɵelementStart(2, "div", 7);
51
+ i0.ɵɵtemplate(3, UnLinkCasesComponent_div_0_div_4_div_3_Template, 5, 9, "div", 8);
49
52
  i0.ɵɵelementEnd()();
50
53
  } if (rf & 2) {
51
- const ctx_r1 = i0.ɵɵnextContext(2);
52
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx_r1.unlinkErrorMessage))("formGroup", ctx_r1.unlinkCaseForm);
54
+ const ctx_r0 = i0.ɵɵnextContext(2);
55
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx_r0.unlinkErrorMessage))("formGroup", ctx_r0.unlinkCaseForm);
53
56
  i0.ɵɵadvance();
54
- i0.ɵɵproperty("ngIf", ctx_r1.unlinkErrorMessage);
57
+ i0.ɵɵproperty("ngIf", ctx_r0.unlinkErrorMessage);
55
58
  i0.ɵɵadvance(2);
56
- i0.ɵɵproperty("ngForOf", ctx_r1.linkedCases);
59
+ i0.ɵɵproperty("ngForOf", ctx_r0.linkedCases);
57
60
  } }
58
61
  function UnLinkCasesComponent_div_0_Template(rf, ctx) { if (rf & 1) {
59
- const _r1 = i0.ɵɵgetCurrentView();
60
62
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h1", 3);
61
63
  i0.ɵɵtext(3, "Select the cases you want to unlink from this case");
62
64
  i0.ɵɵelementEnd();
63
65
  i0.ɵɵtemplate(4, UnLinkCasesComponent_div_0_div_4_Template, 4, 6, "div", 4);
64
- i0.ɵɵelementStart(5, "div", 5)(6, "button", 6);
65
- i0.ɵɵlistener("click", function UnLinkCasesComponent_div_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onNext()); });
66
- i0.ɵɵtext(7, "Next");
67
- i0.ɵɵelementEnd()()()();
66
+ i0.ɵɵelementEnd()();
68
67
  } if (rf & 2) {
69
- const ctx_r1 = i0.ɵɵnextContext();
68
+ const ctx_r0 = i0.ɵɵnextContext();
70
69
  i0.ɵɵadvance(4);
71
- i0.ɵɵproperty("ngIf", ctx_r1.unlinkCaseForm);
70
+ i0.ɵɵproperty("ngIf", ctx_r0.unlinkCaseForm);
72
71
  } }
73
- export class UnLinkCasesComponent {
72
+ export class UnLinkCasesComponent extends AbstractFieldWriteJourneyComponent {
74
73
  fb;
75
74
  casesService;
76
75
  linkedCasesService;
77
76
  static LINKED_CASES_TAB_ID = 'linked_cases_sscs';
78
77
  static CASE_NAME_MISSING_TEXT = 'Case name missing';
78
+ static LINKED_CASES_TAB_ID_2 = 'caseLinksTab';
79
79
  linkedCasesStateEmitter = new EventEmitter();
80
80
  notifyAPIFailure = new EventEmitter(false);
81
81
  unlinkCaseForm;
@@ -85,23 +85,38 @@ export class UnLinkCasesComponent {
85
85
  unlinkErrorMessage;
86
86
  isLoaded;
87
87
  isServerError = false;
88
- constructor(fb, casesService, linkedCasesService) {
88
+ constructor(fb, casesService, linkedCasesService, multipageComponentStateService) {
89
+ super(multipageComponentStateService);
89
90
  this.fb = fb;
90
91
  this.casesService = casesService;
91
92
  this.linkedCasesService = linkedCasesService;
92
93
  }
93
94
  ngOnInit() {
94
95
  this.getLinkedCases();
96
+ // the journey can become broken in some situations as the journeyPageNumber is not correct, account for this and set to the correct value
97
+ const journeyPageNumber = this.getJourneyCollection()['journeyPageNumber'];
98
+ const linkedCasesPageNumber = this.getJourneyCollection()['linkedCasesPage'];
99
+ if (linkedCasesPageNumber < journeyPageNumber) {
100
+ this.getJourneyCollection()['journeyPageNumber'] = linkedCasesPageNumber;
101
+ }
102
+ }
103
+ getJourneyCollection() {
104
+ return this.multipageComponentStateService.getJourneyCollection()[0];
95
105
  }
96
106
  getLinkedCases() {
97
107
  this.caseId = this.linkedCasesService.caseId;
108
+ if (this.linkedCasesService.cachedFieldValues && this.linkedCasesService.linkedCases) {
109
+ this.linkedCasesService.caseFieldValue = this.linkedCasesService.cachedFieldValues;
110
+ }
98
111
  if (this.linkedCasesService.linkedCases.length > 0) {
99
112
  this.linkedCases = this.linkedCasesService.linkedCases;
100
113
  this.getAllLinkedCaseInformation();
101
114
  }
102
115
  else {
103
116
  this.casesService.getCaseViewV2(this.caseId).subscribe((caseView) => {
104
- const linkedCasesTab = caseView.tabs.find((tab) => tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID);
117
+ const linkedCasesTab = caseView.tabs.find((tab) => {
118
+ return tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID || tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID_2;
119
+ });
105
120
  if (linkedCasesTab) {
106
121
  const linkedCases = linkedCasesTab.fields[0].value;
107
122
  this.linkedCases = linkedCases;
@@ -111,24 +126,42 @@ export class UnLinkCasesComponent {
111
126
  });
112
127
  }
113
128
  }
129
+ getLinkedCaseId(linkedCase) {
130
+ // challenged access doesnt return props in the same format, account for this
131
+ return linkedCase.caseReference ? linkedCase.caseReference : linkedCase['id'];
132
+ }
114
133
  getAllLinkedCaseInformation() {
115
134
  const searchCasesResponse = [];
116
135
  this.linkedCases.forEach((linkedCase) => {
117
- searchCasesResponse.push(this.casesService.getCaseViewV2(linkedCase.caseReference));
136
+ const caseRefToSearch = this.getLinkedCaseId(linkedCase);
137
+ searchCasesResponse.push(this.casesService.getCaseViewV2(caseRefToSearch));
118
138
  });
119
139
  if (searchCasesResponse.length) {
120
140
  this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases) => {
121
141
  searchCases.forEach((response) => {
122
- const linkedCaseFromList = this.linkedCases.find((linkedCase) => linkedCase.caseReference === response.case_id);
142
+ const linkedCaseFromList = this.linkedCases.find((linkedCase) => {
143
+ const caseRefToUse = this.getLinkedCaseId(linkedCase);
144
+ if (this.linkedCasesService.casesToUnlink.indexOf(caseRefToUse) > -1) {
145
+ linkedCase.unlink = true;
146
+ }
147
+ return caseRefToUse === response.case_id;
148
+ });
123
149
  if (linkedCaseFromList) {
124
150
  const caseName = this.linkedCasesService.getCaseName(response);
125
- this.linkedCases.find((linkedCase) => linkedCase.caseReference === response.case_id).caseName = caseName;
151
+ const linkedCase = this.linkedCases.find((linkedCase) => {
152
+ const caseRefToUse = this.getLinkedCaseId(linkedCase);
153
+ return caseRefToUse === response.case_id;
154
+ });
155
+ if (linkedCase) {
156
+ linkedCase.caseName = caseName;
157
+ linkedCase.caseReference = response.case_id;
158
+ }
126
159
  }
127
160
  });
128
161
  this.initForm();
129
162
  this.linkedCasesService.linkedCases = this.linkedCases;
130
163
  this.isServerError = false;
131
- }, (err) => {
164
+ }, err => {
132
165
  this.isServerError = true;
133
166
  this.notifyAPIFailure.emit(true);
134
167
  });
@@ -160,6 +193,7 @@ export class UnLinkCasesComponent {
160
193
  const selectedCase = this.linkedCases.find((linkedCase) => linkedCase.caseReference === caseSelected.value);
161
194
  if (selectedCase) {
162
195
  selectedCase.unlink = caseSelected.checked ? true : false;
196
+ caseSelected.checked ? this.linkedCasesService.casesToUnlink.push(selectedCase.caseReference) : this.linkedCasesService.casesToUnlink = this.linkedCasesService.casesToUnlink.filter((caseRef) => caseRef !== selectedCase.caseReference);
163
197
  }
164
198
  }
165
199
  onNext() {
@@ -178,6 +212,12 @@ export class UnLinkCasesComponent {
178
212
  // Return linked cases state and error messages to the parent
179
213
  this.emitLinkedCasesState(navigateToNextPage);
180
214
  }
215
+ next() {
216
+ this.onNext();
217
+ if (this.errorMessages.length === 0) {
218
+ super.next();
219
+ }
220
+ }
181
221
  // Return linked cases state and error messages to the parent
182
222
  emitLinkedCasesState(isNavigateToNextPage) {
183
223
  this.linkedCasesStateEmitter.emit({
@@ -190,20 +230,20 @@ export class UnLinkCasesComponent {
190
230
  this.errorMessages = [];
191
231
  this.unlinkErrorMessage = null;
192
232
  }
193
- static ɵfac = function UnLinkCasesComponent_Factory(t) { return new (t || UnLinkCasesComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CasesService), i0.ɵɵdirectiveInject(i3.LinkedCasesService)); };
194
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnLinkCasesComponent, selectors: [["ccd-unlink-cases"]], outputs: { linkedCasesStateEmitter: "linkedCasesStateEmitter", notifyAPIFailure: "notifyAPIFailure" }, decls: 1, vars: 1, consts: [["class", "govuk-grid-row", 4, "ngIf"], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], [1, "govuk-heading-xl"], ["class", "govuk-form-group form-group", 3, "ngClass", "formGroup", 4, "ngIf"], [1, "govuk-button-group"], ["type", "button", "id", "next-button", 1, "button", "button-primary", 3, "click"], [1, "govuk-form-group", "form-group", 3, "ngClass", "formGroup"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes"], ["class", "govuk-checkboxes__item", 4, "ngFor", "ngForOf"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-checkboxes__item"], ["formArrayName", "linkedCases", "name", "linkedCases", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "value", "checked"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"]], template: function UnLinkCasesComponent_Template(rf, ctx) { if (rf & 1) {
195
- i0.ɵɵtemplate(0, UnLinkCasesComponent_div_0_Template, 8, 1, "div", 0);
233
+ static ɵfac = function UnLinkCasesComponent_Factory(t) { return new (t || UnLinkCasesComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CasesService), i0.ɵɵdirectiveInject(i3.LinkedCasesService), i0.ɵɵdirectiveInject(i4.MultipageComponentStateService)); };
234
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnLinkCasesComponent, selectors: [["ccd-unlink-cases"]], outputs: { linkedCasesStateEmitter: "linkedCasesStateEmitter", notifyAPIFailure: "notifyAPIFailure" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "govuk-grid-row", 4, "ngIf"], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], [1, "govuk-heading-xl"], ["class", "govuk-form-group form-group", 3, "ngClass", "formGroup", 4, "ngIf"], [1, "govuk-form-group", "form-group", 3, "ngClass", "formGroup"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes"], ["class", "govuk-checkboxes__item", 4, "ngFor", "ngForOf"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-checkboxes__item"], ["formArrayName", "linkedCases", "name", "linkedCases", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "value", "checked"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"]], template: function UnLinkCasesComponent_Template(rf, ctx) { if (rf & 1) {
235
+ i0.ɵɵtemplate(0, UnLinkCasesComponent_div_0_Template, 5, 1, "div", 0);
196
236
  } if (rf & 2) {
197
237
  i0.ɵɵproperty("ngIf", ctx.linkedCases.length > 0);
198
- } }, dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormArrayName, i5.CaseReferencePipe], encapsulation: 2 });
238
+ } }, dependencies: [i5.NgClass, i5.NgForOf, i5.NgIf, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormArrayName, i6.CaseReferencePipe], encapsulation: 2 });
199
239
  }
200
240
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnLinkCasesComponent, [{
201
241
  type: Component,
202
- args: [{ selector: 'ccd-unlink-cases', template: "<div class=\"govuk-grid-row\" *ngIf=\"linkedCases.length > 0\">\n <div class=\"govuk-grid-column-full\">\n <h1 class=\"govuk-heading-xl\">Select the cases you want to unlink from this case</h1>\n <div class=\"govuk-form-group form-group\" [ngClass]=\"{'govuk-form-group--error': unlinkErrorMessage}\" [formGroup]=\"unlinkCaseForm\" *ngIf=\"unlinkCaseForm\">\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\" *ngIf=\"unlinkErrorMessage\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{unlinkErrorMessage}}\n </p>\n <div class=\"govuk-checkboxes\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes__item\" *ngFor=\"let case of linkedCases\">\n <input class=\"govuk-checkboxes__input\" id=\"case-reference-{{case.caseReference}}\" formArrayName=\"linkedCases\" name=\"linkedCases\"\n type=\"checkbox\" [value]=\"case.caseReference\" [checked]=\"case.unlink\" (change)=\"onChange($event.target)\">\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"{{case.caseReference}}\">\n {{case.caseName }} {{case.caseReference | ccdCaseReference}}\n </label>\n </div>\n </div>\n </div>\n <div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" id=\"next-button\" (click)=\"onNext()\">Next</button>\n </div>\n </div>\n</div>\n" }]
203
- }], () => [{ type: i1.FormBuilder }, { type: i2.CasesService }, { type: i3.LinkedCasesService }], { linkedCasesStateEmitter: [{
242
+ args: [{ selector: 'ccd-unlink-cases', template: "<div class=\"govuk-grid-row\" *ngIf=\"linkedCases.length > 0\">\n <div class=\"govuk-grid-column-full\">\n <h1 class=\"govuk-heading-xl\">Select the cases you want to unlink from this case</h1>\n <div class=\"govuk-form-group form-group\" [ngClass]=\"{'govuk-form-group--error': unlinkErrorMessage}\" [formGroup]=\"unlinkCaseForm\" *ngIf=\"unlinkCaseForm\">\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\" *ngIf=\"unlinkErrorMessage\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{unlinkErrorMessage}}\n </p>\n <div class=\"govuk-checkboxes\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes__item\" *ngFor=\"let case of linkedCases\">\n <input class=\"govuk-checkboxes__input\" id=\"case-reference-{{case.caseReference}}\" formArrayName=\"linkedCases\" name=\"linkedCases\"\n type=\"checkbox\" [value]=\"case.caseReference\" [checked]=\"case.unlink\" (change)=\"onChange($event.target)\">\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"{{case.caseReference}}\">\n {{case.caseName }} {{case.caseReference | ccdCaseReference}}\n </label>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
243
+ }], () => [{ type: i1.FormBuilder }, { type: i2.CasesService }, { type: i3.LinkedCasesService }, { type: i4.MultipageComponentStateService }], { linkedCasesStateEmitter: [{
204
244
  type: Output
205
245
  }], notifyAPIFailure: [{
206
246
  type: Output
207
247
  }] }); })();
208
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnLinkCasesComponent, { className: "UnLinkCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.ts", lineNumber: 14 }); })();
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5saW5rLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL3VubGluay1jYXNlcy91bmxpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvdW5saW5rLWNhc2VzL3VubGluay1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFhLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7SUNGakUsQUFERiw2QkFBa0YsZUFDNUM7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELDBEQUNwRDs7OztJQUdJLEFBREYsK0JBQXFFLGdCQUV1QztJQUFuQyxvTUFBVSw4QkFBdUIsS0FBQztJQUR6RyxpQkFDMEc7SUFDeEcsaUNBQWdGO0lBQzlFLFlBQ0o7O0lB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WUFDakMsa0JBQWtCLEVBQUUsb0JBQW9CO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDOzhFQXBJVSxvQkFBb0I7NkRBQXBCLG9CQUFvQjtZQ2JqQyxxRUFBMkQ7O1lBQTlCLGlEQUE0Qjs7O2lGRGE1QyxvQkFBb0I7Y0FKaEMsU0FBUzsyQkFDRSxrQkFBa0I7d0dBU3JCLHVCQUF1QjtrQkFEN0IsTUFBTTtZQUlBLGdCQUFnQjtrQkFEdEIsTUFBTTs7a0ZBUkksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcsIEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rZWRDYXNlc1N0YXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcyB9IGZyb20gJy4uLy4uL2VudW1zL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5lbnVtJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXVubGluay1jYXNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi91bmxpbmstY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVuTGlua0Nhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMSU5LRURfQ0FTRVNfVEFCX0lEID0gJ2xpbmtlZF9jYXNlc19zc2NzJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCA9ICdDYXNlIG5hbWUgbWlzc2luZyc7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbm90aWZ5QVBJRmFpbHVyZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcihmYWxzZSk7XG5cbiAgcHVibGljIHVubGlua0Nhc2VGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgdW5saW5rRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBpc0xvYWRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlzU2VydmVyRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldExpbmtlZENhc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQ7XG4gICAgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcztcbiAgICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIodGhpcy5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmtlZENhc2VzVGFiID0gY2FzZVZpZXcudGFicy5maW5kKCh0YWIpID0+IHRhYi5pZCA9PT0gVW5MaW5rQ2FzZXNDb21wb25lbnQuTElOS0VEX0NBU0VTX1RBQl9JRCk7XG4gICAgICAgIGlmIChsaW5rZWRDYXNlc1RhYikge1xuICAgICAgICAgIGNvbnN0IGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gbGlua2VkQ2FzZXNUYWIuZmllbGRzWzBdLnZhbHVlO1xuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSBsaW5rZWRDYXNlcztcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IGxpbmtlZENhc2VzO1xuICAgICAgICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxMaW5rZWRDYXNlSW5mb3JtYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3Qgc2VhcmNoQ2FzZXNSZXNwb25zZSA9IFtdO1xuICAgIHRoaXMubGlua2VkQ2FzZXMuZm9yRWFjaCgobGlua2VkQ2FzZSkgPT4ge1xuICAgICAgc2VhcmNoQ2FzZXNSZXNwb25zZS5wdXNoKHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIobGlua2VkQ2FzZS5jYXNlUmVmZXJlbmNlKSk7XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBzZWFyY2hDYXNlcy5mb3JFYWNoKChyZXNwb25zZTogQ2FzZVZpZXcpID0+IHtcbiAgICAgICAgICBjb25zdCBsaW5rZWRDYXNlRnJvbUxpc3QgPSB0aGlzLmxpbmtlZENhc2VzLmZpbmQoKGxpbmtlZENhc2UpID0+IGxpbmtlZENhc2UuY2FzZVJlZmVyZW5jZSA9PT0gcmVzcG9uc2UuY2FzZV9pZCk7XG4gICAgICAgICAgaWYgKGxpbmtlZENhc2VGcm9tTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgY2FzZU5hbWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShyZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzLmZpbmQoKGxpbmtlZENhc2UpID0+IGxpbmtlZENhc2UuY2FzZVJlZmVyZW5jZSA9PT0gcmVzcG9uc2UuY2FzZV9pZCkuY2FzZU5hbWUgPSBjYXNlTmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlcztcbiAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgKGVycikgPT4ge1xuICAgICAgICB0aGlzLmlzU2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmeUFQSUZhaWx1cmUuZW1pdCh0cnVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hDYXNlc0J5Q2FzZUlkcyhzZWFyY2hDYXNlc1Jlc3BvbnNlOiBhbnlbXSk6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKHNlYXJjaENhc2VzUmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGluaXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMudW5saW5rQ2FzZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGxpbmtlZENhc2VzOiB0aGlzLmdldExpbmtlZENhc2VzRm9ybUFycmF5XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldExpbmtlZENhc2VzRm9ybUFycmF5KCk6IEZvcm1BcnJheSB7XG4gICAgY29uc3QgZm9ybUZpZWxkQXJyYXkgPSB0aGlzLmxpbmtlZENhc2VzLm1hcCgodmFsKSA9PiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNhc2VSZWZlcmVuY2U6IHZhbC5jYXNlUmVmZXJlbmNlLFxuICAgICAgcmVhc29uczogdmFsLnJlYXNvbnMsXG4gICAgICBjcmVhdGVkRGF0ZVRpbWU6IHZhbC5jcmVhdGVkRGF0ZVRpbWUsXG4gICAgICBjYXNlVHlwZTogdmFsLmNhc2VUeXBlLFxuICAgICAgY2FzZVN0YXRlOiB2YWwuY2FzZVN0YXRlLFxuICAgICAgY2FzZVNlcnZpY2U6IHZhbC5jYXNlU2VydmljZSxcbiAgICAgIGNhc2VOYW1lOiB2YWwuY2FzZU5hbWUgfHwgVW5MaW5rQ2FzZXNDb21wb25lbnQuQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCxcbiAgICAgIHVubGluazogdmFsLnVubGlua1xuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShmb3JtRmllbGRBcnJheSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoY2FzZVNlbGVjdGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0RXJyb3JNZXNzYWdlcygpO1xuICAgIGNvbnN0IHNlbGVjdGVkQ2FzZSA9IHRoaXMubGlua2VkQ2FzZXMuZmluZCgobGlua2VkQ2FzZSkgPT4gbGlua2VkQ2FzZS5jYXNlUmVmZXJlbmNlID09PSBjYXNlU2VsZWN0ZWQudmFsdWUpO1xuICAgIGlmIChzZWxlY3RlZENhc2UpIHtcbiAgICAgIHNlbGVjdGVkQ2FzZS51bmxpbmsgPSBjYXNlU2VsZWN0ZWQuY2hlY2tlZCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XG4gICAgbGV0IG5hdmlnYXRlVG9OZXh0UGFnZSA9IHRydWU7XG4gICAgY29uc3QgY2FzZXNNYXJrZWRUb1VubGluayA9IHRoaXMubGlua2VkQ2FzZXMuZmluZCgobGlua2VkQ2FzZSkgPT4gbGlua2VkQ2FzZS51bmxpbmsgJiYgbGlua2VkQ2FzZS51bmxpbmsgPT09IHRydWUpO1xuICAgIGlmICghY2FzZXNNYXJrZWRUb1VubGluaykge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2Nhc2Utc2VsZWN0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5VbmxpbmtDYXNlU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6IGBjYXNlLXJlZmVyZW5jZS0ke3RoaXMubGlua2VkQ2FzZXNbMF0uY2FzZVJlZmVyZW5jZX1gXG4gICAgICB9KTtcbiAgICAgIHRoaXMudW5saW5rRXJyb3JNZXNzYWdlID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLlVubGlua0Nhc2VTZWxlY3Rpb25FcnJvcjtcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gbGlua2VkIGNhc2VzIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShuYXZpZ2F0ZVRvTmV4dFBhZ2UpO1xuICB9XG5cbiAgLy8gUmV0dXJuIGxpbmtlZCBjYXNlcyBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICBwdWJsaWMgZW1pdExpbmtlZENhc2VzU3RhdGUoaXNOYXZpZ2F0ZVRvTmV4dFBhZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtlZENhc2VzU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudExpbmtlZENhc2VzUGFnZTogTGlua2VkQ2FzZXNQYWdlcy5VTkxJTktfQ0FTRSxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZTogaXNOYXZpZ2F0ZVRvTmV4dFBhZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEVycm9yTWVzc2FnZXMoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy51bmxpbmtFcnJvck1lc3NhZ2UgPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIiAqbmdJZj1cImxpbmtlZENhc2VzLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGxcIj5cbiAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsXCI+U2VsZWN0IHRoZSBjYXNlcyB5b3Ugd2FudCB0byB1bmxpbmsgZnJvbSB0aGlzIGNhc2U8L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIGZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogdW5saW5rRXJyb3JNZXNzYWdlfVwiIFtmb3JtR3JvdXBdPVwidW5saW5rQ2FzZUZvcm1cIiAqbmdJZj1cInVubGlua0Nhc2VGb3JtXCI+XG4gICAgICA8cCBpZD1cInVubGluay1jYXNlcy1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwidW5saW5rRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e3VubGlua0Vycm9yTWVzc2FnZX19XG4gICAgICA8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiICpuZ0Zvcj1cImxldCBjYXNlIG9mIGxpbmtlZENhc2VzXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cImNhc2UtcmVmZXJlbmNlLXt7Y2FzZS5jYXNlUmVmZXJlbmNlfX1cIiBmb3JtQXJyYXlOYW1lPVwibGlua2VkQ2FzZXNcIiBuYW1lPVwibGlua2VkQ2FzZXNcIlxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgW3ZhbHVlXT1cImNhc2UuY2FzZVJlZmVyZW5jZVwiIFtjaGVja2VkXT1cImNhc2UudW5saW5rXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQudGFyZ2V0KVwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJ7e2Nhc2UuY2FzZVJlZmVyZW5jZX19XCI+XG4gICAgICAgICAgICAgIHt7Y2FzZS5jYXNlTmFtZSB9fSB7e2Nhc2UuY2FzZVJlZmVyZW5jZSB8IGNjZENhc2VSZWZlcmVuY2V9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cIm5leHQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+TmV4dDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
248
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnLinkCasesComponent, { className: "UnLinkCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.ts", lineNumber: 16 }); })();
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5saW5rLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL3VubGluay1jYXNlcy91bmxpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvdW5saW5rLWNhc2VzL3VubGluay1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFhLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7O0lDSmpFLEFBREYsNEJBQWtGLGVBQzVDO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQUk7OztJQURnRCxlQUNwRDtJQURvRCwwREFDcEQ7Ozs7SUFHSSxBQURGLCtCQUFxRSxnQkFFdUM7SUFBbkMsb01BQVUsOEJBQXVCLEtBQUM7SUFEekcsaUJBQzBHO0lBQ3hHLGlDQUFnRjtJQUM5RSxZQUNKOztJQUNGLEFBREUsaUJBQVEsRUFDSjs7O0lBTG1DLGNBQTBDO0lBQTFDLDZFQUEwQztJQUNsQyxBQUE3Qiw2Q0FBNEIsMkJBQXdCO0lBQ2pCLGNBQTRCO0lBQTVCLHNEQUE0QjtJQUM3RSxjQUNKO0lBREksbUdBQ0o7OztJQVZOLDhCQUF5SjtJQUN2Siw2RUFBa0Y7SUFHbEYsOEJBQTZEO0lBQzNELGlGQUFxRTtJQVF6RSxBQURFLGlCQUFNLEVBQ0Y7OztJQWIrRixBQUE1RCwrRUFBMkQsb0NBQTZCO0lBQ3ZFLGNBQXdCO0lBQXhCLGdEQUF3QjtJQUl6QixlQUFjO0lBQWQsNENBQWM7OztJQU52RSxBQURGLEFBREYsOEJBQTJELGFBQ3JCLFlBQ0w7SUFBQSxrRUFBa0Q7SUFBQSxpQkFBSztJQUNwRiwyRUFBeUo7SUFlN0osQUFERSxpQkFBTSxFQUNGOzs7SUFmaUksZUFBb0I7SUFBcEIsNENBQW9COztBRFkzSixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0NBQWtDO0lBb0I3QztJQUNWO0lBQ0E7SUFwQlgsTUFBTSxDQUFVLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQzFELE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztJQUM3RCxNQUFNLENBQVUscUJBQXFCLEdBQUcsY0FBYyxDQUFDO0lBR3hELHVCQUF1QixHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUcvRixnQkFBZ0IsR0FBMEIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEUsY0FBYyxDQUFZO0lBQzFCLE1BQU0sQ0FBUztJQUNmLFdBQVcsR0FBZSxFQUFFLENBQUM7SUFDN0IsYUFBYSxHQUFtQixFQUFFLENBQUM7SUFDbkMsa0JBQWtCLENBQVM7SUFDM0IsUUFBUSxDQUFVO0lBQ2xCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFFN0IsWUFBNkIsRUFBZSxFQUN6QixZQUEwQixFQUMxQixrQkFBc0MsRUFDdkQsOEJBQThEO1FBQzVELEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBSmIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUN6QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBR3pELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLDJJQUEySTtRQUMzSSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0UsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdFLElBQUkscUJBQXFCLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1FBQzdDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7WUFDdkQsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO2dCQUM1RSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNoRCxPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsbUJBQW1CLElBQUksR0FBRyxDQUFDLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDdEgsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsTUFBTSxXQUFXLEdBQWUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQy9ELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sZUFBZSxDQUFDLFVBQVU7UUFDL0IsNkVBQTZFO1FBQzdFLE9BQU8sVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSwyQkFBMkI7UUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFnQixFQUFFLEVBQUU7Z0JBQzVFLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7b0JBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTt3QkFDOUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDdEQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNyRSxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzt3QkFDM0IsQ0FBQzt3QkFDRCxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO29CQUMzQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLGtCQUFrQixFQUFFLENBQUM7d0JBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7NEJBQ3RELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7NEJBQ3RELE9BQU8sWUFBWSxLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQzNDLENBQUMsQ0FBQyxDQUFDO3dCQUNILElBQUksVUFBVSxFQUFFLENBQUM7NEJBQ2YsVUFBVSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7NEJBQy9CLFVBQVUsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQzt3QkFDOUMsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUU7Z0JBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLG9CQUFvQixDQUFDLG1CQUEwQjtRQUNwRCxPQUFPLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDaEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pFLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtZQUNoQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlO1lBQ3BDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7WUFDeEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQjtZQUNyRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07U0FDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxRQUFRLENBQUMsWUFBaUI7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVHLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMxRCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNU8sQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEVBQUUsZ0JBQWdCO2dCQUN2QixXQUFXLEVBQUUsd0JBQXdCLENBQUMsd0JBQXdCO2dCQUM5RCxPQUFPLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO2FBQy9ELENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQztZQUM1RSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQztRQUNELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVkLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCw2REFBNkQ7SUFDdEQsb0JBQW9CLENBQUMsb0JBQTZCO1FBQ3ZELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7WUFDaEMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztZQUNwRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsa0JBQWtCLEVBQUUsb0JBQW9CO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDOzhFQWxMVSxvQkFBb0I7NkRBQXBCLG9CQUFvQjtZQ2ZqQyxxRUFBMkQ7O1lBQTlCLGlEQUE0Qjs7O2lGRGU1QyxvQkFBb0I7Y0FKaEMsU0FBUzsyQkFDRSxrQkFBa0I7cUpBVXJCLHVCQUF1QjtrQkFEN0IsTUFBTTtZQUlBLGdCQUFnQjtrQkFEdEIsTUFBTTs7a0ZBVEksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcsIEVycm9yTWVzc2FnZSwgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rZWRDYXNlc1N0YXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcyB9IGZyb20gJy4uLy4uL2VudW1zL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5lbnVtJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUpvdXJuZXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYXNlLWZpZWxkJztcbmltcG9ydCB7IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXVubGluay1jYXNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi91bmxpbmstY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVuTGlua0Nhc2VzQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlSm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTElOS0VEX0NBU0VTX1RBQl9JRCA9ICdsaW5rZWRfY2FzZXNfc3Njcyc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTkFNRV9NSVNTSU5HX1RFWFQgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMSU5LRURfQ0FTRVNfVEFCX0lEXzIgPSAnY2FzZUxpbmtzVGFiJztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBub3RpZnlBUElGYWlsdXJlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcblxuICBwdWJsaWMgdW5saW5rQ2FzZUZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgbGlua2VkQ2FzZXM6IENhc2VMaW5rW10gPSBbXTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyB1bmxpbmtFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIGlzTG9hZGVkOiBib29sZWFuO1xuICBwdWJsaWMgaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2U6IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSkge1xuICAgICAgc3VwZXIobXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldExpbmtlZENhc2VzKCk7XG4gICAgLy8gdGhlIGpvdXJuZXkgY2FuIGJlY29tZSBicm9rZW4gaW4gc29tZSAgc2l0dWF0aW9ucyBhcyB0aGUgam91cm5leVBhZ2VOdW1iZXIgaXMgbm90IGNvcnJlY3QsIGFjY291bnQgZm9yIHRoaXMgYW5kIHNldCB0byB0aGUgY29ycmVjdCB2YWx1ZVxuICAgIGNvbnN0IGpvdXJuZXlQYWdlTnVtYmVyID0gdGhpcy5nZXRKb3VybmV5Q29sbGVjdGlvbigpWydqb3VybmV5UGFnZU51bWJlciddO1xuICAgIGNvbnN0IGxpbmtlZENhc2VzUGFnZU51bWJlciA9IHRoaXMuZ2V0Sm91cm5leUNvbGxlY3Rpb24oKVsnbGlua2VkQ2FzZXNQYWdlJ107XG4gICAgaWYgKGxpbmtlZENhc2VzUGFnZU51bWJlciA8IGpvdXJuZXlQYWdlTnVtYmVyKSB7XG4gICAgICB0aGlzLmdldEpvdXJuZXlDb2xsZWN0aW9uKClbJ2pvdXJuZXlQYWdlTnVtYmVyJ10gPSBsaW5rZWRDYXNlc1BhZ2VOdW1iZXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEpvdXJuZXlDb2xsZWN0aW9uKCk6IEpvdXJuZXkge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5nZXRKb3VybmV5Q29sbGVjdGlvbigpWzBdO1xuICB9XG5cbiAgcHVibGljIGdldExpbmtlZENhc2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUlkID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkO1xuICAgIGlmICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYWNoZWRGaWVsZFZhbHVlcyAmJiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcykge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYWNoZWRGaWVsZFZhbHVlcztcbiAgICB9XG4gICAgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcztcbiAgICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIodGhpcy5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmtlZENhc2VzVGFiID0gY2FzZVZpZXcudGFicy5maW5kKCh0YWIpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGFiLmlkID09PSBVbkxpbmtDYXNlc0NvbXBvbmVudC5MSU5LRURfQ0FTRVNfVEFCX0lEIHx8IHRhYi5pZCA9PT0gVW5MaW5rQ2FzZXNDb21wb25lbnQuTElOS0VEX0NBU0VTX1RBQl9JRF8yO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGxpbmtlZENhc2VzVGFiKSB7XG4gICAgICAgICAgY29uc3QgbGlua2VkQ2FzZXM6IENhc2VMaW5rW10gPSBsaW5rZWRDYXNlc1RhYi5maWVsZHNbMF0udmFsdWU7XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlcyA9IGxpbmtlZENhc2VzO1xuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gbGlua2VkQ2FzZXM7XG4gICAgICAgICAgdGhpcy5nZXRBbGxMaW5rZWRDYXNlSW5mb3JtYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldExpbmtlZENhc2VJZChsaW5rZWRDYXNlKTogc3RyaW5nIHtcbiAgICAvLyBjaGFsbGVuZ2VkIGFjY2VzcyBkb2VzbnQgcmV0dXJuIHByb3BzIGluIHRoZSBzYW1lIGZvcm1hdCwgYWNjb3VudCBmb3IgdGhpc1xuICAgIHJldHVybiBsaW5rZWRDYXNlLmNhc2VSZWZlcmVuY2UgPyBsaW5rZWRDYXNlLmNhc2VSZWZlcmVuY2UgOiBsaW5rZWRDYXNlWydpZCddO1xuICB9XG5cbiAgcHVibGljIGdldEFsbExpbmtlZENhc2VJbmZvcm1hdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hDYXNlc1Jlc3BvbnNlID0gW107XG4gICAgdGhpcy5saW5rZWRDYXNlcy5mb3JFYWNoKChsaW5rZWRDYXNlKSA9PiB7XG4gICAgICBjb25zdCBjYXNlUmVmVG9TZWFyY2ggPSB0aGlzLmdldExpbmtlZENhc2VJZChsaW5rZWRDYXNlKTtcbiAgICAgIHNlYXJjaENhc2VzUmVzcG9uc2UucHVzaCh0aGlzLmNhc2VzU2VydmljZS5nZXRDYXNlVmlld1YyKGNhc2VSZWZUb1NlYXJjaCkpO1xuICAgIH0pO1xuICAgIGlmIChzZWFyY2hDYXNlc1Jlc3BvbnNlLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWFyY2hDYXNlc0J5Q2FzZUlkcyhzZWFyY2hDYXNlc1Jlc3BvbnNlKS5zdWJzY3JpYmUoKHNlYXJjaENhc2VzOiBhbnkpID0+IHtcbiAgICAgICAgc2VhcmNoQ2FzZXMuZm9yRWFjaCgocmVzcG9uc2U6IENhc2VWaWV3KSA9PiB7XG4gICAgICAgICAgY29uc3QgbGlua2VkQ2FzZUZyb21MaXN0ID0gdGhpcy5saW5rZWRDYXNlcy5maW5kKChsaW5rZWRDYXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYXNlUmVmVG9Vc2UgPSB0aGlzLmdldExpbmtlZENhc2VJZChsaW5rZWRDYXNlKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlc1RvVW5saW5rLmluZGV4T2YoY2FzZVJlZlRvVXNlKSA+IC0xKSB7XG4gICAgICAgICAgICAgIGxpbmtlZENhc2UudW5saW5rID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjYXNlUmVmVG9Vc2UgPT09IHJlc3BvbnNlLmNhc2VfaWQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGxpbmtlZENhc2VGcm9tTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgY2FzZU5hbWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShyZXNwb25zZSk7XG4gICAgICAgICAgICBjb25zdCBsaW5rZWRDYXNlID0gdGhpcy5saW5rZWRDYXNlcy5maW5kKChsaW5rZWRDYXNlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNhc2VSZWZUb1VzZSA9IHRoaXMuZ2V0TGlua2VkQ2FzZUlkKGxpbmtlZENhc2UpO1xuICAgICAgICAgICAgICByZXR1cm4gY2FzZVJlZlRvVXNlID09PSByZXNwb25zZS5jYXNlX2lkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAobGlua2VkQ2FzZSkge1xuICAgICAgICAgICAgICBsaW5rZWRDYXNlLmNhc2VOYW1lID0gY2FzZU5hbWU7XG4gICAgICAgICAgICAgIGxpbmtlZENhc2UuY2FzZVJlZmVyZW5jZSA9IHJlc3BvbnNlLmNhc2VfaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IHRoaXMubGlua2VkQ2FzZXM7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMubm90aWZ5QVBJRmFpbHVyZS5lbWl0KHRydWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2U6IGFueVtdKTogT2JzZXJ2YWJsZTx1bmtub3duW10+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oc2VhcmNoQ2FzZXNSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy51bmxpbmtDYXNlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbGlua2VkQ2FzZXM6IHRoaXMuZ2V0TGlua2VkQ2FzZXNGb3JtQXJyYXlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0TGlua2VkQ2FzZXNGb3JtQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICBjb25zdCBmb3JtRmllbGRBcnJheSA9IHRoaXMubGlua2VkQ2FzZXMubWFwKCh2YWwpID0+IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY2FzZVJlZmVyZW5jZTogdmFsLmNhc2VSZWZlcmVuY2UsXG4gICAgICByZWFzb25zOiB2YWwucmVhc29ucyxcbiAgICAgIGNyZWF0ZWREYXRlVGltZTogdmFsLmNyZWF0ZWREYXRlVGltZSxcbiAgICAgIGNhc2VUeXBlOiB2YWwuY2FzZVR5cGUsXG4gICAgICBjYXNlU3RhdGU6IHZhbC5jYXNlU3RhdGUsXG4gICAgICBjYXNlU2VydmljZTogdmFsLmNhc2VTZXJ2aWNlLFxuICAgICAgY2FzZU5hbWU6IHZhbC5jYXNlTmFtZSB8fCBVbkxpbmtDYXNlc0NvbXBvbmVudC5DQVNFX05BTUVfTUlTU0lOR19URVhULFxuICAgICAgdW5saW5rOiB2YWwudW5saW5rXG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KGZvcm1GaWVsZEFycmF5KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZShjYXNlU2VsZWN0ZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRDYXNlID0gdGhpcy5saW5rZWRDYXNlcy5maW5kKChsaW5rZWRDYXNlKSA9PiBsaW5rZWRDYXNlLmNhc2VSZWZlcmVuY2UgPT09IGNhc2VTZWxlY3RlZC52YWx1ZSk7XG4gICAgaWYgKHNlbGVjdGVkQ2FzZSkge1xuICAgICAgc2VsZWN0ZWRDYXNlLnVubGluayA9IGNhc2VTZWxlY3RlZC5jaGVja2VkID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgY2FzZVNlbGVjdGVkLmNoZWNrZWQgPyB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlc1RvVW5saW5rLnB1c2goc2VsZWN0ZWRDYXNlLmNhc2VSZWZlcmVuY2UpIDogdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZXNUb1VubGluayA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VzVG9VbmxpbmsuZmlsdGVyKChjYXNlUmVmKSA9PiBjYXNlUmVmICE9PSBzZWxlY3RlZENhc2UuY2FzZVJlZmVyZW5jZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0RXJyb3JNZXNzYWdlcygpO1xuICAgIGxldCBuYXZpZ2F0ZVRvTmV4dFBhZ2UgPSB0cnVlO1xuICAgIGNvbnN0IGNhc2VzTWFya2VkVG9VbmxpbmsgPSB0aGlzLmxpbmtlZENhc2VzLmZpbmQoKGxpbmtlZENhc2UpID0+IGxpbmtlZENhc2UudW5saW5rICYmIGxpbmtlZENhc2UudW5saW5rID09PSB0cnVlKTtcbiAgICBpZiAoIWNhc2VzTWFya2VkVG9VbmxpbmspIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdjYXNlLXNlbGVjdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuVW5saW5rQ2FzZVNlbGVjdGlvbkVycm9yLFxuICAgICAgICBmaWVsZElkOiBgY2FzZS1yZWZlcmVuY2UtJHt0aGlzLmxpbmtlZENhc2VzWzBdLmNhc2VSZWZlcmVuY2V9YFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVubGlua0Vycm9yTWVzc2FnZSA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5VbmxpbmtDYXNlU2VsZWN0aW9uRXJyb3I7XG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2UgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGxpbmtlZCBjYXNlcyBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUobmF2aWdhdGVUb05leHRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCkge1xuICAgIHRoaXMub25OZXh0KCk7XG5cbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgc3VwZXIubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiBsaW5rZWQgY2FzZXMgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgcHVibGljIGVtaXRMaW5rZWRDYXNlc1N0YXRlKGlzTmF2aWdhdGVUb05leHRQYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5saW5rZWRDYXNlc1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRMaW5rZWRDYXNlc1BhZ2U6IExpbmtlZENhc2VzUGFnZXMuVU5MSU5LX0NBU0UsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2U6IGlzTmF2aWdhdGVUb05leHRQYWdlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRFcnJvck1lc3NhZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMudW5saW5rRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCIgKm5nSWY9XCJsaW5rZWRDYXNlcy5sZW5ndGggPiAwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiPlNlbGVjdCB0aGUgY2FzZXMgeW91IHdhbnQgdG8gdW5saW5rIGZyb20gdGhpcyBjYXNlPC9oMT5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cCBmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1mb3JtLWdyb3VwLS1lcnJvcic6IHVubGlua0Vycm9yTWVzc2FnZX1cIiBbZm9ybUdyb3VwXT1cInVubGlua0Nhc2VGb3JtXCIgKm5nSWY9XCJ1bmxpbmtDYXNlRm9ybVwiPlxuICAgICAgPHAgaWQ9XCJ1bmxpbmstY2FzZXMtZXJyb3JcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cInVubGlua0Vycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3t1bmxpbmtFcnJvck1lc3NhZ2V9fVxuICAgICAgPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWNoZWNrYm94ZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBsaW5rZWRDYXNlc1wiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJjYXNlLXJlZmVyZW5jZS17e2Nhc2UuY2FzZVJlZmVyZW5jZX19XCIgZm9ybUFycmF5TmFtZT1cImxpbmtlZENhc2VzXCIgbmFtZT1cImxpbmtlZENhc2VzXCJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCJjYXNlLmNhc2VSZWZlcmVuY2VcIiBbY2hlY2tlZF09XCJjYXNlLnVubGlua1wiIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LnRhcmdldClcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwie3tjYXNlLmNhc2VSZWZlcmVuY2V9fVwiPlxuICAgICAgICAgICAgICB7e2Nhc2UuY2FzZU5hbWUgfX0ge3tjYXNlLmNhc2VSZWZlcmVuY2UgfCBjY2RDYXNlUmVmZXJlbmNlfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -22,6 +22,13 @@ export class LinkedCasesService {
22
22
  serverLinkedApiError = null;
23
23
  isServerReasonCodeError = false;
24
24
  caseJurisdictionID = null;
25
+ storedCaseNumber = '';
26
+ cameFromFinalStep = false;
27
+ hasNavigatedInJourney = false;
28
+ hasContinuedFromStart = false;
29
+ cachedFieldValues;
30
+ initialCaseLinkRefs = [];
31
+ casesToUnlink = [];
25
32
  constructor(jurisdictionService, searchService) {
26
33
  this.jurisdictionService = jurisdictionService;
27
34
  this.searchService = searchService;
@@ -47,6 +54,20 @@ export class LinkedCasesService {
47
54
  size,
48
55
  };
49
56
  }
57
+ resetLinkedCaseData() {
58
+ //remove the newly added linked case using the linked case
59
+ this.caseFieldValue = [];
60
+ this.linkedCases = [];
61
+ this.initialCaseLinks = [];
62
+ this.initialCaseLinkRefs = [];
63
+ this.storedCaseNumber = '';
64
+ this.cameFromFinalStep = false;
65
+ this.hasNavigatedInJourney = false;
66
+ this.caseDetails = null;
67
+ this.hasContinuedFromStart = false;
68
+ this.casesToUnlink = [];
69
+ this.cachedFieldValues = null;
70
+ }
50
71
  mapResponse(esSearchCasesResponse) {
51
72
  const caseInfo = this.caseFieldValue.find(item => item.value && item.value.CaseReference === esSearchCasesResponse.case_id);
52
73
  return caseInfo && {
@@ -64,9 +85,10 @@ export class LinkedCasesService {
64
85
  getAllLinkedCaseInformation() {
65
86
  const searchCasesResponse = [];
66
87
  const linkedCaseIds = this.groupLinkedCasesByCaseType(this.caseFieldValue, 'CaseType');
88
+ const caseTypeId = this.caseDetails.case_type.id;
67
89
  Object.keys(linkedCaseIds).forEach(key => {
68
90
  const esQuery = this.constructElasticSearchQuery(linkedCaseIds[key], 100);
69
- const query = this.searchService.searchCasesByIds(key, esQuery, SearchService.VIEW_WORKBASKET);
91
+ const query = this.searchService.searchCasesByIds(caseTypeId, esQuery, SearchService.VIEW_WORKBASKET);
70
92
  searchCasesResponse.push(query);
71
93
  });
72
94
  if (searchCasesResponse.length) {
@@ -91,6 +113,7 @@ export class LinkedCasesService {
91
113
  }),
92
114
  };
93
115
  });
116
+ this.initialCaseLinks = this.linkedCases;
94
117
  this.serverLinkedApiError = null;
95
118
  }, err => {
96
119
  this.serverLinkedApiError = {
@@ -135,4 +158,4 @@ export class LinkedCasesService {
135
158
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LinkedCasesService, [{
136
159
  type: Injectable
137
160
  }], () => [{ type: i1.JurisdictionService }, { type: i1.SearchService }], null); })();
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSzFFLE1BQU0sT0FBTyxrQkFBa0I7SUFtQkE7SUFDQTtJQW5CckIsTUFBTSxDQUFVLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0lBRTlELGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLFdBQVcsQ0FBVztJQUN0QixNQUFNLENBQVM7SUFDZixRQUFRLENBQVM7SUFDakIsZUFBZSxHQUFzQixFQUFFLENBQUM7SUFDeEMsV0FBVyxHQUFlLEVBQUUsQ0FBQztJQUM3QixnQkFBZ0IsR0FBZSxFQUFFLENBQUM7SUFDbEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixxQkFBcUIsR0FBbUIsRUFBRSxDQUFDO0lBQzNDLHVCQUF1QixDQUFVO0lBQ2pDLFdBQVcsR0FBb0MsSUFBSSxDQUFDO0lBQ3BELG9CQUFvQixHQUFvQyxJQUFJLENBQUM7SUFDN0QsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUVqQyxZQUE2QixtQkFBd0MsRUFDeEMsYUFBNEI7UUFENUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEs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QUNsRDtnQkFDRSxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsbUJBQTZCO1FBQzlDLElBQUksUUFBUSxHQUFHLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssdUJBQXVCLENBQUMsQ0FBQztZQUNsRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7Z0JBQy9CLFFBQVEsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs0RUFySVUsa0JBQWtCO2dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCOztpRkFBbEIsa0JBQWtCO2NBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4vY2FzZS12aWV3JztcbmltcG9ydCB7IEp1cmlzZGljdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2p1cmlzZGljdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlLCBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTG92UmVmRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBFU1F1ZXJ5VHlwZSwgTGlua1JlYXNvbiB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc1NlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX05BTUVfTUlTU0lOR19URVhUID0gJ0Nhc2UgbmFtZSBtaXNzaW5nJztcblxuICBwdWJsaWMgY2FzZUZpZWxkVmFsdWUgPSBbXTtcbiAgcHVibGljIGlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIgPSBmYWxzZTtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgY2FzZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGxpbmtDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW10gPSBbXTtcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBpbml0aWFsQ2FzZUxpbmtzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBlZGl0TW9kZSA9IGZhbHNlO1xuICBwdWJsaWMganVyaXNkaWN0aW9uc1Jlc3BvbnNlOiBKdXJpc2RpY3Rpb25bXSA9IFtdO1xuICBwdWJsaWMgc2VydmVySnVyaXNkaWN0aW9uRXJyb3I6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXJ2ZXJFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBpc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgY2FzZUp1cmlzZGljdGlvbklEID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5nZXRKdXJpc2RpY3Rpb25zKCkuc3Vic2NyaWJlKChqdXJpc2RpY3Rpb25zKSA9PiB7XG4gICAgICB0aGlzLmp1cmlzZGljdGlvbnNSZXNwb25zZSA9IGp1cmlzZGljdGlvbnM7XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLnNlcnZlckp1cmlzZGljdGlvbkVycm9yID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBncm91cExpbmtlZENhc2VzQnlDYXNlVHlwZSA9IChhcnJPYmosIGtleSkgPT4ge1xuICAgIHJldHVybiBhcnJPYmoucmVkdWNlKChydiwgeCkgPT4ge1xuICAgICAgKHJ2W3gudmFsdWVba2V5XV0gPSBydlt4LnZhbHVlW2tleV1dIHx8IFtdKS5wdXNoKHgudmFsdWVbJ0Nhc2VSZWZlcmVuY2UnXSk7XG4gICAgICByZXR1cm4gcnY7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdEVsYXN0aWNTZWFyY2hRdWVyeShjYXNlSWRzOiBhbnlbXSwgc2l6ZTogbnVtYmVyKTogRVNRdWVyeVR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICB0ZXJtczoge1xuICAgICAgICAgIHJlZmVyZW5jZTogY2FzZUlkcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzaXplLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbWFwUmVzcG9uc2UoZXNTZWFyY2hDYXNlc1Jlc3BvbnNlKTogYW55IHtcbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMuY2FzZUZpZWxkVmFsdWUuZmluZChpdGVtID0+IGl0ZW0udmFsdWUgJiYgaXRlbS52YWx1ZS5DYXNlUmVmZXJlbmNlID09PSBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9pZCk7XG4gICAgcmV0dXJuIGNhc2VJbmZvICYmIHtcbiAgICAgIGNhc2VSZWZlcmVuY2U6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2lkLFxuICAgICAgY2FzZU5hbWU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2ZpZWxkcy5jYXNlTmFtZUhtY3RzSW50ZXJuYWwgfHwgTGlua2VkQ2FzZXNTZXJ2aWNlLkNBU0VfTkFNRV9NSVNTSU5HX1RFWFQsXG4gICAgICBjYXNlVHlwZTogdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnQ0FTRV9UWVBFJywgZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfZmllbGRzWydbQ0FTRV9UWVBFXSddKSxcbiAgICAgIHNlcnZpY2U6IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ0pVUklTRElDVElPTicsIGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2ZpZWxkc1snW0pVUklTRElDVElPTl0nXSksXG4gICAgICBzdGF0ZTogdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnU1RBVEUnLCBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9maWVsZHNbJ1tTVEFURV0nXSksXG4gICAgICByZWFzb25zOiBjYXNlSW5mbz8udmFsdWU/LlJlYXNvbkZvckxpbmtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2U6IGFueVtdKTogT2JzZXJ2YWJsZTx1bmtub3duW10+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oc2VhcmNoQ2FzZXNSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICBjb25zdCBsaW5rZWRDYXNlSWRzID0gdGhpcy5ncm91cExpbmtlZENhc2VzQnlDYXNlVHlwZSh0aGlzLmNhc2VGaWVsZFZhbHVlLCAnQ2FzZVR5cGUnKTtcbiAgICBPYmplY3Qua2V5cyhsaW5rZWRDYXNlSWRzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBlc1F1ZXJ5ID0gdGhpcy5jb25zdHJ1Y3RFbGFzdGljU2VhcmNoUXVlcnkobGlua2VkQ2FzZUlkc1trZXldLCAxMDApO1xuICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoQ2FzZXNCeUlkcyhrZXksIGVzUXVlcnksIFNlYXJjaFNlcnZpY2UuVklFV19XT1JLQkFTS0VUKTtcbiAgICAgIHNlYXJjaENhc2VzUmVzcG9uc2UucHVzaChxdWVyeSk7XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjYXNlc1Jlc3BvbnNlID0gW107XG4gICAgICAgIHNlYXJjaENhc2VzLmZvckVhY2gocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHMuZm9yRWFjaCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNhc2VzUmVzcG9uc2UucHVzaCh0aGlzLm1hcFJlc3BvbnNlKHJlc3VsdCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxpbmtlZENhc2VzID0gY2FzZXNSZXNwb25zZS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNhc2VSZWZlcmVuY2U6IGl0ZW0uY2FzZVJlZmVyZW5jZSxcbiAgICAgICAgICAgIGNhc2VOYW1lOiBpdGVtLmNhc2VOYW1lLFxuICAgICAgICAgICAgY2FzZVNlcnZpY2U6IGl0ZW0uc2VydmljZSxcbiAgICAgICAgICAgIGNhc2VUeXBlOiBpdGVtLmNhc2VUeXBlLFxuICAgICAgICAgICAgdW5saW5rOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYXNvbnM6IGl0ZW0ucmVhc29ucyAmJiBpdGVtLnJlYXNvbnMubWFwKHJlYXNvbiA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgUmVhc29uOiByZWFzb25cbiAgICAgICAgICAgICAgfSBhcyBMaW5rUmVhc29uO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSBhcyBDYXNlTGluaztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSBudWxsO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB7XG4gICAgICAgICAgaWQ6ICdiYWNrZW5kRXJyb3InLCBtZXNzYWdlOiAnU29tZSBjYXNlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCdcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdGVkSnVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb25zUmVzcG9uc2UgJiZcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uc1Jlc3BvbnNlLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24uaWQpO1xuICAgIGNvbnN0IHNlbGVjdGVkQ2FzZVR5cGUgPSBzZWxlY3RlZEp1cmlzZGljdGlvbiAmJiBzZWxlY3RlZEp1cmlzZGljdGlvbi5jYXNlVHlwZXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMuY2FzZURldGFpbHMuY2FzZV90eXBlLmlkKTtcbiAgICBjb25zdCBzdGF0ZSA9IHNlbGVjdGVkQ2FzZVR5cGUgJiYgc2VsZWN0ZWRDYXNlVHlwZS5zdGF0ZXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGZpZWxkVmFsdWUpO1xuICAgIHN3aXRjaCAoZmllbGROYW1lKSB7XG4gICAgICBjYXNlICdKVVJJU0RJQ1RJT04nOlxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRKdXJpc2RpY3Rpb24gJiYgc2VsZWN0ZWRKdXJpc2RpY3Rpb24uZGVzY3JpcHRpb247XG4gICAgICBjYXNlICdDQVNFX1RZUEUnOlxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRDYXNlVHlwZSAmJiBzZWxlY3RlZENhc2VUeXBlLm5hbWU7XG4gICAgICBjYXNlICdDQVNFX1RZUEVfREVTQ1JJUFRJT04nOlxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRDYXNlVHlwZSAmJiBzZWxlY3RlZENhc2VUeXBlLmRlc2NyaXB0aW9uO1xuICAgICAgY2FzZSAnU1RBVEUnOlxuICAgICAgICByZXR1cm4gc3RhdGUgJiYgc3RhdGUubmFtZSB8fCBmaWVsZFZhbHVlO1xuICAgICAgY2FzZSAnU1RBVEVfREVTQ1JJUFRJT04nOlxuICAgICAgICByZXR1cm4gc3RhdGUgJiYgc3RhdGUuZGVzY3JpcHRpb24gfHwgZmllbGRWYWx1ZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlTmFtZShzZWFyY2hDYXNlc1Jlc3BvbnNlOiBDYXNlVmlldyk6IHN0cmluZyB7XG4gICAgbGV0IGNhc2VOYW1lID0gTGlua2VkQ2FzZXNTZXJ2aWNlLkNBU0VfTkFNRV9NSVNTSU5HX1RFWFQ7XG4gICAgY29uc3QgdGFicyA9IHNlYXJjaENhc2VzUmVzcG9uc2UudGFicy5maWx0ZXIodGFiID0+IHtcbiAgICAgIGNvbnN0IGNhc2VOYW1lSG1jdHNJbnRlcm5hbEZpZWxkID0gdGFiLmZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLmlkID09PSAnY2FzZU5hbWVIbWN0c0ludGVybmFsJyk7XG4gICAgICBpZiAoY2FzZU5hbWVIbWN0c0ludGVybmFsRmllbGQpIHtcbiAgICAgICAgY2FzZU5hbWUgPSBjYXNlTmFtZUhtY3RzSW50ZXJuYWxGaWVsZC52YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2FzZU5hbWU7XG4gIH1cbn1cbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSzFFLE1BQU0sT0FBTyxrQkFBa0I7SUEwQkE7SUFDQTtJQTFCckIsTUFBTSxDQUFVLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0lBRTlELGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLFdBQVcsQ0FBVztJQUN0QixNQUFNLENBQVM7SUFDZixRQUFRLENBQVM7SUFDakIsZUFBZSxHQUFzQixFQUFFLENBQUM7SUFDeEMsV0FBVyxHQUFlLEVBQUUsQ0FBQztJQUM3QixnQkFBZ0IsR0FBZSxFQUFFLENBQUM7SUFDbEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixxQkFBcUIsR0FBbUIsRUFBRSxDQUFDO0lBQzNDLHVCQUF1QixDQUFVO0lBQ2pDLFdBQVcsR0FBb0MsSUFBSSxDQUFDO0lBQ3BELG9CQUFvQixHQUFvQyxJQUFJLENBQUM7SUFDN0QsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUMxQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDdEIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJ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LENBQUMsRUFBRTtZQUNqRCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztnQkFDL0IsUUFBUSxHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzRFQTVKVSxrQkFBa0I7Z0VBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7O2lGQUFsQixrQkFBa0I7Y0FEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcnO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vanVyaXNkaWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEp1cmlzZGljdGlvblNlcnZpY2UsIFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBMb3ZSZWZEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9jb21tb24tZGF0YS1zZXJ2aWNlL2NvbW1vbi1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZUxpbmssIEVTUXVlcnlUeXBlLCBMaW5rUmVhc29uIH0gZnJvbSAnLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExpbmtlZENhc2VzU2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTkFNRV9NSVNTSU5HX1RFWFQgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuXG4gIHB1YmxpYyBjYXNlRmllbGRWYWx1ZSA9IFtdO1xuICBwdWJsaWMgaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlciA9IGZhbHNlO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbGlua0Nhc2VSZWFzb25zOiBMb3ZSZWZEYXRhTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgbGlua2VkQ2FzZXM6IENhc2VMaW5rW10gPSBbXTtcbiAgcHVibGljIGluaXRpYWxDYXNlTGlua3M6IENhc2VMaW5rW10gPSBbXTtcbiAgcHVibGljIGVkaXRNb2RlID0gZmFsc2U7XG4gIHB1YmxpYyBqdXJpc2RpY3Rpb25zUmVzcG9uc2U6IEp1cmlzZGljdGlvbltdID0gW107XG4gIHB1YmxpYyBzZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvcjogYm9vbGVhbjtcbiAgcHVibGljIHNlcnZlckVycm9yOiB7IGlkOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9ID0gbnVsbDtcbiAgcHVibGljIHNlcnZlckxpbmtlZEFwaUVycm9yOiB7IGlkOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9ID0gbnVsbDtcbiAgcHVibGljIGlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBjYXNlSnVyaXNkaWN0aW9uSUQgPSBudWxsO1xuICBwdWJsaWMgc3RvcmVkQ2FzZU51bWJlciA9ICcnO1xuICBwdWJsaWMgY2FtZUZyb21GaW5hbFN0ZXAgPSBmYWxzZTtcbiAgcHVibGljIGhhc05hdmlnYXRlZEluSm91cm5leSA9IGZhbHNlO1xuICBwdWJsaWMgaGFzQ29udGludWVkRnJvbVN0YXJ0ID0gZmFsc2U7XG4gIHB1YmxpYyBjYWNoZWRGaWVsZFZhbHVlcztcbiAgcHVibGljIGluaXRpYWxDYXNlTGlua1JlZnMgPSBbXTtcbiAgcHVibGljIGNhc2VzVG9VbmxpbmsgPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5nZXRKdXJpc2RpY3Rpb25zKCkuc3Vic2NyaWJlKChqdXJpc2RpY3Rpb25zKSA9PiB7XG4gICAgICB0aGlzLmp1cmlzZGljdGlvbnNSZXNwb25zZSA9IGp1cmlzZGljdGlvbnM7XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLnNlcnZlckp1cmlzZGljdGlvbkVycm9yID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBncm91cExpbmtlZENhc2VzQnlDYXNlVHlwZSA9IChhcnJPYmosIGtleSkgPT4ge1xuICAgIHJldHVybiBhcnJPYmoucmVkdWNlKChydiwgeCkgPT4ge1xuICAgICAgKHJ2W3gudmFsdWVba2V5XV0gPSBydlt4LnZhbHVlW2tleV1dIHx8IFtdKS5wdXNoKHgudmFsdWVbJ0Nhc2VSZWZlcmVuY2UnXSk7XG4gICAgICByZXR1cm4gcnY7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdEVsYXN0aWNTZWFyY2hRdWVyeShjYXNlSWRzOiBhbnlbXSwgc2l6ZTogbnVtYmVyKTogRVNRdWVyeVR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICB0ZXJtczoge1xuICAgICAgICAgIHJlZmVyZW5jZTogY2FzZUlkcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzaXplLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVzZXRMaW5rZWRDYXNlRGF0YSgpOiB2b2lkIHtcbiAgICAvL3JlbW92ZSB0aGUgbmV3bHkgYWRkZWQgbGlua2VkIGNhc2UgdXNpbmcgdGhlIGxpbmtlZCBjYXNlXG4gICAgdGhpcy5jYXNlRmllbGRWYWx1ZSA9IFtdO1xuICAgIHRoaXMubGlua2VkQ2FzZXMgPSBbXTtcbiAgICB0aGlzLmluaXRpYWxDYXNlTGlua3MgPSBbXTtcbiAgICB0aGlzLmluaXRpYWxDYXNlTGlua1JlZnMgPSBbXTtcbiAgICB0aGlzLnN0b3JlZENhc2VOdW1iZXIgPSAnJztcbiAgICB0aGlzLmNhbWVGcm9tRmluYWxTdGVwID0gZmFsc2U7XG4gICAgdGhpcy5oYXNOYXZpZ2F0ZWRJbkpvdXJuZXkgPSBmYWxzZTtcbiAgICB0aGlzLmNhc2VEZXRhaWxzID0gbnVsbDtcbiAgICB0aGlzLmhhc0NvbnRpbnVlZEZyb21TdGFydCA9IGZhbHNlO1xuICAgIHRoaXMuY2FzZXNUb1VubGluayA9IFtdO1xuICAgIHRoaXMuY2FjaGVkRmllbGRWYWx1ZXMgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIG1hcFJlc3BvbnNlKGVzU2VhcmNoQ2FzZXNSZXNwb25zZSk6IGFueSB7XG4gICAgY29uc3QgY2FzZUluZm8gPSB0aGlzLmNhc2VGaWVsZFZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlICYmIGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSA9PT0gZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfaWQpO1xuICAgIHJldHVybiBjYXNlSW5mbyAmJiB7XG4gICAgICBjYXNlUmVmZXJlbmNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9pZCxcbiAgICAgIGNhc2VOYW1lOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9maWVsZHMuY2FzZU5hbWVIbWN0c0ludGVybmFsIHx8IExpbmtlZENhc2VzU2VydmljZS5DQVNFX05BTUVfTUlTU0lOR19URVhULFxuICAgICAgY2FzZVR5cGU6IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ0NBU0VfVFlQRScsIGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2ZpZWxkc1snW0NBU0VfVFlQRV0nXSksXG4gICAgICBzZXJ2aWNlOiB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdKVVJJU0RJQ1RJT04nLCBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9maWVsZHNbJ1tKVVJJU0RJQ1RJT05dJ10pLFxuICAgICAgc3RhdGU6IHRoaXMubWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoJ1NUQVRFJywgZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfZmllbGRzWydbU1RBVEVdJ10pLFxuICAgICAgcmVhc29uczogY2FzZUluZm8/LnZhbHVlPy5SZWFzb25Gb3JMaW5rXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hDYXNlc0J5Q2FzZUlkcyhzZWFyY2hDYXNlc1Jlc3BvbnNlOiBhbnlbXSk6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKHNlYXJjaENhc2VzUmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbExpbmtlZENhc2VJbmZvcm1hdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hDYXNlc1Jlc3BvbnNlID0gW107XG4gICAgY29uc3QgbGlua2VkQ2FzZUlkcyA9IHRoaXMuZ3JvdXBMaW5rZWRDYXNlc0J5Q2FzZVR5cGUodGhpcy5jYXNlRmllbGRWYWx1ZSwgJ0Nhc2VUeXBlJyk7XG4gICAgY29uc3QgY2FzZVR5cGVJZCA9IHRoaXMuY2FzZURldGFpbHMuY2FzZV90eXBlLmlkO1xuICAgIE9iamVjdC5rZXlzKGxpbmtlZENhc2VJZHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IGVzUXVlcnkgPSB0aGlzLmNvbnN0cnVjdEVsYXN0aWNTZWFyY2hRdWVyeShsaW5rZWRDYXNlSWRzW2tleV0sIDEwMCk7XG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hDYXNlc0J5SWRzKGNhc2VUeXBlSWQsIGVzUXVlcnksIFNlYXJjaFNlcnZpY2UuVklFV19XT1JLQkFTS0VUKTtcbiAgICAgIHNlYXJjaENhc2VzUmVzcG9uc2UucHVzaChxdWVyeSk7XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjYXNlc1Jlc3BvbnNlID0gW107XG4gICAgICAgIHNlYXJjaENhc2VzLmZvckVhY2gocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHMuZm9yRWFjaCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNhc2VzUmVzcG9uc2UucHVzaCh0aGlzLm1hcFJlc3BvbnNlKHJlc3VsdCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlcyA9IGNhc2VzUmVzcG9uc2UubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXNlUmVmZXJlbmNlOiBpdGVtLmNhc2VSZWZlcmVuY2UsXG4gICAgICAgICAgICBjYXNlTmFtZTogaXRlbS5jYXNlTmFtZSxcbiAgICAgICAgICAgIGNhc2VTZXJ2aWNlOiBpdGVtLnNlcnZpY2UsXG4gICAgICAgICAgICBjYXNlVHlwZTogaXRlbS5jYXNlVHlwZSxcbiAgICAgICAgICAgIHVubGluazogZmFsc2UsXG4gICAgICAgICAgICByZWFzb25zOiBpdGVtLnJlYXNvbnMgJiYgaXRlbS5yZWFzb25zLm1hcChyZWFzb24gPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIFJlYXNvbjogcmVhc29uXG4gICAgICAgICAgICAgIH0gYXMgTGlua1JlYXNvbjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0gYXMgQ2FzZUxpbms7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmluaXRpYWxDYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzO1xuICAgICAgICB0aGlzLnNlcnZlckxpbmtlZEFwaUVycm9yID0gbnVsbDtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLnNlcnZlckxpbmtlZEFwaUVycm9yID0ge1xuICAgICAgICAgIGlkOiAnYmFja2VuZEVycm9yJywgbWVzc2FnZTogJ1NvbWUgY2FzZSBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZSBtb21lbnQnXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoZmllbGROYW1lLCBmaWVsZFZhbHVlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZEp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uc1Jlc3BvbnNlICYmXG4gICAgICB0aGlzLmp1cmlzZGljdGlvbnNSZXNwb25zZS5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkKTtcbiAgICBjb25zdCBzZWxlY3RlZENhc2VUeXBlID0gc2VsZWN0ZWRKdXJpc2RpY3Rpb24gJiYgc2VsZWN0ZWRKdXJpc2RpY3Rpb24uY2FzZVR5cGVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5pZCk7XG4gICAgY29uc3Qgc3RhdGUgPSBzZWxlY3RlZENhc2VUeXBlICYmIHNlbGVjdGVkQ2FzZVR5cGUuc3RhdGVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBmaWVsZFZhbHVlKTtcbiAgICBzd2l0Y2ggKGZpZWxkTmFtZSkge1xuICAgICAgY2FzZSAnSlVSSVNESUNUSU9OJzpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkSnVyaXNkaWN0aW9uICYmIHNlbGVjdGVkSnVyaXNkaWN0aW9uLmRlc2NyaXB0aW9uO1xuICAgICAgY2FzZSAnQ0FTRV9UWVBFJzpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2FzZVR5cGUgJiYgc2VsZWN0ZWRDYXNlVHlwZS5uYW1lO1xuICAgICAgY2FzZSAnQ0FTRV9UWVBFX0RFU0NSSVBUSU9OJzpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2FzZVR5cGUgJiYgc2VsZWN0ZWRDYXNlVHlwZS5kZXNjcmlwdGlvbjtcbiAgICAgIGNhc2UgJ1NUQVRFJzpcbiAgICAgICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLm5hbWUgfHwgZmllbGRWYWx1ZTtcbiAgICAgIGNhc2UgJ1NUQVRFX0RFU0NSSVBUSU9OJzpcbiAgICAgICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLmRlc2NyaXB0aW9uIHx8IGZpZWxkVmFsdWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZU5hbWUoc2VhcmNoQ2FzZXNSZXNwb25zZTogQ2FzZVZpZXcpOiBzdHJpbmcge1xuICAgIGxldCBjYXNlTmFtZSA9IExpbmtlZENhc2VzU2VydmljZS5DQVNFX05BTUVfTUlTU0lOR19URVhUO1xuICAgIGNvbnN0IHRhYnMgPSBzZWFyY2hDYXNlc1Jlc3BvbnNlLnRhYnMuZmlsdGVyKHRhYiA9PiB7XG4gICAgICBjb25zdCBjYXNlTmFtZUhtY3RzSW50ZXJuYWxGaWVsZCA9IHRhYi5maWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VOYW1lSG1jdHNJbnRlcm5hbCcpO1xuICAgICAgaWYgKGNhc2VOYW1lSG1jdHNJbnRlcm5hbEZpZWxkKSB7XG4gICAgICAgIGNhc2VOYW1lID0gY2FzZU5hbWVIbWN0c0ludGVybmFsRmllbGQudmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNhc2VOYW1lO1xuICB9XG59XG4iXX0=