@hmcts/ccd-case-ui-toolkit 7.1.66-google-analytics → 7.1.66-is-caseworker

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 (30) 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/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +13 -21
  6. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +4 -3
  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 +8 -10
  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 +116 -123
  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/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +2 -4
  19. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  20. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  21. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
  22. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  23. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +2 -1
  24. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  25. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +2 -2
  26. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
  27. package/lib/shared/services/activity/activity.service.d.ts.map +1 -1
  28. package/lib/shared/utils.d.ts +6 -0
  29. package/lib/shared/utils.d.ts.map +1 -0
  30. 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.
@@ -20564,30 +20557,28 @@ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_co
20564
20557
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "or"));
20565
20558
  } }
20566
20559
  function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
20567
- const _r2 = i0.ɵɵgetCurrentView();
20568
20560
  i0.ɵɵelementContainerStart(0);
20569
20561
  i0.ɵɵtemplate(1, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template, 4, 3, "ng-container", 0);
20570
- i0.ɵɵelementStart(2, "div", 10)(3, "input", 11);
20571
- i0.ɵɵlistener("change", function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template_input_change_3_listener() { const qualifyingQuestion_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSelectionChange(qualifyingQuestion_r3)); });
20572
- i0.ɵɵelementEnd();
20562
+ i0.ɵɵelementStart(2, "div", 10);
20563
+ i0.ɵɵelement(3, "input", 11);
20573
20564
  i0.ɵɵelementStart(4, "label", 12);
20574
20565
  i0.ɵɵtext(5);
20575
20566
  i0.ɵɵpipe(6, "rpxTranslate");
20576
20567
  i0.ɵɵelementEnd()();
20577
20568
  i0.ɵɵelementContainerEnd();
20578
20569
  } if (rf & 2) {
20579
- const qualifyingQuestion_r3 = ctx.$implicit;
20580
- const isLast_r4 = ctx.last;
20570
+ const qualifyingQuestion_r2 = ctx.$implicit;
20571
+ const isLast_r3 = ctx.last;
20581
20572
  const ctx_r0 = i0.ɵɵnextContext(2);
20582
20573
  i0.ɵɵadvance();
20583
- i0.ɵɵproperty("ngIf", isLast_r4);
20574
+ i0.ɵɵproperty("ngIf", isLast_r3);
20584
20575
  i0.ɵɵadvance(2);
20585
- i0.ɵɵpropertyInterpolate("id", qualifyingQuestion_r3.name);
20586
- i0.ɵɵproperty("formControl", ctx_r0.qualifyingQuestionsControl)("value", qualifyingQuestion_r3);
20576
+ i0.ɵɵpropertyInterpolate("id", qualifyingQuestion_r2.name);
20577
+ i0.ɵɵproperty("formControl", ctx_r0.qualifyingQuestionsControl)("value", qualifyingQuestion_r2);
20587
20578
  i0.ɵɵadvance();
20588
- i0.ɵɵproperty("for", qualifyingQuestion_r3.name);
20579
+ i0.ɵɵproperty("for", qualifyingQuestion_r2.name);
20589
20580
  i0.ɵɵadvance();
20590
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, qualifyingQuestion_r3.name));
20581
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, qualifyingQuestion_r2.name));
20591
20582
  } }
20592
20583
  function QualifyingQuestionOptionsComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
20593
20584
  i0.ɵɵelementContainerStart(0);
