@hmcts/ccd-case-ui-toolkit 7.2.23-multiple-followup → 7.2.23-srt-rc1

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 (132) hide show
  1. package/esm2022/lib/app.config.mjs +1 -2
  2. package/esm2022/lib/components/form/date-input/date-input.component.mjs +56 -19
  3. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  4. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +24 -3
  5. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +6 -2
  6. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +9 -5
  7. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +9 -5
  8. package/esm2022/lib/shared/components/case-header/case-header.component.mjs +5 -5
  9. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +9 -4
  10. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +16 -3
  11. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +20 -13
  12. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +13 -9
  13. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +4 -2
  14. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +9 -5
  15. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +9 -5
  16. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +9 -5
  17. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +9 -5
  18. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +3 -3
  19. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +6 -6
  20. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +13 -10
  21. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +8 -8
  22. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +4 -4
  23. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +41 -10
  24. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +2 -2
  25. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +7 -7
  26. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +7 -7
  27. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +2 -2
  28. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +3 -3
  29. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +3 -3
  30. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +21 -25
  31. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +21 -25
  32. package/esm2022/lib/shared/components/palette/palette.module.mjs +12 -3
  33. package/esm2022/lib/shared/components/palette/query-management/components/close-query/close-query.component.mjs +3 -3
  34. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +26 -15
  35. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +6 -2
  36. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +50 -180
  37. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +22 -18
  38. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +2 -2
  39. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +2 -2
  40. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +59 -6
  41. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +44 -11
  42. package/esm2022/lib/shared/components/palette/query-management/constants/query-management.constants.mjs +7 -0
  43. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +32 -14
  44. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +4 -4
  45. package/esm2022/lib/shared/components/palette/query-management/services/index.mjs +2 -1
  46. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +179 -0
  47. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +5 -5
  48. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +11 -3
  49. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +1 -1
  50. package/esm2022/lib/shared/directives/index.mjs +2 -1
  51. package/esm2022/lib/shared/directives/welsh-translated-markdown/index.mjs +3 -0
  52. package/esm2022/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.mjs +104 -0
  53. package/esm2022/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.mjs +21 -0
  54. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +2 -3
  55. package/esm2022/lib/shared/services/draft/draft.service.mjs +2 -2
  56. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +38 -3
  57. package/esm2022/lib/shared/services/form/form-value.service.mjs +24 -1
  58. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +7 -8
  59. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1310 -820
  60. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  61. package/lib/app.config.d.ts +0 -1
  62. package/lib/app.config.d.ts.map +1 -1
  63. package/lib/components/form/date-input/date-input.component.d.ts +4 -0
  64. package/lib/components/form/date-input/date-input.component.d.ts.map +1 -1
  65. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +1 -0
  66. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts.map +1 -1
  67. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  68. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts +2 -0
  69. 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
  70. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +2 -0
  71. 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
  72. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts +2 -0
  73. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -1
  74. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +1 -0
  75. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  76. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  77. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts +2 -0
  78. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts.map +1 -1
  79. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  80. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +2 -0
  81. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts.map +1 -1
  82. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts +2 -0
  83. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts.map +1 -1
  84. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts +2 -0
  85. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts.map +1 -1
  86. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts +2 -0
  87. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts.map +1 -1
  88. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -2
  89. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  90. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  91. package/lib/shared/components/palette/collection/read-collection-field.component.d.ts +3 -1
  92. package/lib/shared/components/palette/collection/read-collection-field.component.d.ts.map +1 -1
  93. package/lib/shared/components/palette/date/read-date-field.component.d.ts.map +1 -1
  94. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +2 -0
  95. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts.map +1 -1
  96. package/lib/shared/components/palette/palette.module.d.ts +18 -17
  97. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  98. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +2 -0
  99. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  100. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +15 -13
  101. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  102. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +2 -0
  103. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  104. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +24 -3
  105. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  106. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +12 -3
  107. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
  108. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts +7 -0
  109. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts.map +1 -0
  110. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
  111. package/lib/shared/components/palette/query-management/services/index.d.ts +1 -0
  112. package/lib/shared/components/palette/query-management/services/index.d.ts.map +1 -1
  113. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts +21 -0
  114. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts.map +1 -0
  115. package/lib/shared/components/palette/utils/field-label.pipe.d.ts +1 -0
  116. package/lib/shared/components/palette/utils/field-label.pipe.d.ts.map +1 -1
  117. package/lib/shared/components/search-result/search-result.component.d.ts.map +1 -1
  118. package/lib/shared/directives/index.d.ts +1 -0
  119. package/lib/shared/directives/index.d.ts.map +1 -1
  120. package/lib/shared/directives/welsh-translated-markdown/index.d.ts +3 -0
  121. package/lib/shared/directives/welsh-translated-markdown/index.d.ts.map +1 -0
  122. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.d.ts +76 -0
  123. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.d.ts.map +1 -0
  124. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.d.ts +8 -0
  125. package/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.d.ts.map +1 -0
  126. package/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.d.ts.map +1 -1
  127. package/lib/shared/services/form/field-type-sanitiser.d.ts +5 -0
  128. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  129. package/lib/shared/services/form/form-value.service.d.ts +1 -0
  130. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  131. package/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.d.ts.map +1 -1
  132. package/package.json +1 -1
@@ -117,7 +117,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template
117
117
  i0.ɵɵelementContainerEnd();
118
118
  } if (rf & 2) {
119
119
  i0.ɵɵadvance(8);
120
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 1, "This query has been closed by court staff."));
120
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 1, "This query has been closed by HMCTS staff."));
121
121
  } }
122
122
  function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
123
123
  const _r4 = i0.ɵɵgetCurrentView();
@@ -131,7 +131,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
131
131
  i0.ɵɵadvance();
132
132
  i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && !ctx_r1.isQueryClosed);
133
133
  i0.ɵɵadvance();
134
- i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && ctx_r1.isQueryClosed);
134
+ i0.ɵɵproperty("ngIf", ctx_r1.isQueryClosed);
135
135
  } }
136
136
  export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
137
137
  route;
@@ -226,7 +226,7 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
226
226
  }
227
227
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
228
228
  type: Component,
229
- args: [{ selector: 'ccd-read-query-management-field', template: "<ng-container *ngIf=\"showQueryList; else singleQueryDetails\">\n <ng-container *ngFor=\"let caseQueriesCollection of caseQueriesCollections\">\n <div *ngIf=\"showQueryList\" class=\"govuk-!-margin-top-8 govuk-!-margin-bottom-8\">\n <ccd-query-list (selectedQuery)=\"setQuery($event)\" [caseQueriesCollection]=\"caseQueriesCollection\"></ccd-query-list>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #singleQueryDetails>\n <ccd-query-details\n [query]=\"query\"\n (backClicked)=\"showQueryList = true\"\n [caseId]=\"caseId\"\n ></ccd-query-details>\n\n <ng-container *ngIf=\"!isInternalUser() && !isQueryClosed\">\n <ng-container *ngIf=\"(messageType && messageType === followUpQuery && isMultipleFollowUpEnabled) || (messageType && messageType === respondToQuery); else sequentialQuery\">\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n </ng-container>\n <ng-template #sequentialQuery>\n <ng-container *ngIf=\"query?.children?.length > 0 && query?.children?.length % 2 === 1; else queryIsInReview\">\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n </ng-container>\n\n <ng-template #queryIsInReview>\n <div>\n <p class=\"govuk-!-font-weight-bold\">{{ 'Your query is under review' | rpxTranslate }}</p>\n <p>{{ 'Our team will read your query and respond. Do not submit the same query more than once.' | rpxTranslate }}</p>\n </div>\n </ng-template>\n </ng-template>\n\n </ng-container>\n <ng-container *ngIf=\"!isInternalUser() && isQueryClosed\">\n <div class=\"govuk-warning-text\">\n <span aria-hidden=\"true\" class=\"govuk-warning-text__icon\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-visually-hidden\">Warning</span>\n <p class=\"qm-service-message govuk-!-font-weight-bold\">{{ 'This query has been closed by court staff.' | rpxTranslate }}</p>\n </strong>\n </div>\n </ng-container>\n</ng-template>\n" }]
229
+ args: [{ selector: 'ccd-read-query-management-field', template: "<ng-container *ngIf=\"showQueryList; else singleQueryDetails\">\n <ng-container *ngFor=\"let caseQueriesCollection of caseQueriesCollections\">\n <div *ngIf=\"showQueryList\" class=\"govuk-!-margin-top-8 govuk-!-margin-bottom-8\">\n <ccd-query-list (selectedQuery)=\"setQuery($event)\" [caseQueriesCollection]=\"caseQueriesCollection\"></ccd-query-list>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #singleQueryDetails>\n <ccd-query-details\n [query]=\"query\"\n (backClicked)=\"showQueryList = true\"\n [caseId]=\"caseId\"\n ></ccd-query-details>\n\n <ng-container *ngIf=\"!isInternalUser() && !isQueryClosed\">\n <ng-container *ngIf=\"(messageType && messageType === followUpQuery && isMultipleFollowUpEnabled) || (messageType && messageType === respondToQuery); else sequentialQuery\">\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n </ng-container>\n <ng-template #sequentialQuery>\n <ng-container *ngIf=\"query?.children?.length > 0 && query?.children?.length % 2 === 1; else queryIsInReview\">\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n </ng-container>\n\n <ng-template #queryIsInReview>\n <div>\n <p class=\"govuk-!-font-weight-bold\">{{ 'Your query is under review' | rpxTranslate }}</p>\n <p>{{ 'Our team will read your query and respond. Do not submit the same query more than once.' | rpxTranslate }}</p>\n </div>\n </ng-template>\n </ng-template>\n\n </ng-container>\n <ng-container *ngIf=\"isQueryClosed\">\n <div class=\"govuk-warning-text\">\n <span aria-hidden=\"true\" class=\"govuk-warning-text__icon\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-visually-hidden\">Warning</span>\n <p class=\"qm-service-message govuk-!-font-weight-bold\">{{ 'This query has been closed by HMCTS staff.' | rpxTranslate }}</p>\n </strong>\n </div>\n </ng-container>\n</ng-template>\n" }]
230
230
  }], () => [{ type: i1.ActivatedRoute }, { type: i2.SessionStorageService }, { type: i3.CaseNotifier }, { type: i4.AbstractAppConfig }], null); })();
