@hmcts/ccd-case-ui-toolkit 7.1.32-srt-fix-task-completion-2 → 7.1.32-ungrey-back-button-2

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 (127) hide show
  1. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +15 -36
  2. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +110 -33
  3. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +70 -43
  4. package/esm2022/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.mjs +1 -13
  5. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +7 -4
  6. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -3
  7. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +3 -4
  8. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +3 -1
  9. package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +3 -4
  10. package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +4 -5
  11. package/esm2022/lib/shared/components/case-history/case-history.component.mjs +9 -8
  12. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +14 -4
  13. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +13 -10
  14. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +3 -5
  15. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +96 -0
  16. package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +82 -0
  17. package/esm2022/lib/shared/components/palette/base-field/index.mjs +3 -1
  18. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +21 -21
  19. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
  20. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +25 -22
  21. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +82 -35
  22. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +32 -29
  23. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +33 -28
  24. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +174 -71
  25. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +28 -28
  26. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +124 -105
  27. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +31 -4
  28. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +139 -33
  29. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +25 -66
  30. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +39 -22
  31. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +19 -7
  32. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +55 -45
  33. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +13 -9
  34. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +81 -44
  35. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +22 -2
  36. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +109 -30
  37. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
  38. package/esm2022/lib/shared/domain/index.mjs +2 -1
  39. package/esm2022/lib/shared/domain/journey/index.mjs +3 -0
  40. package/esm2022/lib/shared/domain/journey/journey-instigator.model.mjs +2 -0
  41. package/esm2022/lib/shared/domain/journey/journey.model.mjs +2 -0
  42. package/esm2022/lib/shared/domain/work-allocation/Task.mjs +1 -1
  43. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
  44. package/esm2022/lib/shared/services/index.mjs +2 -1
  45. package/esm2022/lib/shared/services/journey/index.mjs +2 -0
  46. package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +117 -0
  47. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +2127 -1340
  48. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  49. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +2 -6
  50. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  51. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +17 -3
  52. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  53. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +10 -2
  54. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  55. package/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.d.ts +0 -2
  56. package/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.d.ts.map +1 -1
  57. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  58. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  59. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  60. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +1 -0
  61. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -1
  62. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  63. package/lib/shared/components/case-editor/services/event-completion-state-machine.service.d.ts.map +1 -1
  64. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +2 -1
  65. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  66. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -0
  67. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  68. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  69. package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts +30 -0
  70. package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts.map +1 -0
  71. package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts +27 -0
  72. package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts.map +1 -0
  73. package/lib/shared/components/palette/base-field/index.d.ts +2 -0
  74. package/lib/shared/components/palette/base-field/index.d.ts.map +1 -1
  75. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +4 -2
  76. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  77. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +4 -2
  78. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -1
  79. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +13 -4
  80. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  81. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +6 -3
  82. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  83. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +5 -2
  84. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  85. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +21 -6
  86. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  87. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +4 -2
  88. 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
  89. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +7 -3
  90. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  91. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +1 -0
  92. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  93. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +16 -6
  94. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  95. package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts +1 -5
  96. package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts.map +1 -1
  97. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +6 -4
  98. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
  99. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +6 -2
  100. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -1
  101. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +6 -3
  102. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
  103. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +5 -2
  104. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
  105. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +9 -3
  106. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
  107. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +7 -0
  108. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
  109. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +10 -3
  110. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
  111. package/lib/shared/domain/index.d.ts +1 -0
  112. package/lib/shared/domain/index.d.ts.map +1 -1
  113. package/lib/shared/domain/journey/index.d.ts +3 -0
  114. package/lib/shared/domain/journey/index.d.ts.map +1 -0
  115. package/lib/shared/domain/journey/journey-instigator.model.d.ts +5 -0
  116. package/lib/shared/domain/journey/journey-instigator.model.d.ts.map +1 -0
  117. package/lib/shared/domain/journey/journey.model.d.ts +19 -0
  118. package/lib/shared/domain/journey/journey.model.d.ts.map +1 -0
  119. package/lib/shared/domain/work-allocation/Task.d.ts +0 -1
  120. package/lib/shared/domain/work-allocation/Task.d.ts.map +1 -1
  121. package/lib/shared/services/index.d.ts +1 -0
  122. package/lib/shared/services/index.d.ts.map +1 -1
  123. package/lib/shared/services/journey/index.d.ts +2 -0
  124. package/lib/shared/services/journey/index.d.ts.map +1 -0
  125. package/lib/shared/services/journey/multipage-component-state.service.d.ts +26 -0
  126. package/lib/shared/services/journey/multipage-component-state.service.d.ts.map +1 -0
  127. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { StateMachine } from '@edium/fsm';
3
3
  import { EventStartStates } from '../models';
4
- import { CaseEditComponent } from '../../case-editor';
5
4
  import * as i0 from "@angular/core";
6
5
  const EVENT_STATE_MACHINE = 'EVENT STATE MACHINE';
7
6
  export class EventStartStateMachineService {
@@ -141,6 +140,7 @@ export class EventStartStateMachineService {
141
140
  }
142
141
  }
143
142
  };
143
+ context.sessionStorageService.setItem('clientContext', JSON.stringify(clientContext));
144
144
  let userInfo;
145
145
  const userInfoStr = context.sessionStorageService.getItem('userDetails');
146
146
  if (userInfoStr) {
@@ -154,9 +154,7 @@ export class EventStartStateMachineService {
154
154
  taskId: task.id,
155
155
  createdTimestamp: Date.now()
156
156
  };
157
- context.sessionStorageService.setItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO, JSON.stringify(taskEventCompletionInfo));
158
- // EXUI-2668 - Only add client context when taskEventCompletionInfo is set - stops auto completing incorrect tasks
159
- context.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(clientContext));
157
+ context.sessionStorageService.setItem('taskEventCompletionInfo', JSON.stringify(taskEventCompletionInfo));
160
158
  // Allow user to perform the event
161
159
  context.router.navigate([`/cases/case-details/${context.caseId}/trigger/${context.eventId}`], { relativeTo: context.route });
162
160
  }