@@ -20624,7 +20615,6 @@ class QualifyingQuestionOptionsComponent {
20624
20615
  qualifyingQuestionService;
20625
20616
  qualifyingQuestionsControl;
20626
20617
  qualifyingQuestions$;
20627
- questionSelected = new EventEmitter();
20628
20618
  qualifyingQuestionsErrorMessage = QualifyingQuestionsErrorMessage;
20629
20619
  caseId;
20630
20620
  constructor(route, router, qualifyingQuestionService) {
@@ -20646,11 +20636,8 @@ class QualifyingQuestionOptionsComponent {
20646
20636
  get displayError() {
20647
20637
  return this.qualifyingQuestionsControl.touched && this.qualifyingQuestionsControl.hasError('required');
20648
20638
  }
20649
- onSelectionChange(qualifyingQuestion) {
20650
- this.questionSelected.emit(qualifyingQuestion);
20651
- }
20652
20639
  static ɵfac = function QualifyingQuestionOptionsComponent_Factory(t) { return new (t || QualifyingQuestionOptionsComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(QualifyingQuestionService)); };
20653
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QualifyingQuestionOptionsComponent, selectors: [["ccd-qualifying-question-options"]], inputs: { qualifyingQuestionsControl: "qualifyingQuestionsControl", qualifyingQuestions$: "qualifyingQuestions$" }, outputs: { questionSelected: "questionSelected" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [1, "govuk-form-group"], [1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], [1, "govuk-fieldset__heading"], [1, "govuk-heading-m", "govuk-!-margin-top-10"], ["data-module", "govuk-radios", 1, "govuk-radios"], [4, "ngFor", "ngForOf"], [1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["name", "qualifyingQuestionOption", "type", "radio", 1, "govuk-radios__input", 3, "change", "id", "formControl", "value"], [1, "govuk-label", "govuk-radios__label", 3, "for"], [1, "govuk-radios__divider"]], template: function QualifyingQuestionOptionsComponent_Template(rf, ctx) { if (rf & 1) {
20640
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QualifyingQuestionOptionsComponent, selectors: [["ccd-qualifying-question-options"]], inputs: { qualifyingQuestionsControl: "qualifyingQuestionsControl", qualifyingQuestions$: "qualifyingQuestions$" }, decls: 1, vars: 1, consts: [[4, "ngIf"], [1, "govuk-form-group"], [1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], [1, "govuk-fieldset__heading"], [1, "govuk-heading-m", "govuk-!-margin-top-10"], ["data-module", "govuk-radios", 1, "govuk-radios"], [4, "ngFor", "ngForOf"], [1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["name", "qualifyingQuestionOption", "type", "radio", 1, "govuk-radios__input", 3, "id", "formControl", "value"], [1, "govuk-label", "govuk-radios__label", 3, "for"], [1, "govuk-radios__divider"]], template: function QualifyingQuestionOptionsComponent_Template(rf, ctx) { if (rf & 1) {
20654
20641
  i0.ɵɵtemplate(0, QualifyingQuestionOptionsComponent_ng_container_0_Template, 14, 12, "ng-container", 0);
20655
20642
  } if (rf & 2) {
20656
20643
  i0.ɵɵproperty("ngIf", ctx.qualifyingQuestionsControl);
@@ -20658,13 +20645,11 @@ class QualifyingQuestionOptionsComponent {
20658
20645
  }
20659
20646
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QualifyingQuestionOptionsComponent, [{
20660
20647
  type: Component,
20661
- args: [{ selector: 'ccd-qualifying-question-options', template: "<ng-container *ngIf=\"qualifyingQuestionsControl\">\n <div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"displayError\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"govuk-fieldset__heading\">\n {{ 'Raise a new query' | rpxTranslate }}\n </h1>\n </legend>\n <h2 class=\"govuk-heading-m govuk-!-margin-top-10\">\n {{ 'Select the type of query you are raising:' | rpxTranslate }}\n </h2>\n\n <ng-container *ngIf=\"displayError\">\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{\n qualifyingQuestionsErrorMessage.SELECT_AN_OPTION | rpxTranslate }}\n </p>\n </ng-container>\n\n <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n <ng-container *ngFor=\"let qualifyingQuestion of qualifyingQuestions$ | async; let isLast = last\">\n <ng-container *ngIf=\"isLast\">\n <div class=\"govuk-radios__divider\">{{ 'or' | rpxTranslate }}</div>\n </ng-container>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" \n id=\"{{qualifyingQuestion.name}}\" \n name=\"qualifyingQuestionOption\"\n type=\"radio\" [formControl]=\"qualifyingQuestionsControl\" \n [value]=\"qualifyingQuestion\"\n (change)=\"onSelectionChange(qualifyingQuestion)\">\n <label class=\"govuk-label govuk-radios__label\" [for]=\"qualifyingQuestion.name\">{{ qualifyingQuestion.name |\n rpxTranslate }}</label>\n </div>\n </ng-container>\n </div>\n </fieldset>\n </div>\n</ng-container>\n" }]
20648
+ args: [{ selector: 'ccd-qualifying-question-options', template: "<ng-container *ngIf=\"qualifyingQuestionsControl\">\n <div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"displayError\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"govuk-fieldset__heading\">\n {{ 'Raise a new query' | rpxTranslate }}\n </h1>\n </legend>\n <h2 class=\"govuk-heading-m govuk-!-margin-top-10\">\n {{ 'Select the type of query you are raising:' | rpxTranslate }}\n </h2>\n\n <ng-container *ngIf=\"displayError\">\n <p class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{\n qualifyingQuestionsErrorMessage.SELECT_AN_OPTION | rpxTranslate }}\n </p>\n </ng-container>\n\n <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n <ng-container *ngFor=\"let qualifyingQuestion of qualifyingQuestions$ | async; let isLast = last\">\n <ng-container *ngIf=\"isLast\">\n <div class=\"govuk-radios__divider\">{{ 'or' | rpxTranslate }}</div>\n </ng-container>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"{{qualifyingQuestion.name}}\" name=\"qualifyingQuestionOption\"\n type=\"radio\" [formControl]=\"qualifyingQuestionsControl\" [value]=\"qualifyingQuestion\">\n <label class=\"govuk-label govuk-radios__label\" [for]=\"qualifyingQuestion.name\">{{ qualifyingQuestion.name |\n rpxTranslate }}</label>\n </div>\n </ng-container>\n </div>\n </fieldset>\n </div>\n</ng-container>\n" }]
20662
20649
  }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: QualifyingQuestionService }], { qualifyingQuestionsControl: [{
20663
20650
  type: Input
20664
20651
  }], qualifyingQuestions$: [{
20665
20652
  type: Input
20666
- }], questionSelected: [{
20667
- type: Output
20668
20653
  }] }); })();
20669
20654
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QualifyingQuestionOptionsComponent, { className: "QualifyingQuestionOptionsComponent", filePath: "lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.ts", lineNumber: 13 }); })();
20670
20655
 
@@ -21279,7 +21264,7 @@ class QueryCheckYourAnswersComponent {
21279
21264
  this.router.navigate(['/', 'service-down']);
21280
21265
  }
21281
21266
  generateCaseQueriesCollectionData() {
21282
- const currentUserDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
21267
+ const currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21283
21268
  const caseMessage = this.queryCreateContext === QueryCreateContext.NEW_QUERY
21284
21269
  ? QueryManagementUtils.getNewQueryData(this.formGroup, currentUserDetails)
21285
21270
  : QueryManagementUtils.getRespondOrFollowupQueryData(this.formGroup, this.queryItem, currentUserDetails);
@@ -21519,7 +21504,7 @@ class QueryCheckYourAnswersComponent {
21519
21504
  }], querySubmitted: [{
21520
21505
  type: Output
21521
21506
  }] }); })();