231
231
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 18 }); })();
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsa0JBQWtCLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0lDUHJELEFBREYsOEJBQWdGLHdCQUNxQjtJQUFuRiwwUEFBaUIsdUJBQWdC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QUFRLEVBQUUsTUFBTTtZQUMzQixDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3hELENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO0lBQ3pCLENBQUM7MkhBakdVLGlDQUFpQzs2REFBakMsaUNBQWlDO1lDVDlDLEFBUkEsb0dBQTZELHNIQVE1Qjs7O1lBUkcsQUFBckIsd0NBQXFCLG1DQUF1Qjs7O2lGRGlCOUMsaUNBQWlDO2NBSjdDLFNBQVM7MkJBQ0UsaUNBQWlDOztrRkFHaEMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZVRhYiB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBpc0ludGVybmFsVXNlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWxldHRlQ29udGV4dCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvcGFsZXR0ZS1jb250ZXh0LmVudW0nO1xuaW1wb3J0IHsgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4vdXRpbHMvcXVlcnktbWFuYWdlbWVudC51dGlscyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXJlYWQtcXVlcnktbWFuYWdlbWVudC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLXF1ZXJ5LW1hbmFnZW1lbnQtZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRRdWVyeU1hbmFnZW1lbnRGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uczogQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uW107XG4gIHB1YmxpYyBxdWVyeTogUXVlcnlMaXN0SXRlbTtcbiAgcHVibGljIHNob3dRdWVyeUxpc3Q6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBtZXNzYWdlVHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBmb2xsb3dVcFF1ZXJ5OiBzdHJpbmcgPSBRdWVyeUNyZWF0ZUNvbnRleHQuRk9MTE9XVVA7XG4gIHB1YmxpYyByZXNwb25kVG9RdWVyeTogc3RyaW5nID0gUXVlcnlDcmVhdGVDb250ZXh0LlJFU1BPTkQ7XG5cbiAgcHVibGljIGlzUXVlcnlDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgdmFsdWU6IGJvb2xlYW47XG4gIHB1YmxpYyBpc011bHRpcGxlRm9sbG93VXBFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjdXJyZW50SnVyaXNkaWN0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgY2FzZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic3RyYWN0Q29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuY2lkO1xuXG4gICAgdGhpcy5lbmFibGVTZXJ2aWNlU3BlY2lmaWNNdWx0aUZvbGxvd3VwcyA9IHRoaXMuYWJzdHJhY3RDb25maWcuZ2V0RW5hYmxlU2VydmljZVNwZWNpZmljTXVsdGlGb2xsb3d1cHMoKSB8fCBbXTtcbiAgICB0aGlzLmNhc2VTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5zdWJzY3JpYmUoKGNhc2VEZXRhaWxzKSA9PiB7XG4gICAgICBpZiAoY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uanVyaXNkaWN0aW9uPy5pZCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRKdXJpc2RpY3Rpb25JZCA9IGNhc2VEZXRhaWxzLmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24uaWQ7XG4gICAgICAgIHRoaXMuaXNNdWx0aXBsZUZvbGxvd1VwRW5hYmxlZCA9IHRoaXMuZW5hYmxlU2VydmljZVNwZWNpZmljTXVsdGlGb2xsb3d1cHMuaW5jbHVkZXModGhpcy5jdXJyZW50SnVyaXNkaWN0aW9uSWQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29udGV4dCA9PT0gUGFsZXR0ZUNvbnRleHQuREVGQVVMVCkge1xuICAgICAgLy8gRVVJLTgzMDMgVXNpbmcgbW9jayBkYXRhIHVudGlsIENDRCBpcyByZWFkeSB3aXRoIHRoZSBBUEkgYW5kIGRhdGEgY29udHJhY3RcbiAgICAgIC8vIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IGNhc2VNZXNzYWdlc01vY2tEYXRhO1xuXG4gICAgICAvLyBUT0RPOiBBY3R1YWwgaW1wbGVtZW50YXRpb24gb25jZSB0aGUgQ0NEIEFQSSBhbmQgZGF0YSBjb250cmFjdCBpcyBhdmFpbGFibGVcbiAgICAgIC8vIEVhY2ggcGFydGllcyB3aWxsIGhhdmUgYSBzZXBhcmF0ZSBjb2xsZWN0aW9uIG9mIHBhcnR5IG1lc3NhZ2VzXG4gICAgICAvLyBGaW5kIHdoZXRoZXIgcXVlcmllcyB0YWIgaXMgYXZhaWxhYmxlIGluIHRoZSBjYXNlIGRhdGFcbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmZldGNoQW5kUmVmcmVzaCh0aGlzLmNhc2VJZClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKGNhc2VEZXRhaWxzKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2U/LnRhYnMpIHtcbiAgICAgICAgICAgICAgdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gKGNhc2VEZXRhaWxzLnRhYnMgYXMgQ2FzZVRhYltdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHRhYikgPT4gdGFiLmZpZWxkcz8uc29tZShcbiAgICAgICAgICAgICAgICAgIChjYXNlRmllbGQpID0+IGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wb25lbnRMYXVuY2hlcicgJiYgY2FzZUZpZWxkLmlkID09PSB0aGlzLmNhc2VGaWVsZC5pZCkpXG4gICAgICAgICAgICAgICAgWzBdLmZpZWxkcz8ucmVkdWNlKChhY2MsIGNhc2VGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID0gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZChjYXNlRmllbGQpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkICYmIHR5cGVvZiBleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGxpc3Qgb2YgcGFydGllcyBhbmQgdGhlaXIgY2FzZSBxdWVyaWVzIGNvbGxlY3Rpb25zXG4gICAgICAvLyBRdWVyeU1hbmFnZW1lbnRVdGlscy5leHRyYWN0Q2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFF1ZXJ5KHF1ZXJ5KTogdm9pZCB7XG4gICAgdGhpcy5zaG93UXVlcnlMaXN0ID0gZmFsc2U7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgIHRoaXMubWVzc2FnZVR5cGUgPSB0aGlzLmdldE1lc3NhZ2VUeXBlKHF1ZXJ5KTtcbiAgICB0aGlzLmlzUXVlcnlDbG9zZWQgPSB0aGlzLnF1ZXJ5Py5jaGlsZHJlbj8uc29tZSgocXVlcnlJdGVtKSA9PiBxdWVyeUl0ZW0/LmlzQ2xvc2VkID09PSAnWWVzJyk7XG4gIH1cblxuICBwdWJsaWMgYmFja1RvUXVlcnlMaXN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dRdWVyeUxpc3QgPSB0cnVlO1xuICAgIHRoaXMucXVlcnkgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGlzSW50ZXJuYWxVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0ludGVybmFsVXNlcih0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWVzc2FnZVR5cGUocXVlcnk6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnkuY2hpbGRyZW4/Lmxlbmd0aFxuICAgICAgPyBxdWVyeS5jaGlsZHJlbltxdWVyeS5jaGlsZHJlbi5sZW5ndGggLSAxXT8ubWVzc2FnZVR5cGVcbiAgICAgIDogcXVlcnk/Lm1lc3NhZ2VUeXBlO1xuICB9XG59XG5cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UXVlcnlMaXN0OyBlbHNlIHNpbmdsZVF1ZXJ5RGV0YWlsc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXNlUXVlcmllc0NvbGxlY3Rpb24gb2YgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93UXVlcnlMaXN0XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtOCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tOFwiPlxuICAgICAgPGNjZC1xdWVyeS1saXN0IChzZWxlY3RlZFF1ZXJ5KT1cInNldFF1ZXJ5KCRldmVudClcIiBbY2FzZVF1ZXJpZXNDb2xsZWN0aW9uXT1cImNhc2VRdWVyaWVzQ29sbGVjdGlvblwiPjwvY2NkLXF1ZXJ5LWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2luZ2xlUXVlcnlEZXRhaWxzPlxuICA8Y2NkLXF1ZXJ5LWRldGFpbHNcbiAgICBbcXVlcnldPVwicXVlcnlcIlxuICAgIChiYWNrQ2xpY2tlZCk9XCJzaG93UXVlcnlMaXN0ID0gdHJ1ZVwiXG4gICAgW2Nhc2VJZF09XCJjYXNlSWRcIlxuICA+PC9jY2QtcXVlcnktZGV0YWlscz5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSW50ZXJuYWxVc2VyKCkgJiYgIWlzUXVlcnlDbG9zZWRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKG1lc3NhZ2VUeXBlICYmIG1lc3NhZ2VUeXBlID09PSBmb2xsb3dVcFF1ZXJ5ICAmJiBpc011bHRpcGxlRm9sbG93VXBFbmFibGVkKSB8fCAobWVzc2FnZVR5cGUgJiYgbWVzc2FnZVR5cGUgPT09IHJlc3BvbmRUb1F1ZXJ5KTsgZWxzZSBzZXF1ZW50aWFsUXVlcnlcIj5cbiAgICAgIDxidXR0b24gaWQ9XCJhc2stZm9sbG93LXVwLXF1ZXN0aW9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3F1ZXJ5LW1hbmFnZW1lbnQnLCAncXVlcnknLCBjYXNlSWQsICc0JywgcXVlcnkuaWRdXCI+XG4gICAgICAgIHt7ICdBc2sgYSBmb2xsb3ctdXAgcXVlc3Rpb24nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3NlcXVlbnRpYWxRdWVyeT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeT8uY2hpbGRyZW4/Lmxlbmd0aCA+IDAgJiYgcXVlcnk/LmNoaWxkcmVuPy5sZW5ndGggJSAyID09PSAxOyBlbHNlIHF1ZXJ5SXNJblJldmlld1wiPlxuICAgICAgICA8YnV0dG9uIGlkPVwiYXNrLWZvbGxvdy11cC1xdWVzdGlvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3F1ZXJ5LW1hbmFnZW1lbnQnLCAncXVlcnknLCBjYXNlSWQsICc0JywgcXVlcnkuaWRdXCI+XG4gICAgICAgICAge3sgJ0FzayBhIGZvbGxvdy11cCBxdWVzdGlvbicgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNxdWVyeUlzSW5SZXZpZXc+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyAnWW91ciBxdWVyeSBpcyB1bmRlciByZXZpZXcnIHwgcnB4VHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgIDxwPnt7ICdPdXIgdGVhbSB3aWxsIHJlYWQgeW91ciBxdWVyeSBhbmQgcmVzcG9uZC4gRG8gbm90IHN1Ym1pdCB0aGUgc2FtZSBxdWVyeSBtb3JlIHRoYW4gb25jZS4nIHwgcnB4VHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ludGVybmFsVXNlcigpICYmIGlzUXVlcnlDbG9zZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCI+XG4gICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiPiE8L3NwYW4+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+V2FybmluZzwvc3Bhbj5cbiAgICAgICAgPHAgY2xhc3M9XCJxbS1zZXJ2aWNlLW1lc3NhZ2UgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgJ1RoaXMgcXVlcnkgaGFzIGJlZW4gY2xvc2VkIGJ5IGNvdXJ0IHN0YWZmLicgfCBycHhUcmFuc2xhdGUgfX08L3A+XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsa0JBQWtCLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0lDUHJELEFBREYsOEJBQWdGLHdCQUNxQjtJQUFuRiwwUEFBaUIsdUJBQWdC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UUFBUSxFQUFFLE1BQU07WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVztZQUN4RCxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztJQUN6QixDQUFDOzJIQWpHVSxpQ0FBaUM7NkRBQWpDLGlDQUFpQztZQ1Q5QyxBQVJBLG9HQUE2RCxzSEFRNUI7OztZQVJHLEFBQXJCLHdDQUFxQixtQ0FBdUI7OztpRkRpQjlDLGlDQUFpQztjQUo3QyxTQUFTOzJCQUNFLGlDQUFpQzs7a0ZBR2hDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENhc2VUYWIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgaXNJbnRlcm5hbFVzZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFsZXR0ZUNvbnRleHQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL3BhbGV0dGUtY29udGV4dC5lbnVtJztcbmltcG9ydCB7IENhc2VRdWVyaWVzQ29sbGVjdGlvbiwgUXVlcnlDcmVhdGVDb250ZXh0LCBRdWVyeUxpc3RJdGVtIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgUXVlcnlNYW5hZ2VtZW50VXRpbHMgfSBmcm9tICcuL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS5ub3RpZmllcic7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLXF1ZXJ5LW1hbmFnZW1lbnQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnM6IENhc2VRdWVyaWVzQ29sbGVjdGlvbltdO1xuICBwdWJsaWMgcXVlcnk6IFF1ZXJ5TGlzdEl0ZW07XG4gIHB1YmxpYyBzaG93UXVlcnlMaXN0OiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgbWVzc2FnZVR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgZm9sbG93VXBRdWVyeTogc3RyaW5nID0gUXVlcnlDcmVhdGVDb250ZXh0LkZPTExPV1VQO1xuICBwdWJsaWMgcmVzcG9uZFRvUXVlcnk6IHN0cmluZyA9IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EO1xuXG4gIHB1YmxpYyBpc1F1ZXJ5Q2xvc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHZhbHVlOiBib29sZWFuO1xuICBwdWJsaWMgaXNNdWx0aXBsZUZvbGxvd1VwRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY3VycmVudEp1cmlzZGljdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBlbmFibGVTZXJ2aWNlU3BlY2lmaWNNdWx0aUZvbGxvd3Vwczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIGNhc2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhYnN0cmFjdENvbmZpZzogQWJzdHJhY3RBcHBDb25maWdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmNpZDtcblxuICAgIHRoaXMuZW5hYmxlU2VydmljZVNwZWNpZmljTXVsdGlGb2xsb3d1cHMgPSB0aGlzLmFic3RyYWN0Q29uZmlnLmdldEVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzKCkgfHwgW107XG4gICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uID0gdGhpcy5jYXNlTm90aWZpZXIuY2FzZVZpZXcuc3Vic2NyaWJlKChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgaWYgKGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SnVyaXNkaWN0aW9uSWQgPSBjYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkO1xuICAgICAgICB0aGlzLmlzTXVsdGlwbGVGb2xsb3dVcEVuYWJsZWQgPSB0aGlzLmVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzLmluY2x1ZGVzKHRoaXMuY3VycmVudEp1cmlzZGljdGlvbklkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQpIHtcbiAgICAgIC8vIEVVSS04MzAzIFVzaW5nIG1vY2sgZGF0YSB1bnRpbCBDQ0QgaXMgcmVhZHkgd2l0aCB0aGUgQVBJIGFuZCBkYXRhIGNvbnRyYWN0XG4gICAgICAvLyB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSBjYXNlTWVzc2FnZXNNb2NrRGF0YTtcblxuICAgICAgLy8gVE9ETzogQWN0dWFsIGltcGxlbWVudGF0aW9uIG9uY2UgdGhlIENDRCBBUEkgYW5kIGRhdGEgY29udHJhY3QgaXMgYXZhaWxhYmxlXG4gICAgICAvLyBFYWNoIHBhcnRpZXMgd2lsbCBoYXZlIGEgc2VwYXJhdGUgY29sbGVjdGlvbiBvZiBwYXJ0eSBtZXNzYWdlc1xuICAgICAgLy8gRmluZCB3aGV0aGVyIHF1ZXJpZXMgdGFiIGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FzZSBkYXRhXG4gICAgICB0aGlzLmNhc2VOb3RpZmllci5mZXRjaEFuZFJlZnJlc2godGhpcy5jYXNlSWQpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlPy50YWJzKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IChjYXNlRGV0YWlscy50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcG9uZW50TGF1bmNoZXInICYmIGNhc2VGaWVsZC5pZCA9PT0gdGhpcy5jYXNlRmllbGQuaWQpKVxuICAgICAgICAgICAgICAgIFswXS5maWVsZHM/LnJlZHVjZSgoYWNjLCBjYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmV4dHJhY3RDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQoY2FzZUZpZWxkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCAmJiB0eXBlb2YgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsaXN0IG9mIHBhcnRpZXMgYW5kIHRoZWlyIGNhc2UgcXVlcmllcyBjb2xsZWN0aW9uc1xuICAgICAgLy8gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1F1ZXJ5TGlzdCA9IGZhbHNlO1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLm1lc3NhZ2VUeXBlID0gdGhpcy5nZXRNZXNzYWdlVHlwZShxdWVyeSk7XG4gICAgdGhpcy5pc1F1ZXJ5Q2xvc2VkID0gdGhpcy5xdWVyeT8uY2hpbGRyZW4/LnNvbWUoKHF1ZXJ5SXRlbSkgPT4gcXVlcnlJdGVtPy5pc0Nsb3NlZCA9PT0gJ1llcycpO1xuICB9XG5cbiAgcHVibGljIGJhY2tUb1F1ZXJ5TGlzdFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93UXVlcnlMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBpc0ludGVybmFsVXNlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNJbnRlcm5hbFVzZXIodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIGdldE1lc3NhZ2VUeXBlKHF1ZXJ5OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5LmNoaWxkcmVuPy5sZW5ndGhcbiAgICAgID8gcXVlcnkuY2hpbGRyZW5bcXVlcnkuY2hpbGRyZW4ubGVuZ3RoIC0gMV0/Lm1lc3NhZ2VUeXBlXG4gICAgICA6IHF1ZXJ5Py5tZXNzYWdlVHlwZTtcbiAgfVxufVxuXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1F1ZXJ5TGlzdDsgZWxzZSBzaW5nbGVRdWVyeURldGFpbHNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG9mIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1F1ZXJ5TGlzdFwiIGNsYXNzPVwiZ292dWstIS1tYXJnaW4tdG9wLTggZ292dWstIS1tYXJnaW4tYm90dG9tLThcIj5cbiAgICAgIDxjY2QtcXVlcnktbGlzdCAoc2VsZWN0ZWRRdWVyeSk9XCJzZXRRdWVyeSgkZXZlbnQpXCIgW2Nhc2VRdWVyaWVzQ29sbGVjdGlvbl09XCJjYXNlUXVlcmllc0NvbGxlY3Rpb25cIj48L2NjZC1xdWVyeS1saXN0PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3NpbmdsZVF1ZXJ5RGV0YWlscz5cbiAgPGNjZC1xdWVyeS1kZXRhaWxzXG4gICAgW3F1ZXJ5XT1cInF1ZXJ5XCJcbiAgICAoYmFja0NsaWNrZWQpPVwic2hvd1F1ZXJ5TGlzdCA9IHRydWVcIlxuICAgIFtjYXNlSWRdPVwiY2FzZUlkXCJcbiAgPjwvY2NkLXF1ZXJ5LWRldGFpbHM+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ludGVybmFsVXNlcigpICYmICFpc1F1ZXJ5Q2xvc2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihtZXNzYWdlVHlwZSAmJiBtZXNzYWdlVHlwZSA9PT0gZm9sbG93VXBRdWVyeSAgJiYgaXNNdWx0aXBsZUZvbGxvd1VwRW5hYmxlZCkgfHwgKG1lc3NhZ2VUeXBlICYmIG1lc3NhZ2VUeXBlID09PSByZXNwb25kVG9RdWVyeSk7IGVsc2Ugc2VxdWVudGlhbFF1ZXJ5XCI+XG4gICAgICA8YnV0dG9uIGlkPVwiYXNrLWZvbGxvdy11cC1xdWVzdGlvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9xdWVyeS1tYW5hZ2VtZW50JywgJ3F1ZXJ5JywgY2FzZUlkLCAnNCcsIHF1ZXJ5LmlkXVwiPlxuICAgICAgICB7eyAnQXNrIGEgZm9sbG93LXVwIHF1ZXN0aW9uJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzZXF1ZW50aWFsUXVlcnk+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnk/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmIHF1ZXJ5Py5jaGlsZHJlbj8ubGVuZ3RoICUgMiA9PT0gMTsgZWxzZSBxdWVyeUlzSW5SZXZpZXdcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImFzay1mb2xsb3ctdXAtcXVlc3Rpb25cIiBjbGFzcz1cImdvdnVrLWJ1dHRvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9xdWVyeS1tYW5hZ2VtZW50JywgJ3F1ZXJ5JywgY2FzZUlkLCAnNCcsIHF1ZXJ5LmlkXVwiPlxuICAgICAgICAgIHt7ICdBc2sgYSBmb2xsb3ctdXAgcXVlc3Rpb24nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjcXVlcnlJc0luUmV2aWV3PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgJ1lvdXIgcXVlcnkgaXMgdW5kZXIgcmV2aWV3JyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICA8cD57eyAnT3VyIHRlYW0gd2lsbCByZWFkIHlvdXIgcXVlcnkgYW5kIHJlc3BvbmQuIERvIG5vdCBzdWJtaXQgdGhlIHNhbWUgcXVlcnkgbW9yZSB0aGFuIG9uY2UuJyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1F1ZXJ5Q2xvc2VkXCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dFwiPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPldhcm5pbmc8L3NwYW4+XG4gICAgICAgIDxwIGNsYXNzPVwicW0tc2VydmljZS1tZXNzYWdlIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7ICdUaGlzIHF1ZXJ5IGhhcyBiZWVuIGNsb3NlZCBieSBITUNUUyBzdGFmZi4nIHwgcnB4VHJhbnNsYXRlIH19PC9wPlxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,2 +1,3 @@
1
1
  export * from './qualifying-question.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9xdWVyeS1tYW5hZ2VtZW50L3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3F1YWxpZnlpbmctcXVlc3Rpb24uc2VydmljZSc7XG4iXX0=