@@ -204,4 +202,4 @@ export class EventStartStateMachineService {
204
202
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventStartStateMachineService, [{
205
203
  type: Injectable
206
204
  }], null, null); })();
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQtc3RhdGUtbWFjaGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L3NlcnZpY2VzL2V2ZW50LXN0YXJ0LXN0YXRlLW1hY2hpbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBUyxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFpQyxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFdEQsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2pDLDBCQUEwQixDQUFRO0lBQ2xDLFdBQVcsQ0FBUTtJQUNuQixZQUFZLENBQVE7SUFDcEIsbUJBQW1CLENBQVE7SUFDM0IsdUJBQXVCLENBQVE7SUFDL0IsMEJBQTBCLENBQVE7SUFDbEMsZ0NBQWdDLENBQVE7SUFDeEMsbUJBQW1CLENBQVE7SUFDM0IsVUFBVSxDQUFRO0lBRWxCLHNCQUFzQixDQUFDLE9BQXNDO1FBQ2xFLE9BQU8sSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxZQUEwQjtRQUM1QyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQ3hELGdCQUFnQixDQUFDLHdCQUF3QixFQUN6QyxLQUFLLEVBQ0wsSUFBSSxDQUFDLHdDQUF3QyxDQUM5QyxDQUFDO1FBRUYsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxXQUFX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Q0FBQztJQUVNLDJDQUEyQztRQUNoRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUMzQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU0saURBQWlEO1FBQ3RELElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQ2pELGdCQUFnQixDQUFDLEtBQUssRUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7dUZBalNVLDZCQUE2QjtnRUFBN0IsNkJBQTZCLFdBQTdCLDZCQUE2Qjs7aUZBQTdCLDZCQUE2QjtjQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0YXRlLCBTdGF0ZU1hY2hpbmUgfSBmcm9tICdAZWRpdW0vZnNtJztcbmltcG9ydCB7IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0LCBFdmVudFN0YXJ0U3RhdGVzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhc2tFdmVudENvbXBsZXRpb25JbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3VzZXIvdXNlci1pbmZvLm1vZGVsJztcbmltcG9ydCB7IENhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuXG5jb25zdCBFVkVOVF9TVEFURV9NQUNISU5FID0gJ0VWRU5UIFNUQVRFIE1BQ0hJTkUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRTdGFydFN0YXRlTWFjaGluZVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3M6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVOb1Rhc2s6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVPbmVUYXNrOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlT25lT3JNb3JlVGFza3M6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVUYXNrQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVUYXNrVW5hc3NpZ25lZDogU3RhdGU7XG4gIHB1YmxpYyBzdGF0ZUZpbmFsOiBTdGF0ZTtcblxuICBwdWJsaWMgaW5pdGlhbGlzZVN0YXRlTWFjaGluZShjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IFN0YXRlTWFjaGluZSB7XG4gICAgcmV0dXJuIG5ldyBTdGF0ZU1hY2hpbmUoRVZFTlRfU1RBVEVfTUFDSElORSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU3RhdGVzKHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbCBzdGF0ZVxuICAgIHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkNIRUNLX0ZPUl9NQVRDSElOR19UQVNLUyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzXG4gICAgKTtcblxuICAgIC8vIFN0YXRlcyBiYXNlZCBvbiBudW1iZXIgb2YgdGFza3MgYXZhaWxhYmxlXG4gICAgdGhpcy5zdGF0ZU5vVGFzayA9IHN0YXRlTWFjaGluZS5jcmVhdGVTdGF0ZShcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTk9fVEFTSyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlTm9UYXNrXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlT25lT3JNb3JlVGFza3MgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk9ORV9PUl9NT1JFX1RBU0tTLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVPbmVPck1vcmVUYXNrc1xuICAgICk7XG5cbiAgICAvLyBTdGF0ZXMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWQgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlVGFza1VuQXNzaWduZWRcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfVEFTS19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICAgIHRoaXMuc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk1VTFRJUExFX1RBU0tTX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlclxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgZmluYWwgc3RhdGUsIHRoZSBzZWNvbmQgcGFyYW0gaXNDb21wbGV0ZSBpcyBzZXQgdG8gdHJ1ZSB0byBtYWtlIHN1cmUgc3RhdGUgbWFjaGluZSBmaW5pc2hlZCBydW5uaW5nXG4gICAgdGhpcy5zdGF0ZUZpbmFsID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRydWUsXG4gICAgICB0aGlzLmZpbmFsQWN0aW9uXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9ucygpOiB2b2lkIHtcbiAgICAvLyBJbml0aWFsIHRyYW5zaXRpb25cbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MoKTtcblxuICAgIC8vIFRyYW5zaXRpb25zIGJhc2VkIG9uIG51bWJlciBvZiB0YXNrcyBhdmFpbGFibGVcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVOb1Rhc2soKTtcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVPck1vcmVUYXNrcygpO1xuXG4gICAgLy8gVHJhbnNpdGlvbnMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrVW5hc3NpZ25lZCgpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcigpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlcigpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcigpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0U3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lKTogdm9pZCB7XG4gICAgc3RhdGVNYWNoaW5lLnN0YXJ0KHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgZW50cnkgYWN0aW9uIGZvciBzdGF0ZSBjaGVjayBmb3IgbWF0Y2hpbmcgdGFza3MsIGRlY2lkZWQgYmFzZWQgb24gdGhlIG51bWJlciBvZiB0YXNrc1xuICAgKi9cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHRhc2tDb3VudCA9IGNvbnRleHQgJiYgY29udGV4dC50YXNrcyA/IGNvbnRleHQudGFza3MubGVuZ3RoIDogMDtcblxuICAgIGlmICh0YXNrQ291bnQgPT09IDApIHtcbiAgICAgIC8vIFRyaWdnZXIgc3RhdGUgbm8gdGFza1xuICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk5PX1RBU0spO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcmlnZ2VyIHN0YXRlIG9uZSBvciBtb3JlIHRhc2tzXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX09SX01PUkVfVEFTS1MpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlTm9UYXNrKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG4gICAgLy8gTmF2aWdhdGUgdG8gbm8gdGFza3MgYXZhaWxhYmxlIGVycm9yIHBhZ2VcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vbm8tdGFza3MtYXZhaWxhYmxlYF0sIHsgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlT25lT3JNb3JlVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICB9XG5cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuTVVMVElQTEVfVEFTS1NfQVNTSUdORURfVE9fVVNFUik7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gR2V0IG51bWJlciBvZiB0YXNrcyBhc3NpZ25lZCB0byB1c2VyXG4gICAgY29uc3QgdXNlckluZm9TdHIgPSBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgY29uc3QgdGFza3NBc3NpZ25lZFRvVXNlciA9IGNvbnRleHQudGFza3MuZmlsdGVyKHggPT5cbiAgICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8uaWQgfHwgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8udWlkXG4gICAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBpbml0aWF0ZWQgdGhlIGV2ZW50IGZyb20gdGFzayB0YWJcbiAgICBjb25zdCBpc0V2ZW50SW5pdGlhdGVkRnJvbVRhc2tUYWIgPSBjb250ZXh0LnRhc2tJZCAhPT0gdW5kZWZpbmVkICYmIHRhc2tzQXNzaWduZWRUb1VzZXIuZmluZEluZGV4KHggPT4geC5pZCA9PT0gY29udGV4dC50YXNrSWQpID4gLTE7XG5cbiAgICBpZiAoaXNFdmVudEluaXRpYXRlZEZyb21UYXNrVGFiKSB7XG4gICAgICAvLyBVc2VyIGluaXRpYXRlZCBldmVudCBmcm9tIHRhc2sgdGFiXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX1RBU0tfQVNTSUdORURfVE9fVVNFUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVzZXIgaW5pdGlhdGVkIGV2ZW50IGZyb20gZHJvcGRvd25cbiAgICAgIHN3aXRjaCAodGFza3NBc3NpZ25lZFRvVXNlci5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIC8vIE5vIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgdGFzayB1bmFzc2lnbmVkXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAvLyBPbmUgdGFzayBhc3NpZ25lZCB0byB1c2VyXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk9ORV9UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIE11bHRpcGxlIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgbXVsdGlwbGUgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgICAgICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5NVUxUSVBMRV9UQVNLU19BU1NJR05FRF9UT19VU0VSKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tVbkFzc2lnbmVkKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBsZXQgbmF2aWdhdGlvblVSTCA9ICcnO1xuICAgIGxldCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG5cbiAgICBpZiAoY29udGV4dC50YXNrc1swXS5hc3NpZ25lZSkge1xuICAgICAgLy8gVGFzayBpcyBhc3NpZ25lZCB0byBzb21lIG90aGVyIHVzZXIsIG5hdmlnYXRlIHRvIHRhc2sgYXNzaWduZWQgZXJyb3IgcGFnZVxuICAgICAgbmF2aWdhdGlvblVSTCA9IGAvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y29udGV4dC5jYXNlSWR9L3Rhc2stYXNzaWduZWRgO1xuICAgICAgdGhlUXVlcnlQYXJhbXMgPSBjb250ZXh0LnRhc2tzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIGlzIHVuYXNzaWduZWQsIG5hdmlnYXRlIHRvIHRhc2sgdW5hc3NpZ25lZCBlcnJvciBwYWdlXG4gICAgICBuYXZpZ2F0aW9uVVJMID0gYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vdGFzay11bmFzc2lnbmVkYDtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG4gICAgLy8gTmF2aWdhdGVcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYCR7bmF2aWdhdGlvblVSTH1gXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IGNvbnRleHQucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gVHJpZ2dlciBmaW5hbCBzdGF0ZSB0byBjb21wbGV0ZSBwcm9jZXNzaW5nIG9mIHN0YXRlIG1hY2hpbmVcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwpO1xuXG4gICAgLy8gR2V0IHRhc2sgYXNzaWduZWQgdG8gdXNlclxuICAgIGxldCB0YXNrID0gY29udGV4dC50YXNrcy5maW5kKHggPT4geC5pZCA9PT0gY29udGV4dC50YXNrSWQpO1xuICAgIGlmICghdGFzaykge1xuICAgICAgdGFzayA9IGNvbnRleHQudGFza3NbMF07XG4gICAgfVxuXG4gICAgY29uc3QgdGFza1N0ciA9IEpTT04uc3RyaW5naWZ5KHRhc2spO1xuICAgIGNvbnNvbGUubG9nKCdlbnRyeUFjdGlvbkZvclN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyOiBzZXR0aW5nIGNsaWVudCBjb250ZXh0IHRhc2tfZGF0YSB0byAnICsgdGFza1N0cik7XG4gICAgLy8gU3RvcmUgdGFzayB0byBzZXNzaW9uXG4gICAgY29uc3QgY3VycmVudExhbmd1YWdlID0gY29udGV4dC5jb29raWVTZXJ2aWNlLmdldENvb2tpZSgnZXh1aS1wcmVmZXJyZWQtbGFuZ3VhZ2UnKTtcbiAgICBjb25zdCBjbGllbnRDb250ZXh0ID0ge1xuICAgICAgY2xpZW50X2NvbnRleHQ6IHtcbiAgICAgICAgdXNlcl90YXNrOiB7XG4gICAgICAgICAgdGFza19kYXRhOiB0YXNrLFxuICAgICAgICAgIGNvbXBsZXRlX3Rhc2s6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgIGxhbmd1YWdlOiBjdXJyZW50TGFuZ3VhZ2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IGNvbnRleHQuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgIH1cbiAgICAvLyBTdG9yZSB0YXNrIHRvIHNlc3Npb25cbiAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8gPSB7XG4gICAgICBjYXNlSWQ6IGNvbnRleHQuY2FzZUlkLFxuICAgICAgZXZlbnRJZDogY29udGV4dC5ldmVudElkLFxuICAgICAgdXNlcklkOiB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkLFxuICAgICAgdGFza0lkOiB0YXNrLmlkLFxuICAgICAgY3JlYXRlZFRpbWVzdGFtcDogRGF0ZS5ub3coKX07XG4gICAgY29udGV4dC5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5UQVNLX0VWRU5UX0NPTVBMRVRJT05fSU5GTywgSlNPTi5zdHJpbmdpZnkodGFza0V2ZW50Q29tcGxldGlvbkluZm8pKTtcbiAgICAvLyBFWFVJLTI2NjggLSBPbmx5IGFkZCBjbGllbnQgY29udGV4dCB3aGVuIHRhc2tFdmVudENvbXBsZXRpb25JbmZvIGlzIHNldCAtIHN0b3BzIGF1dG8gY29tcGxldGluZyBpbmNvcnJlY3QgdGFza3NcbiAgICBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhULCBKU09OLnN0cmluZ2lmeShjbGllbnRDb250ZXh0KSk7XG4gICAgLy8gQWxsb3cgdXNlciB0byBwZXJmb3JtIHRoZSBldmVudFxuICAgIGNvbnRleHQucm91dGVyLm5hdmlnYXRlKFtgL2Nhc2VzL2Nhc2UtZGV0YWlscy8ke2NvbnRleHQuY2FzZUlkfS90cmlnZ2VyLyR7Y29udGV4dC5ldmVudElkfWBdLFxuICAgICAgeyByZWxhdGl2ZVRvOiBjb250ZXh0LnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIoc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIC8vIFRyaWdnZXIgZmluYWwgc3RhdGUgdG8gY29tcGxldGUgcHJvY2Vzc2luZyBvZiBzdGF0ZSBtYWNoaW5lXG4gICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLkZJTkFMKTtcbiAgICAvLyBOYXZpZ2F0ZSB0byBtdWx0aXBsZSB0YXNrcyBleGlzdCBlcnJvciBwYWdlXG4gICAgY29udGV4dC5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y29udGV4dC5jYXNlSWR9L211bHRpcGxlLXRhc2tzLWV4aXN0YF0sIHsgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbEFjdGlvbihzdGF0ZTogU3RhdGUpOiB2b2lkIHtcbiAgICAvLyBGaW5hbCBhY3Rpb25zIGNhbiBiZSBwZXJmb3JtZWQgaGVyZSwgdGhlIHN0YXRlIG1hY2hpbmUgZmluaXNoZWQgcnVubmluZ1xuICAgIC8vIGNvbnNvbGUubG9nKCdGSU5BTCcsIHN0YXRlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZUNoZWNrRm9yTWF0Y2hpbmdUYXNrcygpOiB2b2lkIHtcbiAgICAvLyBObyB0YXNrc1xuICAgIHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTk9fVEFTSyxcbiAgICAgIHRoaXMuc3RhdGVOb1Rhc2tcbiAgICApO1xuICAgIC8vIE9uZSB0YXNrXG4gICAgdGhpcy5zdGF0ZUNoZWNrRm9yTWF0Y2hpbmdUYXNrcy5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfT1JfTU9SRV9UQVNLUyxcbiAgICAgIHRoaXMuc3RhdGVPbmVPck1vcmVUYXNrc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU5vVGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlTm9UYXNrLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlT25lT3JNb3JlVGFza3MoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZU9uZU9yTW9yZVRhc2tzLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrVW5hc3NpZ25lZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWQuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrQXNzaWduZWRUb1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfVEFTS19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgdGhpcy5zdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlclxuICAgICk7XG4gICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5UQVNLX1VOQVNTSUdORUQsXG4gICAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWRcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTVVMVElQTEVfVEFTS1NfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIHRoaXMuc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRoaXMuc3RhdGVGaW5hbFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlTXVsdGlwbGVUYXNrc0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxufVxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQtc3RhdGUtbWFjaGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L3NlcnZpY2VzL2V2ZW50LXN0YXJ0LXN0YXRlLW1hY2hpbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBUyxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFpQyxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFJNUUsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2pDLDBCQUEwQixDQUFRO0lBQ2xDLFdBQVcsQ0FBUTtJQUNuQixZQUFZLENBQVE7SUFDcEIsbUJBQW1CLENBQVE7SUFDM0IsdUJBQXVCLENBQVE7SUFDL0IsMEJBQTBCLENBQVE7SUFDbEMsZ0NBQWdDLENBQVE7SUFDeEMsbUJBQW1CLENBQVE7SUFDM0IsVUFBVSxDQUFRO0lBRWxCLHNCQUFzQixDQUFDLE9BQXNDO1FBQ2xFLE9BQU8sSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxZQUEwQjtRQUM1QyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQ3hELGdCQUFnQixDQUFDLHdCQUF3QixFQUN6QyxLQUFLLEVBQ0wsSUFBSSxDQUFDLHdDQUF3QyxDQUM5QyxDQUFDO1FBRUYsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FDekMsZ0JBQWdCLENBQUMsT0FBTyxF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SSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFTSxpREFBaUQ7UUFDdEQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLGFBQWEsQ0FDakQsZ0JBQWdCLENBQUMsS0FBSyxFQUN0QixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQzt1RkFoU1UsNkJBQTZCO2dFQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCOztpRkFBN0IsNkJBQTZCO2NBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RhdGUsIFN0YXRlTWFjaGluZSB9IGZyb20gJ0BlZGl1bS9mc20nO1xuaW1wb3J0IHsgRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQsIEV2ZW50U3RhcnRTdGF0ZXMgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFza0V2ZW50Q29tcGxldGlvbkluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vd29yay1hbGxvY2F0aW9uL1Rhc2snO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vdXNlci91c2VyLWluZm8ubW9kZWwnO1xuXG5jb25zdCBFVkVOVF9TVEFURV9NQUNISU5FID0gJ0VWRU5UIFNUQVRFIE1BQ0hJTkUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRTdGFydFN0YXRlTWFjaGluZVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3M6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVOb1Rhc2s6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVPbmVUYXNrOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlT25lT3JNb3JlVGFza3M6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVUYXNrQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVUYXNrVW5hc3NpZ25lZDogU3RhdGU7XG4gIHB1YmxpYyBzdGF0ZUZpbmFsOiBTdGF0ZTtcblxuICBwdWJsaWMgaW5pdGlhbGlzZVN0YXRlTWFjaGluZShjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IFN0YXRlTWFjaGluZSB7XG4gICAgcmV0dXJuIG5ldyBTdGF0ZU1hY2hpbmUoRVZFTlRfU1RBVEVfTUFDSElORSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU3RhdGVzKHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbCBzdGF0ZVxuICAgIHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkNIRUNLX0ZPUl9NQVRDSElOR19UQVNLUyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzXG4gICAgKTtcblxuICAgIC8vIFN0YXRlcyBiYXNlZCBvbiBudW1iZXIgb2YgdGFza3MgYXZhaWxhYmxlXG4gICAgdGhpcy5zdGF0ZU5vVGFzayA9IHN0YXRlTWFjaGluZS5jcmVhdGVTdGF0ZShcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTk9fVEFTSyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlTm9UYXNrXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlT25lT3JNb3JlVGFza3MgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk9ORV9PUl9NT1JFX1RBU0tTLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVPbmVPck1vcmVUYXNrc1xuICAgICk7XG5cbiAgICAvLyBTdGF0ZXMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWQgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlVGFza1VuQXNzaWduZWRcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfVEFTS19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICAgIHRoaXMuc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk1VTFRJUExFX1RBU0tTX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlclxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgZmluYWwgc3RhdGUsIHRoZSBzZWNvbmQgcGFyYW0gaXNDb21wbGV0ZSBpcyBzZXQgdG8gdHJ1ZSB0byBtYWtlIHN1cmUgc3RhdGUgbWFjaGluZSBmaW5pc2hlZCBydW5uaW5nXG4gICAgdGhpcy5zdGF0ZUZpbmFsID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRydWUsXG4gICAgICB0aGlzLmZpbmFsQWN0aW9uXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9ucygpOiB2b2lkIHtcbiAgICAvLyBJbml0aWFsIHRyYW5zaXRpb25cbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MoKTtcblxuICAgIC8vIFRyYW5zaXRpb25zIGJhc2VkIG9uIG51bWJlciBvZiB0YXNrcyBhdmFpbGFibGVcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVOb1Rhc2soKTtcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVPck1vcmVUYXNrcygpO1xuXG4gICAgLy8gVHJhbnNpdGlvbnMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrVW5hc3NpZ25lZCgpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcigpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlcigpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcigpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0U3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lKTogdm9pZCB7XG4gICAgc3RhdGVNYWNoaW5lLnN0YXJ0KHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgZW50cnkgYWN0aW9uIGZvciBzdGF0ZSBjaGVjayBmb3IgbWF0Y2hpbmcgdGFza3MsIGRlY2lkZWQgYmFzZWQgb24gdGhlIG51bWJlciBvZiB0YXNrc1xuICAgKi9cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHRhc2tDb3VudCA9IGNvbnRleHQgJiYgY29udGV4dC50YXNrcyA/IGNvbnRleHQudGFza3MubGVuZ3RoIDogMDtcblxuICAgIGlmICh0YXNrQ291bnQgPT09IDApIHtcbiAgICAgIC8vIFRyaWdnZXIgc3RhdGUgbm8gdGFza1xuICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk5PX1RBU0spO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcmlnZ2VyIHN0YXRlIG9uZSBvciBtb3JlIHRhc2tzXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX09SX01PUkVfVEFTS1MpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlTm9UYXNrKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG4gICAgLy8gTmF2aWdhdGUgdG8gbm8gdGFza3MgYXZhaWxhYmxlIGVycm9yIHBhZ2VcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vbm8tdGFza3MtYXZhaWxhYmxlYF0sIHsgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlT25lT3JNb3JlVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICB9XG5cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuTVVMVElQTEVfVEFTS1NfQVNTSUdORURfVE9fVVNFUik7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gR2V0IG51bWJlciBvZiB0YXNrcyBhc3NpZ25lZCB0byB1c2VyXG4gICAgY29uc3QgdXNlckluZm9TdHIgPSBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgY29uc3QgdGFza3NBc3NpZ25lZFRvVXNlciA9IGNvbnRleHQudGFza3MuZmlsdGVyKHggPT5cbiAgICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8uaWQgfHwgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8udWlkXG4gICAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBpbml0aWF0ZWQgdGhlIGV2ZW50IGZyb20gdGFzayB0YWJcbiAgICBjb25zdCBpc0V2ZW50SW5pdGlhdGVkRnJvbVRhc2tUYWIgPSBjb250ZXh0LnRhc2tJZCAhPT0gdW5kZWZpbmVkICYmIHRhc2tzQXNzaWduZWRUb1VzZXIuZmluZEluZGV4KHggPT4geC5pZCA9PT0gY29udGV4dC50YXNrSWQpID4gLTE7XG5cbiAgICBpZiAoaXNFdmVudEluaXRpYXRlZEZyb21UYXNrVGFiKSB7XG4gICAgICAvLyBVc2VyIGluaXRpYXRlZCBldmVudCBmcm9tIHRhc2sgdGFiXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX1RBU0tfQVNTSUdORURfVE9fVVNFUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVzZXIgaW5pdGlhdGVkIGV2ZW50IGZyb20gZHJvcGRvd25cbiAgICAgIHN3aXRjaCAodGFza3NBc3NpZ25lZFRvVXNlci5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIC8vIE5vIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgdGFzayB1bmFzc2lnbmVkXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAvLyBPbmUgdGFzayBhc3NpZ25lZCB0byB1c2VyXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk9ORV9UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIE11bHRpcGxlIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgbXVsdGlwbGUgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgICAgICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5NVUxUSVBMRV9UQVNLU19BU1NJR05FRF9UT19VU0VSKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tVbkFzc2lnbmVkKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBsZXQgbmF2aWdhdGlvblVSTCA9ICcnO1xuICAgIGxldCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG5cbiAgICBpZiAoY29udGV4dC50YXNrc1swXS5hc3NpZ25lZSkge1xuICAgICAgLy8gVGFzayBpcyBhc3NpZ25lZCB0byBzb21lIG90aGVyIHVzZXIsIG5hdmlnYXRlIHRvIHRhc2sgYXNzaWduZWQgZXJyb3IgcGFnZVxuICAgICAgbmF2aWdhdGlvblVSTCA9IGAvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y29udGV4dC5jYXNlSWR9L3Rhc2stYXNzaWduZWRgO1xuICAgICAgdGhlUXVlcnlQYXJhbXMgPSBjb250ZXh0LnRhc2tzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIGlzIHVuYXNzaWduZWQsIG5hdmlnYXRlIHRvIHRhc2sgdW5hc3NpZ25lZCBlcnJvciBwYWdlXG4gICAgICBuYXZpZ2F0aW9uVVJMID0gYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vdGFzay11bmFzc2lnbmVkYDtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG4gICAgLy8gTmF2aWdhdGVcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYCR7bmF2aWdhdGlvblVSTH1gXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IGNvbnRleHQucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gVHJpZ2dlciBmaW5hbCBzdGF0ZSB0byBjb21wbGV0ZSBwcm9jZXNzaW5nIG9mIHN0YXRlIG1hY2hpbmVcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwpO1xuXG4gICAgLy8gR2V0IHRhc2sgYXNzaWduZWQgdG8gdXNlclxuICAgIGxldCB0YXNrID0gY29udGV4dC50YXNrcy5maW5kKHggPT4geC5pZCA9PT0gY29udGV4dC50YXNrSWQpO1xuICAgIGlmICghdGFzaykge1xuICAgICAgdGFzayA9IGNvbnRleHQudGFza3NbMF07XG4gICAgfVxuXG4gICAgY29uc3QgdGFza1N0ciA9IEpTT04uc3RyaW5naWZ5KHRhc2spO1xuICAgIGNvbnNvbGUubG9nKCdlbnRyeUFjdGlvbkZvclN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyOiBzZXR0aW5nIGNsaWVudCBjb250ZXh0IHRhc2tfZGF0YSB0byAnICsgdGFza1N0cik7XG4gICAgLy8gU3RvcmUgdGFzayB0byBzZXNzaW9uXG4gICAgY29uc3QgY3VycmVudExhbmd1YWdlID0gY29udGV4dC5jb29raWVTZXJ2aWNlLmdldENvb2tpZSgnZXh1aS1wcmVmZXJyZWQtbGFuZ3VhZ2UnKTtcbiAgICBjb25zdCBjbGllbnRDb250ZXh0ID0ge1xuICAgICAgY2xpZW50X2NvbnRleHQ6IHtcbiAgICAgICAgdXNlcl90YXNrOiB7XG4gICAgICAgICAgdGFza19kYXRhOiB0YXNrLFxuICAgICAgICAgIGNvbXBsZXRlX3Rhc2s6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgIGxhbmd1YWdlOiBjdXJyZW50TGFuZ3VhZ2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgY29udGV4dC5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnY2xpZW50Q29udGV4dCcsIEpTT04uc3RyaW5naWZ5KGNsaWVudENvbnRleHQpKTtcbiAgICBsZXQgdXNlckluZm86IFVzZXJJbmZvO1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gY29udGV4dC5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuICAgIC8vIFN0b3JlIHRhc2sgdG8gc2Vzc2lvblxuICAgIGNvbnN0IHRhc2tFdmVudENvbXBsZXRpb25JbmZvOiBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IHtcbiAgICAgIGNhc2VJZDogY29udGV4dC5jYXNlSWQsXG4gICAgICBldmVudElkOiBjb250ZXh0LmV2ZW50SWQsXG4gICAgICB1c2VySWQ6IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQsXG4gICAgICB0YXNrSWQ6IHRhc2suaWQsXG4gICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKCd0YXNrRXZlbnRDb21wbGV0aW9uSW5mbycsIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgLy8gQWxsb3cgdXNlciB0byBwZXJmb3JtIHRoZSBldmVudFxuICAgIGNvbnRleHQucm91dGVyLm5hdmlnYXRlKFtgL2Nhc2VzL2Nhc2UtZGV0YWlscy8ke2NvbnRleHQuY2FzZUlkfS90cmlnZ2VyLyR7Y29udGV4dC5ldmVudElkfWBdLFxuICAgICAgeyByZWxhdGl2ZVRvOiBjb250ZXh0LnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIoc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIC8vIFRyaWdnZXIgZmluYWwgc3RhdGUgdG8gY29tcGxldGUgcHJvY2Vzc2luZyBvZiBzdGF0ZSBtYWNoaW5lXG4gICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLkZJTkFMKTtcbiAgICAvLyBOYXZpZ2F0ZSB0byBtdWx0aXBsZSB0YXNrcyBleGlzdCBlcnJvciBwYWdlXG4gICAgY29udGV4dC5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y29udGV4dC5jYXNlSWR9L211bHRpcGxlLXRhc2tzLWV4aXN0YF0sIHsgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbEFjdGlvbihzdGF0ZTogU3RhdGUpOiB2b2lkIHtcbiAgICAvLyBGaW5hbCBhY3Rpb25zIGNhbiBiZSBwZXJmb3JtZWQgaGVyZSwgdGhlIHN0YXRlIG1hY2hpbmUgZmluaXNoZWQgcnVubmluZ1xuICAgIC8vIGNvbnNvbGUubG9nKCdGSU5BTCcsIHN0YXRlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZUNoZWNrRm9yTWF0Y2hpbmdUYXNrcygpOiB2b2lkIHtcbiAgICAvLyBObyB0YXNrc1xuICAgIHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTk9fVEFTSyxcbiAgICAgIHRoaXMuc3RhdGVOb1Rhc2tcbiAgICApO1xuICAgIC8vIE9uZSB0YXNrXG4gICAgdGhpcy5zdGF0ZUNoZWNrRm9yTWF0Y2hpbmdUYXNrcy5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfT1JfTU9SRV9UQVNLUyxcbiAgICAgIHRoaXMuc3RhdGVPbmVPck1vcmVUYXNrc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU5vVGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlTm9UYXNrLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlT25lT3JNb3JlVGFza3MoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZU9uZU9yTW9yZVRhc2tzLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrVW5hc3NpZ25lZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWQuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrQXNzaWduZWRUb1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfVEFTS19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgdGhpcy5zdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlclxuICAgICk7XG4gICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5UQVNLX1VOQVNTSUdORUQsXG4gICAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWRcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTVVMVElQTEVfVEFTS1NfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIHRoaXMuc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRoaXMuc3RhdGVGaW5hbFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlTXVsdGlwbGVUYXNrc0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,96 @@
1
+ import { Directive, Input, ViewChild } from '@angular/core';
2
+ import { AbstractFieldWriteComponent } from './abstract-field-write.component';
3
+ import { MultipageComponentStateService } from '../../../services';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services";
6
+ const _c0 = ["journeyChild"];
7
+ export class AbstractFieldWriteJourneyComponent extends AbstractFieldWriteComponent {
8
+ multipageComponentStateService;
9
+ journeyStartPageNumber = 0;
10
+ journeyEndPageNumber = 0;
11
+ journeyPageNumber = 0;
12
+ journeyPreviousPageNumber = 0;
13
+ journeyId = 'journey';
14
+ // todo...
15
+ childJourney;
16
+ constructor(multipageComponentStateService) {
17
+ super();
18
+ this.multipageComponentStateService = multipageComponentStateService;
19
+ this.multipageComponentStateService.addTojourneyCollection(this);
20
+ this.journeyPageNumber = this.journeyStartPageNumber;
21
+ }
22
+ next() {
23
+ if (!this.hasNext()) {
24
+ return;
25
+ }
26
+ this.childJourney.next();
27
+ }
28
+ previous() {
29
+ if (!this.hasPrevious()) {
30
+ return;
31
+ }
32
+ if (this.childJourney['cachedFlagType'] && this.childJourney['subJourneyIndex'] !== 0) {
33
+ this.childJourney.previous();
34
+ }
35
+ else {
36
+ this.previousPage();
37
+ }
38
+ }
39
+ previousPage() {
40
+ if (this.hasPrevious()) {
41
+ if (!this.childJourney?.searchLanguageInterpreterHint) {
42
+ this.journeyPageNumber--;
43
+ }
44
+ this.onPageChange();
45
+ }
46
+ }
47
+ nextPage() {
48
+ if (this.hasNext()) {
49
+ if (!this.childJourney?.searchLanguageInterpreterHint) {
50
+ this.journeyPageNumber++;
51
+ }
52
+ this.onPageChange();
53
+ }
54
+ }
55
+ ngOnInit() {
56
+ this.journeyPageNumber = this.journeyStartPageNumber;
57
+ const state = this.multipageComponentStateService.getJourneyState(this);
58
+ if (state) {
59
+ const { journeyPageNumber, journeyStartPageNumber, journeyEndPageNumber } = state;
60
+ this.journeyPageNumber = journeyPageNumber;
61
+ this.journeyStartPageNumber = journeyStartPageNumber;
62
+ this.journeyEndPageNumber = journeyEndPageNumber;
63
+ }
64
+ }
65
+ ngOnDestroy() {
66
+ this.multipageComponentStateService.setJourneyState(this);
67
+ }
68
+ hasNext() { return this.journeyPageNumber < this.journeyEndPageNumber; }
69
+ ;
70
+ hasPrevious() { return this.journeyPageNumber > this.journeyStartPageNumber; }
71
+ ;
72
+ isFinished() { return this.journeyPageNumber === this.journeyEndPageNumber; }
73
+ ;
74
+ isStart() { return this.journeyPageNumber === this.journeyStartPageNumber; }
75
+ ;
76
+ getId() { return this.journeyId; }
77
+ ;
78
+ onPageChange() { }
79
+ ;
80
+ static ɵfac = function AbstractFieldWriteJourneyComponent_Factory(t) { return new (t || AbstractFieldWriteJourneyComponent)(i0.ɵɵdirectiveInject(i1.MultipageComponentStateService)); };
81
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractFieldWriteJourneyComponent, viewQuery: function AbstractFieldWriteJourneyComponent_Query(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵviewQuery(_c0, 5);
83
+ } if (rf & 2) {
84
+ let _t;
85
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.childJourney = _t.first);
86
+ } }, inputs: { journeyId: "journeyId" }, features: [i0.ɵɵInheritDefinitionFeature] });
87
+ }
88
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbstractFieldWriteJourneyComponent, [{
89
+ type: Directive
90
+ }], () => [{ type: i1.MultipageComponentStateService }], { journeyId: [{
91
+ type: Input
92
+ }], childJourney: [{
93
+ type: ViewChild,
94
+ args: ['journeyChild']
95
+ }] }); })();
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmllbGQtd3JpdGUtam91cm5leS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLWpvdXJuZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQWdCLGtDQUFtQyxTQUFRLDJCQUEyQjtJQWFsRDtJQVpqQyxzQkFBc0IsR0FBVyxDQUFDLENBQUM7SUFDbkMsb0JBQW9CLEdBQVcsQ0FBQyxDQUFDO0lBQ2pDLGlCQUFpQixHQUFXLENBQUMsQ0FBQztJQUM5Qix5QkFBeUIsR0FBVyxDQUFDLENBQUM7SUFHdEMsU0FBUyxHQUFXLFNBQVMsQ0FBQztJQUVuQyxVQUFVO0lBRUgsWUFBWSxDQUFXO0lBRTlCLFlBQXNDLDhCQUE4RDtRQUNsRyxLQUFLLEVBQUUsQ0FBQztRQUQ0QixtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO1FBRWxHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZELENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0RixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLDZCQUE2QixFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFUyxRQUFRO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUVsRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7WUFDM0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO1lBQ3JELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sT0FBTyxLQUFjLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBRWpGLFdBQVcsS0FBYyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUEsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUV2RixVQUFVLEtBQWMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLG9CQUFvQixDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFFdEYsT0FBTyxLQUFjLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBRXJGLEtBQUssS0FBYSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUUxQyxZQUFZLEtBQTBELENBQUM7SUFBQSxDQUFDOzRGQWpGN0Qsa0NBQWtDOzZEQUFsQyxrQ0FBa0M7Ozs7Ozs7aUZBQWxDLGtDQUFrQztjQUR2RCxTQUFTOytEQVFELFNBQVM7a0JBRGIsS0FBSztZQUtDLFlBQVk7a0JBRGxCLFNBQVM7bUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBKb3VybmV5IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGaWVsZFdyaXRlSm91cm5leUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgSm91cm5leSB7XG4gIHB1YmxpYyBqb3VybmV5U3RhcnRQYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgam91cm5leUVuZFBhZ2VOdW1iZXI6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBqb3VybmV5UGFnZU51bWJlcjogbnVtYmVyID0gMDtcbiAgcHVibGljIGpvdXJuZXlQcmV2aW91c1BhZ2VOdW1iZXI6IG51bWJlciA9IDA7XG5cbiAgICBASW5wdXQoKVxuICBwdWJsaWMgam91cm5leUlkOiBzdHJpbmcgPSAnam91cm5leSc7XG5cbiAgICAvLyB0b2RvLi4uXG4gICAgQFZpZXdDaGlsZCgnam91cm5leUNoaWxkJylcbiAgICBwdWJsaWMgY2hpbGRKb3VybmV5ITogSm91cm5leTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5hZGRUb2pvdXJuZXlDb2xsZWN0aW9uKHRoaXMpO1xuICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlciA9IHRoaXMuam91cm5leVN0YXJ0UGFnZU51bWJlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCgpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5oYXNOZXh0KCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGlsZEpvdXJuZXkubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5oYXNQcmV2aW91cygpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNoaWxkSm91cm5leVsnY2FjaGVkRmxhZ1R5cGUnXSAmJiB0aGlzLmNoaWxkSm91cm5leVsnc3ViSm91cm5leUluZGV4J10gIT09IDApIHtcbiAgICAgICAgdGhpcy5jaGlsZEpvdXJuZXkucHJldmlvdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1ByZXZpb3VzKCkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkSm91cm5leT8uc2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnQpIHtcbiAgICAgICAgICB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyLS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblBhZ2VDaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5oYXNOZXh0KCkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkSm91cm5leT8uc2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnQpIHtcbiAgICAgICAgICB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblBhZ2VDaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyID0gdGhpcy5qb3VybmV5U3RhcnRQYWdlTnVtYmVyO1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5nZXRKb3VybmV5U3RhdGUodGhpcyk7XG4gICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBqb3VybmV5UGFnZU51bWJlciwgam91cm5leVN0YXJ0UGFnZU51bWJlciwgam91cm5leUVuZFBhZ2VOdW1iZXIgfSA9IHN0YXRlO1xuXG4gICAgICAgIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPSBqb3VybmV5UGFnZU51bWJlcjtcbiAgICAgICAgdGhpcy5qb3VybmV5U3RhcnRQYWdlTnVtYmVyID0gam91cm5leVN0YXJ0UGFnZU51bWJlcjtcbiAgICAgICAgdGhpcy5qb3VybmV5RW5kUGFnZU51bWJlciA9IGpvdXJuZXlFbmRQYWdlTnVtYmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMubXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlLnNldEpvdXJuZXlTdGF0ZSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzTmV4dCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPCB0aGlzLmpvdXJuZXlFbmRQYWdlTnVtYmVyIH07XG5cbiAgICBwdWJsaWMgaGFzUHJldmlvdXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyID4gdGhpcy5qb3VybmV5U3RhcnRQYWdlTnVtYmVyIH07XG5cbiAgICBwdWJsaWMgaXNGaW5pc2hlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPT09IHRoaXMuam91cm5leUVuZFBhZ2VOdW1iZXIgfTtcblxuICAgIHB1YmxpYyBpc1N0YXJ0KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5qb3VybmV5UGFnZU51bWJlciA9PT0gdGhpcy5qb3VybmV5U3RhcnRQYWdlTnVtYmVyIH07XG5cbiAgICBwdWJsaWMgZ2V0SWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuam91cm5leUlkIH07XG5cbiAgICBwdWJsaWMgb25QYWdlQ2hhbmdlKCk6IHZvaWQgeyAvKiBUbyBiZSBpbXBsZW1lbnRlZCBieSBzb21lIGNoaWxkIGNsYXNzZXMuICovIH07XG59XG4iXX0=
@@ -0,0 +1,82 @@
1
+ import { Directive, Input, ViewChild } from '@angular/core';
2
+ import { MultipageComponentStateService } from '../../../services';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services";
5
+ const _c0 = ["journeyChild"];
6
+ export class AbstractJourneyComponent {
7
+ multipageComponentStateService;
8
+ journeyStartPageNumber = 0;
9
+ journeyEndPageNumber = 0;
10
+ journeyPageNumber = 0;
11
+ journeyPreviousPageNumber;
12
+ journeyId = 'journey';
13
+ // todo...
14
+ childJourney;
15
+ constructor(multipageComponentStateService) {
16
+ this.multipageComponentStateService = multipageComponentStateService;
17
+ this.multipageComponentStateService.addTojourneyCollection(this);
18
+ this.journeyPageNumber = this.journeyStartPageNumber;
19
+ }
20
+ next() {
21
+ if (!this.hasNext()) {
22
+ return;
23
+ }
24
+ this.childJourney.next();
25
+ }
26
+ previous() {
27
+ if (!this.hasPrevious()) {
28
+ return;
29
+ }
30
+ this.previousPage();
31
+ }
32
+ previousPage() {
33
+ if (this.hasPrevious()) {
34
+ this.journeyPageNumber--;
35
+ }
36
+ }
37
+ ngOnInit() {
38
+ this.journeyPageNumber = this.journeyStartPageNumber;
39
+ const state = this.multipageComponentStateService.getJourneyState(this);
40
+ if (state) {
41
+ const { journeyPageNumber, journeyStartPageNumber, journeyEndPageNumber } = state;
42
+ this.journeyPageNumber = journeyPageNumber;
43
+ this.journeyStartPageNumber = journeyStartPageNumber;
44
+ this.journeyEndPageNumber = journeyEndPageNumber;
45
+ }
46
+ }
47
+ ngOnDestroy() {
48
+ this.multipageComponentStateService.setJourneyState(this);
49
+ }
50
+ hasNext() {
51
+ return this.journeyPageNumber < this.journeyEndPageNumber;
52
+ }
53
+ hasPrevious() {
54
+ return this.journeyPageNumber > this.journeyStartPageNumber;
55
+ }
56
+ isFinished() {
57
+ return this.journeyPageNumber === this.journeyEndPageNumber;
58
+ }
59
+ isStart() {
60
+ return this.journeyPageNumber === this.journeyStartPageNumber;
61
+ }
62
+ getId() {
63
+ return this.journeyId;
64
+ }
65
+ onPageChange() { }
66
+ static ɵfac = function AbstractJourneyComponent_Factory(t) { return new (t || AbstractJourneyComponent)(i0.ɵɵdirectiveInject(i1.MultipageComponentStateService)); };
67
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractJourneyComponent, viewQuery: function AbstractJourneyComponent_Query(rf, ctx) { if (rf & 1) {
68
+ i0.ɵɵviewQuery(_c0, 5);
69
+ } if (rf & 2) {
70
+ let _t;
71
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.childJourney = _t.first);
72
+ } }, inputs: { journeyId: "journeyId" } });
73
+ }
74
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbstractJourneyComponent, [{
75
+ type: Directive
76
+ }], () => [{ type: i1.MultipageComponentStateService }], { journeyId: [{
77
+ type: Input
78
+ }], childJourney: [{
79
+ type: ViewChild,
80
+ args: ['journeyChild']
81
+ }] }); })();
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtam91cm5leS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2Fic3RyYWN0LWpvdXJuZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQWdCLHdCQUF3QjtJQWFKO0lBWmpDLHNCQUFzQixHQUFXLENBQUMsQ0FBQztJQUNuQyxvQkFBb0IsR0FBVyxDQUFDLENBQUM7SUFDakMsaUJBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBQzlCLHlCQUF5QixDQUFTO0lBR2xDLFNBQVMsR0FBVyxTQUFTLENBQUM7SUFFbkMsVUFBVTtJQUVILFlBQVksQ0FBVztJQUU5QixZQUFzQyw4QkFBOEQ7UUFBOUQsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUNsRyxJQUFJLENBQUMsOEJBQThCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUN2RCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBRXJELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUNsRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7WUFDM0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO1lBQ3JELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUM1RCxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDOUQsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDOUQsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDaEUsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVNLFlBQVksS0FBMEQsQ0FBQztrRkExRTVELHdCQUF3Qjs2REFBeEIsd0JBQXdCOzs7Ozs7O2lGQUF4Qix3QkFBd0I7Y0FEN0MsU0FBUzsrREFRRCxTQUFTO2tCQURiLEtBQUs7WUFLQyxZQUFZO2tCQURsQixTQUFTO21CQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBKb3VybmV5IHtcbiAgcHVibGljIGpvdXJuZXlTdGFydFBhZ2VOdW1iZXI6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBqb3VybmV5RW5kUGFnZU51bWJlcjogbnVtYmVyID0gMDtcbiAgcHVibGljIGpvdXJuZXlQYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgam91cm5leVByZXZpb3VzUGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgcHVibGljIGpvdXJuZXlJZDogc3RyaW5nID0gJ2pvdXJuZXknO1xuXG4gICAgLy8gdG9kby4uLlxuICAgIEBWaWV3Q2hpbGQoJ2pvdXJuZXlDaGlsZCcpXG4gICAgcHVibGljIGNoaWxkSm91cm5leSE6IEpvdXJuZXk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZTogTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKSB7XG4gICAgICB0aGlzLm11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZS5hZGRUb2pvdXJuZXlDb2xsZWN0aW9uKHRoaXMpO1xuICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlciA9IHRoaXMuam91cm5leVN0YXJ0UGFnZU51bWJlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCgpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5oYXNOZXh0KCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGlsZEpvdXJuZXkubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5oYXNQcmV2aW91cygpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1ByZXZpb3VzKCkpIHtcbiAgICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlci0tO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPSB0aGlzLmpvdXJuZXlTdGFydFBhZ2VOdW1iZXI7XG5cbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UuZ2V0Sm91cm5leVN0YXRlKHRoaXMpO1xuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHsgam91cm5leVBhZ2VOdW1iZXIsIGpvdXJuZXlTdGFydFBhZ2VOdW1iZXIsIGpvdXJuZXlFbmRQYWdlTnVtYmVyIH0gPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5qb3VybmV5UGFnZU51bWJlciA9IGpvdXJuZXlQYWdlTnVtYmVyO1xuICAgICAgICB0aGlzLmpvdXJuZXlTdGFydFBhZ2VOdW1iZXIgPSBqb3VybmV5U3RhcnRQYWdlTnVtYmVyO1xuICAgICAgICB0aGlzLmpvdXJuZXlFbmRQYWdlTnVtYmVyID0gam91cm5leUVuZFBhZ2VOdW1iZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgdGhpcy5tdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2Uuc2V0Sm91cm5leVN0YXRlKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNOZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPCB0aGlzLmpvdXJuZXlFbmRQYWdlTnVtYmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNQcmV2aW91cygpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmpvdXJuZXlQYWdlTnVtYmVyID4gdGhpcy5qb3VybmV5U3RhcnRQYWdlTnVtYmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuam91cm5leVBhZ2VOdW1iZXIgPT09IHRoaXMuam91cm5leUVuZFBhZ2VOdW1iZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGlzU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5qb3VybmV5UGFnZU51bWJlciA9PT0gdGhpcy5qb3VybmV5U3RhcnRQYWdlTnVtYmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuam91cm5leUlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhZ2VDaGFuZ2UoKTogdm9pZCB7IC8qIFRvIGJlIGltcGxlbWVudGVkIGJ5IHNvbWUgY2hpbGQgY2xhc3Nlcy4gKi8gfVxufVxuIl19
@@ -1,8 +1,10 @@
1
1
  export * from './abstract-field-read.component';