21522
- (() => { (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 }); })();
21523
21508
 
21524
21509
  function QueryDetailsComponent_ng_container_0_cut_alert_1_Template(rf, ctx) { if (rf & 1) {
21525
21510
  i0.ɵɵelementStart(0, "cut-alert", 11);
@@ -21655,7 +21640,7 @@ function QueryDetailsComponent_ng_container_0_ng_container_46_ng_container_1_ng_
21655
21640
  i0.ɵɵadvance(3);
21656
21641
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(14, 14, child_r3.createdOn, "dd MMM yyyy"));
21657
21642
  i0.ɵɵadvance(2);
21658
- i0.ɵɵproperty("ngIf", ctx_r0.isCaseworker());
21643
+ i0.ɵɵproperty("ngIf", ctx_r0.isInternalUser());
21659
21644
  i0.ɵɵadvance(3);
21660
21645
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 17, "Response detail"));
21661
21646
  i0.ɵɵadvance(3);
@@ -21868,11 +21853,8 @@ class QueryDetailsComponent {
21868
21853
  onBack() {
21869
21854
  this.backClicked.emit(true);
21870
21855
  }
21871
- isCaseworker() {
21872
- const userDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
21873
- return userDetails && userDetails.roles
21874
- && !(userDetails.roles.includes('pui-case-manager')
21875
- || userDetails.roles.some((role) => role.toLowerCase().includes('judge')));
21856
+ isInternalUser() {
21857
+ return isInternalUser(this.sessionStorageService);
21876
21858
  }
21877
21859
  ngOnChanges() {
21878
21860
  this.toggleLinkVisibility();
@@ -21887,7 +21869,7 @@ class QueryDetailsComponent {
21887
21869
  this.hasResponded.emit(false);
21888
21870
  return false;
21889
21871
  }
21890
- if (this.isCaseworker() && this.queryResponseStatus !== QueryItemResponseStatus.AWAITING) {
21872
+ if (this.isInternalUser() && this.queryResponseStatus !== QueryItemResponseStatus.AWAITING) {
21891
21873
  this.message = Constants.TASK_COMPLETION_ERROR;
21892
21874
  this.hasResponded.emit(true);
21893
21875
  return true;
@@ -21904,7 +21886,7 @@ class QueryDetailsComponent {
21904
21886
  }
21905
21887
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryDetailsComponent, [{
21906
21888
  type: Component,
21907
- 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"] }]
21908
21890
  }], () => [{ type: SessionStorageService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }], { query: [{
21909
21891
  type: Input
21910
21892
  }], caseId: [{
@@ -21916,7 +21898,7 @@ class QueryDetailsComponent {
21916
21898
  }], hasResponded: [{
21917
21899
  type: Output
21918
21900
  }] }); })();
21919
- (() => { (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 }); })();
21920
21902
 
21921
21903
  class QueryEventCompletionComponent {
21922
21904
  eventCompletionParams;
@@ -22295,8 +22277,8 @@ class QueryWriteDateInputComponent {
22295
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 }); })();
22296
22278
 
