@hmcts/ccd-case-ui-toolkit 7.2.27-multiple-followup → 7.2.28

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 (44) hide show
  1. package/esm2022/lib/app.config.mjs +1 -2
  2. package/esm2022/lib/shared/components/palette/palette.module.mjs +7 -2
  3. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +50 -195
  4. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +8 -55
  5. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +59 -6
  6. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +39 -6
  7. package/esm2022/lib/shared/components/palette/query-management/constants/query-management.constants.mjs +7 -0
  8. package/esm2022/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +1 -1
  9. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +7 -43
  10. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +38 -82
  11. package/esm2022/lib/shared/components/palette/query-management/services/index.mjs +2 -1
  12. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +179 -0
  13. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +4 -12
  14. package/esm2022/lib/shared/services/draft/draft.service.mjs +2 -2
  15. package/esm2022/lib/shared/utils.mjs +1 -1
  16. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +567 -583
  17. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  18. package/lib/app.config.d.ts +0 -2
  19. package/lib/app.config.d.ts.map +1 -1
  20. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  21. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +15 -14
  22. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  23. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +3 -15
  24. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  25. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +24 -3
  26. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  27. 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
  28. 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
  29. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts +7 -0
  30. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts.map +1 -0
  31. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +0 -1
  32. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -1
  33. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +0 -1
  34. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
  35. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +3 -15
  36. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
  37. package/lib/shared/components/palette/query-management/services/index.d.ts +1 -0
  38. package/lib/shared/components/palette/query-management/services/index.d.ts.map +1 -1
  39. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts +21 -0
  40. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts.map +1 -0
  41. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +1 -1
  42. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -1
  43. package/lib/shared/utils.d.ts +1 -1
  44. package/package.json +1 -1
@@ -4,19 +4,16 @@ import { SessionStorageService } from '../../../services';
4
4
  import { isInternalUser } from '../../../utils';
5
5
  import { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';
6
6
  import { PaletteContext } from '../base-field/palette-context.enum';
7
- import { QueryCreateContext } from './models';
8
7
  import { QueryManagementUtils } from './utils/query-management.utils';
9
8
  import { CaseNotifier } from '../../case-editor/services/case.notifier';
10
- import { AbstractAppConfig } from '../../../../app.config';
11
9
  import * as i0 from "@angular/core";
12
10
  import * as i1 from "@angular/router";
13
11
  import * as i2 from "../../../services";
14
12
  import * as i3 from "../../case-editor/services/case.notifier";
15
- import * as i4 from "../../../../app.config";
16
13
  const _c0 = (a0, a1) => ["/query-management", "query", a0, "4", a1];
17
14
  function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) {
18
15
  const _r1 = i0.ɵɵgetCurrentView();
19
- i0.ɵɵelementStart(0, "div", 6)(1, "ccd-query-list", 7);
16
+ i0.ɵɵelementStart(0, "div", 5)(1, "ccd-query-list", 6);
20
17
  i0.ɵɵlistener("selectedQuery", function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template_ccd_query_list_selectedQuery_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setQuery($event)); });
21
18
  i0.ɵɵelementEnd()();
22
19
  } if (rf & 2) {
@@ -26,7 +23,7 @@ function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_T
26
23
  } }
27
24
  function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
28
25
  i0.ɵɵelementContainerStart(0);
29
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template, 2, 1, "div", 5);
26
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template, 2, 1, "div", 4);
30
27
  i0.ɵɵelementContainerEnd();
31
28
  } if (rf & 2) {
32
29
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -35,7 +32,7 @@ function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Templat
35
32
  } }
36
33
  function ReadQueryManagementFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
37
34
  i0.ɵɵelementContainerStart(0);
38
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 4);
35
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 3);
39
36
  i0.ɵɵelementContainerEnd();
40
37
  } if (rf & 2) {
41
38
  const ctx_r1 = i0.ɵɵnextContext();
@@ -44,7 +41,7 @@ function ReadQueryManagementFieldComponent_ng_container_0_Template(rf, ctx) { if
44
41
  } }
45
42
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
46
43
  i0.ɵɵelementContainerStart(0);
47
- i0.ɵɵelementStart(1, "button", 10);
44
+ i0.ɵɵelementStart(1, "button", 9);
48
45
  i0.ɵɵtext(2);
49
46
  i0.ɵɵpipe(3, "rpxTranslate");
50
47
  i0.ɵɵelementEnd();
@@ -56,61 +53,49 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_conta
56
53
  i0.ɵɵadvance();
57
54
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
58
55
  } }