2
+ export * from './abstract-field-write-journey.component';
2
3
  export * from './abstract-field-write.component';
4
+ export * from './abstract-journey.component';
3
5
  export * from './field-read.component';
4
6
  export * from './field-write.component';
5
7
  export * from './field-read-label.component';
6
8
  export * from './palette-context.enum';
7
9
  export * from './payment-field.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQtcmVhZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC13cml0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC1yZWFkLWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhbGV0dGUtY29udGV4dC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vcGF5bWVudC1maWVsZC5jb21wb25lbnQnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LWZpZWxkLXdyaXRlLWpvdXJuZXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3Qtam91cm5leS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLXJlYWQtbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFsZXR0ZS1jb250ZXh0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50LWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
3
  import { AddCommentsErrorMessage, AddCommentsStep, CaseFlagFieldState, CaseFlagFormFields, CaseFlagWizardStepTitle } from '../../enums';
4
+ import { AbstractJourneyComponent } from '../../../base-field';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/common";
6
7
  import * as i2 from "@angular/forms";
@@ -16,10 +17,10 @@ function AddCommentsComponent_span_7_Template(rf, ctx) { if (rf & 1) {
16
17
  i0.ɵɵtextInterpolate1(" (", i0.ɵɵpipeBind1(2, 1, "optional"), ")");
17
18
  } }