22297
22279
  const _c0$C = a0 => ({ "govuk-form-group--error": a0 });
22298
- function QueryWriteRaiseQueryComponent_div_11_p_11_Template(rf, ctx) { if (rf & 1) {
22299
- 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);
22300
22282
  i0.ɵɵtext(2);
22301
22283
  i0.ɵɵpipe(3, "rpxTranslate");
22302
22284
  i0.ɵɵelementEnd();
@@ -22310,8 +22292,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_11_Template(rf, ctx) { if (rf &
22310
22292
  i0.ɵɵadvance(2);
22311
22293
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r1.getSubjectErrorMessage()), " ");
22312
22294
  } }
22313
- function QueryWriteRaiseQueryComponent_div_11_p_21_Template(rf, ctx) { if (rf & 1) {
22314
- 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);
22315
22297
  i0.ɵɵtext(2);
22316
22298
  i0.ɵɵpipe(3, "rpxTranslate");
22317
22299
  i0.ɵɵelementEnd();
@@ -22325,8 +22307,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_21_Template(rf, ctx) { if (rf &
22325
22307
  i0.ɵɵadvance(2);
22326
22308
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_BODY), " ");
22327
22309
  } }
22328
- function QueryWriteRaiseQueryComponent_div_11_p_30_Template(rf, ctx) { if (rf & 1) {
22329
- 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);
22330
22312
  i0.ɵɵtext(2);
22331
22313
  i0.ɵɵpipe(3, "rpxTranslate");
22332
22314
  i0.ɵɵelementEnd();
@@ -22340,8 +22322,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_30_Template(rf, ctx) { if (rf &
22340
22322
  i0.ɵɵadvance(2);
22341
22323
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_RELATED), " ");
22342
22324
  } }
22343
- function QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template(rf, ctx) { if (rf & 1) {
22344
- 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);
22345
22327
  i0.ɵɵtext(2);
22346
22328
  i0.ɵɵpipe(3, "rpxTranslate");
22347
22329
  i0.ɵɵelementEnd();
@@ -22355,14 +22337,14 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template(rf, c
22355
22337
  i0.ɵɵadvance(2);
22356
22338
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_DATE), " ");
22357
22339
  } }