59
- function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
60
- i0.ɵɵelementContainerStart(0);
61
- i0.ɵɵelementStart(1, "button", 10);
62
- i0.ɵɵtext(2);
63
- i0.ɵɵpipe(3, "rpxTranslate");
64
- i0.ɵɵelementEnd();
65
- i0.ɵɵelementContainerEnd();
66
- } if (rf & 2) {
67
- const ctx_r1 = i0.ɵɵnextContext(4);
68
- i0.ɵɵadvance();
69
- i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction2(4, _c0, ctx_r1.caseId, ctx_r1.query.id));
70
- i0.ɵɵadvance();
71
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
72
- } }
73
- function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
74
- i0.ɵɵelementStart(0, "div")(1, "p", 11);
56
+ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelementStart(0, "div")(1, "button", 9);
75
58
  i0.ɵɵtext(2);
76
59
  i0.ɵɵpipe(3, "rpxTranslate");
77
60
  i0.ɵɵelementEnd();
78
- i0.ɵɵelementStart(4, "p");
61
+ i0.ɵɵelementStart(4, "p", 10);
79
62
  i0.ɵɵtext(5);
80
63
  i0.ɵɵpipe(6, "rpxTranslate");
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelementStart(7, "p");
66
+ i0.ɵɵtext(8);
67
+ i0.ɵɵpipe(9, "rpxTranslate");
81
68
  i0.ɵɵelementEnd()();
82
69
  } if (rf & 2) {
83
- i0.ɵɵadvance(2);
84
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Your query is under review"));
85
- i0.ɵɵadvance(3);
86
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Our team will read your query and respond. Do not submit the same query more than once."));
87
- } }
88
- function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
89
- i0.ɵɵtemplate(0, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_container_0_Template, 4, 7, "ng-container", 3)(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_template_1_Template, 7, 6, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
90
- } if (rf & 2) {
91
- const queryIsInReview_r5 = i0.ɵɵreference(2);
92
70
  const ctx_r1 = i0.ɵɵnextContext(3);
93
- i0.ɵɵproperty("ngIf", (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) > 0 && (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) % 2 === 1)("ngIfElse", queryIsInReview_r5);
71
+ i0.ɵɵadvance();
72
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction2(10, _c0, ctx_r1.caseId, ctx_r1.query.id));
73
+ i0.ɵɵadvance();
74
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "Ask a follow-up question"), " ");
75
+ i0.ɵɵadvance(3);
76
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, "Your query is under review"));
77
+ i0.ɵɵadvance(3);
78
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 8, "Our team will read your query and respond. Do not submit the same query more than once."));
94
79
  } }
95
80
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
96
81
  i0.ɵɵelementContainerStart(0);
97
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template, 4, 7, "ng-container", 3)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template, 3, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
82
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template, 4, 7, "ng-container", 2)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template, 10, 13, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
98
83
  i0.ɵɵelementContainerEnd();
99
84
  } if (rf & 2) {
100
- const sequentialQuery_r6 = i0.ɵɵreference(3);
85
+ const queryIsInReview_r5 = i0.ɵɵreference(3);
101
86
  const ctx_r1 = i0.ɵɵnextContext(2);
102
87
  i0.ɵɵadvance();
103
- i0.ɵɵproperty("ngIf", ctx_r1.messageType && ctx_r1.messageType === ctx_r1.followUpQuery && ctx_r1.isMultipleFollowUpEnabled || ctx_r1.messageType && ctx_r1.messageType === ctx_r1.respondToQuery)("ngIfElse", sequentialQuery_r6);
88
+ i0.ɵɵproperty("ngIf", (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) > 0 && (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) % 2 === 1)("ngIfElse", queryIsInReview_r5);
104
89
  } }
105
90
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
106
91
  i0.ɵɵelementContainerStart(0);
107
- i0.ɵɵelementStart(1, "div", 12)(2, "span", 13);
92
+ i0.ɵɵelementStart(1, "div", 11)(2, "span", 12);
108
93
  i0.ɵɵtext(3, "!");
109
94
  i0.ɵɵelementEnd();
110
- i0.ɵɵelementStart(4, "strong", 14)(5, "span", 15);
95
+ i0.ɵɵelementStart(4, "strong", 13)(5, "span", 14);
111
96
  i0.ɵɵtext(6, "Warning");
112
97
  i0.ɵɵelementEnd();
113
- i0.ɵɵelementStart(7, "p", 16);
98
+ i0.ɵɵelementStart(7, "p", 15);
114
99
  i0.ɵɵtext(8);
115
100
  i0.ɵɵpipe(9, "rpxTranslate");
116
101
  i0.ɵɵelementEnd()()();
@@ -121,15 +106,15 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template
121
106
  } }
122
107
  function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
123
108
  const _r4 = i0.ɵɵgetCurrentView();
124
- i0.ɵɵelementStart(0, "ccd-query-details", 8);
109
+ i0.ɵɵelementStart(0, "ccd-query-details", 7);
125
110
  i0.ɵɵlistener("backClicked", function ReadQueryManagementFieldComponent_ng_template_1_Template_ccd_query_details_backClicked_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showQueryList = true); });
