@hmcts/ccd-case-ui-toolkit 7.1.67-callback-success-message → 7.1.67

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 (31) hide show
  1. package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +6 -22
  2. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +4 -3
  3. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +3 -2
  4. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
  5. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +7 -17
  6. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +4 -7
  7. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +10 -12
  8. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +73 -59
  9. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +9 -11
  10. package/esm2022/lib/shared/services/activity/activity.service.mjs +4 -3
  11. package/esm2022/lib/shared/utils.mjs +10 -0
  12. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +112 -125
  13. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  14. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts +1 -6
  15. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
  16. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  17. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts.map +1 -1
  18. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -2
  19. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  20. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +1 -2
  21. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  22. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
  23. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  24. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +2 -1
  25. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  26. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +2 -2
  27. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
  28. package/lib/shared/services/activity/activity.service.d.ts.map +1 -1
  29. package/lib/shared/utils.d.ts +6 -0
  30. package/lib/shared/utils.d.ts.map +1 -0
  31. package/package.json +1 -1
@@ -1644,6 +1644,16 @@ class SessionStorageService {
1644
1644
  type: Injectable
1645
1645
  }], null, null); })();
1646
1646
 
1647
+ const USER_DETAILS = 'userDetails';
1648
+ const PUI_CASE_MANAGER = 'pui-case-manager';
1649
+ const JUDGE = 'judge';
1650
+ function isInternalUser(sessionStorageService) {
1651
+ const userDetails = JSON.parse(sessionStorageService?.getItem(USER_DETAILS));
1652
+ return userDetails && userDetails.roles
1653
+ && !(userDetails.roles.includes(PUI_CASE_MANAGER)
1654
+ || userDetails.roles.some((role) => role.toLowerCase().includes(JUDGE)));
1655
+ }
1656
+
1647
1657
  // @dynamic