2
+ export * from './query-management.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9xdWVyeS1tYW5hZ2VtZW50L3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXVhbGlmeWluZy1xdWVzdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktbWFuYWdlbWVudC5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,179 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { QueryCreateContext } from '../models';
4
+ import { SessionStorageService } from '../../../../services';
5
+ import { USER_DETAILS } from '../../../../utils';
6
+ import { QueryManagementUtils } from '../utils/query-management.utils';
7
+ import { CASE_QUERIES_COLLECTION_ID, FIELD_TYPE_COMPLEX, DISPLAY_CONTEXT_READONLY, QM_SELECT_FIRST_COLLECTION, QM_COLLECTION_PROMPT, CIVIL_JURISDICTION } from '../constants/query-management.constants';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/router";
10
+ import * as i2 from "../../../../services";
11
+ export class QueryManagementService {
12
+ router;
13
+ sessionStorageService;
14
+ caseQueriesCollections;
15
+ fieldId;
16
+ constructor(router, sessionStorageService) {
17
+ this.router = router;
18
+ this.sessionStorageService = sessionStorageService;
19
+ }
20
+ generateCaseQueriesCollectionData(formGroup, queryCreateContext, queryItem, messageId // Get the message ID from route params (if present)
21
+ ) {
22
+ let currentUserDetails;
23
+ try {
24
+ currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
25
+ }
26
+ catch (e) {
27
+ console.error('Could not parse USER_DETAILS from session storage:', e);
28
+ currentUserDetails = {};
29
+ }
30
+ const caseMessage = queryCreateContext === QueryCreateContext.NEW_QUERY
31
+ ? QueryManagementUtils.getNewQueryData(formGroup, currentUserDetails)
32
+ : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails, queryCreateContext);
33
+ const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
34
+ // Check if the field ID has been set dynamically
35
+ if (!this.fieldId) {
36
+ console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
37
+ this.router.navigate(['/', 'service-down']);
38
+ throw new Error('Field ID for CaseQueriesCollection not found. Aborting query data generation.');
39
+ }
40
+ // Initialize new query data structure
41
+ const newQueryData = {};
42
+ if (this.caseQueriesCollections?.length) {
43
+ let matchedCollection;
44
+ // If it's not a new query, try to find the existing collection with the message ID
45
+ if (!isNewQuery && messageId) {
46
+ matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
47
+ }
48
+ if (matchedCollection) {
49
+ // Append the new case message to the matched collection's caseMessages
50
+ matchedCollection.caseMessages.push({
51
+ id: null,
52
+ value: caseMessage
53
+ });
54
+ // Add the matched collection to newQueryData
55
+ newQueryData[this.fieldId] = {
56
+ ...matchedCollection, // Keep existing data intact
57
+ caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
58
+ };
59
+ }
60
+ else {
61
+ // Use partyName from the first collection (assumption: all share the same party)
62
+ const originalPartyName = this.caseQueriesCollections?.[0]?.partyName ?? currentUserDetails?.name;
63
+ // If no collection matches, or it's a new query
64
+ newQueryData[this.fieldId] = {
65
+ partyName: originalPartyName,
66
+ roleOnCase: '', // Not returned by CCD
67
+ caseMessages: [
68
+ {
69
+ id: null,
70
+ value: caseMessage
71
+ }
72
+ ]
73
+ };
74
+ // If caseQueriesCollections is not empty, append its data
75
+ newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
76
+ }
77
+ }
78
+ else {
79
+ // If there are no existing collections, create a new one (e.g., for new queries)
80
+ newQueryData[this.fieldId] = {
81
+ partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
82
+ roleOnCase: '', // Not returned by CCD
83
+ caseMessages: [
84
+ {
85
+ id: null,
86
+ value: caseMessage
87
+ }
88
+ ]
89
+ };
90
+ }
91
+ return newQueryData;
92
+ }
93
+ setCaseQueriesCollectionData(eventData, queryCreateContext, caseDetails, messageId) {
94
+ const resolvedFieldId = this.resolveFieldId(eventData, queryCreateContext, caseDetails, messageId);
95
+ if (!resolvedFieldId) {
96
+ console.error('Failed to resolve fieldId for CaseQueriesCollection. Cannot proceed.');
97
+ return;
98
+ }
99
+ this.fieldId = resolvedFieldId;
100
+ this.caseQueriesCollections = eventData.case_fields.reduce((acc, field) => {
101
+ if (field.id === this.fieldId) {
102
+ const extracted = QueryManagementUtils.extractCaseQueriesFromCaseField(field);
103
+ if (extracted && typeof extracted === 'object') {
104
+ acc.push(extracted);
105
+ }
106
+ }
107
+ return acc;
108
+ }, []);
109
+ }
110
+ resolveFieldId(eventData, queryCreateContext, caseDetails, messageId) {
111
+ // Step 1: Filter candidate fields (must be editable CaseQueriesCollection fields)
112
+ const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
113
+ field.field_type.type === FIELD_TYPE_COMPLEX &&
114
+ field.display_context !== DISPLAY_CONTEXT_READONLY);
115
+ if (!candidateFields?.length) {
116
+ console.warn('No editable CaseQueriesCollection fields found.');
117
+ return null;
118
+ }
119
+ const numberOfCollections = candidateFields.length;
120
+ const jurisdictionId = caseDetails?.case_type?.jurisdiction?.id ?? '';
121
+ // Step 2: If messageId is present, try to locate the field containing that message
122
+ if (messageId) {
123
+ const fieldByMessage = candidateFields.find((field) => field?.value?.caseMessages?.some((msg) => msg?.value?.id === messageId));
124
+ if (fieldByMessage) {
125
+ return fieldByMessage.id; // Found the matching field by message ID
126
+ }
127
+ }
128
+ // Step 3: Handle new queries
129
+ if (queryCreateContext === QueryCreateContext.NEW_QUERY) {
130
+ // If there's only one collection, use it
131
+ if (numberOfCollections === 1) {
132
+ return candidateFields[0].id;
133
+ }
134
+ // For multiple collections, use jurisdiction-based resolution strategy
135
+ if (this.getCollectionSelectionMethod(jurisdictionId) === QM_SELECT_FIRST_COLLECTION) {
136
+ // Choose the one with the lowest order from the first wizard page
137
+ const firstOrdered = this.getCaseQueriesCollectionFieldOrderFromWizardPages(eventData);
138
+ if (firstOrdered) {
139
+ return firstOrdered.id;
140
+ }
141
+ }
142
+ else {
143
+ console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
144
+ return null;
145
+ }
146
+ }
147
+ // Step 4: Fallback — if none of the above succeeded
148
+ console.warn('Could not determine fieldId for context:', queryCreateContext);
149
+ return null;
150
+ }
151
+ getCaseQueriesCollectionFieldOrderFromWizardPages(eventData) {
152
+ const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
153
+ field.field_type.type === FIELD_TYPE_COMPLEX &&
154
+ field.display_context !== DISPLAY_CONTEXT_READONLY);
155
+ if (!candidateFields?.length) {
156
+ return undefined;
157
+ }
158
+ const firstPageFields = eventData?.wizard_pages?.[0]?.wizard_page_fields;
159
+ if (!firstPageFields) {
160
+ return undefined;
161
+ }
162
+ return candidateFields
163
+ .map((field) => {
164
+ const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
165
+ return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
166
+ })
167
+ .sort((a, b) => a.order - b.order)[0]?.field;
168
+ }
169
+ getCollectionSelectionMethod(jurisdiction) {
170
+ return jurisdiction.toUpperCase() === CIVIL_JURISDICTION ? QM_SELECT_FIRST_COLLECTION : QM_COLLECTION_PROMPT;
171
+ }
172
+ static ɵfac = function QueryManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.SessionStorageService)); };
173
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementService, factory: QueryManagementService.ɵfac, providedIn: 'root' });
174
+ }
175
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementService, [{
176
+ type: Injectable,
177
+ args: [{ providedIn: 'root' }]
178
+ }], () => [{ type: i1.Router }, { type: i2.SessionStorageService }], null); })();
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9zZXJ2aWNlcy9xdWVyeS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUEyQixrQkFBa0IsRUFBd0MsTUFBTSxXQUFXLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNuQixNQUFNLHlDQUF5QyxDQUFDOzs7O0FBS2pELE1BQU0sT0FBTyxzQkFBc0I7SUFLZDtJQUNBO0lBTFosc0JBQXNCLENBQTBCO0lBQ2hELE9BQU8sQ0FBUztJQUV2QixZQUNtQixNQUFjLEVBQ2QscUJBQTRDO1FBRDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQzVELENBQUM7SUFFRyxpQ0FBaUMsQ0FDdEMsU0FBb0IsRUFDcEIsa0JBQXNDLEVBQ3RDLFNBQXdCLEVBQ3hCLFNBQWtCLENBQUMsb0RBQW9EOztRQUV2RSxJQUFJLGtCQUFrQixDQUFDO1FBRXZCLElBQUksQ0FBQztZ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YXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluJztcbmltcG9ydCB7IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0sIENhc2VRdWVyaWVzQ29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVU0VSX0RFVEFJTFMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4uL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHtcbiAgQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQsXG4gIEZJRUxEX1RZUEVfQ09NUExFWCxcbiAgRElTUExBWV9DT05URVhUX1JFQURPTkxZLFxuICBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTixcbiAgUU1fQ09MTEVDVElPTl9QUk9NUFQsXG4gIENJVklMX0pVUklTRElDVElPTlxufSBmcm9tICcuLi9jb25zdGFudHMvcXVlcnktbWFuYWdlbWVudC5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuXG5leHBvcnQgY2xhc3MgUXVlcnlNYW5hZ2VtZW50U2VydmljZSB7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIGZpZWxkSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZW5lcmF0ZUNhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQsXG4gICAgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtLFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZyAvLyBHZXQgdGhlIG1lc3NhZ2UgSUQgZnJvbSByb3V0ZSBwYXJhbXMgKGlmIHByZXNlbnQpXG4gICk6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIHtcbiAgICBsZXQgY3VycmVudFVzZXJEZXRhaWxzO1xuXG4gICAgdHJ5IHtcbiAgICAgIGN1cnJlbnRVc2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShVU0VSX0RFVEFJTFMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgcGFyc2UgVVNFUl9ERVRBSUxTIGZyb20gc2Vzc2lvbiBzdG9yYWdlOicsIGUpO1xuICAgICAgY3VycmVudFVzZXJEZXRhaWxzID0ge307XG4gICAgfVxuICAgIGNvbnN0IGNhc2VNZXNzYWdlID0gcXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZXG4gICAgICA/IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmdldE5ld1F1ZXJ5RGF0YShmb3JtR3JvdXAsIGN1cnJlbnRVc2VyRGV0YWlscylcbiAgICAgIDogUXVlcnlNYW5hZ2VtZW50VXRpbHMuZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEoZm9ybUdyb3VwLCBxdWVyeUl0ZW0sIGN1cnJlbnRVc2VyRGV0YWlscywgcXVlcnlDcmVhdGVDb250ZXh0KTtcblxuICAgIGNvbnN0IGlzTmV3UXVlcnkgPSBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5ORVdfUVVFUlk7IC8vIENoZWNrIGlmIHRoaXMgaXMgYSBuZXcgcXVlcnlcblxuICAgIC8vIENoZWNrIGlmIHRoZSBmaWVsZCBJRCBoYXMgYmVlbiBzZXQgZHluYW1pY2FsbHlcbiAgICBpZiAoIXRoaXMuZmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IEZpZWxkIElEIGZvciBDYXNlUXVlcmllc0NvbGxlY3Rpb24gbm90IGZvdW5kLiBDYW5ub3QgcHJvY2VlZCB3aXRoIGRhdGEgZ2VuZXJhdGlvbi4nKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsICdzZXJ2aWNlLWRvd24nXSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIElEIGZvciBDYXNlUXVlcmllc0NvbGxlY3Rpb24gbm90IGZvdW5kLiBBYm9ydGluZyBxdWVyeSBkYXRhIGdlbmVyYXRpb24uJyk7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBuZXcgcXVlcnkgZGF0YSBzdHJ1Y3R1cmVcbiAgICBjb25zdCBuZXdRdWVyeURhdGE6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uID0ge307XG5cbiAgICBpZiAodGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgIGxldCBtYXRjaGVkQ29sbGVjdGlvbjtcblxuICAgICAgLy8gSWYgaXQncyBub3QgYSBuZXcgcXVlcnksIHRyeSB0byBmaW5kIHRoZSBleGlzdGluZyBjb2xsZWN0aW9uIHdpdGggdGhlIG1lc3NhZ2UgSURcbiAgICAgIGlmICghaXNOZXdRdWVyeSAmJiBtZXNzYWdlSWQpIHtcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24gPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT5cbiAgICAgICAgICBjb2xsZWN0aW9uLmNhc2VNZXNzYWdlcy5zb21lKChtZXNzYWdlKSA9PiBtZXNzYWdlLnZhbHVlLmlkID09PSBtZXNzYWdlSWQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXRjaGVkQ29sbGVjdGlvbikge1xuICAgICAgICAvLyBBcHBlbmQgdGhlIG5ldyBjYXNlIG1lc3NhZ2UgdG8gdGhlIG1hdGNoZWQgY29sbGVjdGlvbidzIGNhc2VNZXNzYWdlc1xuICAgICAgICBtYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgbWF0Y2hlZCBjb2xsZWN0aW9uIHRvIG5ld1F1ZXJ5RGF0YVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgICAuLi5tYXRjaGVkQ29sbGVjdGlvbiwgLy8gS2VlcCBleGlzdGluZyBkYXRhIGludGFjdFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogWy4uLm1hdGNoZWRDb2xsZWN0aW9uLmNhc2VNZXNzYWdlc10gLy8gQXBwZW5kIHRoZSB1cGRhdGVkIG1lc3NhZ2VzIGFycmF5XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVc2UgcGFydHlOYW1lIGZyb20gdGhlIGZpcnN0IGNvbGxlY3Rpb24gKGFzc3VtcHRpb246IGFsbCBzaGFyZSB0aGUgc2FtZSBwYXJ0eSlcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQYXJ0eU5hbWUgPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnM/LlswXT8ucGFydHlOYW1lID8/IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZTtcblxuICAgICAgICAvLyBJZiBubyBjb2xsZWN0aW9uIG1hdGNoZXMsIG9yIGl0J3MgYSBuZXcgcXVlcnlcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgcGFydHlOYW1lOiBvcmlnaW5hbFBhcnR5TmFtZSxcbiAgICAgICAgICByb2xlT25DYXNlOiAnJywgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIElmIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgaXMgbm90IGVtcHR5LCBhcHBlbmQgaXRzIGRhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0uY2FzZU1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZsYXRNYXAoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgY29sbGVjdGlvbnMsIGNyZWF0ZSBhIG5ldyBvbmUgKGUuZy4sIGZvciBuZXcgcXVlcmllcylcbiAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICBwYXJ0eU5hbWU6IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZSB8fCBgJHtjdXJyZW50VXNlckRldGFpbHM/LmZvcmVuYW1lfSAke2N1cnJlbnRVc2VyRGV0YWlscz8uc3VybmFtZX1gLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIHJvbGVPbkNhc2U6ICcnLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3UXVlcnlEYXRhO1xuICB9XG5cbiAgcHVibGljIHNldENhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoXG4gICAgZXZlbnREYXRhOiBDYXNlRXZlbnRUcmlnZ2VyLFxuICAgIHF1ZXJ5Q3JlYXRlQ29udGV4dDogUXVlcnlDcmVhdGVDb250ZXh0LFxuICAgIGNhc2VEZXRhaWxzOiBDYXNlVmlldyxcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcmVzb2x2ZWRGaWVsZElkID0gdGhpcy5yZXNvbHZlRmllbGRJZChldmVudERhdGEsIHF1ZXJ5Q3JlYXRlQ29udGV4dCwgY2FzZURldGFpbHMsIG1lc3NhZ2VJZCk7XG5cbiAgICBpZiAoIXJlc29sdmVkRmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlc29sdmUgZmllbGRJZCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLiBDYW5ub3QgcHJvY2VlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkSWQgPSByZXNvbHZlZEZpZWxkSWQ7XG5cbiAgICB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSBldmVudERhdGEuY2FzZV9maWVsZHMucmVkdWNlKChhY2MsIGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQuaWQgPT09IHRoaXMuZmllbGRJZCkge1xuICAgICAgICBjb25zdCBleHRyYWN0ZWQgPSBRdWVyeU1hbmFnZW1lbnRVdGlscy5leHRyYWN0Q2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkKGZpZWxkKTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZCAmJiB0eXBlb2YgZXh0cmFjdGVkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGFjYy5wdXNoKGV4dHJhY3RlZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRmllbGRJZChcbiAgICBldmVudERhdGE6IENhc2VFdmVudFRyaWdnZXIsXG4gICAgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQsXG4gICAgY2FzZURldGFpbHM6IENhc2VWaWV3LFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZ1xuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gU3RlcCAxOiBGaWx0ZXIgY2FuZGlkYXRlIGZpZWxkcyAobXVzdCBiZSBlZGl0YWJsZSBDYXNlUXVlcmllc0NvbGxlY3Rpb24gZmllbGRzKVxuICAgIGNvbnN0IGNhbmRpZGF0ZUZpZWxkcyA9IGV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgIChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5pZCA9PT0gQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiZcbiAgICAgIGZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gRklFTERfVFlQRV9DT01QTEVYICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHQgIT09IERJU1BMQVlfQ09OVEVYVF9SRUFET05MWVxuICAgICk7XG5cbiAgICBpZiAoIWNhbmRpZGF0ZUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vIGVkaXRhYmxlIENhc2VRdWVyaWVzQ29sbGVjdGlvbiBmaWVsZHMgZm91bmQuJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBudW1iZXJPZkNvbGxlY3Rpb25zID0gY2FuZGlkYXRlRmllbGRzLmxlbmd0aDtcbiAgICBjb25zdCBqdXJpc2RpY3Rpb25JZCA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQgPz8gJyc7XG5cbiAgICAvLyBTdGVwIDI6IElmIG1lc3NhZ2VJZCBpcyBwcmVzZW50LCB0cnkgdG8gbG9jYXRlIHRoZSBmaWVsZCBjb250YWluaW5nIHRoYXQgbWVzc2FnZVxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIGNvbnN0IGZpZWxkQnlNZXNzYWdlID0gY2FuZGlkYXRlRmllbGRzLmZpbmQoKGZpZWxkKSA9PlxuICAgICAgICBmaWVsZD8udmFsdWU/LmNhc2VNZXNzYWdlcz8uc29tZSgobXNnKSA9PiBtc2c/LnZhbHVlPy5pZCA9PT0gbWVzc2FnZUlkKVxuICAgICAgKTtcbiAgICAgIGlmIChmaWVsZEJ5TWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gZmllbGRCeU1lc3NhZ2UuaWQ7IC8vIEZvdW5kIHRoZSBtYXRjaGluZyBmaWVsZCBieSBtZXNzYWdlIElEXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RlcCAzOiBIYW5kbGUgbmV3IHF1ZXJpZXNcbiAgICBpZiAocXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZKSB7XG4gICAgLy8gSWYgdGhlcmUncyBvbmx5IG9uZSBjb2xsZWN0aW9uLCB1c2UgaXRcbiAgICAgIGlmIChudW1iZXJPZkNvbGxlY3Rpb25zID09PSAxKSB7XG4gICAgICAgIHJldHVybiBjYW5kaWRhdGVGaWVsZHNbMF0uaWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBtdWx0aXBsZSBjb2xsZWN0aW9ucywgdXNlIGp1cmlzZGljdGlvbi1iYXNlZCByZXNvbHV0aW9uIHN0cmF0ZWd5XG4gICAgICBpZiAodGhpcy5nZXRDb2xsZWN0aW9uU2VsZWN0aW9uTWV0aG9kKGp1cmlzZGljdGlvbklkKSA9PT0gUU1fU0VMRUNUX0ZJUlNUX0NPTExFQ1RJT04pIHtcbiAgICAgIC8vIENob29zZSB0aGUgb25lIHdpdGggdGhlIGxvd2VzdCBvcmRlciBmcm9tIHRoZSBmaXJzdCB3aXphcmQgcGFnZVxuICAgICAgICBjb25zdCBmaXJzdE9yZGVyZWQgPSB0aGlzLmdldENhc2VRdWVyaWVzQ29sbGVjdGlvbkZpZWxkT3JkZXJGcm9tV2l6YXJkUGFnZXMoZXZlbnREYXRhKTtcbiAgICAgICAgaWYgKGZpcnN0T3JkZXJlZCkge1xuICAgICAgICAgIHJldHVybiBmaXJzdE9yZGVyZWQuaWQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yOiBNdWx0aXBsZSBDYXNlUXVlcmllc0NvbGxlY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldCBmb3IgdGhlICR7anVyaXNkaWN0aW9uSWR9IGp1cmlzZGljdGlvbmApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdGVwIDQ6IEZhbGxiYWNrIOKAlCBpZiBub25lIG9mIHRoZSBhYm92ZSBzdWNjZWVkZWRcbiAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBkZXRlcm1pbmUgZmllbGRJZCBmb3IgY29udGV4dDonLCBxdWVyeUNyZWF0ZUNvbnRleHQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25GaWVsZE9yZGVyRnJvbVdpemFyZFBhZ2VzKGV2ZW50RGF0YTogQ2FzZUV2ZW50VHJpZ2dlcik6IENhc2VGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY2FuZGlkYXRlRmllbGRzID0gZXZlbnREYXRhPy5jYXNlX2ZpZWxkcz8uZmlsdGVyKFxuICAgICAgKGZpZWxkKSA9PlxuICAgICAgICBmaWVsZC5maWVsZF90eXBlLmlkID09PSBDQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJlxuICAgICAgICBmaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IEZJRUxEX1RZUEVfQ09NUExFWCAmJlxuICAgICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHQgIT09IERJU1BMQVlfQ09OVEVYVF9SRUFET05MWVxuICAgICk7XG5cbiAgICBpZiAoIWNhbmRpZGF0ZUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0UGFnZUZpZWxkcyA9IGV2ZW50RGF0YT8ud2l6YXJkX3BhZ2VzPy5bMF0/LndpemFyZF9wYWdlX2ZpZWxkcztcblxuICAgIGlmICghZmlyc3RQYWdlRmllbGRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBjYW5kaWRhdGVGaWVsZHNcbiAgICAgIC5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpemFyZEZpZWxkID0gZmlyc3RQYWdlRmllbGRzLmZpbmQoKGYpID0+IGYuY2FzZV9maWVsZF9pZCA9PT0gZmllbGQuaWQpO1xuICAgICAgICByZXR1cm4geyBmaWVsZCwgb3JkZXI6IHdpemFyZEZpZWxkPy5vcmRlciA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9O1xuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcilbMF0/LmZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xsZWN0aW9uU2VsZWN0aW9uTWV0aG9kKGp1cmlzZGljdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4ganVyaXNkaWN0aW9uLnRvVXBwZXJDYXNlKCkgPT09IENJVklMX0pVUklTRElDVElPTiA/IFFNX1NFTEVDVF9GSVJTVF9DT0xMRUNUSU9OIDogUU1fQ09MTEVDVElPTl9QUk9NUFQ7XG4gIH1cbn1cblxuIl19
@@ -33,8 +33,8 @@ export class QueryManagementUtils {
33
33
  const formDocument = attachments.map((document) => this.documentToCollectionFormDocument(document));
34
34
  const currentUserId = currentUserDetails?.uid || currentUserDetails?.id;
35
35
  const currentUserName = currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`;
36
- const subject = formGroup.get('subject').value;
37
- const body = formGroup.get('body').value;
36
+ const subject = formGroup.get('subject').value.trim();
37
+ const body = formGroup.get('body').value.trim();
38
38
  const isHearingRelated = formGroup.get('isHearingRelated').value ? 'Yes' : 'No';
39
39
  const hearingDate = (isHearingRelated === 'Yes')
40
40
  ? this.formattedDate(formGroup.get('hearingDate').value)
@@ -55,7 +55,7 @@ export class QueryManagementUtils {
55
55
  static getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails, messageTypeParam) {
56
56
  const currentUserId = currentUserDetails?.uid || currentUserDetails?.id;
57
57
  const currentUserName = currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`;
58
- const body = formGroup.get('body').value;
58
+ const body = formGroup.get('body').value.trim();
59
59
  const attachments = formGroup.get('attachments').value;
60
60
  const formDocument = attachments.map((document) => this.documentToCollectionFormDocument(document));
61
61
  const isClosed = formGroup.get('closeQuery').value ? 'Yes' : 'No';
@@ -66,7 +66,7 @@ export class QueryManagementUtils {
66
66
  : undefined;
67
67
  return {
68
68
  id: uuidv4(),
69
- subject: queryItem.subject,
69
+ subject: queryItem.subject.trim(),
70
70
  name: currentUserName,
71
71
  body,
72
72
  attachments: formDocument,
@@ -95,4 +95,4 @@ export class QueryManagementUtils {
95
95
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementUtils, [{
96
96
  type: Injectable
97
97
  }], null, null); })();
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbWFuYWdlbWVudC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvdXRpbHMvcXVlcnktbWFuYWdlbWVudC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBZSxrQkFBa0IsRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOztBQUc1QixNQUFNLE9BQU8sb0JBQW9CO0lBQ3ZCLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztJQUNoRSxNQUFNLENBQVUscUJBQXFCLEdBQUcsWUFBWSxDQUFDO0lBQ3JELE1BQU0sQ0FBVSxrQkFBa0IsR0FBRyxTQUFTLENBQUM7SUFDL0MsTUFBTSxDQUFVLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztJQUV0RCxNQUFNLENBQUMsK0JBQStCLENBQUMsU0FBb0I7UUFDaEUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBRXpELDZCQUE2QjtRQUM3QixJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoRSxJQUFJLFVBQVUsQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsb0JBQW9CLElBQUksZUFBZSxLQUFLLG9CQUFvQixDQUFDLHdCQUF3QixJQUFJLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JMLE9BQU8sS0FB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LENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OEdBaEdVLG9CQUFvQjtnRUFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQjs7aUZBQXBCLG9CQUFvQjtjQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRG9jdW1lbnQsIEZvcm1Eb2N1bWVudCwgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VNZXNzYWdlLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdWVyeU1hbmFnZW1lbnRVdGlscyB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNhc2VMZXZlbENhc2VGaWVsZElkID0gJ0Nhc2VRdWVyaWVzQ29sbGVjdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT0xMRUNUSU9OID0gJ0NvbGxlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfQ09NUExFWCA9ICdDb21wbGV4JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFkgPSAnUkVBRE9OTFknO1xuXG4gIHB1YmxpYyBzdGF0aWMgZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZChjYXNlRmllbGQ6IENhc2VGaWVsZCkge1xuICAgIGNvbnN0IHsgZmllbGRfdHlwZSwgdmFsdWUsIGRpc3BsYXlfY29udGV4dCB9ID0gY2FzZUZpZWxkO1xuXG4gICAgLy8gSGFuZGxlIENvbXBsZXggdHlwZSBmaWVsZHNcbiAgICBpZiAoZmllbGRfdHlwZS50eXBlID09PSBRdWVyeU1hbmFnZW1lbnRVdGlscy5GSUVMRF9UWVBFX0NPTVBMRVgpIHtcbiAgICAgIGlmIChmaWVsZF90eXBlLmlkID09PSBRdWVyeU1hbmFnZW1lbnRVdGlscy5jYXNlTGV2ZWxDYXNlRmllbGRJZCAmJiBkaXNwbGF5X2NvbnRleHQgIT09IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLkRJU1BMQVlfQ09OVEVYVF9SRUFET05MWSAmJiBRdWVyeU1hbmFnZW1lbnRVdGlscy5pc05vbkVtcHR5T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRvY3VtZW50VG9Db2xsZWN0aW9uRm9ybURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCk6IHsgaWQ6IHN0cmluZzsgdmFsdWU6IEZvcm1Eb2N1bWVudCB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG51bGwsXG4gICAgICB2YWx1ZToge1xuICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogZG9jdW1lbnQ/Lm9yaWdpbmFsRG9jdW1lbnROYW1lLFxuICAgICAgICBkb2N1bWVudF91cmw6IGRvY3VtZW50Py5fbGlua3M/LnNlbGY/LmhyZWYsXG4gICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IGRvY3VtZW50Py5fbGlua3M/LmJpbmFyeT8uaHJlZlxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE5ld1F1ZXJ5RGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY3VycmVudFVzZXJEZXRhaWxzOiBhbnkpOiBDYXNlTWVzc2FnZSB7XG4gICAgY29uc3QgYXR0YWNobWVudHMgPSBmb3JtR3JvdXAuZ2V0KCdhdHRhY2htZW50cycpLnZhbHVlO1xuICAgIGNvbnN0IGZvcm1Eb2N1bWVudCA9IGF0dGFjaG1lbnRzLm1hcCgoZG9jdW1lbnQpID0+IHRoaXMuZG9jdW1lbnRUb0NvbGxlY3Rpb25Gb3JtRG9jdW1lbnQoZG9jdW1lbnQpKTtcbiAgICBjb25zdCBjdXJyZW50VXNlcklkID0gY3VycmVudFVzZXJEZXRhaWxzPy51aWQgfHwgY3VycmVudFVzZXJEZXRhaWxzPy5pZDtcbiAgICBjb25zdCBjdXJyZW50VXNlck5hbWUgPSBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWUgfHwgYCR7Y3VycmVudFVzZXJEZXRhaWxzPy5mb3JlbmFtZX0gJHtjdXJyZW50VXNlckRldGFpbHM/LnN1cm5hbWV9YDtcbiAgICBjb25zdCBzdWJqZWN0ID0gZm9ybUdyb3VwLmdldCgnc3ViamVjdCcpLnZhbHVlO1xuICAgIGNvbnN0IGJvZHkgPSBmb3JtR3JvdXAuZ2V0KCdib2R5JykudmFsdWU7XG4gICAgY29uc3QgaXNIZWFyaW5nUmVsYXRlZCA9IGZvcm1Hcm91cC5nZXQoJ2lzSGVhcmluZ1JlbGF0ZWQnKS52YWx1ZSA/ICdZZXMnIDogJ05vJztcbiAgICBjb25zdCBoZWFyaW5nRGF0ZSA9IChpc0hlYXJpbmdSZWxhdGVkID09PSAnWWVzJylcbiAgICAgID8gdGhpcy5mb3JtYXR0ZWREYXRlKGZvcm1Hcm91cC5nZXQoJ2hlYXJpbmdEYXRlJykudmFsdWUpXG4gICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB1dWlkdjQoKSxcbiAgICAgIHN1YmplY3QsXG4gICAgICBuYW1lOiBjdXJyZW50VXNlck5hbWUsXG4gICAgICBib2R5LFxuICAgICAgYXR0YWNobWVudHM6IGZvcm1Eb2N1bWVudCxcbiAgICAgIGlzSGVhcmluZ1JlbGF0ZWQsXG4gICAgICBoZWFyaW5nRGF0ZSxcbiAgICAgIGNyZWF0ZWRPbjogbmV3IERhdGUoKSxcbiAgICAgIGNyZWF0ZWRCeTogY3VycmVudFVzZXJJZCxcbiAgICAgIG1lc3NhZ2VUeXBlOiBRdWVyeUNyZWF0ZUNvbnRleHQuRk9MTE9XVVAgLy8gRGVmYXVsdCB0byB2YWx1ZSBuZXcgcXVlcmllcyB3aWxsIGJlIEZPTExPV1VQXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHF1ZXJ5SXRlbTogUXVlcnlMaXN0SXRlbSwgY3VycmVudFVzZXJEZXRhaWxzOiBhbnksIG1lc3NhZ2VUeXBlUGFyYW06IHN0cmluZyk6IENhc2VNZXNzYWdlIHtcbiAgICBjb25zdCBjdXJyZW50VXNlcklkID0gY3VycmVudFVzZXJEZXRhaWxzPy51aWQgfHwgY3VycmVudFVzZXJEZXRhaWxzPy5pZDtcbiAgICBjb25zdCBjdXJyZW50VXNlck5hbWUgPSBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWUgfHwgYCR7Y3VycmVudFVzZXJEZXRhaWxzPy5mb3JlbmFtZX0gJHtjdXJyZW50VXNlckRldGFpbHM/LnN1cm5hbWV9YDtcbiAgICBjb25zdCBib2R5ID0gZm9ybUdyb3VwLmdldCgnYm9keScpLnZhbHVlO1xuICAgIGNvbnN0IGF0dGFjaG1lbnRzID0gZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZTtcbiAgICBjb25zdCBmb3JtRG9jdW1lbnQgPSBhdHRhY2htZW50cy5tYXAoKGRvY3VtZW50KSA9PiB0aGlzLmRvY3VtZW50VG9Db2xsZWN0aW9uRm9ybURvY3VtZW50KGRvY3VtZW50KSk7XG4gICAgY29uc3QgaXNDbG9zZWQgPSBmb3JtR3JvdXAuZ2V0KCdjbG9zZVF1ZXJ5JykudmFsdWUgPyAnWWVzJyA6ICdObyc7XG5cbiAgICBjb25zdCBtZXNzYWdlVHlwZSA9XG4gICAgICBtZXNzYWdlVHlwZVBhcmFtID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuUkVTUE9ORFxuICAgICAgICA/IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EXG4gICAgICAgIDogbWVzc2FnZVR5cGVQYXJhbSA9PT0gUXVlcnlDcmVhdGVDb250ZXh0LkZPTExPV1VQXG4gICAgICAgICAgPyBRdWVyeUNyZWF0ZUNvbnRleHQuRk9MTE9XVVBcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdXVpZHY0KCksXG4gICAgICBzdWJqZWN0OiBxdWVyeUl0ZW0uc3ViamVjdCxcbiAgICAgIG5hbWU6IGN1cnJlbnRVc2VyTmFtZSxcbiAgICAgIGJvZHksXG4gICAgICBhdHRhY2htZW50czogZm9ybURvY3VtZW50LFxuICAgICAgaXNIZWFyaW5nUmVsYXRlZDogcXVlcnlJdGVtLmlzSGVhcmluZ1JlbGF0ZWQsXG4gICAgICBoZWFyaW5nRGF0ZTogcXVlcnlJdGVtLmhlYXJpbmdEYXRlLFxuICAgICAgY3JlYXRlZE9uOiBuZXcgRGF0ZSgpLFxuICAgICAgY3JlYXRlZEJ5OiBjdXJyZW50VXNlcklkLFxuICAgICAgcGFyZW50SWQ6IHF1ZXJ5SXRlbS5pZCxcbiAgICAgIGlzQ2xvc2VkLFxuICAgICAgbWVzc2FnZVR5cGVcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc09iamVjdChlbGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIGVsZW0gPT09ICdvYmplY3QnICYmIGVsZW0gIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTm9uRW1wdHlPYmplY3QoZWxlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPYmplY3QoZWxlbSkgJiYgT2JqZWN0LmtleXMoZWxlbSkubGVuZ3RoICE9PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZm9ybWF0dGVkRGF0ZShkYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gbW9tZW50KGRhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbWFuYWdlbWVudC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvdXRpbHMvcXVlcnktbWFuYWdlbWVudC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBZSxrQkFBa0IsRUFBaUIsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOztBQUc1QixNQUFNLE9BQU8sb0JBQW9CO0lBQ3ZCLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztJQUNoRSxNQUFNLENBQVUscUJBQXFCLEdBQUcsWUFBWSxDQUFDO0lBQ3JELE1BQU0sQ0FBVSxrQkFBa0IsR0FBRyxTQUFTLENBQUM7SUFDL0MsTUFBTSxDQUFVLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztJQUV0RCxNQUFNLENBQUMsK0JBQStCLENBQUMsU0FBb0I7UUFDaEUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBRXpELDZCQUE2QjtRQUM3QixJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoRSxJQUFJLFVBQVUsQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsb0JBQW9CLElBQUksZUFBZSxLQUFLLG9CQUFvQixDQUFDLHdCQUF3QixJQUFJLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JMLE9BQU8sS0FB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Q0FBQyxhQUFhLENBQUMsSUFBSTtRQUMvQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OEdBaEdVLG9CQUFvQjtnRUFBcEIsb0JBQW9CLFdBQXBCLG9CQUFvQjs7aUZBQXBCLG9CQUFvQjtjQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRG9jdW1lbnQsIEZvcm1Eb2N1bWVudCwgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VNZXNzYWdlLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdWVyeU1hbmFnZW1lbnRVdGlscyB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGNhc2VMZXZlbENhc2VGaWVsZElkID0gJ0Nhc2VRdWVyaWVzQ29sbGVjdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT0xMRUNUSU9OID0gJ0NvbGxlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfQ09NUExFWCA9ICdDb21wbGV4JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFkgPSAnUkVBRE9OTFknO1xuXG4gIHB1YmxpYyBzdGF0aWMgZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZChjYXNlRmllbGQ6IENhc2VGaWVsZCkge1xuICAgIGNvbnN0IHsgZmllbGRfdHlwZSwgdmFsdWUsIGRpc3BsYXlfY29udGV4dCB9ID0gY2FzZUZpZWxkO1xuXG4gICAgLy8gSGFuZGxlIENvbXBsZXggdHlwZSBmaWVsZHNcbiAgICBpZiAoZmllbGRfdHlwZS50eXBlID09PSBRdWVyeU1hbmFnZW1lbnRVdGlscy5GSUVMRF9UWVBFX0NPTVBMRVgpIHtcbiAgICAgIGlmIChmaWVsZF90eXBlLmlkID09PSBRdWVyeU1hbmFnZW1lbnRVdGlscy5jYXNlTGV2ZWxDYXNlRmllbGRJZCAmJiBkaXNwbGF5X2NvbnRleHQgIT09IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLkRJU1BMQVlfQ09OVEVYVF9SRUFET05MWSAmJiBRdWVyeU1hbmFnZW1lbnRVdGlscy5pc05vbkVtcHR5T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRvY3VtZW50VG9Db2xsZWN0aW9uRm9ybURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCk6IHsgaWQ6IHN0cmluZzsgdmFsdWU6IEZvcm1Eb2N1bWVudCB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG51bGwsXG4gICAgICB2YWx1ZToge1xuICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogZG9jdW1lbnQ/Lm9yaWdpbmFsRG9jdW1lbnROYW1lLFxuICAgICAgICBkb2N1bWVudF91cmw6IGRvY3VtZW50Py5fbGlua3M/LnNlbGY/LmhyZWYsXG4gICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IGRvY3VtZW50Py5fbGlua3M/LmJpbmFyeT8uaHJlZlxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE5ld1F1ZXJ5RGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY3VycmVudFVzZXJEZXRhaWxzOiBhbnkpOiBDYXNlTWVzc2FnZSB7XG4gICAgY29uc3QgYXR0YWNobWVudHMgPSBmb3JtR3JvdXAuZ2V0KCdhdHRhY2htZW50cycpLnZhbHVlO1xuICAgIGNvbnN0IGZvcm1Eb2N1bWVudCA9IGF0dGFjaG1lbnRzLm1hcCgoZG9jdW1lbnQpID0+IHRoaXMuZG9jdW1lbnRUb0NvbGxlY3Rpb25Gb3JtRG9jdW1lbnQoZG9jdW1lbnQpKTtcbiAgICBjb25zdCBjdXJyZW50VXNlcklkID0gY3VycmVudFVzZXJEZXRhaWxzPy51aWQgfHwgY3VycmVudFVzZXJEZXRhaWxzPy5pZDtcbiAgICBjb25zdCBjdXJyZW50VXNlck5hbWUgPSBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWUgfHwgYCR7Y3VycmVudFVzZXJEZXRhaWxzPy5mb3JlbmFtZX0gJHtjdXJyZW50VXNlckRldGFpbHM/LnN1cm5hbWV9YDtcbiAgICBjb25zdCBzdWJqZWN0ID0gZm9ybUdyb3VwLmdldCgnc3ViamVjdCcpLnZhbHVlLnRyaW0oKTtcbiAgICBjb25zdCBib2R5ID0gZm9ybUdyb3VwLmdldCgnYm9keScpLnZhbHVlLnRyaW0oKTtcbiAgICBjb25zdCBpc0hlYXJpbmdSZWxhdGVkID0gZm9ybUdyb3VwLmdldCgnaXNIZWFyaW5nUmVsYXRlZCcpLnZhbHVlID8gJ1llcycgOiAnTm8nO1xuICAgIGNvbnN0IGhlYXJpbmdEYXRlID0gKGlzSGVhcmluZ1JlbGF0ZWQgPT09ICdZZXMnKVxuICAgICAgPyB0aGlzLmZvcm1hdHRlZERhdGUoZm9ybUdyb3VwLmdldCgnaGVhcmluZ0RhdGUnKS52YWx1ZSlcbiAgICAgIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHV1aWR2NCgpLFxuICAgICAgc3ViamVjdCxcbiAgICAgIG5hbWU6IGN1cnJlbnRVc2VyTmFtZSxcbiAgICAgIGJvZHksXG4gICAgICBhdHRhY2htZW50czogZm9ybURvY3VtZW50LFxuICAgICAgaXNIZWFyaW5nUmVsYXRlZCxcbiAgICAgIGhlYXJpbmdEYXRlLFxuICAgICAgY3JlYXRlZE9uOiBuZXcgRGF0ZSgpLFxuICAgICAgY3JlYXRlZEJ5OiBjdXJyZW50VXNlcklkLFxuICAgICAgbWVzc2FnZVR5cGU6IFF1ZXJ5Q3JlYXRlQ29udGV4dC5GT0xMT1dVUCAvLyBEZWZhdWx0IHRvIHZhbHVlIG5ldyBxdWVyaWVzIHdpbGwgYmUgRk9MTE9XVVBcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRSZXNwb25kT3JGb2xsb3d1cFF1ZXJ5RGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtLCBjdXJyZW50VXNlckRldGFpbHM6IGFueSwgbWVzc2FnZVR5cGVQYXJhbTogc3RyaW5nKTogQ2FzZU1lc3NhZ2Uge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VySWQgPSBjdXJyZW50VXNlckRldGFpbHM/LnVpZCB8fCBjdXJyZW50VXNlckRldGFpbHM/LmlkO1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyTmFtZSA9IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZSB8fCBgJHtjdXJyZW50VXNlckRldGFpbHM/LmZvcmVuYW1lfSAke2N1cnJlbnRVc2VyRGV0YWlscz8uc3VybmFtZX1gO1xuICAgIGNvbnN0IGJvZHkgPSBmb3JtR3JvdXAuZ2V0KCdib2R5JykudmFsdWUudHJpbSgpO1xuICAgIGNvbnN0IGF0dGFjaG1lbnRzID0gZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZTtcbiAgICBjb25zdCBmb3JtRG9jdW1lbnQgPSBhdHRhY2htZW50cy5tYXAoKGRvY3VtZW50KSA9PiB0aGlzLmRvY3VtZW50VG9Db2xsZWN0aW9uRm9ybURvY3VtZW50KGRvY3VtZW50KSk7XG4gICAgY29uc3QgaXNDbG9zZWQgPSBmb3JtR3JvdXAuZ2V0KCdjbG9zZVF1ZXJ5JykudmFsdWUgPyAnWWVzJyA6ICdObyc7XG5cbiAgICBjb25zdCBtZXNzYWdlVHlwZSA9XG4gICAgICBtZXNzYWdlVHlwZVBhcmFtID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuUkVTUE9ORFxuICAgICAgICA/IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EXG4gICAgICAgIDogbWVzc2FnZVR5cGVQYXJhbSA9PT0gUXVlcnlDcmVhdGVDb250ZXh0LkZPTExPV1VQXG4gICAgICAgICAgPyBRdWVyeUNyZWF0ZUNvbnRleHQuRk9MTE9XVVBcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdXVpZHY0KCksXG4gICAgICBzdWJqZWN0OiBxdWVyeUl0ZW0uc3ViamVjdC50cmltKCksXG4gICAgICBuYW1lOiBjdXJyZW50VXNlck5hbWUsXG4gICAgICBib2R5LFxuICAgICAgYXR0YWNobWVudHM6IGZvcm1Eb2N1bWVudCxcbiAgICAgIGlzSGVhcmluZ1JlbGF0ZWQ6IHF1ZXJ5SXRlbS5pc0hlYXJpbmdSZWxhdGVkLFxuICAgICAgaGVhcmluZ0RhdGU6IHF1ZXJ5SXRlbS5oZWFyaW5nRGF0ZSxcbiAgICAgIGNyZWF0ZWRPbjogbmV3IERhdGUoKSxcbiAgICAgIGNyZWF0ZWRCeTogY3VycmVudFVzZXJJZCxcbiAgICAgIHBhcmVudElkOiBxdWVyeUl0ZW0uaWQsXG4gICAgICBpc0Nsb3NlZCxcbiAgICAgIG1lc3NhZ2VUeXBlXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNPYmplY3QoZWxlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBlbGVtID09PSAnb2JqZWN0JyAmJiBlbGVtICE9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc05vbkVtcHR5T2JqZWN0KGVsZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzT2JqZWN0KGVsZW0pICYmIE9iamVjdC5rZXlzKGVsZW0pLmxlbmd0aCAhPT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdHRlZERhdGUoZGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IG1vbWVudChkYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgfVxufVxuIl19
@@ -12,11 +12,19 @@ export class FieldLabelPipe {
12
12
  return '';
13
13
  }
14
14
  else if (!field.display_context) {
15
- return this.rpxTranslationPipe.transform(field.label);
15
+ return this.getTranslatedLabel(field);
16
16
  }
17
- return this.rpxTranslationPipe.transform(field.label) + (field.display_context.toUpperCase() === 'OPTIONAL' ?
17
+ return this.getTranslatedLabel(field) + (field.display_context.toUpperCase() === 'OPTIONAL' ?
18
18
  ' (' + this.rpxTranslationPipe.transform('Optional') + ')' : '');
19
19
  }
20
+ getTranslatedLabel(field) {
21
+ if (!field.isTranslated) {
22
+ return this.rpxTranslationPipe.transform(field.label);
23
+ }
24
+ else {
25
+ return field.label;
26
+ }
27
+ }
20
28
  static ɵfac = function FieldLabelPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FieldLabelPipe)(i0.ɵɵdirectiveInject(i1.RpxTranslatePipe, 16)); };