18
19
  function AddCommentsComponent_div_11_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "div", 14)(1, "span", 15);
20
+ i0.ɵɵelementStart(0, "div", 12)(1, "span", 13);
20
21
  i0.ɵɵtext(2, "!");
21
22
  i0.ɵɵelementEnd();
22
- i0.ɵɵelementStart(3, "strong", 16)(4, "span", 17);
23
+ i0.ɵɵelementStart(3, "strong", 14)(4, "span", 15);
23
24
  i0.ɵɵtext(5);
24
25
  i0.ɵɵpipe(6, "rpxTranslate");
25
26
  i0.ɵɵelementEnd();
@@ -34,7 +35,7 @@ function AddCommentsComponent_div_11_Template(rf, ctx) { if (rf & 1) {
34
35
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 4, ctx_r0.addCommentsStepEnum.WARNING_TEXT), " ");
35
36
  } }
36
37
  function AddCommentsComponent_div_12_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵelementStart(0, "div", 18)(1, "span", 19);
38
+ i0.ɵɵelementStart(0, "div", 16)(1, "span", 17);
38
39
  i0.ɵɵtext(2);
39
40
  i0.ɵɵpipe(3, "rpxTranslate");
40
41
  i0.ɵɵelementEnd();
@@ -49,7 +50,7 @@ function AddCommentsComponent_div_12_Template(rf, ctx) { if (rf & 1) {
49
50
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r0.flagCommentsNotEnteredErrorMessage), " ");
50
51
  } }