1648
1658
  class ActivityService {
1649
1659
  http;
@@ -1669,7 +1679,7 @@ class ActivityService {
1669
1679
  return error;
1670
1680
  }
1671
1681
  getOptions() {
1672
- const userDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
1682
+ const userDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
1673
1683
  const headers = new HttpHeaders().set('Content-Type', 'application/json').set('Authorization', userDetails.token);
1674
1684
  return {
1675
1685
  headers,
@@ -1703,7 +1713,7 @@ class ActivityService {
1703
1713
  }
1704
1714
  }
1705
1715
  verifyUserIsAuthorized() {
1706
- if (this.sessionStorageService.getItem('userDetails') && this.activityUrl() && this.userAuthorised === undefined) {
1716
+ if (this.sessionStorageService.getItem(USER_DETAILS) && this.activityUrl() && this.userAuthorised === undefined) {
1707
1717
  this.getActivities(ActivityService.DUMMY_CASE_REFERENCE).subscribe(() => this.userAuthorised = true, error => {
1708
1718
  this.userAuthorised = [401, 403].indexOf(error.status) <= -1;
1709
1719
  });
@@ -8896,10 +8906,7 @@ class WorkAllocationService {
8896
8906
  .post(url, { actionByEvent: true, eventName: eventName })
8897
8907
  .pipe(catchError(error => {
8898
8908
  this.errorService.setError(error);
8899
- // this will subscribe to get the user details and decide whether to display an error message
8900
- this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
8901
- this.handleTaskCompletionError(response);
8902
- });
8909
+ this.handleTaskCompletionError();
8903
8910
  return throwError(error);
8904
8911
  }));
8905
8912
  }
@@ -8925,10 +8932,7 @@ class WorkAllocationService {
8925
8932
  })
8926
8933
  .pipe(catchError(error => {
8927
8934
  this.errorService.setError(error);
8928
- // this will subscribe to get the user details and decide whether to display an error message
8929
- this.http.get(this.appConfig.getUserInfoApiUrl()).pipe(map(response => response)).subscribe((response) => {
8930
- this.handleTaskCompletionError(response);
8931
- });
8935
+ this.handleTaskCompletionError();
8932
8936
  return throwError(error);
8933
8937
  }));
8934
8938
  }
@@ -8936,24 +8940,13 @@ class WorkAllocationService {
8936
8940
  * Handles the response from the observable to get the user details when task is completed.
8937
8941
  * @param response is the response given from the observable which contains the user detaild.
8938
8942
  */
8939
- handleTaskCompletionError(response) {
8940
- const userDetails = response;
8941
- if (this.userIsCaseworker(userDetails.userInfo.roles)) {
8943
+ handleTaskCompletionError() {
8944
+ if (isInternalUser(this.sessionStorageService)) {
8942
8945
  // when submitting the completion of task if not yet rendered cases/case confirm then preserve the alert for re-rendering
8943
8946
  this.alertService.setPreserveAlerts(true, ['cases/case', 'submit']);
8944
8947
  this.alertService.warning({ phrase: 'A task could not be completed successfully. Please complete the task associated with the case manually.' });
8945
8948
  }
8946
8949
  }
8947
- /**
8948
- * Returns true if the user's role is equivalent to a caseworker.
8949
- * @param roles is the list of roles found from the current user.
8950
- */
8951
- userIsCaseworker(roles) {
8952
- const lowerCaseRoles = roles.map(role => role.toLowerCase());
8953
- // When/if lib & target permanently change to es2016, replace indexOf with includes
8954
- return (lowerCaseRoles.indexOf(WorkAllocationService.iACCaseOfficer) !== -1)
8955
- || (lowerCaseRoles.indexOf(WorkAllocationService.iACAdmOfficer) !== -1);
8956
- }
8957
8950
  /**
8958
8951
  * Look for open tasks for a case and event combination. There are 5 possible scenarios:
8959
8952
  * 1. No tasks found => Success.
@@ -21144,7 +21137,6 @@ class QueryCheckYourAnswersComponent {
21144
21137
  eventData = null;
21145
21138
  backClicked = new EventEmitter();
21146
21139
  querySubmitted = new EventEmitter();
21147
- callbackConfirmationBody = new EventEmitter();
21148
21140
  caseViewTrigger;
21149
21141
  caseDetails;
21150
21142
  queryId;
@@ -21228,11 +21220,7 @@ class QueryCheckYourAnswersComponent {
21228
21220
  const createEvent$ = this.createEvent(data);
21229
21221
  if (this.queryCreateContext === QueryCreateContext.RESPOND) {
21230
21222
  if (this.filteredTasks?.length > 0) {
21231
- this.createEventSubscription = createEvent$.pipe(switchMap((createEventResponse) => {
21232
- const confirmationBody = createEventResponse?.after_submit_callback_response?.confirmation_body;
21233
- this.callbackConfirmationBody.emit(confirmationBody);
21234
- return this.workAllocationService.completeTask(this.filteredTasks[0].id, this.caseViewTrigger.name);
21235
- })).subscribe({
21223
+ this.createEventSubscription = createEvent$.pipe(switchMap((createEventResponse) => this.workAllocationService.completeTask(this.filteredTasks[0].id, this.caseViewTrigger.name))).subscribe({
21236
21224
  next: () => this.finaliseSubmission(),
21237
21225
  error: (error) => this.handleError(error)
21238
21226
  });
@@ -21250,11 +21238,7 @@ class QueryCheckYourAnswersComponent {
21250
21238
  }
21251
21239
  else {
21252
21240
  this.createEventSubscription = createEvent$.subscribe({
21253
- next: (callbackResponse) => {
21254
- this.finaliseSubmission();
21255
- const confirmationBody = callbackResponse?.after_submit_callback_response?.confirmation_body;
21256
- this.callbackConfirmationBody.emit(confirmationBody);
21257
- },
21241
+ next: () => this.finaliseSubmission(),
21258
21242
  error: (error) => this.handleError(error)
21259
21243
  });
21260
21244
  }
@@ -21280,7 +21264,7 @@ class QueryCheckYourAnswersComponent {
21280
21264
  this.router.navigate(['/', 'service-down']);
21281
21265
  }
21282
21266
  generateCaseQueriesCollectionData() {
21283
- const currentUserDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
21267
+ const currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21284
21268
  const caseMessage = this.queryCreateContext === QueryCreateContext.NEW_QUERY
21285
21269
  ? QueryManagementUtils.getNewQueryData(this.formGroup, currentUserDetails)
21286
21270
  : QueryManagementUtils.getRespondOrFollowupQueryData(this.formGroup, this.queryItem, currentUserDetails);
@@ -21436,7 +21420,7 @@ class QueryCheckYourAnswersComponent {
21436
21420
  }
21437
21421
  }
21438
21422
  static ɵfac = function QueryCheckYourAnswersComponent_Factory(t) { return new (t || QueryCheckYourAnswersComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(CasesService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(WorkAllocationService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(QualifyingQuestionService)); };
21439
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCheckYourAnswersComponent, selectors: [["ccd-query-check-your-answers"]], inputs: { formGroup: "formGroup", queryItem: "queryItem", queryCreateContext: "queryCreateContext", eventData: "eventData" }, outputs: { backClicked: "backClicked", querySubmitted: "querySubmitted", callbackConfirmationBody: "callbackConfirmationBody" }, decls: 33, vars: 22, consts: [["defaultCheckYourAnswersTitle", ""], ["isHearingRelatedFalse", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds-from-desktop"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfElse"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-summary-list govuk-!-margin-bottom-0", 4, "ngIf"], [1, "govuk-summary-list", "govuk-!-margin-bottom-0"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key"], [1, "govuk-summary-list__value"], [1, "govuk-summary-list__actions"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", "govuk-!-margin-right-3", 3, "click"], ["data-module", "govuk-button", "type", "submit", 1, "govuk-button", 3, "click"], [3, "eventCompletionParams"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["href", "javascript:void(0)", 1, "validation-error", 3, "id"], [1, "govuk-caption-l"], ["href", "javascript:void(0)", "class", "govuk-link", 3, "click", 4, "ngIf"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-summary-list__value", "govuk-summary-list__value--documentAttached"], [3, "attachments", 4, "ngIf"], [3, "attachments"]], template: function QueryCheckYourAnswersComponent_Template(rf, ctx) { if (rf & 1) {
21423
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCheckYourAnswersComponent, selectors: [["ccd-query-check-your-answers"]], inputs: { formGroup: "formGroup", queryItem: "queryItem", queryCreateContext: "queryCreateContext", eventData: "eventData" }, outputs: { backClicked: "backClicked", querySubmitted: "querySubmitted" }, decls: 33, vars: 22, consts: [["defaultCheckYourAnswersTitle", ""], ["isHearingRelatedFalse", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds-from-desktop"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfElse"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-summary-list govuk-!-margin-bottom-0", 4, "ngIf"], [1, "govuk-summary-list", "govuk-!-margin-bottom-0"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key"], [1, "govuk-summary-list__value"], [1, "govuk-summary-list__actions"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", "govuk-!-margin-right-3", 3, "click"], ["data-module", "govuk-button", "type", "submit", 1, "govuk-button", 3, "click"], [3, "eventCompletionParams"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["href", "javascript:void(0)", 1, "validation-error", 3, "id"], [1, "govuk-caption-l"], ["href", "javascript:void(0)", "class", "govuk-link", 3, "click", 4, "ngIf"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-summary-list__value", "govuk-summary-list__value--documentAttached"], [3, "attachments", 4, "ngIf"], [3, "attachments"]], template: function QueryCheckYourAnswersComponent_Template(rf, ctx) { if (rf & 1) {
21440
21424
  const _r1 = i0.ɵɵgetCurrentView();
21441
21425
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3);
21442
21426
  i0.ɵɵtemplate(2, QueryCheckYourAnswersComponent_div_2_Template, 7, 4, "div", 4)(3, QueryCheckYourAnswersComponent_ng_container_3_Template, 4, 3, "ng-container", 5);
@@ -21519,10 +21503,8 @@ class QueryCheckYourAnswersComponent {
21519
21503
  type: Output
21520
21504
  }], querySubmitted: [{
21521
21505
  type: Output
21522
- }], callbackConfirmationBody: [{
21523
- type: Output
21524
21506
  }] }); })();
21525
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCheckYourAnswersComponent, { className: "QueryCheckYourAnswersComponent", filePath: "lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts", lineNumber: 26 }); })();
21507
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCheckYourAnswersComponent, { className: "QueryCheckYourAnswersComponent", filePath: "lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts", lineNumber: 28 }); })();
21526
21508
 
21527
21509
  function QueryDetailsComponent_ng_container_0_cut_alert_1_Template(rf, ctx) { if (rf & 1) {
21528
21510
  i0.ɵɵelementStart(0, "cut-alert", 11);
@@ -21658,7 +21640,7 @@ function QueryDetailsComponent_ng_container_0_ng_container_46_ng_container_1_ng_
21658
21640
  i0.ɵɵadvance(3);
21659
21641
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(14, 14, child_r3.createdOn, "dd MMM yyyy"));
21660
21642
  i0.ɵɵadvance(2);
21661
- i0.ɵɵproperty("ngIf", ctx_r0.isCaseworker());
21643
+ i0.ɵɵproperty("ngIf", ctx_r0.isInternalUser());
21662
21644
  i0.ɵɵadvance(3);
21663
21645
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 17, "Response detail"));
21664
21646
  i0.ɵɵadvance(3);
@@ -21871,11 +21853,8 @@ class QueryDetailsComponent {
21871
21853
  onBack() {
21872
21854
  this.backClicked.emit(true);
21873
21855
  }
21874
- isCaseworker() {
21875
- const userDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
21876
- return userDetails && userDetails.roles
21877
- && !(userDetails.roles.includes('pui-case-manager')
21878
- || userDetails.roles.some((role) => role.toLowerCase().includes('judge')));
21856
+ isInternalUser() {
21857
+ return isInternalUser(this.sessionStorageService);
21879
21858
  }
21880
21859
  ngOnChanges() {
21881
21860
  this.toggleLinkVisibility();
@@ -21890,7 +21869,7 @@ class QueryDetailsComponent {
21890
21869
  this.hasResponded.emit(false);
21891
21870
  return false;
21892
21871
  }
21893
- if (this.isCaseworker() && this.queryResponseStatus !== QueryItemResponseStatus.AWAITING) {
21872
+ if (this.isInternalUser() && this.queryResponseStatus !== QueryItemResponseStatus.AWAITING) {
21894
21873
  this.message = Constants.TASK_COMPLETION_ERROR;
21895
21874
  this.hasResponded.emit(true);
21896
21875
  return true;
@@ -21907,7 +21886,7 @@ class QueryDetailsComponent {
21907
21886
  }
21908
21887
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryDetailsComponent, [{
21909
21888
  type: Component,
21910
- args: [{ selector: 'ccd-query-details', template: "<ng-container *ngIf=\"query\">\n <cut-alert type=\"error\" *ngIf=\"hasRespondedToQuery() && !showItem\">\n <ng-container>{{message}}</ng-container>\n </cut-alert>\n\n <br/>\n <p *ngIf=\"showItem\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\" (click)=\"onBack()\">{{ 'Back to query list' | rpxTranslate }}</a>\n </p>\n <div>\n <table class=\"govuk-table query-details-table\" [attr.aria-describedby]=\"'Details of the query' | rpxTranslate\">\n <caption class=\"govuk-table__caption govuk-table__caption--l\">\n <div>{{ 'Query details' | rpxTranslate }}</div>\n </caption>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submitted by' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.lastSubmittedBy }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Submission date' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.createdOn | date: 'dd MMM yyyy' }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query subject' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.subject }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query body' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.body }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\" [class.govuk-table__header--no-border]=\"query.isHearingRelated\">\n {{ 'Is the query hearing related?' | rpxTranslate }}\n </th>\n <td class=\"govuk-table__cell\" [class.govuk-table__cell--no-border]=\"query.isHearingRelated\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : (query.isHearingRelated) }}</td>\n </tr>\n <tr class=\"govuk-table__row govuk-table__row--isHearingRelated\" *ngIf=\"query.isHearingRelated === 'Yes'\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'What is the date of the hearing?' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.hearingDate | date: 'dd MMM yyyy' }}</td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"query.attachments.length > 0\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">\n <ccd-query-attachments-read\n *ngIf=\"query.attachments\"\n [attachments]=\"query.attachments\"\n >\n </ccd-query-attachments-read>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <ng-container *ngIf=\"query.children?.length > 0\">\n <ng-container *ngFor=\"let child of query.children; let i = index;\">\n <ng-container *ngIf=\"i % 2 === 0; else followUpMessage\">\n <table class=\"govuk-table query-details-table\" [attr.aria-describedby]=\"'Response of the query' | rpxTranslate\">\n <caption class=\"govuk-table__caption govuk-table__caption--l\">\n <div>{{ 'Response' | rpxTranslate }}</div>\n </caption>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last response date' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.createdOn | date: 'dd MMM yyyy' }}</td>\n </tr>\n\n <tr *ngIf=\"isCaseworker()\" class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Caseworker name' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.name }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Response detail' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.body }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\" *ngIf=\"child.attachments.length > 0\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">\n <ccd-query-attachments-read\n *ngIf=\"child.attachments\"\n [attachments]=\"child.attachments\"\n >\n </ccd-query-attachments-read>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n\n <ng-template #followUpMessage>\n <!-- <div class=\"query_details_caption\">{{ 'Follow-up' | rpxTranslate }}</div> -->\n <table class=\"govuk-table query-details-table\"\n [attr.aria-describedby]=\"'Follow-up of the response' | rpxTranslate\">\n <caption class=\"govuk-table__caption govuk-table__caption--l\">\n <div>{{ 'Follow up query' | rpxTranslate }}</div>\n </caption>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submission date' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.createdOn | date: 'dd MMM yyyy' }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submitted by' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.name }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query detail' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.body }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\" *ngIf=\"child.attachments.length > 0\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">\n <ccd-query-attachments-read\n *ngIf=\"child.attachments\"\n [attachments]=\"child.attachments\"\n >\n </ccd-query-attachments-read>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-template>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".query-details-table .govuk-table__header{width:330px}\n"] }]
21889
+ args: [{ selector: 'ccd-query-details', template: "<ng-container *ngIf=\"query\">\n <cut-alert type=\"error\" *ngIf=\"hasRespondedToQuery() && !showItem\">\n <ng-container>{{message}}</ng-container>\n </cut-alert>\n\n <br/>\n <p *ngIf=\"showItem\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\" (click)=\"onBack()\">{{ 'Back to query list' | rpxTranslate }}</a>\n </p>\n <div>\n <table class=\"govuk-table query-details-table\" [attr.aria-describedby]=\"'Details of the query' | rpxTranslate\">\n <caption class=\"govuk-table__caption govuk-table__caption--l\">\n <div>{{ 'Query details' | rpxTranslate }}</div>\n </caption>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submitted by' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.lastSubmittedBy }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Submission date' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.createdOn | date: 'dd MMM yyyy' }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query subject' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.subject }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query body' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.body }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\" [class.govuk-table__header--no-border]=\"query.isHearingRelated\">\n {{ 'Is the query hearing related?' | rpxTranslate }}\n </th>\n <td class=\"govuk-table__cell\" [class.govuk-table__cell--no-border]=\"query.isHearingRelated\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : (query.isHearingRelated) }}</td>\n </tr>\n <tr class=\"govuk-table__row govuk-table__row--isHearingRelated\" *ngIf=\"query.isHearingRelated === 'Yes'\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'What is the date of the hearing?' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ query.hearingDate | date: 'dd MMM yyyy' }}</td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"query.attachments.length > 0\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">\n <ccd-query-attachments-read\n *ngIf=\"query.attachments\"\n [attachments]=\"query.attachments\"\n >\n </ccd-query-attachments-read>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <ng-container *ngIf=\"query.children?.length > 0\">\n <ng-container *ngFor=\"let child of query.children; let i = index;\">\n <ng-container *ngIf=\"i % 2 === 0; else followUpMessage\">\n <table class=\"govuk-table query-details-table\" [attr.aria-describedby]=\"'Response of the query' | rpxTranslate\">\n <caption class=\"govuk-table__caption govuk-table__caption--l\">\n <div>{{ 'Response' | rpxTranslate }}</div>\n </caption>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last response date' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.createdOn | date: 'dd MMM yyyy' }}</td>\n </tr>\n\n <tr *ngIf=\"isInternalUser()\" class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Caseworker name' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.name }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Response detail' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.body }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\" *ngIf=\"child.attachments.length > 0\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">\n <ccd-query-attachments-read\n *ngIf=\"child.attachments\"\n [attachments]=\"child.attachments\"\n >\n </ccd-query-attachments-read>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n\n <ng-template #followUpMessage>\n <!-- <div class=\"query_details_caption\">{{ 'Follow-up' | rpxTranslate }}</div> -->\n <table class=\"govuk-table query-details-table\"\n [attr.aria-describedby]=\"'Follow-up of the response' | rpxTranslate\">\n <caption class=\"govuk-table__caption govuk-table__caption--l\">\n <div>{{ 'Follow up query' | rpxTranslate }}</div>\n </caption>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submission date' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.createdOn | date: 'dd MMM yyyy' }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submitted by' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.name }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query detail' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">{{ child.body }}</td>\n </tr>\n\n <tr class=\"govuk-table__row\" *ngIf=\"child.attachments.length > 0\">\n <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n <td class=\"govuk-table__cell\">\n <ccd-query-attachments-read\n *ngIf=\"child.attachments\"\n [attachments]=\"child.attachments\"\n >\n </ccd-query-attachments-read>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-template>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".query-details-table .govuk-table__header{width:330px}\n"] }]
21911
21890
  }], () => [{ type: SessionStorageService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }], { query: [{
21912
21891
  type: Input
21913
21892
  }], caseId: [{
@@ -21919,7 +21898,7 @@ class QueryDetailsComponent {
21919
21898
  }], hasResponded: [{
21920
21899
  type: Output
21921
21900
  }] }); })();
21922
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryDetailsComponent, { className: "QueryDetailsComponent", filePath: "lib/shared/components/palette/query-management/components/query-details/query-details.component.ts", lineNumber: 12 }); })();
21901
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryDetailsComponent, { className: "QueryDetailsComponent", filePath: "lib/shared/components/palette/query-management/components/query-details/query-details.component.ts", lineNumber: 15 }); })();
21923
21902
 
21924
21903
  class QueryEventCompletionComponent {
21925
21904
  eventCompletionParams;
@@ -22298,8 +22277,8 @@ class QueryWriteDateInputComponent {
22298
22277
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteDateInputComponent, { className: "QueryWriteDateInputComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.ts", lineNumber: 15 }); })();
22299
22278
 
22300
22279
  const _c0$C = a0 => ({ "govuk-form-group--error": a0 });
22301
- function QueryWriteRaiseQueryComponent_div_11_p_11_Template(rf, ctx) { if (rf & 1) {
22302
- i0.ɵɵelementStart(0, "p", 27)(1, "span", 28);
22280
+ function QueryWriteRaiseQueryComponent_div_11_p_19_Template(rf, ctx) { if (rf & 1) {
22281
+ i0.ɵɵelementStart(0, "p", 32)(1, "span", 10);
22303
22282
  i0.ɵɵtext(2);
22304
22283
  i0.ɵɵpipe(3, "rpxTranslate");
22305
22284
  i0.ɵɵelementEnd();
@@ -22313,8 +22292,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_11_Template(rf, ctx) { if (rf &
22313
22292
  i0.ɵɵadvance(2);
22314
22293
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r1.getSubjectErrorMessage()), " ");
22315
22294
  } }
22316
- function QueryWriteRaiseQueryComponent_div_11_p_21_Template(rf, ctx) { if (rf & 1) {
22317
- i0.ɵɵelementStart(0, "p", 29)(1, "span", 28);
22295
+ function QueryWriteRaiseQueryComponent_div_11_p_29_Template(rf, ctx) { if (rf & 1) {
22296
+ i0.ɵɵelementStart(0, "p", 33)(1, "span", 10);
22318
22297
  i0.ɵɵtext(2);
22319
22298
  i0.ɵɵpipe(3, "rpxTranslate");
22320
22299
  i0.ɵɵelementEnd();
@@ -22328,8 +22307,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_21_Template(rf, ctx) { if (rf &
22328
22307
  i0.ɵɵadvance(2);
22329
22308
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_BODY), " ");
22330
22309
  } }
22331
- function QueryWriteRaiseQueryComponent_div_11_p_30_Template(rf, ctx) { if (rf & 1) {
22332
- i0.ɵɵelementStart(0, "p", 30)(1, "span", 28);
22310
+ function QueryWriteRaiseQueryComponent_div_11_p_38_Template(rf, ctx) { if (rf & 1) {
22311
+ i0.ɵɵelementStart(0, "p", 34)(1, "span", 10);
22333
22312
  i0.ɵɵtext(2);
22334
22313
  i0.ɵɵpipe(3, "rpxTranslate");
22335
22314
  i0.ɵɵelementEnd();
@@ -22343,8 +22322,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_30_Template(rf, ctx) { if (rf &
22343
22322
  i0.ɵɵadvance(2);
22344
22323
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_RELATED), " ");
22345
22324
  } }
22346
- function QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template(rf, ctx) { if (rf & 1) {
22347
- i0.ɵɵelementStart(0, "p", 36)(1, "span", 28);
22325
+ function QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template(rf, ctx) { if (rf & 1) {
22326
+ i0.ɵɵelementStart(0, "p", 40)(1, "span", 10);
22348
22327
  i0.ɵɵtext(2);
22349
22328
  i0.ɵɵpipe(3, "rpxTranslate");
22350
22329
  i0.ɵɵelementEnd();
@@ -22358,14 +22337,14 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template(rf, c
22358
22337
  i0.ɵɵadvance(2);
22359
22338
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_DATE), " ");
22360
22339
  } }
22361
- function QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template(rf, ctx) { if (rf & 1) {
22340
+ function QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template(rf, ctx) { if (rf & 1) {
22362
22341
  i0.ɵɵelementContainerStart(0);
22363
- i0.ɵɵelementStart(1, "div", 31)(2, "fieldset", 32)(3, "legend")(4, "label", 33);
22342
+ i0.ɵɵelementStart(1, "div", 35)(2, "fieldset", 36)(3, "legend")(4, "label", 37);
22364
22343
  i0.ɵɵtext(5);
22365
22344
  i0.ɵɵpipe(6, "rpxTranslate");
22366
22345
  i0.ɵɵelementEnd()();
22367
- i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template, 6, 6, "p", 34);
22368
- i0.ɵɵelement(8, "ccd-query-write-date-input", 35);
22346
+ i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template, 6, 6, "p", 38);
22347
+ i0.ɵɵelement(8, "ccd-query-write-date-input", 39);
22369
22348
  i0.ɵɵelementEnd()();
22370
22349
  i0.ɵɵelementContainerEnd();
22371
22350
  } if (rf & 2) {
@@ -22379,86 +22358,97 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template(rf, ctx)
22379
22358
  } }
22380
22359
  function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
22381
22360
  const _r1 = i0.ɵɵgetCurrentView();
22382
- i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div")(3, "div", 7)(4, "div", 8)(5, "label", 9);
22383
- i0.ɵɵtext(6);
22384
- i0.ɵɵpipe(7, "rpxTranslate");
22385
- i0.ɵɵelementEnd()();
22386
- i0.ɵɵelementStart(8, "div", 10);
22387
- i0.ɵɵtext(9);
22361
+ i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div")(3, "div", 7)(4, "span", 8);
22362
+ i0.ɵɵtext(5, "!");
22363
+ i0.ɵɵelementEnd();
22364
+ i0.ɵɵelementStart(6, "strong", 9)(7, "span", 10);
22365
+ i0.ɵɵtext(8, "Warning");
22366
+ i0.ɵɵelementEnd();
22367
+ i0.ɵɵelement(9, "ccd-markdown", 11);
22388
22368
  i0.ɵɵpipe(10, "rpxTranslate");
22369
+ i0.ɵɵelementEnd()();
22370
+ i0.ɵɵelementStart(11, "div", 12)(12, "div", 13)(13, "label", 14);
22371
+ i0.ɵɵtext(14);
22372
+ i0.ɵɵpipe(15, "rpxTranslate");
22373
+ i0.ɵɵelementEnd()();
22374
+ i0.ɵɵelementStart(16, "div", 15);
22375
+ i0.ɵɵtext(17);
22376
+ i0.ɵɵpipe(18, "rpxTranslate");
22389
22377
  i0.ɵɵelementEnd();
22390
- i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_p_11_Template, 6, 6, "p", 11);
22391
- i0.ɵɵelementStart(12, "input", 12);
22392
- i0.ɵɵlistener("input", function QueryWriteRaiseQueryComponent_div_11_Template_input_input_12_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSubjectInput()); });
22378
+ i0.ɵɵtemplate(19, QueryWriteRaiseQueryComponent_div_11_p_19_Template, 6, 6, "p", 16);
22379
+ i0.ɵɵelementStart(20, "input", 17);
22380
+ i0.ɵɵlistener("input", function QueryWriteRaiseQueryComponent_div_11_Template_input_input_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSubjectInput()); });
22393
22381
  i0.ɵɵelementEnd()();
22394
- i0.ɵɵelementStart(13, "div", 7)(14, "div", 8)(15, "label", 13);
22395
- i0.ɵɵtext(16);
22396
- i0.ɵɵpipe(17, "rpxTranslate");
22382
+ i0.ɵɵelementStart(21, "div", 12)(22, "div", 13)(23, "label", 18);
22383
+ i0.ɵɵtext(24);
22384
+ i0.ɵɵpipe(25, "rpxTranslate");
22397
22385
  i0.ɵɵelementEnd()();
22398
- i0.ɵɵelementStart(18, "div", 14);
22399
- i0.ɵɵtext(19);
22400
- i0.ɵɵpipe(20, "rpxTranslate");
22386
+ i0.ɵɵelementStart(26, "div", 19);
22387
+ i0.ɵɵtext(27);
22388
+ i0.ɵɵpipe(28, "rpxTranslate");
22401
22389
  i0.ɵɵelementEnd();
22402
- i0.ɵɵtemplate(21, QueryWriteRaiseQueryComponent_div_11_p_21_Template, 6, 6, "p", 15);
22403
- i0.ɵɵelementStart(22, "textarea", 16);
22404
- i0.ɵɵtext(23, " ");
22390
+ i0.ɵɵtemplate(29, QueryWriteRaiseQueryComponent_div_11_p_29_Template, 6, 6, "p", 20);
22391
+ i0.ɵɵelementStart(30, "textarea", 21);
22392
+ i0.ɵɵtext(31, " ");
22405
22393
  i0.ɵɵelementEnd()();
22406
- i0.ɵɵelementStart(24, "div", 7)(25, "fieldset", 17)(26, "legend")(27, "label", 18);
22407
- i0.ɵɵtext(28);
22408
- i0.ɵɵpipe(29, "rpxTranslate");
22394
+ i0.ɵɵelementStart(32, "div", 12)(33, "fieldset", 22)(34, "legend")(35, "label", 23);
22395
+ i0.ɵɵtext(36);
22396
+ i0.ɵɵpipe(37, "rpxTranslate");
22409
22397
  i0.ɵɵelementEnd()();
22410
- i0.ɵɵtemplate(30, QueryWriteRaiseQueryComponent_div_11_p_30_Template, 6, 6, "p", 19);
22411
- i0.ɵɵelementStart(31, "div", 20)(32, "div", 21);
22412
- i0.ɵɵelement(33, "input", 22);
22413
- i0.ɵɵelementStart(34, "label", 23);
22414
- i0.ɵɵtext(35);
22415
- i0.ɵɵpipe(36, "rpxTranslate");
22398
+ i0.ɵɵtemplate(38, QueryWriteRaiseQueryComponent_div_11_p_38_Template, 6, 6, "p", 24);
22399
+ i0.ɵɵelementStart(39, "div", 25)(40, "div", 26);
22400
+ i0.ɵɵelement(41, "input", 27);
22401
+ i0.ɵɵelementStart(42, "label", 28);
22402
+ i0.ɵɵtext(43);
22403
+ i0.ɵɵpipe(44, "rpxTranslate");
22416
22404
  i0.ɵɵelementEnd()();
22417
- i0.ɵɵelementStart(37, "div", 21);
22418
- i0.ɵɵelement(38, "input", 24);
22419
- i0.ɵɵelementStart(39, "label", 25);
22420
- i0.ɵɵtext(40);
22421
- i0.ɵɵpipe(41, "rpxTranslate");
22405
+ i0.ɵɵelementStart(45, "div", 26);
22406
+ i0.ɵɵelement(46, "input", 29);
22407
+ i0.ɵɵelementStart(47, "label", 30);
22408
+ i0.ɵɵtext(48);
22409
+ i0.ɵɵpipe(49, "rpxTranslate");
22422
22410
  i0.ɵɵelementEnd()()()();
22423
- i0.ɵɵtemplate(42, QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template, 9, 7, "ng-container", 26);
22411
+ i0.ɵɵtemplate(50, QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template, 9, 7, "ng-container", 31);
22424
22412
  i0.ɵɵelementEnd()()()();
22425
22413
  } if (rf & 2) {
22426
22414
  const ctx_r1 = i0.ɵɵnextContext();
22427
22415
  i0.ɵɵadvance();
22428
22416
  i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
22417
+ i0.ɵɵadvance(8);
22418
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(10, 23, ctx_r1.serviceMessage));
22429
22419
  i0.ɵɵadvance(2);
22430
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(40, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("subject").hasError("required")));
22420
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(43, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("subject").hasError("required")));
22431
22421
  i0.ɵɵadvance(3);
22432
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 22, "Query subject"), " ");
22422
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 25, "Query subject"), " ");
22433
22423
  i0.ɵɵadvance(3);
22434
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 24, "The subject should be a summary of your query"), " ");
22424
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 27, "The subject should be a summary of your query"), " ");
22435
22425
  i0.ɵɵadvance(2);
22436
22426
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && (ctx_r1.formGroup.get("subject").hasError("required") || ctx_r1.formGroup.get("subject").hasError("maxlength")));
22437
22427
  i0.ɵɵadvance(2);
22438
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(42, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required")));
22428
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(45, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required")));
22439
22429
  i0.ɵɵadvance(3);
22440
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 26, "Query detail"), " ");
22430
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 29, "Query detail"), " ");
22441
22431
  i0.ɵɵadvance(3);
22442
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 28, "Include as many details as possible so case workers can respond to your query"), " ");
22432
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(28, 31, "Include as many details as possible so case workers can respond to your query"), " ");
22443
22433
  i0.ɵɵadvance(2);
22444
22434
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22445
22435
  i0.ɵɵadvance();
22446
22436
  i0.ɵɵclassProp("govuk-textarea--error", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22447
22437
  i0.ɵɵproperty("formControlName", "body");
22448
22438
  i0.ɵɵadvance(2);
22449
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(44, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required")));
22439
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(47, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required")));
22450
22440
  i0.ɵɵadvance(4);
22451
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29, 30, "Is the query hearing related?"), " ");
22441
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(37, 33, "Is the query hearing related?"), " ");
22452
22442
  i0.ɵɵadvance(2);
22453
22443
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required"));
22454
22444
  i0.ɵɵadvance(3);
22455
22445
  i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === true)("value", true);
22456
22446
  i0.ɵɵadvance(2);
22457
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(36, 32, "Is the query hearing related?", null, "Yes"), " ");
22447
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(44, 35, "Is the query hearing related?", null, "Yes"), " ");
22458
22448
  i0.ɵɵadvance(3);
22459
22449
  i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === false)("value", false);
22460
22450
  i0.ɵɵadvance(2);
22461
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(41, 36, "Is the query hearing related?", null, "No"), " ");
22451
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(49, 39, "Is the query hearing related?", null, "No"), " ");
22462
22452
  i0.ɵɵadvance(2);
22463
22453
  i0.ɵɵproperty("ngIf", ctx_r1.formGroup.get("isHearingRelated").value);
22464
22454
  } }
@@ -22467,6 +22457,7 @@ class QueryWriteRaiseQueryComponent {
22467
22457
  submitted;
22468
22458
  caseDetails;
22469
22459
  showForm;
22460
+ serviceMessage;
22470
22461
  raiseQueryErrorMessage = RaiseQueryErrorMessage;
22471
22462
  onSubjectInput() {
22472
22463
  const control = this.formGroup.get('subject');
@@ -22486,7 +22477,7 @@ class QueryWriteRaiseQueryComponent {
22486
22477
  return '';
22487
22478
  }
22488
22479
  static ɵfac = function QueryWriteRaiseQueryComponent_Factory(t) { return new (t || QueryWriteRaiseQueryComponent)(); };
22489
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteRaiseQueryComponent, selectors: [["ccd-query-write-raise-query"]], inputs: { formGroup: "formGroup", submitted: "submitted", caseDetails: "caseDetails", showForm: "showForm" }, decls: 12, vars: 8, consts: [[1, "govuk-!-margin-bottom-6"], [1, "govuk-caption-l"], [1, "govuk-heading-l", "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-!-margin-bottom-4", 4, "ngIf"], [1, "govuk-!-margin-bottom-4"], [3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], ["for", "subject", 1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["id", "subject-hint", 1, "govuk-hint"], ["id", "subject-error", "class", "govuk-error-message", 4, "ngIf"], ["type", "text", "id", "subject", "formControlName", "subject", "maxlength", "200", "aria-describedby", "subject-error", 1, "govuk-input", 3, "input"], ["for", "body", 1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["id", "body-hint", 1, "govuk-hint"], ["id", "body-error", "class", "govuk-error-message", 4, "ngIf"], ["id", "body", "name", "body", "rows", "5", "aria-describedby", "body-hint body-error", 1, "govuk-textarea", 3, "formControlName"], [1, "govuk-fieldset"], [1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["id", "isHearingRelated-error", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", 1, "govuk-radios", "govuk-radios--inline"], [1, "govuk-radios__item"], ["id", "isHearingRelated-yes", "name", "isHearingRelated", "type", "radio", "formControlName", "isHearingRelated", 1, "govuk-radios__input", 3, "checked", "value"], ["for", "isHearingRelated-yes", 1, "govuk-label", "govuk-radios__label"], ["id", "isHearingRelated-no", "name", "isHearingRelated", "type", "radio", "formControlName", "isHearingRelated", 1, "govuk-radios__input", 3, "checked", "value"], ["for", "isHearingRelated-no", 1, "govuk-label", "govuk-radios__label"], [4, "ngIf"], ["id", "subject-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "body-error", 1, "govuk-error-message"], ["id", "isHearingRelated-error", 1, "govuk-error-message"], [1, "govuk-radios__conditional", "govuk-!-margin-top-1", 3, "ngClass"], ["role", "group", 1, "govuk-fieldset"], [1, "govuk-label", "govuk-label--s"], ["id", "hearingDate-error", "class", "govuk-error-message", 4, "ngIf"], ["formControlName", "hearingDate"], ["id", "hearingDate-error", 1, "govuk-error-message"]], template: function QueryWriteRaiseQueryComponent_Template(rf, ctx) { if (rf & 1) {
22480
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteRaiseQueryComponent, selectors: [["ccd-query-write-raise-query"]], inputs: { formGroup: "formGroup", submitted: "submitted", caseDetails: "caseDetails", showForm: "showForm", serviceMessage: "serviceMessage" }, decls: 12, vars: 8, consts: [[1, "govuk-!-margin-bottom-6"], [1, "govuk-caption-l"], [1, "govuk-heading-l", "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-!-margin-bottom-4", 4, "ngIf"], [1, "govuk-!-margin-bottom-4"], [3, "formGroup"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-visually-hidden"], [3, "content"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], ["for", "subject", 1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["id", "subject-hint", 1, "govuk-hint"], ["id", "subject-error", "class", "govuk-error-message", 4, "ngIf"], ["type", "text", "id", "subject", "formControlName", "subject", "maxlength", "200", "aria-describedby", "subject-error", 1, "govuk-input", 3, "input"], ["for", "body", 1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["id", "body-hint", 1, "govuk-hint"], ["id", "body-error", "class", "govuk-error-message", 4, "ngIf"], ["id", "body", "name", "body", "rows", "5", "aria-describedby", "body-hint body-error", 1, "govuk-textarea", 3, "formControlName"], [1, "govuk-fieldset"], [1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["id", "isHearingRelated-error", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", 1, "govuk-radios", "govuk-radios--inline"], [1, "govuk-radios__item"], ["id", "isHearingRelated-yes", "name", "isHearingRelated", "type", "radio", "formControlName", "isHearingRelated", 1, "govuk-radios__input", 3, "checked", "value"], ["for", "isHearingRelated-yes", 1, "govuk-label", "govuk-radios__label"], ["id", "isHearingRelated-no", "name", "isHearingRelated", "type", "radio", "formControlName", "isHearingRelated", 1, "govuk-radios__input", 3, "checked", "value"], ["for", "isHearingRelated-no", 1, "govuk-label", "govuk-radios__label"], [4, "ngIf"], ["id", "subject-error", 1, "govuk-error-message"], ["id", "body-error", 1, "govuk-error-message"], ["id", "isHearingRelated-error", 1, "govuk-error-message"], [1, "govuk-radios__conditional", "govuk-!-margin-top-1", 3, "ngClass"], ["role", "group", 1, "govuk-fieldset"], [1, "govuk-label", "govuk-label--s"], ["id", "hearingDate-error", "class", "govuk-error-message", 4, "ngIf"], ["formControlName", "hearingDate"], ["id", "hearingDate-error", 1, "govuk-error-message"]], template: function QueryWriteRaiseQueryComponent_Template(rf, ctx) { if (rf & 1) {
22490
22481
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "div", 1);
22491
22482
  i0.ɵɵtext(3);
22492
22483
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22499,7 +22490,7 @@ class QueryWriteRaiseQueryComponent {
22499
22490
  i0.ɵɵelement(9, "ccd-query-case-details-header", 3);
22500
22491
  i0.ɵɵelementEnd();
22501
22492
  i0.ɵɵelement(10, "hr");
22502
- i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 43, 46, "div", 4);
22493
+ i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 51, 49, "div", 4);
22503
22494
  i0.ɵɵelementEnd();
22504
22495
  } if (rf & 2) {
22505
22496
  i0.ɵɵadvance(3);
@@ -22514,7 +22505,7 @@ class QueryWriteRaiseQueryComponent {
22514
22505
  }
22515
22506
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRaiseQueryComponent, [{
22516
22507
  type: Component,
22517
- args: [{ selector: 'ccd-query-write-raise-query', template: "<div>\n <div class=\"govuk-!-margin-bottom-6\">\n <div class=\"govuk-caption-l\">{{ 'Raise a query' | rpxTranslate }}</div>\n <h1 class=\"govuk-heading-l govuk-!-margin-bottom-4\">{{ 'Enter query details' | rpxTranslate }}</h1>\n </div>\n\n <div>\n <ccd-query-case-details-header [caseDetails]=\"caseDetails\"></ccd-query-case-details-header>\n </div>\n\n <hr>\n\n <div class=\"govuk-!-margin-bottom-4\" *ngIf=\"showForm\">\n <div [formGroup]=\"formGroup\">\n <div>\n <div class=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('subject').hasError('required')}\">\n <div class=\"govuk-label-wrapper\">\n <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"subject\">\n {{ 'Query subject' | rpxTranslate }}\n </label>\n </div>\n <div id=\"subject-hint\" class=\"govuk-hint\">\n {{ 'The subject should be a summary of your query' | rpxTranslate }}\n </div>\n <p id=\"subject-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && (formGroup.get('subject').hasError('required') || formGroup.get('subject').hasError('maxlength'))\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span>\n {{ getSubjectErrorMessage() | rpxTranslate }}\n </p>\n\n <input type=\"text\"\n id=\"subject\"\n class=\"govuk-input\"\n formControlName=\"subject\"\n maxlength=\"200\"\n (input)=\"onSubjectInput()\"\n aria-describedby=\"subject-error\" />\n </div>\n\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('body').hasError('required')}\">\n <div class=\"govuk-label-wrapper\">\n <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"body\">\n {{ 'Query detail' | rpxTranslate }}\n </label>\n </div>\n <div id=\"body-hint\" class=\"govuk-hint\">\n {{ 'Include as many details as possible so case workers can respond to your query' | rpxTranslate }}\n </div>\n <p id=\"body-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && formGroup.get('body').hasError('required')\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_BODY | rpxTranslate }}\n </p>\n <textarea [formControlName]=\"'body'\"\n id=\"body\" name=\"body\" rows=\"5\"\n aria-describedby=\"body-hint body-error\"\n class=\"govuk-textarea\"\n [class.govuk-textarea--error]=\"submitted && formGroup.get('body').hasError('required')\"\n >\n </textarea>\n </div>\n\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('isHearingRelated').hasError('required')}\">\n <fieldset class=\"govuk-fieldset\">\n <legend>\n <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\">\n {{ 'Is the query hearing related?' | rpxTranslate }}\n </label>\n </legend>\n <p id=\"isHearingRelated-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && formGroup.get('isHearingRelated').hasError('required')\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_HEARING_RELATED | rpxTranslate }}\n </p>\n <div class=\"govuk-radios govuk-radios--inline\" data-module=\"govuk-radios\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"isHearingRelated-yes\" name=\"isHearingRelated\"\n type=\"radio\"\n formControlName=\"isHearingRelated\"\n [checked]=\"formGroup.get('isHearingRelated').value === true\" [value]=\"true\"\n >\n <label class=\"govuk-label govuk-radios__label\" for=\"isHearingRelated-yes\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'Yes' }}\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"isHearingRelated-no\" name=\"isHearingRelated\"\n type=\"radio\"\n formControlName=\"isHearingRelated\"\n [checked]=\"formGroup.get('isHearingRelated').value === false\" [value]=\"false\"\n >\n <label class=\"govuk-label govuk-radios__label\" for=\"isHearingRelated-no\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'No' }}\n </label>\n </div>\n </div>\n </fieldset>\n\n <ng-container *ngIf=\"formGroup.get('isHearingRelated').value\">\n <div class=\"govuk-radios__conditional govuk-!-margin-top-1\"\n [ngClass]=\"{'govuk-form-group--error': submitted &&\n formGroup.get('isHearingRelated').value === true &&\n formGroup.get('hearingDate').value === null}\">\n <fieldset class=\"govuk-fieldset\" role=\"group\">\n <legend>\n <label class=\"govuk-label govuk-label--s\">\n {{ 'What is the date of the hearing?' | rpxTranslate }}\n </label>\n </legend>\n <p id=\"hearingDate-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && formGroup.get('isHearingRelated').value === true && formGroup.get('hearingDate').value === null\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_HEARING_DATE | rpxTranslate }}\n </p>\n <ccd-query-write-date-input formControlName=\"hearingDate\"></ccd-query-write-date-input>\n </fieldset>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
22508
+ args: [{ selector: 'ccd-query-write-raise-query', template: "<div>\n <div class=\"govuk-!-margin-bottom-6\">\n <div class=\"govuk-caption-l\">{{ 'Raise a query' | rpxTranslate }}</div>\n <h1 class=\"govuk-heading-l govuk-!-margin-bottom-4\">{{ 'Enter query details' | rpxTranslate }}</h1>\n </div>\n\n <div>\n <ccd-query-case-details-header [caseDetails]=\"caseDetails\"></ccd-query-case-details-header>\n </div>\n\n <hr>\n\n <div class=\"govuk-!-margin-bottom-4\" *ngIf=\"showForm\">\n <div [formGroup]=\"formGroup\">\n <div>\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-visually-hidden\">Warning</span>\n <ccd-markdown\n [content]=\"serviceMessage | rpxTranslate\">\n </ccd-markdown>\n </strong>\n </div>\n <div class=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('subject').hasError('required')}\">\n <div class=\"govuk-label-wrapper\">\n <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"subject\">\n {{ 'Query subject' | rpxTranslate }}\n </label>\n </div>\n <div id=\"subject-hint\" class=\"govuk-hint\">\n {{ 'The subject should be a summary of your query' | rpxTranslate }}\n </div>\n <p id=\"subject-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && (formGroup.get('subject').hasError('required') || formGroup.get('subject').hasError('maxlength'))\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span>\n {{ getSubjectErrorMessage() | rpxTranslate }}\n </p>\n\n <input type=\"text\"\n id=\"subject\"\n class=\"govuk-input\"\n formControlName=\"subject\"\n maxlength=\"200\"\n (input)=\"onSubjectInput()\"\n aria-describedby=\"subject-error\" />\n </div>\n\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('body').hasError('required')}\">\n <div class=\"govuk-label-wrapper\">\n <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"body\">\n {{ 'Query detail' | rpxTranslate }}\n </label>\n </div>\n <div id=\"body-hint\" class=\"govuk-hint\">\n {{ 'Include as many details as possible so case workers can respond to your query' | rpxTranslate }}\n </div>\n <p id=\"body-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && formGroup.get('body').hasError('required')\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_BODY | rpxTranslate }}\n </p>\n <textarea [formControlName]=\"'body'\"\n id=\"body\" name=\"body\" rows=\"5\"\n aria-describedby=\"body-hint body-error\"\n class=\"govuk-textarea\"\n [class.govuk-textarea--error]=\"submitted && formGroup.get('body').hasError('required')\"\n >\n </textarea>\n </div>\n\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('isHearingRelated').hasError('required')}\">\n <fieldset class=\"govuk-fieldset\">\n <legend>\n <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\">\n {{ 'Is the query hearing related?' | rpxTranslate }}\n </label>\n </legend>\n <p id=\"isHearingRelated-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && formGroup.get('isHearingRelated').hasError('required')\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_HEARING_RELATED | rpxTranslate }}\n </p>\n <div class=\"govuk-radios govuk-radios--inline\" data-module=\"govuk-radios\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"isHearingRelated-yes\" name=\"isHearingRelated\"\n type=\"radio\"\n formControlName=\"isHearingRelated\"\n [checked]=\"formGroup.get('isHearingRelated').value === true\" [value]=\"true\"\n >\n <label class=\"govuk-label govuk-radios__label\" for=\"isHearingRelated-yes\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'Yes' }}\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"isHearingRelated-no\" name=\"isHearingRelated\"\n type=\"radio\"\n formControlName=\"isHearingRelated\"\n [checked]=\"formGroup.get('isHearingRelated').value === false\" [value]=\"false\"\n >\n <label class=\"govuk-label govuk-radios__label\" for=\"isHearingRelated-no\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'No' }}\n </label>\n </div>\n </div>\n </fieldset>\n\n <ng-container *ngIf=\"formGroup.get('isHearingRelated').value\">\n <div class=\"govuk-radios__conditional govuk-!-margin-top-1\"\n [ngClass]=\"{'govuk-form-group--error': submitted &&\n formGroup.get('isHearingRelated').value === true &&\n formGroup.get('hearingDate').value === null}\">\n <fieldset class=\"govuk-fieldset\" role=\"group\">\n <legend>\n <label class=\"govuk-label govuk-label--s\">\n {{ 'What is the date of the hearing?' | rpxTranslate }}\n </label>\n </legend>\n <p id=\"hearingDate-error\" class=\"govuk-error-message\"\n *ngIf=\"submitted && formGroup.get('isHearingRelated').value === true && formGroup.get('hearingDate').value === null\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_HEARING_DATE | rpxTranslate }}\n </p>\n <ccd-query-write-date-input formControlName=\"hearingDate\"></ccd-query-write-date-input>\n </fieldset>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
22518
22509
  }], null, { formGroup: [{
22519
22510
  type: Input
22520
22511
  }], submitted: [{
@@ -22523,6 +22514,8 @@ class QueryWriteRaiseQueryComponent {
22523
22514
  type: Input
22524
22515
  }], showForm: [{
22525
22516
  type: Input
22517
+ }], serviceMessage: [{
22518
+ type: Input
22526
22519
  }] }); })();
22527
22520
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRaiseQueryComponent, { className: "QueryWriteRaiseQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.ts", lineNumber: 8 }); })();
22528
22521
 
@@ -22740,7 +22733,7 @@ function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if
22740
22733
  i0.ɵɵadvance(4);
22741
22734
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, "What happens next"));
22742
22735
  i0.ɵɵadvance(3);
22743
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, ctx_r0.callbackConfirmationBodyText));
22736
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, "Our team will read your query and will respond"));
22744
22737
  i0.ɵɵadvance(3);
22745
22738
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 17, "When the response is available it will be added to the 'Queries' section."));
22746
22739
  i0.ɵɵadvance(3);
@@ -22804,7 +22797,6 @@ function QueryConfirmationComponent_main_0_Template(rf, ctx) { if (rf & 1) {
22804
22797
  class QueryConfirmationComponent {
22805
22798
  route;
22806
22799
  queryCreateContext;
22807
- callbackConfirmationBodyText;
22808
22800
  caseId = '';
22809
22801
  queryCreateContextEnum = QueryCreateContext;
22810
22802
  constructor(route) {
@@ -22814,7 +22806,7 @@ class QueryConfirmationComponent {
22814
22806
  this.caseId = this.route.snapshot.params.cid;
22815
22807
  }
22816
22808
  static ɵfac = function QueryConfirmationComponent_Factory(t) { return new (t || QueryConfirmationComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute)); };
22817
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryConfirmationComponent, selectors: [["ccd-query-confirmation"]], inputs: { queryCreateContext: "queryCreateContext", callbackConfirmationBodyText: "callbackConfirmationBodyText" }, decls: 1, vars: 1, consts: [["class", "govuk-main-wrapper", 4, "ngIf"], [1, "govuk-main-wrapper"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], [4, "ngIf"], [1, "govuk-panel", "govuk-panel--confirmation"], [1, "govuk-panel__title"], [1, "govuk-panel__body"], [1, "govuk-body"], [1, "govuk-heading-s"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"], ["id", "tasks-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"], ["id", "case-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"]], template: function QueryConfirmationComponent_Template(rf, ctx) { if (rf & 1) {
22809
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryConfirmationComponent, selectors: [["ccd-query-confirmation"]], inputs: { queryCreateContext: "queryCreateContext" }, decls: 1, vars: 1, consts: [["class", "govuk-main-wrapper", 4, "ngIf"], [1, "govuk-main-wrapper"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], [4, "ngIf"], [1, "govuk-panel", "govuk-panel--confirmation"], [1, "govuk-panel__title"], [1, "govuk-panel__body"], [1, "govuk-body"], [1, "govuk-heading-s"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"], ["id", "tasks-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"], ["id", "case-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"]], template: function QueryConfirmationComponent_Template(rf, ctx) { if (rf & 1) {
22818
22810
  i0.ɵɵtemplate(0, QueryConfirmationComponent_main_0_Template, 5, 2, "main", 0);
22819
22811
  } if (rf & 2) {
22820
22812
  i0.ɵɵproperty("ngIf", ctx.queryCreateContext);
@@ -22822,11 +22814,9 @@ class QueryConfirmationComponent {
22822
22814
  }
22823
22815
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryConfirmationComponent, [{
22824
22816
  type: Component,
22825
- args: [{ selector: 'ccd-query-confirmation', template: "<main class=\"govuk-main-wrapper\" *ngIf=\"queryCreateContext\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY || queryCreateContext === queryCreateContextEnum.FOLLOWUP\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query submitted' | rpxTranslate}}</h1>\n <div class=\"govuk-panel__body\">{{'Your query has been sent to HMCTS' | rpxTranslate}}</div>\n </div>\n <div class=\"govuk-body\">\n <h3 class=\"govuk-heading-s\">{{'What happens next' | rpxTranslate}}</h3>\n <p>{{ callbackConfirmationBodyText | rpxTranslate}}</p>\n <p>{{'When the response is available it will be added to the \\'Queries\\' section.' | rpxTranslate}}</p>\n <p>\n {{'You can' | rpxTranslate}}\n <a class=\"govuk-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n </p>\n </div>\n </ng-container>\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query response submitted' | rpxTranslate}}</h1>\n <div class=\"govuk-panel__body\">{{'This query response has been added to the case' | rpxTranslate}}</div>\n </div>\n <div class=\"govuk-body\">\n {{'You can' | rpxTranslate}}\n <a class=\"govuk-link\" id=\"tasks-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}/tasks\">{{'return to tasks' | rpxTranslate}}</a> or\n <a class=\"govuk-link\" id=\"case-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n </div>\n </ng-container>\n </div>\n </div>\n</main>\n" }]
22817
+ args: [{ selector: 'ccd-query-confirmation', template: "<main class=\"govuk-main-wrapper\" *ngIf=\"queryCreateContext\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY || queryCreateContext === queryCreateContextEnum.FOLLOWUP\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query submitted' | rpxTranslate}}</h1>\n <div class=\"govuk-panel__body\">{{'Your query has been sent to HMCTS' | rpxTranslate}}</div>\n </div>\n <div class=\"govuk-body\">\n <h3 class=\"govuk-heading-s\">{{'What happens next' | rpxTranslate}}</h3>\n <p>{{'Our team will read your query and will respond' | rpxTranslate}}</p>\n <p>{{'When the response is available it will be added to the \\'Queries\\' section.' | rpxTranslate}}</p>\n <p>\n {{'You can' | rpxTranslate}}\n <a class=\"govuk-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n </p>\n </div>\n </ng-container>\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query response submitted' | rpxTranslate}}</h1>\n <div class=\"govuk-panel__body\">{{'This query response has been added to the case' | rpxTranslate}}</div>\n </div>\n <div class=\"govuk-body\">\n {{'You can' | rpxTranslate}}\n <a class=\"govuk-link\" id=\"tasks-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}/tasks\">{{'return to tasks' | rpxTranslate}}</a> or\n <a class=\"govuk-link\" id=\"case-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n </div>\n </ng-container>\n </div>\n </div>\n</main>\n" }]
22826
22818
  }], () => [{ type: i1$1.ActivatedRoute }], { queryCreateContext: [{
22827
22819
  type: Input
22828
- }], callbackConfirmationBodyText: [{
22829
- type: Input
22830
22820
  }] }); })();
22831
22821
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryConfirmationComponent, { className: "QueryConfirmationComponent", filePath: "lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.ts", lineNumber: 9 }); })();
22832
22822
 
@@ -22886,7 +22876,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_templ
22886
22876
  i0.ɵɵadvance(2);
22887
22877
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Your query is under review"));
22888
22878
  i0.ɵɵadvance(3);
22889
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Our team will read your query and respond. Do not submit the same query more than once."));
22879
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Our team will read your query and will respond. Do not submit the same query more than once."));
22890
22880
  } }
22891
22881
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
22892
22882
  i0.ɵɵelementContainerStart(0);
@@ -22908,7 +22898,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
22908
22898
  const ctx_r1 = i0.ɵɵnextContext();
22909
22899
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
22910
22900
  i0.ɵɵadvance();
22911
- i0.ɵɵproperty("ngIf", !ctx_r1.isCaseworker());
22901
+ i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser());
22912
22902
  } }
22913
22903
  class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22914
22904
  route;
@@ -22959,11 +22949,8 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22959
22949
  this.showQueryList = true;
22960
22950
  this.query = null;
22961
22951
  }
22962
- isCaseworker() {
22963
- const userDetails = JSON.parse(this.sessionStorageService?.getItem('userDetails'));
22964
- return userDetails && userDetails.roles
22965
- && !(userDetails.roles.includes('pui-case-manager')
22966
- || userDetails.roles.some((role) => role.toLowerCase().includes('judge')));
22952
+ isInternalUser() {
22953
+ return isInternalUser(this.sessionStorageService);
22967
22954
  }
22968
22955
  static ɵfac = function ReadQueryManagementFieldComponent_Factory(t) { return new (t || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier)); };
22969
22956
  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"]], template: function ReadQueryManagementFieldComponent_Template(rf, ctx) { if (rf & 1) {
@@ -22975,9 +22962,9 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22975
22962
  }
22976
22963
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
22977
22964
  type: Component,
22978
- 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=\"!isCaseworker()\">\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-container>\n</ng-template>\n" }]
22965
+ 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()\">\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 will respond. Do not submit the same query more than once.' | rpxTranslate }}</p>\n </div>\n </ng-template>\n </ng-container>\n</ng-template>\n" }]
22979
22966
  }], () => [{ type: i1$1.ActivatedRoute }, { type: SessionStorageService }, { type: CaseNotifier }], null); })();
22980
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 14 }); })();
22967
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 15 }); })();
22981
22968
 
22982
22969
  class ReadTextAreaFieldComponent extends AbstractFieldReadComponent {
22983
22970
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadTextAreaFieldComponent_BaseFactory; return function ReadTextAreaFieldComponent_Factory(t) { return (ɵReadTextAreaFieldComponent_BaseFactory || (ɵReadTextAreaFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadTextAreaFieldComponent)))(t || ReadTextAreaFieldComponent); }; })();
@@ -30633,7 +30620,7 @@ ReadQueryManagementFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i1
30633
30620
  i0.ɵɵsetComponentScope(QueryDetailsComponent, function () { return [i5.NgForOf, i5.NgIf, AlertComponent, QueryAttachmentsReadComponent]; }, function () { return [i5.DatePipe, i1.RpxTranslatePipe]; });
30634
30621
  i0.ɵɵsetComponentScope(QueryWriteRespondToQueryComponent, function () { return [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, QueryDetailsComponent,
30635
30622
  QueryCaseDetailsHeaderComponent]; }, function () { return [i1.RpxTranslatePipe]; });
30636
- i0.ɵɵsetComponentScope(QueryWriteRaiseQueryComponent, function () { return [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.MaxLengthValidator, i4.FormGroupDirective, i4.FormControlName, QueryCaseDetailsHeaderComponent,
30623
+ i0.ɵɵsetComponentScope(QueryWriteRaiseQueryComponent, function () { return [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.MaxLengthValidator, i4.FormGroupDirective, i4.FormControlName, MarkdownComponent, QueryCaseDetailsHeaderComponent,
30637
30624
  QueryWriteDateInputComponent]; }, function () { return [i1.RpxTranslatePipe]; });
30638
30625
  i0.ɵɵsetComponentScope(QueryCheckYourAnswersComponent, function () { return [i5.NgForOf, i5.NgIf, QueryCaseDetailsHeaderComponent,
30639
30626
  QueryAttachmentsReadComponent,
@@ -33705,9 +33692,9 @@ class CaseResolver {
33705
33692
  // as discussed for EUI-5456, need functionality to go to default page
33706
33693
  goToDefaultPage() {
33707
33694
  console.info('Going to default page!');
33708
- const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails'));
33695
+ const userDetails = JSON.parse(this.sessionStorage.getItem(USER_DETAILS));
33709
33696
  userDetails && userDetails.roles
33710
- && !userDetails.roles.includes('pui-case-manager')
33697
+ && !userDetails.roles.includes(PUI_CASE_MANAGER)
33711
33698
  &&
33712
33699
  (userDetails.roles.includes('caseworker-ia-iacjudge')
33713
33700
  || userDetails.roles.includes('caseworker-ia-caseofficer')
@@ -37847,7 +37834,7 @@ class CreateCaseFiltersComponent {
37847
37834
  return events.filter(event => event.pre_states.length === 0);
37848
37835
  }
37849
37836
  retainEventsWithCreateRights(events) {
37850
- const userProfile = JSON.parse(this.sessionStorageService.getItem('userDetails'));
37837
+ const userProfile = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
37851
37838
  return events.filter(event => userProfile && userProfile.roles &&
37852
37839
  !!userProfile.roles.find(role => this.hasCreateAccess(event, role)));
37853
37840
  }