21
29
  static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdFieldLabel", type: FieldLabelPipe, pure: false });
22
30
  }
@@ -27,4 +35,4 @@ export class FieldLabelPipe {
27
35
  pure: false
28
36
  }]
29
37
  }], () => [{ type: i1.RpxTranslatePipe }], null); })();
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGFiZWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3V0aWxzL2ZpZWxkLWxhYmVsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU92RCxNQUFNLE9BQU8sY0FBYztJQUdOO0lBRG5CLFlBQ21CLGtCQUFvQztRQUFwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO0lBQ3BELENBQUM7SUFFRyxTQUFTLENBQUUsS0FBZ0I7UUFDaEMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQzNHLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQzt3R0FkVSxjQUFjO2dGQUFkLGNBQWM7O2lGQUFkLGNBQWM7Y0FKMUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsS0FBSzthQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRlUGlwZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NjZEZpZWxkTGFiZWwnLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZExhYmVsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnB4VHJhbnNsYXRpb25QaXBlOiBScHhUcmFuc2xhdGVQaXBlXG4gICkge31cbiAgXG4gIHB1YmxpYyB0cmFuc2Zvcm0gKGZpZWxkOiBDYXNlRmllbGQpOiBzdHJpbmcge1xuICAgIGlmICghZmllbGQgfHwgIWZpZWxkLmxhYmVsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghZmllbGQuZGlzcGxheV9jb250ZXh0KSB7XG4gICAgICByZXR1cm4gdGhpcy5ycHhUcmFuc2xhdGlvblBpcGUudHJhbnNmb3JtKGZpZWxkLmxhYmVsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucnB4VHJhbnNsYXRpb25QaXBlLnRyYW5zZm9ybShmaWVsZC5sYWJlbCkgKyAoZmllbGQuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdPUFRJT05BTCcgPyBcbiAgICAgICcgKCcgKyB0aGlzLnJweFRyYW5zbGF0aW9uUGlwZS50cmFuc2Zvcm0oJ09wdGlvbmFsJykgKyAnKScgOiAnJyk7XG4gIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGFiZWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3V0aWxzL2ZpZWxkLWxhYmVsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU92RCxNQUFNLE9BQU8sY0FBYztJQUdOO0lBRG5CLFlBQ21CLGtCQUFvQztRQUFwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO0lBRXZELENBQUM7SUFFTSxTQUFTLENBQUMsS0FBZ0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDM0YsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBZ0I7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO3dHQXZCVSxjQUFjO2dGQUFkLGNBQWM7O2lGQUFkLGNBQWM7Y0FKMUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsS0FBSzthQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRlUGlwZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NjZEZpZWxkTGFiZWwnLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZExhYmVsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnB4VHJhbnNsYXRpb25QaXBlOiBScHhUcmFuc2xhdGVQaXBlXG4gICkge1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybShmaWVsZDogQ2FzZUZpZWxkKTogc3RyaW5nIHtcbiAgICBpZiAoIWZpZWxkIHx8ICFmaWVsZC5sYWJlbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gZWxzZSBpZiAoIWZpZWxkLmRpc3BsYXlfY29udGV4dCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZExhYmVsKGZpZWxkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZExhYmVsKGZpZWxkKSArIChmaWVsZC5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ09QVElPTkFMJyA/XG4gICAgICAnICgnICsgdGhpcy5ycHhUcmFuc2xhdGlvblBpcGUudHJhbnNmb3JtKCdPcHRpb25hbCcpICsgJyknIDogJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmFuc2xhdGVkTGFiZWwoZmllbGQ6IENhc2VGaWVsZCk6IHN0cmluZyB7XG4gICAgaWYgKCFmaWVsZC5pc1RyYW5zbGF0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJweFRyYW5zbGF0aW9uUGlwZS50cmFuc2Zvcm0oZmllbGQubGFiZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmllbGQubGFiZWw7XG4gICAgfVxuICB9XG59XG4iXX0=