51
52
  function AddCommentsComponent_div_13_Template(rf, ctx) { if (rf & 1) {
52
- i0.ɵɵelementStart(0, "div", 20)(1, "span", 19);
53
+ i0.ɵɵelementStart(0, "div", 18)(1, "span", 17);
53
54
  i0.ɵɵtext(2);
54
55
  i0.ɵɵpipe(3, "rpxTranslate");
55
56
  i0.ɵɵelementEnd();
@@ -63,7 +64,7 @@ function AddCommentsComponent_div_13_Template(rf, ctx) { if (rf & 1) {
63
64
  i0.ɵɵadvance(2);
64
65
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r0.flagCommentsCharLimitErrorMessage), " ");
65
66
  } }
66
- export class AddCommentsComponent {
67
+ export class AddCommentsComponent extends AbstractJourneyComponent {
67
68
  formGroup;
68
69
  optional = false;
69
70
  isDisplayContextParameterExternal = false;
@@ -122,8 +123,14 @@ export class AddCommentsComponent {
122
123
  });
123
124
  }
124
125
  }
125
- static ɵfac = function AddCommentsComponent_Factory(t) { return new (t || AddCommentsComponent)(); };
126
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddCommentsComponent, selectors: [["ccd-add-comments"]], inputs: { formGroup: "formGroup", optional: "optional", isDisplayContextParameterExternal: "isDisplayContextParameterExternal", isDisplayContextParameter2Point1Enabled: "isDisplayContextParameter2Point1Enabled" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 22, vars: 24, consts: [[3, "formGroup"], ["data-module", "govuk-character-count", "data-maxlength", "200", 1, "govuk-character-count"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], [1, "govuk-label", "govuk-label--m", 3, "for"], [4, "ngIf"], ["id", "add-comments-hint", 1, "govuk-hint"], ["class", "govuk-warning-text", 4, "ngIf"], ["id", "flag-comments-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "add-comments-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", "aria-describedby", "add-comments-hint add-comments-char-limit-info add-comments-char-limit-error", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "add-comments-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["id", "flag-comments-not-entered-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "add-comments-char-limit-error", 1, "govuk-error-message"]], template: function AddCommentsComponent_Template(rf, ctx) { if (rf & 1) {
126
+ next() {
127
+ this.onNext();
128
+ if (this.errorMessages.length === 0) {
129
+ super.next();
130
+ }
131
+ }
132
+ static ɵfac = /*@__PURE__*/ (() => { let ɵAddCommentsComponent_BaseFactory; return function AddCommentsComponent_Factory(t) { return (ɵAddCommentsComponent_BaseFactory || (ɵAddCommentsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AddCommentsComponent)))(t || AddCommentsComponent); }; })();
133
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddCommentsComponent, selectors: [["ccd-add-comments"]], inputs: { formGroup: "formGroup", optional: "optional", isDisplayContextParameterExternal: "isDisplayContextParameterExternal", isDisplayContextParameter2Point1Enabled: "isDisplayContextParameter2Point1Enabled" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 21, consts: [[3, "formGroup"], ["data-module", "govuk-character-count", "data-maxlength", "200", 1, "govuk-character-count"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], [1, "govuk-label", "govuk-label--m", 3, "for"], [4, "ngIf"], ["id", "add-comments-hint", 1, "govuk-hint"], ["class", "govuk-warning-text", 4, "ngIf"], ["id", "flag-comments-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "add-comments-char-limit-error", "class", "govuk-error-message", 4, "ngIf"], ["rows", "5", "aria-describedby", "add-comments-hint add-comments-char-limit-info add-comments-char-limit-error", 1, "govuk-textarea", 3, "id", "name", "formControlName"], ["id", "add-comments-char-limit-info", "aria-live", "polite", 1, "govuk-hint", "govuk-character-count__message"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], ["id", "flag-comments-not-entered-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "add-comments-char-limit-error", 1, "govuk-error-message"]], template: function AddCommentsComponent_Template(rf, ctx) { if (rf & 1) {
127
134
  i0.ɵɵelementContainerStart(0, 0);
128
135
  i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "h1", 3)(4, "label", 4);
129
136
  i0.ɵɵtext(5);
@@ -141,23 +148,18 @@ export class AddCommentsComponent {
141
148
  i0.ɵɵpipe(17, "rpxTranslate");
142
149
  i0.ɵɵelementEnd()()();
143
150
  i0.ɵɵelementContainerEnd();
144
- i0.ɵɵelementStart(18, "div", 12)(19, "button", 13);
145
- i0.ɵɵlistener("click", function AddCommentsComponent_Template_button_click_19_listener() { return ctx.onNext(); });
146
- i0.ɵɵtext(20);
147
- i0.ɵɵpipe(21, "rpxTranslate");
148
- i0.ɵɵelementEnd()();
149
151
  } if (rf & 2) {
150
152
  i0.ɵɵproperty("formGroup", ctx.formGroup);
151
153
  i0.ɵɵadvance(2);
152
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(22, _c0, ctx.errorMessages.length > 0));
154
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(19, _c0, ctx.errorMessages.length > 0));
153
155
  i0.ɵɵadvance(2);
154
156
  i0.ɵɵproperty("for", ctx.flagCommentsControlName);
155
157
  i0.ɵɵadvance();
156
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 14, ctx.addCommentsTitle), "");
158
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 13, ctx.addCommentsTitle), "");
157
159
  i0.ɵɵadvance(2);