126
111
  i0.ɵɵelementEnd();
127
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template, 4, 2, "ng-container", 9)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template, 10, 3, "ng-container", 9);
112
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template, 4, 2, "ng-container", 8)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template, 10, 3, "ng-container", 8);
128
113
  } if (rf & 2) {
129
114
  const ctx_r1 = i0.ɵɵnextContext();
130
115
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
131
116
  i0.ɵɵadvance();
132
- i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && !ctx_r1.isQueryClosed);
117
+ i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && !ctx_r1.isQueryClosed && (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) > 0);
133
118
  i0.ɵɵadvance();
134
119
  i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && ctx_r1.isQueryClosed);
135
120
  } }
@@ -137,36 +122,19 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
137
122
  route;
138
123
  sessionStorageService;
139
124
  caseNotifier;
140
- abstractConfig;
141
125
  caseQueriesCollections;
142
126
  query;
143
127
  showQueryList = true;
144
128
  caseId;
145
- messageType;
146
- followUpQuery = QueryCreateContext.FOLLOWUP;
147
- respondToQuery = QueryCreateContext.RESPOND;
148
129
  isQueryClosed = false;
149
- value;
150
- isMultipleFollowUpEnabled = false;
151
- currentJurisdictionId;
152
- enableServiceSpecificMultiFollowups = [];
153
- caseSubscription;
154
- constructor(route, sessionStorageService, caseNotifier, abstractConfig) {
130
+ constructor(route, sessionStorageService, caseNotifier) {
155
131
  super();
156
132
  this.route = route;
157
133
  this.sessionStorageService = sessionStorageService;
158
134
  this.caseNotifier = caseNotifier;
159
- this.abstractConfig = abstractConfig;
160
135
  }
161
136
  ngOnInit() {
162
137
  this.caseId = this.route.snapshot.params.cid;
163
- this.enableServiceSpecificMultiFollowups = this.abstractConfig.getEnableServiceSpecificMultiFollowups() || [];
164
- this.caseSubscription = this.caseNotifier.caseView.subscribe((caseDetails) => {
165
- if (caseDetails?.case_type?.jurisdiction?.id) {
166
- this.currentJurisdictionId = caseDetails.case_type.jurisdiction.id;
167
- this.isMultipleFollowUpEnabled = this.enableServiceSpecificMultiFollowups.includes(this.currentJurisdictionId);
168
- }
169
- });
170
138
  if (this.context === PaletteContext.DEFAULT) {
171
139
  // EUI-8303 Using mock data until CCD is ready with the API and data contract
172
140
  // this.caseQueriesCollections = caseMessagesMockData;
@@ -192,13 +160,9 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
192
160
  // QueryManagementUtils.extractCaseQueriesFromCaseField();
193
161
  }
194
162
  }
195
- ngOnDestroy() {
196
- this.caseSubscription?.unsubscribe();
197
- }
198
163
  setQuery(query) {
199
164
  this.showQueryList = false;
200
165
  this.query = query;
201
- this.messageType = this.getMessageType(query);
202
166
  this.isQueryClosed = this.query?.children?.some((queryItem) => queryItem?.isClosed === 'Yes');
203
167
  }
204
168
  backToQueryListPage() {
@@ -208,25 +172,17 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
208
172
  isInternalUser() {
209
173
  return isInternalUser(this.sessionStorageService);
210
174
  }
211
- getMessageType(query) {
212
- if (!query) {
213
- return undefined;
214
- }
215
- return query.children?.length
216
- ? query.children[query.children.length - 1]?.messageType
217
- : query?.messageType;
218
- }
219
- static ɵfac = function ReadQueryManagementFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SessionStorageService), i0.ɵɵdirectiveInject(i3.CaseNotifier), i0.ɵɵdirectiveInject(i4.AbstractAppConfig)); };
220
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadQueryManagementFieldComponent, selectors: [["ccd-read-query-management-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["singleQueryDetails", ""], ["sequentialQuery", ""], ["queryIsInReview", ""], [4, "ngIf", "ngIfElse"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-margin-top-8 govuk-!-margin-bottom-8", 4, "ngIf"], [1, "govuk-!-margin-top-8", "govuk-!-margin-bottom-8"], [3, "selectedQuery", "caseQueriesCollection"], [3, "backClicked", "query", "caseId"], [4, "ngIf"], ["id", "ask-follow-up-question", "data-module", "govuk-button", 1, "govuk-button", 3, "routerLink"], [1, "govuk-!-font-weight-bold"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-visually-hidden"], [1, "qm-service-message", "govuk-!-font-weight-bold"]], template: function ReadQueryManagementFieldComponent_Template(rf, ctx) { if (rf & 1) {
221
- i0.ɵɵtemplate(0, ReadQueryManagementFieldComponent_ng_container_0_Template, 2, 1, "ng-container", 3)(1, ReadQueryManagementFieldComponent_ng_template_1_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
175
+ static ɵfac = function ReadQueryManagementFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SessionStorageService), i0.ɵɵdirectiveInject(i3.CaseNotifier)); };
176
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadQueryManagementFieldComponent, selectors: [["ccd-read-query-management-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["singleQueryDetails", ""], ["queryIsInReview", ""], [4, "ngIf", "ngIfElse"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-margin-top-8 govuk-!-margin-bottom-8", 4, "ngIf"], [1, "govuk-!-margin-top-8", "govuk-!-margin-bottom-8"], [3, "selectedQuery", "caseQueriesCollection"], [3, "backClicked", "query", "caseId"], [4, "ngIf"], ["id", "ask-follow-up-question", "data-module", "govuk-button", 1, "govuk-button", 3, "routerLink"], [1, "govuk-!-font-weight-bold"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-visually-hidden"], [1, "qm-service-message", "govuk-!-font-weight-bold"]], template: function ReadQueryManagementFieldComponent_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵtemplate(0, ReadQueryManagementFieldComponent_ng_container_0_Template, 2, 1, "ng-container", 2)(1, ReadQueryManagementFieldComponent_ng_template_1_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
222
178
  } if (rf & 2) {
223
- const singleQueryDetails_r7 = i0.ɵɵreference(2);
224
- i0.ɵɵproperty("ngIf", ctx.showQueryList)("ngIfElse", singleQueryDetails_r7);
179
+ const singleQueryDetails_r6 = i0.ɵɵreference(2);
180
+ i0.ɵɵproperty("ngIf", ctx.showQueryList)("ngIfElse", singleQueryDetails_r6);
225
181
  } }, encapsulation: 2 });