22358
- 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) {
22359
22341
  i0.ɵɵelementContainerStart(0);
22360
- 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);
22361
22343
  i0.ɵɵtext(5);
22362
22344
  i0.ɵɵpipe(6, "rpxTranslate");
22363
22345
  i0.ɵɵelementEnd()();
22364
- i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template, 6, 6, "p", 34);
22365
- 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);
22366
22348
  i0.ɵɵelementEnd()();
22367
22349
  i0.ɵɵelementContainerEnd();
22368
22350
  } if (rf & 2) {
@@ -22376,86 +22358,97 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template(rf, ctx)
22376
22358
  } }
22377
22359
  function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
22378
22360
  const _r1 = i0.ɵɵgetCurrentView();
22379
- i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div")(3, "div", 7)(4, "div", 8)(5, "label", 9);
22380
- i0.ɵɵtext(6);
22381
- i0.ɵɵpipe(7, "rpxTranslate");
22382
- i0.ɵɵelementEnd()();
22383
- i0.ɵɵelementStart(8, "div", 10);
22384
- 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);
22385
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");
22386
22377
  i0.ɵɵelementEnd();
22387
- i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_p_11_Template, 6, 6, "p", 11);
22388
- i0.ɵɵelementStart(12, "input", 12);
22389
- 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()); });
22390
22381
  i0.ɵɵelementEnd()();
22391
- i0.ɵɵelementStart(13, "div", 7)(14, "div", 8)(15, "label", 13);
22392
- i0.ɵɵtext(16);
22393
- 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");
22394
22385
  i0.ɵɵelementEnd()();
22395
- i0.ɵɵelementStart(18, "div", 14);
22396
- i0.ɵɵtext(19);
22397
- i0.ɵɵpipe(20, "rpxTranslate");
22386
+ i0.ɵɵelementStart(26, "div", 19);
22387
+ i0.ɵɵtext(27);
22388
+ i0.ɵɵpipe(28, "rpxTranslate");
22398
22389
  i0.ɵɵelementEnd();
22399
- i0.ɵɵtemplate(21, QueryWriteRaiseQueryComponent_div_11_p_21_Template, 6, 6, "p", 15);
22400
- i0.ɵɵelementStart(22, "textarea", 16);
22401
- 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, " ");
22402
22393
  i0.ɵɵelementEnd()();
22403
- i0.ɵɵelementStart(24, "div", 7)(25, "fieldset", 17)(26, "legend")(27, "label", 18);
22404
- i0.ɵɵtext(28);
22405
- 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");
22406
22397
  i0.ɵɵelementEnd()();
22407
- i0.ɵɵtemplate(30, QueryWriteRaiseQueryComponent_div_11_p_30_Template, 6, 6, "p", 19);
22408
- i0.ɵɵelementStart(31, "div", 20)(32, "div", 21);
22409
- i0.ɵɵelement(33, "input", 22);
22410
- i0.ɵɵelementStart(34, "label", 23);
22411
- i0.ɵɵtext(35);
22412
- 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");
22413
22404
  i0.ɵɵelementEnd()();
22414
- i0.ɵɵelementStart(37, "div", 21);
22415
- i0.ɵɵelement(38, "input", 24);
22416
- i0.ɵɵelementStart(39, "label", 25);
22417
- i0.ɵɵtext(40);
22418
- 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");
22419
22410
  i0.ɵɵelementEnd()()()();
22420
- 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);
22421
22412
  i0.ɵɵelementEnd()()()();
22422
22413
  } if (rf & 2) {
22423
22414
  const ctx_r1 = i0.ɵɵnextContext();
22424
22415
  i0.ɵɵadvance();
22425
22416
  i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
22417
+ i0.ɵɵadvance(8);
22418
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(10, 23, ctx_r1.serviceMessage));
22426
22419
  i0.ɵɵadvance(2);
22427
- 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")));
22428
22421
  i0.ɵɵadvance(3);