158
160
  i0.ɵɵproperty("ngIf", ctx.optional);
159
161
  i0.ɵɵadvance(2);
160
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 16, ctx.addCommentsHint), " ");
162
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 15, ctx.addCommentsHint), " ");
161
163
  i0.ɵɵadvance(2);
162
164
  i0.ɵɵproperty("ngIf", !ctx.isDisplayContextParameterExternal && ctx.isDisplayContextParameter2Point1Enabled && !ctx.otherInternalFlagTypeSelected);
163
165
  i0.ɵɵadvance();
@@ -167,14 +169,12 @@ export class AddCommentsComponent {
167
169
  i0.ɵɵadvance();
168
170
  i0.ɵɵproperty("id", ctx.flagCommentsControlName)("name", ctx.flagCommentsControlName)("formControlName", ctx.flagCommentsControlName);
169
171
  i0.ɵɵadvance(2);
170
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 18, ctx.addCommentsStepEnum.CHARACTER_LIMIT_INFO), " ");
171
- i0.ɵɵadvance(4);
172
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(21, 20, "Next"));
172
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 17, ctx.addCommentsStepEnum.CHARACTER_LIMIT_INFO), " ");
173
173
  } }, dependencies: [i1.NgClass, i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.RpxTranslatePipe], encapsulation: 2 });
174
174
  }