226
182
  }
227
183
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
228
184
  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" }]
230
- }], () => [{ type: i1.ActivatedRoute }, { type: i2.SessionStorageService }, { type: i3.CaseNotifier }, { type: i4.AbstractAppConfig }], null); })();
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
185
+ 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 && query?.children?.length > 0\">\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 <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 <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-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" }]
186
+ }], () => [{ type: i1.ActivatedRoute }, { type: i2.SessionStorageService }, { type: i3.CaseNotifier }], null); })();
187
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 15 }); })();
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7OztJQ05sRSxBQURGLDhCQUFnRix3QkFDcUI7SUFBbkYsMFBBQWlCLHVCQUFnQixLQUFDO0lBQ3BELEFBRHFHLGlCQUFpQixFQUNoSDs7O0lBRCtDLGNBQStDO0lBQS9DLGdFQUErQzs7O0lBRnRHLDZCQUEyRTtJQUN6RSxnSEFBZ0Y7Ozs7SUFB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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGlzSW50ZXJuYWxVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5pbXBvcnQgeyBDYXNlUXVlcmllc0NvbGxlY3Rpb24sIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4vdXRpbHMvcXVlcnktbWFuYWdlbWVudC51dGlscyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLXF1ZXJ5LW1hbmFnZW1lbnQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIHF1ZXJ5OiBRdWVyeUxpc3RJdGVtO1xuICBwdWJsaWMgc2hvd1F1ZXJ5TGlzdDogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXNRdWVyeUNsb3NlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuY2lkO1xuICAgIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQpIHtcbiAgICAgIC8vIEVVSS04MzAzIFVzaW5nIG1vY2sgZGF0YSB1bnRpbCBDQ0QgaXMgcmVhZHkgd2l0aCB0aGUgQVBJIGFuZCBkYXRhIGNvbnRyYWN0XG4gICAgICAvLyB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSBjYXNlTWVzc2FnZXNNb2NrRGF0YTtcblxuICAgICAgLy8gVE9ETzogQWN0dWFsIGltcGxlbWVudGF0aW9uIG9uY2UgdGhlIENDRCBBUEkgYW5kIGRhdGEgY29udHJhY3QgaXMgYXZhaWxhYmxlXG4gICAgICAvLyBFYWNoIHBhcnRpZXMgd2lsbCBoYXZlIGEgc2VwYXJhdGUgY29sbGVjdGlvbiBvZiBwYXJ0eSBtZXNzYWdlc1xuICAgICAgLy8gRmluZCB3aGV0aGVyIHF1ZXJpZXMgdGFiIGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FzZSBkYXRhXG4gICAgICB0aGlzLmNhc2VOb3RpZmllci5mZXRjaEFuZFJlZnJlc2godGhpcy5jYXNlSWQpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlPy50YWJzKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IChjYXNlRGV0YWlscy50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcG9uZW50TGF1bmNoZXInICYmIGNhc2VGaWVsZC5pZCA9PT0gdGhpcy5jYXNlRmllbGQuaWQpKVxuICAgICAgICAgICAgICAgIFswXS5maWVsZHM/LnJlZHVjZSgoYWNjLCBjYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmV4dHJhY3RDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQoY2FzZUZpZWxkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCAmJiB0eXBlb2YgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsaXN0IG9mIHBhcnRpZXMgYW5kIHRoZWlyIGNhc2UgcXVlcmllcyBjb2xsZWN0aW9uc1xuICAgICAgLy8gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1F1ZXJ5TGlzdCA9IGZhbHNlO1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmlzUXVlcnlDbG9zZWQgPSB0aGlzLnF1ZXJ5Py5jaGlsZHJlbj8uc29tZSgocXVlcnlJdGVtKSA9PiBxdWVyeUl0ZW0/LmlzQ2xvc2VkID09PSAnWWVzJyk7XG4gIH1cblxuICBwdWJsaWMgYmFja1RvUXVlcnlMaXN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dRdWVyeUxpc3QgPSB0cnVlO1xuICAgIHRoaXMucXVlcnkgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGlzSW50ZXJuYWxVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0ludGVybmFsVXNlcih0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UXVlcnlMaXN0OyBlbHNlIHNpbmdsZVF1ZXJ5RGV0YWlsc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXNlUXVlcmllc0NvbGxlY3Rpb24gb2YgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93UXVlcnlMaXN0XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtOCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tOFwiPlxuICAgICAgPGNjZC1xdWVyeS1saXN0IChzZWxlY3RlZFF1ZXJ5KT1cInNldFF1ZXJ5KCRldmVudClcIiBbY2FzZVF1ZXJpZXNDb2xsZWN0aW9uXT1cImNhc2VRdWVyaWVzQ29sbGVjdGlvblwiPjwvY2NkLXF1ZXJ5LWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2luZ2xlUXVlcnlEZXRhaWxzPlxuICA8Y2NkLXF1ZXJ5LWRldGFpbHNcbiAgICBbcXVlcnldPVwicXVlcnlcIlxuICAgIChiYWNrQ2xpY2tlZCk9XCJzaG93UXVlcnlMaXN0ID0gdHJ1ZVwiXG4gICAgW2Nhc2VJZF09XCJjYXNlSWRcIlxuICA+PC9jY2QtcXVlcnktZGV0YWlscz5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSW50ZXJuYWxVc2VyKCkgJiYgIWlzUXVlcnlDbG9zZWQgJiYgcXVlcnk/LmNoaWxkcmVuPy5sZW5ndGggPiAwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBxdWVyeT8uY2hpbGRyZW4/Lmxlbmd0aCAlIDIgPT09IDE7IGVsc2UgcXVlcnlJc0luUmV2aWV3XCI+XG4gICAgICA8YnV0dG9uIGlkPVwiYXNrLWZvbGxvdy11cC1xdWVzdGlvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9xdWVyeS1tYW5hZ2VtZW50JywgJ3F1ZXJ5JywgY2FzZUlkLCAnNCcsIHF1ZXJ5LmlkXVwiPlxuICAgICAgICB7eyAnQXNrIGEgZm9sbG93LXVwIHF1ZXN0aW9uJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3F1ZXJ5SXNJblJldmlldz5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gaWQ9XCJhc2stZm9sbG93LXVwLXF1ZXN0aW9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3F1ZXJ5LW1hbmFnZW1lbnQnLCAncXVlcnknLCBjYXNlSWQsICc0JywgcXVlcnkuaWRdXCI+XG4gICAgICAgIHt7ICdBc2sgYSBmb2xsb3ctdXAgcXVlc3Rpb24nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyAnWW91ciBxdWVyeSBpcyB1bmRlciByZXZpZXcnIHwgcnB4VHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD57eyAnT3VyIHRlYW0gd2lsbCByZWFkIHlvdXIgcXVlcnkgYW5kIHJlc3BvbmQuIERvIG5vdCBzdWJtaXQgdGhlIHNhbWUgcXVlcnkgbW9yZSB0aGFuIG9uY2UuJyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSW50ZXJuYWxVc2VyKCkgJiYgaXNRdWVyeUNsb3NlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRcIj5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCI+ITwvc3Bhbj5cbiAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5XYXJuaW5nPC9zcGFuPlxuICAgICAgICA8cCBjbGFzcz1cInFtLXNlcnZpY2UtbWVzc2FnZSBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyAnVGhpcyBxdWVyeSBoYXMgYmVlbiBjbG9zZWQgYnkgY291cnQgc3RhZmYuJyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -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);
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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bXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluJztcbmltcG9ydCB7IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0sIENhc2VRdWVyaWVzQ29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVU0VSX0RFVEFJTFMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4uL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHtcbiAgQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQsXG4gIEZJRUxEX1RZUEVfQ09NUExFWCxcbiAgRElTUExBWV9DT05URVhUX1JFQURPTkxZLFxuICBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTixcbiAgUU1fQ09MTEVDVElPTl9QUk9NUFQsXG4gIENJVklMX0pVUklTRElDVElPTlxufSBmcm9tICcuLi9jb25zdGFudHMvcXVlcnktbWFuYWdlbWVudC5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuXG5leHBvcnQgY2xhc3MgUXVlcnlNYW5hZ2VtZW50U2VydmljZSB7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIGZpZWxkSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZW5lcmF0ZUNhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQsXG4gICAgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtLFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZyAvLyBHZXQgdGhlIG1lc3NhZ2UgSUQgZnJvbSByb3V0ZSBwYXJhbXMgKGlmIHByZXNlbnQpXG4gICk6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIHtcbiAgICBsZXQgY3VycmVudFVzZXJEZXRhaWxzO1xuXG4gICAgdHJ5IHtcbiAgICAgIGN1cnJlbnRVc2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShVU0VSX0RFVEFJTFMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgcGFyc2UgVVNFUl9ERVRBSUxTIGZyb20gc2Vzc2lvbiBzdG9yYWdlOicsIGUpO1xuICAgICAgY3VycmVudFVzZXJEZXRhaWxzID0ge307XG4gICAgfVxuICAgIGNvbnN0IGNhc2VNZXNzYWdlID0gcXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZXG4gICAgICA/IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmdldE5ld1F1ZXJ5RGF0YShmb3JtR3JvdXAsIGN1cnJlbnRVc2VyRGV0YWlscylcbiAgICAgIDogUXVlcnlNYW5hZ2VtZW50VXRpbHMuZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEoZm9ybUdyb3VwLCBxdWVyeUl0ZW0sIGN1cnJlbnRVc2VyRGV0YWlscyk7XG5cbiAgICBjb25zdCBpc05ld1F1ZXJ5ID0gcXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZOyAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbmV3IHF1ZXJ5XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgSUQgaGFzIGJlZW4gc2V0IGR5bmFtaWNhbGx5XG4gICAgaWYgKCF0aGlzLmZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBGaWVsZCBJRCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG5vdCBmb3VuZC4gQ2Fubm90IHByb2NlZWQgd2l0aCBkYXRhIGdlbmVyYXRpb24uJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nLCAnc2VydmljZS1kb3duJ10pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBJRCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG5vdCBmb3VuZC4gQWJvcnRpbmcgcXVlcnkgZGF0YSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgbmV3IHF1ZXJ5IGRhdGEgc3RydWN0dXJlXG4gICAgY29uc3QgbmV3UXVlcnlEYXRhOiBRbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiA9IHt9O1xuXG4gICAgaWYgKHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBsZXQgbWF0Y2hlZENvbGxlY3Rpb247XG5cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgbmV3IHF1ZXJ5LCB0cnkgdG8gZmluZCB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbiB3aXRoIHRoZSBtZXNzYWdlIElEXG4gICAgICBpZiAoIWlzTmV3UXVlcnkgJiYgbWVzc2FnZUlkKSB7XG4gICAgICAgIG1hdGNoZWRDb2xsZWN0aW9uID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+XG4gICAgICAgICAgY29sbGVjdGlvbi5jYXNlTWVzc2FnZXMuc29tZSgobWVzc2FnZSkgPT4gbWVzc2FnZS52YWx1ZS5pZCA9PT0gbWVzc2FnZUlkKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZENvbGxlY3Rpb24pIHtcbiAgICAgICAgLy8gQXBwZW5kIHRoZSBuZXcgY2FzZSBtZXNzYWdlIHRvIHRoZSBtYXRjaGVkIGNvbGxlY3Rpb24ncyBjYXNlTWVzc2FnZXNcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIG1hdGNoZWQgY29sbGVjdGlvbiB0byBuZXdRdWVyeURhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgLi4ubWF0Y2hlZENvbGxlY3Rpb24sIC8vIEtlZXAgZXhpc3RpbmcgZGF0YSBpbnRhY3RcbiAgICAgICAgICBjYXNlTWVzc2FnZXM6IFsuLi5tYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXNdIC8vIEFwcGVuZCB0aGUgdXBkYXRlZCBtZXNzYWdlcyBhcnJheVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlIHBhcnR5TmFtZSBmcm9tIHRoZSBmaXJzdCBjb2xsZWN0aW9uIChhc3N1bXB0aW9uOiBhbGwgc2hhcmUgdGhlIHNhbWUgcGFydHkpXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsUGFydHlOYW1lID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zPy5bMF0/LnBhcnR5TmFtZSA/PyBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWU7XG5cbiAgICAgICAgLy8gSWYgbm8gY29sbGVjdGlvbiBtYXRjaGVzLCBvciBpdCdzIGEgbmV3IHF1ZXJ5XG4gICAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICAgIHBhcnR5TmFtZTogb3JpZ2luYWxQYXJ0eU5hbWUsXG4gICAgICAgICAgcm9sZU9uQ2FzZTogJycsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgICBjYXNlTWVzc2FnZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBJZiBjYXNlUXVlcmllc0NvbGxlY3Rpb25zIGlzIG5vdCBlbXB0eSwgYXBwZW5kIGl0cyBkYXRhXG4gICAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdLmNhc2VNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgIC4uLnRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucy5mbGF0TWFwKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLmNhc2VNZXNzYWdlcylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIGV4aXN0aW5nIGNvbGxlY3Rpb25zLCBjcmVhdGUgYSBuZXcgb25lIChlLmcuLCBmb3IgbmV3IHF1ZXJpZXMpXG4gICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgcGFydHlOYW1lOiBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWUgfHwgYCR7Y3VycmVudFVzZXJEZXRhaWxzPy5mb3JlbmFtZX0gJHtjdXJyZW50VXNlckRldGFpbHM/LnN1cm5hbWV9YCwgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICByb2xlT25DYXNlOiAnJywgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICBjYXNlTWVzc2FnZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld1F1ZXJ5RGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKFxuICAgIGV2ZW50RGF0YTogQ2FzZUV2ZW50VHJpZ2dlcixcbiAgICBxdWVyeUNyZWF0ZUNvbnRleHQ6IFF1ZXJ5Q3JlYXRlQ29udGV4dCxcbiAgICBjYXNlRGV0YWlsczogQ2FzZVZpZXcsXG4gICAgbWVzc2FnZUlkPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHJlc29sdmVkRmllbGRJZCA9IHRoaXMucmVzb2x2ZUZpZWxkSWQoZXZlbnREYXRhLCBxdWVyeUNyZWF0ZUNvbnRleHQsIGNhc2VEZXRhaWxzLCBtZXNzYWdlSWQpO1xuXG4gICAgaWYgKCFyZXNvbHZlZEZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZXNvbHZlIGZpZWxkSWQgZm9yIENhc2VRdWVyaWVzQ29sbGVjdGlvbi4gQ2Fubm90IHByb2NlZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZElkID0gcmVzb2x2ZWRGaWVsZElkO1xuXG4gICAgdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gZXZlbnREYXRhLmNhc2VfZmllbGRzLnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlkID09PSB0aGlzLmZpZWxkSWQpIHtcbiAgICAgICAgY29uc3QgZXh0cmFjdGVkID0gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZChmaWVsZCk7XG4gICAgICAgIGlmIChleHRyYWN0ZWQgJiYgdHlwZW9mIGV4dHJhY3RlZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUZpZWxkSWQoXG4gICAgZXZlbnREYXRhOiBDYXNlRXZlbnRUcmlnZ2VyLFxuICAgIHF1ZXJ5Q3JlYXRlQ29udGV4dDogUXVlcnlDcmVhdGVDb250ZXh0LFxuICAgIGNhc2VEZXRhaWxzOiBDYXNlVmlldyxcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIFN0ZXAgMTogRmlsdGVyIGNhbmRpZGF0ZSBmaWVsZHMgKG11c3QgYmUgZWRpdGFibGUgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIGZpZWxkcylcbiAgICBjb25zdCBjYW5kaWRhdGVGaWVsZHMgPSBldmVudERhdGE/LmNhc2VfZmllbGRzPy5maWx0ZXIoXG4gICAgICAoZmllbGQpID0+XG4gICAgICAgIGZpZWxkLmZpZWxkX3R5cGUuaWQgPT09IENBU0VfUVVFUklFU19DT0xMRUNUSU9OX0lEICYmXG4gICAgICBmaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IEZJRUxEX1RZUEVfQ09NUExFWCAmJlxuICAgICAgZmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFlcbiAgICApO1xuXG4gICAgaWYgKCFjYW5kaWRhdGVGaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgY29uc29sZS53YXJuKCdObyBlZGl0YWJsZSBDYXNlUXVlcmllc0NvbGxlY3Rpb24gZmllbGRzIGZvdW5kLicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtYmVyT2ZDb2xsZWN0aW9ucyA9IGNhbmRpZGF0ZUZpZWxkcy5sZW5ndGg7XG4gICAgY29uc3QganVyaXNkaWN0aW9uSWQgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5qdXJpc2RpY3Rpb24/LmlkID8/ICcnO1xuXG4gICAgLy8gU3RlcCAyOiBJZiBtZXNzYWdlSWQgaXMgcHJlc2VudCwgdHJ5IHRvIGxvY2F0ZSB0aGUgZmllbGQgY29udGFpbmluZyB0aGF0IG1lc3NhZ2VcbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICBjb25zdCBmaWVsZEJ5TWVzc2FnZSA9IGNhbmRpZGF0ZUZpZWxkcy5maW5kKChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQ/LnZhbHVlPy5jYXNlTWVzc2FnZXM/LnNvbWUoKG1zZykgPT4gbXNnPy52YWx1ZT8uaWQgPT09IG1lc3NhZ2VJZClcbiAgICAgICk7XG4gICAgICBpZiAoZmllbGRCeU1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkQnlNZXNzYWdlLmlkOyAvLyBGb3VuZCB0aGUgbWF0Y2hpbmcgZmllbGQgYnkgbWVzc2FnZSBJRFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0ZXAgMzogSGFuZGxlIG5ldyBxdWVyaWVzXG4gICAgaWYgKHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0Lk5FV19RVUVSWSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgY29sbGVjdGlvbiwgdXNlIGl0XG4gICAgICBpZiAobnVtYmVyT2ZDb2xsZWN0aW9ucyA9PT0gMSkge1xuICAgICAgICByZXR1cm4gY2FuZGlkYXRlRmllbGRzWzBdLmlkO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3IgbXVsdGlwbGUgY29sbGVjdGlvbnMsIHVzZSBqdXJpc2RpY3Rpb24tYmFzZWQgcmVzb2x1dGlvbiBzdHJhdGVneVxuICAgICAgaWYgKHRoaXMuZ2V0Q29sbGVjdGlvblNlbGVjdGlvbk1ldGhvZChqdXJpc2RpY3Rpb25JZCkgPT09IFFNX1NFTEVDVF9GSVJTVF9DT0xMRUNUSU9OKSB7XG4gICAgICAvLyBDaG9vc2UgdGhlIG9uZSB3aXRoIHRoZSBsb3dlc3Qgb3JkZXIgZnJvbSB0aGUgZmlyc3Qgd2l6YXJkIHBhZ2VcbiAgICAgICAgY29uc3QgZmlyc3RPcmRlcmVkID0gdGhpcy5nZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25GaWVsZE9yZGVyRnJvbVdpemFyZFBhZ2VzKGV2ZW50RGF0YSk7XG4gICAgICAgIGlmIChmaXJzdE9yZGVyZWQpIHtcbiAgICAgICAgICByZXR1cm4gZmlyc3RPcmRlcmVkLmlkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvcjogTXVsdGlwbGUgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgZm9yIHRoZSAke2p1cmlzZGljdGlvbklkfSBqdXJpc2RpY3Rpb25gKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RlcCA0OiBGYWxsYmFjayDigJQgaWYgbm9uZSBvZiB0aGUgYWJvdmUgc3VjY2VlZGVkXG4gICAgY29uc29sZS53YXJuKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGZpZWxkSWQgZm9yIGNvbnRleHQ6JywgcXVlcnlDcmVhdGVDb250ZXh0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZVF1ZXJpZXNDb2xsZWN0aW9uRmllbGRPcmRlckZyb21XaXphcmRQYWdlcyhldmVudERhdGE6IENhc2VFdmVudFRyaWdnZXIpOiBDYXNlRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhbmRpZGF0ZUZpZWxkcyA9IGV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgIChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5pZCA9PT0gQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiZcbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS50eXBlID09PSBGSUVMRF9UWVBFX0NPTVBMRVggJiZcbiAgICAgICAgZmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFlcbiAgICApO1xuXG4gICAgaWYgKCFjYW5kaWRhdGVGaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFBhZ2VGaWVsZHMgPSBldmVudERhdGE/LndpemFyZF9wYWdlcz8uWzBdPy53aXphcmRfcGFnZV9maWVsZHM7XG5cbiAgICBpZiAoIWZpcnN0UGFnZUZpZWxkcykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FuZGlkYXRlRmllbGRzXG4gICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCB3aXphcmRGaWVsZCA9IGZpcnN0UGFnZUZpZWxkcy5maW5kKChmKSA9PiBmLmNhc2VfZmllbGRfaWQgPT09IGZpZWxkLmlkKTtcbiAgICAgICAgcmV0dXJuIHsgZmllbGQsIG9yZGVyOiB3aXphcmRGaWVsZD8ub3JkZXIgPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfTtcbiAgICAgIH0pXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpWzBdPy5maWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sbGVjdGlvblNlbGVjdGlvbk1ldGhvZChqdXJpc2RpY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGp1cmlzZGljdGlvbi50b1VwcGVyQ2FzZSgpID09PSBDSVZJTF9KVVJJU0RJQ1RJT04gPyBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTiA6IFFNX0NPTExFQ1RJT05fUFJPTVBUO1xuICB9XG59XG5cbiJdfQ==