22429
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 22, "Query subject"), " ");
22422
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 25, "Query subject"), " ");
22430
22423
  i0.ɵɵadvance(3);
22431
- 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"), " ");
22432
22425
  i0.ɵɵadvance(2);
22433
22426
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && (ctx_r1.formGroup.get("subject").hasError("required") || ctx_r1.formGroup.get("subject").hasError("maxlength")));
22434
22427
  i0.ɵɵadvance(2);
22435
- 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")));
22436
22429
  i0.ɵɵadvance(3);
22437
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 26, "Query detail"), " ");
22430
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 29, "Query detail"), " ");
22438
22431
  i0.ɵɵadvance(3);
22439
- 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"), " ");
22440
22433
  i0.ɵɵadvance(2);
22441
22434
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22442
22435
  i0.ɵɵadvance();
22443
22436
  i0.ɵɵclassProp("govuk-textarea--error", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22444
22437
  i0.ɵɵproperty("formControlName", "body");
22445
22438
  i0.ɵɵadvance(2);
22446
- 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")));
22447
22440
  i0.ɵɵadvance(4);
22448
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29, 30, "Is the query hearing related?"), " ");
22441
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(37, 33, "Is the query hearing related?"), " ");
22449
22442
  i0.ɵɵadvance(2);
22450
22443
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required"));
22451
22444
  i0.ɵɵadvance(3);
22452
22445
  i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === true)("value", true);
22453
22446
  i0.ɵɵadvance(2);
22454
- 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"), " ");
22455
22448
  i0.ɵɵadvance(3);
22456
22449
  i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === false)("value", false);
22457
22450
  i0.ɵɵadvance(2);
22458
- 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"), " ");
22459
22452
  i0.ɵɵadvance(2);
22460
22453
  i0.ɵɵproperty("ngIf", ctx_r1.formGroup.get("isHearingRelated").value);
22461
22454
  } }
@@ -22464,6 +22457,7 @@ class QueryWriteRaiseQueryComponent {
22464
22457
  submitted;
22465
22458
  caseDetails;
22466
22459
  showForm;
22460
+ serviceMessage;
22467
22461
  raiseQueryErrorMessage = RaiseQueryErrorMessage;
22468
22462
  onSubjectInput() {
22469
22463
  const control = this.formGroup.get('subject');
@@ -22483,7 +22477,7 @@ class QueryWriteRaiseQueryComponent {
22483
22477
  return '';
22484
22478
  }
22485
22479
  static ɵfac = function QueryWriteRaiseQueryComponent_Factory(t) { return new (t || QueryWriteRaiseQueryComponent)(); };
22486
- 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) {
22487
22481
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "div", 1);
22488
22482
  i0.ɵɵtext(3);
22489
22483
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22496,7 +22490,7 @@ class QueryWriteRaiseQueryComponent {
22496
22490
  i0.ɵɵelement(9, "ccd-query-case-details-header", 3);
22497
22491
  i0.ɵɵelementEnd();
22498
22492
  i0.ɵɵelement(10, "hr");
22499
- i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 43, 46, "div", 4);
22493
+ i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 51, 49, "div", 4);
22500
22494
  i0.ɵɵelementEnd();
22501
22495
  } if (rf & 2) {
22502
22496
  i0.ɵɵadvance(3);
@@ -22511,7 +22505,7 @@ class QueryWriteRaiseQueryComponent {
22511
22505
  }
22512
22506
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRaiseQueryComponent, [{
22513
22507
  type: Component,
22514
- 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" }]
22515
22509
  }], null, { formGroup: [{
22516
22510
  type: Input
22517
22511
  }], submitted: [{
@@ -22520,6 +22514,8 @@ class QueryWriteRaiseQueryComponent {
22520
22514
  type: Input
22521
22515
  }], showForm: [{
22522
22516
  type: Input
22517
+ }], serviceMessage: [{
22518
+ type: Input
22523
22519
  }] }); })();
22524
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 }); })();
22525
22521
 
@@ -22902,7 +22898,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
22902
22898
  const ctx_r1 = i0.ɵɵnextContext();
22903
22899
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
22904
22900
  i0.ɵɵadvance();