175
175
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddCommentsComponent, [{
176
176
  type: Component,
177
- args: [{ selector: 'ccd-add-comments', template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-character-count\" data-module=\"govuk-character-count\" data-maxlength=\"200\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <h1 class=\"govuk-label-wrapper\"><label class=\"govuk-label govuk-label--m\" [for]=\"flagCommentsControlName\">\n {{addCommentsTitle | rpxTranslate}}<span *ngIf=\"optional\"> ({{'optional' | rpxTranslate}})</span>\n </label>\n </h1>\n <div id=\"add-comments-hint\" class=\"govuk-hint\">\n {{addCommentsHint | rpxTranslate}}\n </div>\n <div class=\"govuk-warning-text\"\n *ngIf=\"!isDisplayContextParameterExternal && isDisplayContextParameter2Point1Enabled && !otherInternalFlagTypeSelected\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{addCommentsStepEnum.WARNING_TEXT | rpxTranslate}}\n </strong>\n </div>\n <div id=\"flag-comments-not-entered-error-message\" class=\"govuk-error-message\"\n *ngIf=\"flagCommentsNotEnteredErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsNotEnteredErrorMessage | rpxTranslate}}\n </div>\n <div id=\"add-comments-char-limit-error\" class=\"govuk-error-message\"\n *ngIf=\"flagCommentsCharLimitErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsCharLimitErrorMessage | rpxTranslate}}\n </div>\n <textarea class=\"govuk-textarea\" [id]=\"flagCommentsControlName\"\n [name]=\"flagCommentsControlName\" [formControlName]=\"flagCommentsControlName\" rows=\"5\"\n aria-describedby=\"add-comments-hint add-comments-char-limit-info add-comments-char-limit-error\"></textarea>\n <div id=\"add-comments-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n {{addCommentsStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n </div>\n </div>\n </div>\n</ng-container>\n\n<div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" (click)=\"onNext()\">{{'Next' | rpxTranslate}}</button>\n</div>\n" }]
177
+ args: [{ selector: 'ccd-add-comments', template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-character-count\" data-module=\"govuk-character-count\" data-maxlength=\"200\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <h1 class=\"govuk-label-wrapper\"><label class=\"govuk-label govuk-label--m\" [for]=\"flagCommentsControlName\">\n {{addCommentsTitle | rpxTranslate}}<span *ngIf=\"optional\"> ({{'optional' | rpxTranslate}})</span>\n </label>\n </h1>\n <div id=\"add-comments-hint\" class=\"govuk-hint\">\n {{addCommentsHint | rpxTranslate}}\n </div>\n <div class=\"govuk-warning-text\"\n *ngIf=\"!isDisplayContextParameterExternal && isDisplayContextParameter2Point1Enabled && !otherInternalFlagTypeSelected\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{addCommentsStepEnum.WARNING_TEXT | rpxTranslate}}\n </strong>\n </div>\n <div id=\"flag-comments-not-entered-error-message\" class=\"govuk-error-message\"\n *ngIf=\"flagCommentsNotEnteredErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsNotEnteredErrorMessage | rpxTranslate}}\n </div>\n <div id=\"add-comments-char-limit-error\" class=\"govuk-error-message\"\n *ngIf=\"flagCommentsCharLimitErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsCharLimitErrorMessage | rpxTranslate}}\n </div>\n <textarea class=\"govuk-textarea\" [id]=\"flagCommentsControlName\"\n [name]=\"flagCommentsControlName\" [formControlName]=\"flagCommentsControlName\" rows=\"5\"\n aria-describedby=\"add-comments-hint add-comments-char-limit-info add-comments-char-limit-error\"></textarea>\n <div id=\"add-comments-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n {{addCommentsStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n </div>\n </div>\n </div>\n</ng-container>" }]
178
178
  }], null, { formGroup: [{
179
179
  type: Input
180
180
  }], optional: [{
@@ -186,5 +186,5 @@ export class AddCommentsComponent {
186
186
  }], caseFlagStateEmitter: [{
187
187
  type: Output
188
188
  }] }); })();
189
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddCommentsComponent, { className: "AddCommentsComponent", filePath: "lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.ts", lineNumber: 11 }); })();
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNvbW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9jb21wb25lbnRzL2FkZC1jb21tZW50cy9hZGQtY29tbWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvYWRkLWNvbW1lbnRzL2FkZC1jb21tZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztJQ0EzRiw0QkFBdUI7SUFBQyxZQUErQjs7SUFBQSxpQkFBTzs7SUFBdEMsY0FBK0I7SUFBL0Isa0VBQStCOzs7SUFRNUYsQUFGRiwrQkFDMEgsZUFDOUQ7SUFBQSxpQkFBQztJQUFBLGlCQUFPO0lBRWhFLEFBREYsa0NBQXlDLGVBQ0s7SUFBQSxZQUE0Qjs7SUFBQSxpQkFBTztJQUMvRSxZQUNGOztJQUNGLEFBREUsaUJBQVMsRUFDTDs7O0lBSDBDLGVBQTRCO0lBQTVCLHFEQUE0QjtJQUN4RSxlQUNGO0lBREUsOEZBQ0Y7OztJQUlBLEFBRkYsK0JBQzZDLGVBQ1A7SUFBQSxZQUEy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QyxhQUF5Qjs7WUFDbEcsQUFEa0csaUJBQVMsRUFDckc7O1lBdENRLHlDQUF1QjtZQUVILGVBQTBEO1lBQTFELG1GQUEwRDtZQUNaLGVBQStCO1lBQS9CLGlEQUErQjtZQUNyRyxjQUFtQztZQUFuQywyRUFBbUM7WUFBTyxlQUFjO1lBQWQsbUNBQWM7WUFJMUQsZUFDRjtZQURFLDRFQUNGO1lBRUcsZUFBcUg7WUFBckgsa0pBQXFIO1lBUXJILGNBQXdDO1lBQXhDLDZEQUF3QztZQUl4QyxjQUF1QztZQUF2Qyw0REFBdUM7WUFHVCxjQUE4QjtZQUM1QixBQUFqQyxBQUQrQixnREFBOEIscUNBQzdCLGdEQUE0QztZQUc1RSxlQUNGO1lBREUscUdBQ0Y7WUFNbUUsZUFBeUI7WUFBekIsb0RBQXlCOzs7aUZEM0JyRixvQkFBb0I7Y0FKaEMsU0FBUzsyQkFDRSxrQkFBa0I7Z0JBSVosU0FBUztrQkFBeEIsS0FBSztZQUNVLFFBQVE7a0JBQXZCLEtBQUs7WUFDVSxpQ0FBaUM7a0JBQWhELEtBQUs7WUFDVSx1Q0FBdUM7a0JBQXRELEtBQUs7WUFFVyxvQkFBb0I7a0JBQXBDLE1BQU07O2tGQU5JLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBBZGRDb21tZW50c0Vycm9yTWVzc2FnZSwgQWRkQ29tbWVudHNTdGVwLCBDYXNlRmxhZ0ZpZWxkU3RhdGUsIENhc2VGbGFnRm9ybUZpZWxkcywgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1hZGQtY29tbWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWNvbW1lbnRzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZGRDb21tZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbmFsID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgYWRkQ29tbWVudHNUaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgZmxhZ0NvbW1lbnRzTm90RW50ZXJlZEVycm9yTWVzc2FnZTogQWRkQ29tbWVudHNFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlOiBBZGRDb21tZW50c0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBhZGRDb21tZW50c0hpbnQ6IEFkZENvbW1lbnRzU3RlcDtcbiAgcHVibGljIGFkZENvbW1lbnRzU3RlcEVudW0gPSBBZGRDb21tZW50c1N0ZXA7XG4gIHB1YmxpYyByZWFkb25seSBmbGFnQ29tbWVudHNDb250cm9sTmFtZSA9ICdmbGFnQ29tbWVudHMnO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1lbnRzTWF4Q2hhckxpbWl0ID0gMjAwO1xuICAvLyBDb2RlIGZvciBcIk90aGVyXCIgZmxhZyB0eXBlIGFzIGRlZmluZWQgaW4gUmVmZXJlbmNlIERhdGFcbiAgcHJpdmF0ZSByZWFkb25seSBvdGhlckZsYWdUeXBlQ29kZSA9ICdPVDAwMDEnO1xuXG4gIHB1YmxpYyBnZXQgb3RoZXJJbnRlcm5hbEZsYWdUeXBlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuRkxBR19UWVBFKT8udmFsdWU/LmZsYWdDb2RlID09PSB0aGlzLm90aGVyRmxhZ1R5cGVDb2RlICYmXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLklTX1ZJU0lCTEVfSU5URVJOQUxMWV9PTkxZKT8udmFsdWUgPT09IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRDb21tZW50c1RpdGxlID0gIXRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsID9cbiAgICAgIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLkFERF9GTEFHX0NPTU1FTlRTIDogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuQUREX0ZMQUdfQ09NTUVOVFNfRVhURVJOQUxfTU9ERTtcbiAgICB0aGlzLmFkZENvbW1lbnRzSGludCA9ICF0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA/XG4gICAgICBBZGRDb21tZW50c1N0ZXAuSElOVF9URVhUIDogQWRkQ29tbWVudHNTdGVwLkhJTlRfVEVYVF9FWFRFUk5BTDtcblxuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmxhZ0NvbW1lbnRzQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuZmxhZ0NvbW1lbnRzQ29udHJvbE5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBjb21tZW50cyBlbnRyeVxuICAgIHRoaXMudmFsaWRhdGVUZXh0RW50cnkoKTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHsgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFMsIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUZXh0RW50cnkoKTogdm9pZCB7XG4gICAgdGhpcy5mbGFnQ29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmZsYWdDb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgaWYgKCF0aGlzLm9wdGlvbmFsICYmICF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mbGFnQ29tbWVudHNDb250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXG4gICAgICAgID8gQWRkQ29tbWVudHNFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19OT1RfRU5URVJFRF9FWFRFUk5BTFxuICAgICAgICA6IEFkZENvbW1lbnRzRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfTk9UX0VOVEVSRUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZmxhZ0NvbW1lbnRzTm90RW50ZXJlZEVycm9yTWVzc2FnZSxcbiAgICAgICAgZmllbGRJZDogdGhpcy5mbGFnQ29tbWVudHNDb250cm9sTmFtZVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mbGFnQ29tbWVudHNDb250cm9sTmFtZSkudmFsdWUgJiZcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZsYWdDb21tZW50c0NvbnRyb2xOYW1lKS52YWx1ZS5sZW5ndGggPiB0aGlzLmNvbW1lbnRzTWF4Q2hhckxpbWl0KSB7XG4gICAgICB0aGlzLmZsYWdDb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSA9IEFkZENvbW1lbnRzRXJyb3JNZXNzYWdlLkZMQUdfQ09NTUVOVFNfQ0hBUl9MSU1JVF9FWENFRURFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogQWRkQ29tbWVudHNFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19DSEFSX0xJTUlUX0VYQ0VFREVELFxuICAgICAgICBmaWVsZElkOiB0aGlzLmZsYWdDb21tZW50c0NvbnRyb2xOYW1lXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWNoYXJhY3Rlci1jb3VudFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hhcmFjdGVyLWNvdW50XCIgZGF0YS1tYXhsZW5ndGg9XCIyMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXJcIj48bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tbVwiIFtmb3JdPVwiZmxhZ0NvbW1lbnRzQ29udHJvbE5hbWVcIj5cbiAgICAgICAgICB7e2FkZENvbW1lbnRzVGl0bGUgfCBycHhUcmFuc2xhdGV9fTxzcGFuICpuZ0lmPVwib3B0aW9uYWxcIj4gKHt7J29wdGlvbmFsJyB8IHJweFRyYW5zbGF0ZX19KTwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvaDE+XG4gICAgICA8ZGl2IGlkPVwiYWRkLWNvbW1lbnRzLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgICAge3thZGRDb21tZW50c0hpbnQgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCJcbiAgICAgICAgKm5nSWY9XCIhaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsICYmIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZCAmJiAhb3RoZXJJbnRlcm5hbEZsYWdUeXBlU2VsZWN0ZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZVwiPnt7J1dhcm5pbmcnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAge3thZGRDb21tZW50c1N0ZXBFbnVtLldBUk5JTkdfVEVYVCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvc3Ryb25nPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwiZmxhZy1jb21tZW50cy1ub3QtZW50ZXJlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJmbGFnQ29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e2ZsYWdDb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwiYWRkLWNvbW1lbnRzLWNoYXItbGltaXQtZXJyb3JcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAqbmdJZj1cImZsYWdDb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3tmbGFnQ29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8dGV4dGFyZWEgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYVwiIFtpZF09XCJmbGFnQ29tbWVudHNDb250cm9sTmFtZVwiXG4gICAgICAgIFtuYW1lXT1cImZsYWdDb21tZW50c0NvbnRyb2xOYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmbGFnQ29tbWVudHNDb250cm9sTmFtZVwiIHJvd3M9XCI1XCJcbiAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cImFkZC1jb21tZW50cy1oaW50IGFkZC1jb21tZW50cy1jaGFyLWxpbWl0LWluZm8gYWRkLWNvbW1lbnRzLWNoYXItbGltaXQtZXJyb3JcIj48L3RleHRhcmVhPlxuICAgICAgPGRpdiBpZD1cImFkZC1jb21tZW50cy1jaGFyLWxpbWl0LWluZm9cIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIHt7YWRkQ29tbWVudHNTdGVwRW51bS5DSEFSQUNURVJfTElNSVRfSU5GTyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk5leHQoKVwiPnt7J05leHQnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
189
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddCommentsComponent, { className: "AddCommentsComponent", filePath: "lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.ts", lineNumber: 12 }); })();
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWNvbW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9jb21wb25lbnRzL2FkZC1jb21tZW50cy9hZGQtY29tbWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvYWRkLWNvbW1lbnRzL2FkZC1jb21tZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4SSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztJQ0RsQiw0QkFBdUI7SUFBQyxZQUErQjs7SUFBQSxpQkFBTzs7SUFBdEMsY0FBK0I7SUFBL0Isa0VBQStCOzs7SUFRNUYsQUFGRiwrQkFDMEgsZUFDOUQ7SUFBQSxpQkFBQztJQUFBLGlCQUFPO0lBRWhFLEFBREYsa0NBQXlDLGVBQ0s7SUFBQSxZQUE0Qjs7SUFBQSxpQkFBTztJQUMvRSxZQUNGOztJQUNGLEFBREUsaUJBQVMsRUFDTDs7O0lBSDBDLGVBQTRCO0lBQTVCLHFEQUE0QjtJQUN4RSxlQUNG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RUFBdUI7WUFFOUQsQUFERSxpQkFBUSxFQUNMO1lBQ0wsOEJBQStDO1lBQzdDLFlBQ0Y7O1lBQUEsaUJBQU07WUFhTixBQUpBLEFBUkEsdUVBQzBILDBEQVE3RSwwREFJRDtZQUc1QyxnQ0FFNkc7WUFDN0csZ0NBQTRHO1lBQzFHLGFBQ0Y7O1lBRUosQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRjs7O1lBakNNLHlDQUF1QjtZQUVILGVBQTBEO1lBQTFELG1GQUEwRDtZQUNaLGVBQStCO1lBQS9CLGlEQUErQjtZQUNyRyxjQUFtQztZQUFuQywyRUFBbUM7WUFBTyxlQUFjO1lBQWQsbUNBQWM7WUFJMUQsZUFDRjtZQURFLDRFQUNGO1lBRUcsZUFBcUg7WUFBckgsa0pBQXFIO1lBUXJILGNBQXdDO1lBQXhDLDZEQUF3QztZQUl4QyxjQUF1QztZQUF2Qyw0REFBdUM7WUFHVCxjQUE4QjtZQUM1QixBQUFqQyxBQUQrQixnREFBOEIscUNBQzdCLGdEQUE0QztZQUc1RSxlQUNGO1lBREUscUdBQ0Y7OztpRkRwQk8sb0JBQW9CO2NBSmhDLFNBQVM7MkJBQ0Usa0JBQWtCO2dCQUtaLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxRQUFRO2tCQUF2QixLQUFLO1lBQ1UsaUNBQWlDO2tCQUFoRCxLQUFLO1lBQ1UsdUNBQXVDO2tCQUF0RCxLQUFLO1lBRVcsb0JBQW9CO2tCQUFwQyxNQUFNOztrRkFQSSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBKb3VybmV5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQWRkQ29tbWVudHNFcnJvck1lc3NhZ2UsIEFkZENvbW1lbnRzU3RlcCwgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ0Zvcm1GaWVsZHMsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS1maWVsZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1hZGQtY29tbWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWNvbW1lbnRzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZGRDb21tZW50c0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSm91cm5leSB7XG5cbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uYWwgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjYXNlRmxhZ1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPigpO1xuXG4gIHB1YmxpYyBhZGRDb21tZW50c1RpdGxlOiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyBmbGFnQ29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlOiBBZGRDb21tZW50c0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnQ29tbWVudHNDaGFyTGltaXRFcnJvck1lc3NhZ2U6IEFkZENvbW1lbnRzRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIGFkZENvbW1lbnRzSGludDogQWRkQ29tbWVudHNTdGVwO1xuICBwdWJsaWMgYWRkQ29tbWVudHNTdGVwRW51bSA9IEFkZENvbW1lbnRzU3RlcDtcbiAgcHVibGljIHJlYWRvbmx5IGZsYWdDb21tZW50c0NvbnRyb2xOYW1lID0gJ2ZsYWdDb21tZW50cyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWVudHNNYXhDaGFyTGltaXQgPSAyMDA7XG4gIC8vIENvZGUgZm9yIFwiT3RoZXJcIiBmbGFnIHR5cGUgYXMgZGVmaW5lZCBpbiBSZWZlcmVuY2UgRGF0YVxuICBwcml2YXRlIHJlYWRvbmx5IG90aGVyRmxhZ1R5cGVDb2RlID0gJ09UMDAwMSc7XG5cbiAgcHVibGljIGdldCBvdGhlckludGVybmFsRmxhZ1R5cGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5GTEFHX1RZUEUpPy52YWx1ZT8uZmxhZ0NvZGUgPT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgJiZcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfVklTSUJMRV9JTlRFUk5BTExZX09OTFkpPy52YWx1ZSA9PT0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENvbW1lbnRzVGl0bGUgPSAhdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgP1xuICAgICAgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUuQUREX0ZMQUdfQ09NTUVOVFMgOiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5BRERfRkxBR19DT01NRU5UU19FWFRFUk5BTF9NT0RFO1xuICAgIHRoaXMuYWRkQ29tbWVudHNIaW50ID0gIXRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsID9cbiAgICAgIEFkZENvbW1lbnRzU3RlcC5ISU5UX1RFWFQgOiBBZGRDb21tZW50c1N0ZXAuSElOVF9URVhUX0VYVEVSTkFMO1xuXG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mbGFnQ29tbWVudHNDb250cm9sTmFtZSkpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2wodGhpcy5mbGFnQ29tbWVudHNDb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSBmbGFnIGNvbW1lbnRzIGVudHJ5XG4gICAgdGhpcy52YWxpZGF0ZVRleHRFbnRyeSgpO1xuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoeyBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUywgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRleHRFbnRyeSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdDb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICBpZiAoIXRoaXMub3B0aW9uYWwgJiYgIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZsYWdDb21tZW50c0NvbnRyb2xOYW1lKS52YWx1ZSkge1xuICAgICAgdGhpcy5mbGFnQ29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxcbiAgICAgICAgPyBBZGRDb21tZW50c0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX05PVF9FTlRFUkVEX0VYVEVSTkFMXG4gICAgICAgIDogQWRkQ29tbWVudHNFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19OT1RfRU5URVJFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5mbGFnQ29tbWVudHNOb3RFbnRlcmVkRXJyb3JNZXNzYWdlLFxuICAgICAgICBmaWVsZElkOiB0aGlzLmZsYWdDb21tZW50c0NvbnRyb2xOYW1lXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZsYWdDb21tZW50c0NvbnRyb2xOYW1lKS52YWx1ZSAmJlxuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmxhZ0NvbW1lbnRzQ29udHJvbE5hbWUpLnZhbHVlLmxlbmd0aCA+IHRoaXMuY29tbWVudHNNYXhDaGFyTGltaXQpIHtcbiAgICAgIHRoaXMuZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gQWRkQ29tbWVudHNFcnJvck1lc3NhZ2UuRkxBR19DT01NRU5UU19DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBBZGRDb21tZW50c0Vycm9yTWVzc2FnZS5GTEFHX0NPTU1FTlRTX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgIGZpZWxkSWQ6IHRoaXMuZmxhZ0NvbW1lbnRzQ29udHJvbE5hbWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCkge1xuICAgIHRoaXMub25OZXh0KCk7XG5cbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgc3VwZXIubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstY2hhcmFjdGVyLWNvdW50XCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1jaGFyYWN0ZXItY291bnRcIiBkYXRhLW1heGxlbmd0aD1cIjIwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICAgICAgPGgxIGNsYXNzPVwiZ292dWstbGFiZWwtd3JhcHBlclwiPjxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1tXCIgW2Zvcl09XCJmbGFnQ29tbWVudHNDb250cm9sTmFtZVwiPlxuICAgICAgICAgIHt7YWRkQ29tbWVudHNUaXRsZSB8IHJweFRyYW5zbGF0ZX19PHNwYW4gKm5nSWY9XCJvcHRpb25hbFwiPiAoe3snb3B0aW9uYWwnIHwgcnB4VHJhbnNsYXRlfX0pPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9oMT5cbiAgICAgIDxkaXYgaWQ9XCJhZGQtY29tbWVudHMtaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiPlxuICAgICAgICB7e2FkZENvbW1lbnRzSGludCB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRcIlxuICAgICAgICAqbmdJZj1cIiFpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgJiYgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkICYmICFvdGhlckludGVybmFsRmxhZ1R5cGVTZWxlY3RlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+e3snV2FybmluZycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICB7e2FkZENvbW1lbnRzU3RlcEVudW0uV0FSTklOR19URVhUIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9zdHJvbmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLWNvbW1lbnRzLW5vdC1lbnRlcmVkLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAqbmdJZj1cImZsYWdDb21tZW50c05vdEVudGVyZWRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7ZmxhZ0NvbW1lbnRzTm90RW50ZXJlZEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJhZGQtY29tbWVudHMtY2hhci1saW1pdC1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICpuZ0lmPVwiZmxhZ0NvbW1lbnRzQ2hhckxpbWl0RXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e2ZsYWdDb21tZW50c0NoYXJMaW1pdEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImdvdnVrLXRleHRhcmVhXCIgW2lkXT1cImZsYWdDb21tZW50c0NvbnRyb2xOYW1lXCJcbiAgICAgICAgW25hbWVdPVwiZmxhZ0NvbW1lbnRzQ29udHJvbE5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZsYWdDb21tZW50c0NvbnRyb2xOYW1lXCIgcm93cz1cIjVcIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYWRkLWNvbW1lbnRzLWhpbnQgYWRkLWNvbW1lbnRzLWNoYXItbGltaXQtaW5mbyBhZGQtY29tbWVudHMtY2hhci1saW1pdC1lcnJvclwiPjwvdGV4dGFyZWE+XG4gICAgICA8ZGl2IGlkPVwiYWRkLWNvbW1lbnRzLWNoYXItbGltaXQtaW5mb1wiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAge3thZGRDb21tZW50c1N0ZXBFbnVtLkNIQVJBQ1RFUl9MSU1JVF9JTkZPIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==