22905
- i0.ɵɵproperty("ngIf", !ctx_r1.isCaseworker());
22901
+ i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser());
22906
22902
  } }
22907
22903
  class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22908
22904
  route;
@@ -22953,11 +22949,8 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22953
22949
  this.showQueryList = true;
22954
22950
  this.query = null;
22955
22951
  }
22956
- isCaseworker() {
22957
- const userDetails = JSON.parse(this.sessionStorageService?.getItem('userDetails'));
22958
- return userDetails && userDetails.roles
22959
- && !(userDetails.roles.includes('pui-case-manager')
22960
- || userDetails.roles.some((role) => role.toLowerCase().includes('judge')));
22952
+ isInternalUser() {
22953
+ return isInternalUser(this.sessionStorageService);
22961
22954
  }
22962
22955
  static ɵfac = function ReadQueryManagementFieldComponent_Factory(t) { return new (t || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier)); };
22963
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) {
@@ -22969,9 +22962,9 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22969
22962
  }
22970
22963
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
22971
22964
  type: Component,
22972
- 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 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" }]
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" }]
22973
22966
  }], () => [{ type: i1$1.ActivatedRoute }, { type: SessionStorageService }, { type: CaseNotifier }], null); })();
22974
- (() => { (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 }); })();
22975
22968
 
22976
22969
  class ReadTextAreaFieldComponent extends AbstractFieldReadComponent {
22977
22970
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadTextAreaFieldComponent_BaseFactory; return function ReadTextAreaFieldComponent_Factory(t) { return (ɵReadTextAreaFieldComponent_BaseFactory || (ɵReadTextAreaFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadTextAreaFieldComponent)))(t || ReadTextAreaFieldComponent); }; })();
@@ -30627,7 +30620,7 @@ ReadQueryManagementFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i1
30627
30620
  i0.ɵɵsetComponentScope(QueryDetailsComponent, function () { return [i5.NgForOf, i5.NgIf, AlertComponent, QueryAttachmentsReadComponent]; }, function () { return [i5.DatePipe, i1.RpxTranslatePipe]; });
30628
30621
  i0.ɵɵsetComponentScope(QueryWriteRespondToQueryComponent, function () { return [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, QueryDetailsComponent,
30629
30622
  QueryCaseDetailsHeaderComponent]; }, function () { return [i1.RpxTranslatePipe]; });
30630
- 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,
30631
30624
  QueryWriteDateInputComponent]; }, function () { return [i1.RpxTranslatePipe]; });
30632
30625
  i0.ɵɵsetComponentScope(QueryCheckYourAnswersComponent, function () { return [i5.NgForOf, i5.NgIf, QueryCaseDetailsHeaderComponent,
30633
30626
  QueryAttachmentsReadComponent,
@@ -33699,9 +33692,9 @@ class CaseResolver {
33699
33692
  // as discussed for EUI-5456, need functionality to go to default page
33700
33693
  goToDefaultPage() {
33701
33694
  console.info('Going to default page!');
33702
- const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails'));
33695
+ const userDetails = JSON.parse(this.sessionStorage.getItem(USER_DETAILS));
33703
33696
  userDetails && userDetails.roles
33704
- && !userDetails.roles.includes('pui-case-manager')
33697
+ && !userDetails.roles.includes(PUI_CASE_MANAGER)
33705
33698
  &&
33706
33699
  (userDetails.roles.includes('caseworker-ia-iacjudge')
33707
33700
  || userDetails.roles.includes('caseworker-ia-caseofficer')
@@ -37841,7 +37834,7 @@ class CreateCaseFiltersComponent {
37841
37834
  return events.filter(event => event.pre_states.length === 0);
37842
37835
  }
37843
37836
  retainEventsWithCreateRights(events) {
37844
- const userProfile = JSON.parse(this.sessionStorageService.getItem('userDetails'));
37837
+ const userProfile = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
37845
37838
  return events.filter(event => userProfile && userProfile.roles &&
37846
37839
  !!userProfile.roles.find(role => this.hasCreateAccess(event, role)));
37847
37840
  }