@hmcts/ccd-case-ui-toolkit 7.1.67-document-help-text → 7.1.68-exui-2835-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) 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/collection/write-collection-field.component.mjs +9 -9
  5. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +3 -1
  6. package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +7 -2
  7. package/esm2022/lib/shared/components/palette/palette.module.mjs +3 -3
  8. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +4 -3
  9. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +10 -12
  10. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +73 -59
  11. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +8 -10
  12. package/esm2022/lib/shared/services/activity/activity.service.mjs +4 -3
  13. package/esm2022/lib/shared/utils.mjs +10 -0
  14. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +122 -114
  15. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  16. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts +1 -6
  17. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
  18. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  19. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts.map +1 -1
  20. package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
  21. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  22. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  23. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
  24. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  25. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +2 -1
  26. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  27. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +2 -2
  28. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
  29. package/lib/shared/services/activity/activity.service.d.ts.map +1 -1
  30. package/lib/shared/utils.d.ts +6 -0
  31. package/lib/shared/utils.d.ts.map +1 -0
  32. 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.
@@ -14326,14 +14319,14 @@ class RemoveDialogComponent {
14326
14319
 
14327
14320
  const _c0$S = ["collectionItem"];
14328
14321
  function WriteCollectionFieldComponent_h2_8_span_1_Template(rf, ctx) { if (rf & 1) {
14329
- i0.ɵɵelementStart(0, "span", 10)(1, "markdown");
14330
- i0.ɵɵtext(2);
14331
- i0.ɵɵpipe(3, "rpxTranslate");
14332
- i0.ɵɵelementEnd()();
14322
+ i0.ɵɵelementStart(0, "span", 10);
14323
+ i0.ɵɵtext(1);
14324
+ i0.ɵɵpipe(2, "rpxTranslate");
14325
+ i0.ɵɵelementEnd();
14333
14326
  } if (rf & 2) {
14334
14327
  const ctx_r0 = i0.ɵɵnextContext(2);
14335
- i0.ɵɵadvance(2);
14336
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, ctx_r0.caseField.hint_text));
14328
+ i0.ɵɵadvance();
14329
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.caseField.hint_text));
14337
14330
  } }
14338
14331
  function WriteCollectionFieldComponent_h2_8_span_2_Template(rf, ctx) { if (rf & 1) {
14339
14332
  i0.ɵɵelementStart(0, "span", 11);
@@ -14347,7 +14340,7 @@ function WriteCollectionFieldComponent_h2_8_span_2_Template(rf, ctx) { if (rf &
14347
14340
  } }
14348
14341
  function WriteCollectionFieldComponent_h2_8_Template(rf, ctx) { if (rf & 1) {
14349
14342
  i0.ɵɵelementStart(0, "h2", 3);
14350
- i0.ɵɵtemplate(1, WriteCollectionFieldComponent_h2_8_span_1_Template, 4, 3, "span", 8)(2, WriteCollectionFieldComponent_h2_8_span_2_Template, 3, 4, "span", 9);
14343
+ i0.ɵɵtemplate(1, WriteCollectionFieldComponent_h2_8_span_1_Template, 3, 3, "span", 8)(2, WriteCollectionFieldComponent_h2_8_span_2_Template, 3, 4, "span", 9);
14351
14344
  i0.ɵɵelementEnd();
14352
14345
  } if (rf & 2) {
14353
14346
  const ctx_r0 = i0.ɵɵnextContext();
@@ -14745,7 +14738,7 @@ class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
14745
14738
  }
14746
14739
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCollectionFieldComponent, [{
14747
14740
  type: Component,
14748
- args: [{ selector: 'ccd-write-collection-field', template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <markdown>{{caseField.hint_text | rpxTranslate }}</markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
14741
+ args: [{ selector: 'ccd-write-collection-field', template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text | rpxTranslate }}</span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
14749
14742
  }], () => [{ type: i1$3.MatLegacyDialog }, { type: i2.ScrollToService }, { type: ProfileNotifier }, { type: i0.ChangeDetectorRef }], { caseFields: [{
14750
14743
  type: Input
14751
14744
  }], items: [{
@@ -15175,6 +15168,8 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
15175
15168
  invalidFileFormat() {
15176
15169
  this.updateDocumentForm(null, null, null);
15177
15170
  this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_ERROR_INVALID_FORMAT);
15171
+ // fix active form group so that additional attachments in invalid format are not accepted
15172
+ this.formGroup.setErrors({ invalidFileFormat: true });
15178
15173
  }
15179
15174
  getUploadedFileName() {
15180
15175
  if (this.uploadedDocument) {
@@ -15626,10 +15621,15 @@ class MarkdownComponent {
15626
15621
  const target = event.target;
15627
15622
  if (target.tagName.toLowerCase() === 'a') {
15628
15623
  const href = target.getAttribute('href');
15624
+ const targetAttr = target.getAttribute('target'); // Check the target attribute
15629
15625
  if (href && href.startsWith('/') && !href.startsWith('//')) {
15626
+ if (targetAttr === '_blank') {
15627
+ // Allow the default behavior for links opening in a new tab
15628
+ return;
15629
+ }
15630
15630
  const currentUrl = window.location.href;
15631
15631
  if (currentUrl.includes('trigger')) {
15632
- // if we are already in an event and there is a markdown we should reload the page as without the components will not reinitialise
15632
+ // If we are already in an event and there is a markdown, reload the page
15633
15633
  this.ngZone.run(() => {
15634
15634
  this.router.navigateByUrl(href);
15635
15635
  });
@@ -21271,7 +21271,7 @@ class QueryCheckYourAnswersComponent {
21271
21271
  this.router.navigate(['/', 'service-down']);
21272
21272
  }
21273
21273
  generateCaseQueriesCollectionData() {
21274
- const currentUserDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
21274
+ const currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21275
21275
  const caseMessage = this.queryCreateContext === QueryCreateContext.NEW_QUERY
21276
21276
  ? QueryManagementUtils.getNewQueryData(this.formGroup, currentUserDetails)
21277
21277
  : QueryManagementUtils.getRespondOrFollowupQueryData(this.formGroup, this.queryItem, currentUserDetails);
@@ -21511,7 +21511,7 @@ class QueryCheckYourAnswersComponent {
21511
21511
  }], querySubmitted: [{
21512
21512
  type: Output
21513
21513
  }] }); })();
21514
- (() => { (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 }); })();
21514
+ (() => { (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 }); })();
21515
21515
 
21516
21516
  function QueryDetailsComponent_ng_container_0_cut_alert_1_Template(rf, ctx) { if (rf & 1) {
21517
21517
  i0.ɵɵelementStart(0, "cut-alert", 11);
@@ -21647,7 +21647,7 @@ function QueryDetailsComponent_ng_container_0_ng_container_46_ng_container_1_ng_
21647
21647
  i0.ɵɵadvance(3);
21648
21648
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(14, 14, child_r3.createdOn, "dd MMM yyyy"));
21649
21649
  i0.ɵɵadvance(2);
21650
- i0.ɵɵproperty("ngIf", ctx_r0.isCaseworker());
21650
+ i0.ɵɵproperty("ngIf", ctx_r0.isInternalUser());
21651
21651
  i0.ɵɵadvance(3);
21652
21652
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 17, "Response detail"));
21653
21653
  i0.ɵɵadvance(3);
@@ -21860,11 +21860,8 @@ class QueryDetailsComponent {
21860
21860
  onBack() {
21861
21861
  this.backClicked.emit(true);
21862
21862
  }
21863
- isCaseworker() {
21864
- const userDetails = JSON.parse(this.sessionStorageService.getItem('userDetails'));
21865
- return userDetails && userDetails.roles
21866
- && !(userDetails.roles.includes('pui-case-manager')
21867
- || userDetails.roles.some((role) => role.toLowerCase().includes('judge')));
21863
+ isInternalUser() {
21864
+ return isInternalUser(this.sessionStorageService);
21868
21865
  }
21869
21866
  ngOnChanges() {
21870
21867
  this.toggleLinkVisibility();
@@ -21879,7 +21876,7 @@ class QueryDetailsComponent {
21879
21876
  this.hasResponded.emit(false);
21880
21877
  return false;
21881
21878
  }
21882
- if (this.isCaseworker() && this.queryResponseStatus !== QueryItemResponseStatus.AWAITING) {
21879
+ if (this.isInternalUser() && this.queryResponseStatus !== QueryItemResponseStatus.AWAITING) {
21883
21880
  this.message = Constants.TASK_COMPLETION_ERROR;
21884
21881
  this.hasResponded.emit(true);
21885
21882
  return true;
@@ -21896,7 +21893,7 @@ class QueryDetailsComponent {
21896
21893
  }
21897
21894
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryDetailsComponent, [{
21898
21895
  type: Component,
21899
- 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"] }]
21896
+ 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"] }]
21900
21897
  }], () => [{ type: SessionStorageService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }], { query: [{
21901
21898
  type: Input
21902
21899
  }], caseId: [{
@@ -21908,7 +21905,7 @@ class QueryDetailsComponent {
21908
21905
  }], hasResponded: [{
21909
21906
  type: Output
21910
21907
  }] }); })();
21911
- (() => { (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 }); })();
21908
+ (() => { (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 }); })();
21912
21909
 
21913
21910
  class QueryEventCompletionComponent {
21914
21911
  eventCompletionParams;
@@ -22287,8 +22284,8 @@ class QueryWriteDateInputComponent {
22287
22284
  (() => { (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 }); })();
22288
22285
 
22289
22286
  const _c0$C = a0 => ({ "govuk-form-group--error": a0 });
22290
- function QueryWriteRaiseQueryComponent_div_11_p_11_Template(rf, ctx) { if (rf & 1) {
22291
- i0.ɵɵelementStart(0, "p", 27)(1, "span", 28);
22287
+ function QueryWriteRaiseQueryComponent_div_11_p_19_Template(rf, ctx) { if (rf & 1) {
22288
+ i0.ɵɵelementStart(0, "p", 32)(1, "span", 10);
22292
22289
  i0.ɵɵtext(2);
22293
22290
  i0.ɵɵpipe(3, "rpxTranslate");
22294
22291
  i0.ɵɵelementEnd();
@@ -22302,8 +22299,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_11_Template(rf, ctx) { if (rf &
22302
22299
  i0.ɵɵadvance(2);
22303
22300
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r1.getSubjectErrorMessage()), " ");
22304
22301
  } }
22305
- function QueryWriteRaiseQueryComponent_div_11_p_21_Template(rf, ctx) { if (rf & 1) {
22306
- i0.ɵɵelementStart(0, "p", 29)(1, "span", 28);
22302
+ function QueryWriteRaiseQueryComponent_div_11_p_29_Template(rf, ctx) { if (rf & 1) {
22303
+ i0.ɵɵelementStart(0, "p", 33)(1, "span", 10);
22307
22304
  i0.ɵɵtext(2);
22308
22305
  i0.ɵɵpipe(3, "rpxTranslate");
22309
22306
  i0.ɵɵelementEnd();
@@ -22317,8 +22314,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_21_Template(rf, ctx) { if (rf &
22317
22314
  i0.ɵɵadvance(2);
22318
22315
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_BODY), " ");
22319
22316
  } }
22320
- function QueryWriteRaiseQueryComponent_div_11_p_30_Template(rf, ctx) { if (rf & 1) {
22321
- i0.ɵɵelementStart(0, "p", 30)(1, "span", 28);
22317
+ function QueryWriteRaiseQueryComponent_div_11_p_38_Template(rf, ctx) { if (rf & 1) {
22318
+ i0.ɵɵelementStart(0, "p", 34)(1, "span", 10);
22322
22319
  i0.ɵɵtext(2);
22323
22320
  i0.ɵɵpipe(3, "rpxTranslate");
22324
22321
  i0.ɵɵelementEnd();
@@ -22332,8 +22329,8 @@ function QueryWriteRaiseQueryComponent_div_11_p_30_Template(rf, ctx) { if (rf &
22332
22329
  i0.ɵɵadvance(2);
22333
22330
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_RELATED), " ");
22334
22331
  } }
22335
- function QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template(rf, ctx) { if (rf & 1) {
22336
- i0.ɵɵelementStart(0, "p", 36)(1, "span", 28);
22332
+ function QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template(rf, ctx) { if (rf & 1) {
22333
+ i0.ɵɵelementStart(0, "p", 40)(1, "span", 10);
22337
22334
  i0.ɵɵtext(2);
22338
22335
  i0.ɵɵpipe(3, "rpxTranslate");
22339
22336
  i0.ɵɵelementEnd();
@@ -22347,14 +22344,14 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template(rf, c
22347
22344
  i0.ɵɵadvance(2);
22348
22345
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_DATE), " ");
22349
22346
  } }
22350
- function QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template(rf, ctx) { if (rf & 1) {
22347
+ function QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template(rf, ctx) { if (rf & 1) {
22351
22348
  i0.ɵɵelementContainerStart(0);
22352
- i0.ɵɵelementStart(1, "div", 31)(2, "fieldset", 32)(3, "legend")(4, "label", 33);
22349
+ i0.ɵɵelementStart(1, "div", 35)(2, "fieldset", 36)(3, "legend")(4, "label", 37);
22353
22350
  i0.ɵɵtext(5);
22354
22351
  i0.ɵɵpipe(6, "rpxTranslate");
22355
22352
  i0.ɵɵelementEnd()();
22356
- i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_42_p_7_Template, 6, 6, "p", 34);
22357
- i0.ɵɵelement(8, "ccd-query-write-date-input", 35);
22353
+ i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template, 6, 6, "p", 38);
22354
+ i0.ɵɵelement(8, "ccd-query-write-date-input", 39);
22358
22355
  i0.ɵɵelementEnd()();
22359
22356
  i0.ɵɵelementContainerEnd();
22360
22357
  } if (rf & 2) {
@@ -22368,86 +22365,97 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template(rf, ctx)
22368
22365
  } }
22369
22366
  function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
22370
22367
  const _r1 = i0.ɵɵgetCurrentView();
22371
- i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div")(3, "div", 7)(4, "div", 8)(5, "label", 9);
22372
- i0.ɵɵtext(6);
22373
- i0.ɵɵpipe(7, "rpxTranslate");
22374
- i0.ɵɵelementEnd()();
22375
- i0.ɵɵelementStart(8, "div", 10);
22376
- i0.ɵɵtext(9);
22368
+ i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div")(3, "div", 7)(4, "span", 8);
22369
+ i0.ɵɵtext(5, "!");
22370
+ i0.ɵɵelementEnd();
22371
+ i0.ɵɵelementStart(6, "strong", 9)(7, "span", 10);
22372
+ i0.ɵɵtext(8, "Warning");
22373
+ i0.ɵɵelementEnd();
22374
+ i0.ɵɵelement(9, "ccd-markdown", 11);
22377
22375
  i0.ɵɵpipe(10, "rpxTranslate");
22376
+ i0.ɵɵelementEnd()();
22377
+ i0.ɵɵelementStart(11, "div", 12)(12, "div", 13)(13, "label", 14);
22378
+ i0.ɵɵtext(14);
22379
+ i0.ɵɵpipe(15, "rpxTranslate");
22380
+ i0.ɵɵelementEnd()();
22381
+ i0.ɵɵelementStart(16, "div", 15);
22382
+ i0.ɵɵtext(17);
22383
+ i0.ɵɵpipe(18, "rpxTranslate");
22378
22384
  i0.ɵɵelementEnd();
22379
- i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_p_11_Template, 6, 6, "p", 11);
22380
- i0.ɵɵelementStart(12, "input", 12);
22381
- 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()); });
22385
+ i0.ɵɵtemplate(19, QueryWriteRaiseQueryComponent_div_11_p_19_Template, 6, 6, "p", 16);
22386
+ i0.ɵɵelementStart(20, "input", 17);
22387
+ 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()); });
22382
22388
  i0.ɵɵelementEnd()();
22383
- i0.ɵɵelementStart(13, "div", 7)(14, "div", 8)(15, "label", 13);
22384
- i0.ɵɵtext(16);
22385
- i0.ɵɵpipe(17, "rpxTranslate");
22389
+ i0.ɵɵelementStart(21, "div", 12)(22, "div", 13)(23, "label", 18);
22390
+ i0.ɵɵtext(24);
22391
+ i0.ɵɵpipe(25, "rpxTranslate");
22386
22392
  i0.ɵɵelementEnd()();
22387
- i0.ɵɵelementStart(18, "div", 14);
22388
- i0.ɵɵtext(19);
22389
- i0.ɵɵpipe(20, "rpxTranslate");
22393
+ i0.ɵɵelementStart(26, "div", 19);
22394
+ i0.ɵɵtext(27);
22395
+ i0.ɵɵpipe(28, "rpxTranslate");
22390
22396
  i0.ɵɵelementEnd();
22391
- i0.ɵɵtemplate(21, QueryWriteRaiseQueryComponent_div_11_p_21_Template, 6, 6, "p", 15);
22392
- i0.ɵɵelementStart(22, "textarea", 16);
22393
- i0.ɵɵtext(23, " ");
22397
+ i0.ɵɵtemplate(29, QueryWriteRaiseQueryComponent_div_11_p_29_Template, 6, 6, "p", 20);
22398
+ i0.ɵɵelementStart(30, "textarea", 21);
22399
+ i0.ɵɵtext(31, " ");
22394
22400
  i0.ɵɵelementEnd()();
22395
- i0.ɵɵelementStart(24, "div", 7)(25, "fieldset", 17)(26, "legend")(27, "label", 18);
22396
- i0.ɵɵtext(28);
22397
- i0.ɵɵpipe(29, "rpxTranslate");
22401
+ i0.ɵɵelementStart(32, "div", 12)(33, "fieldset", 22)(34, "legend")(35, "label", 23);
22402
+ i0.ɵɵtext(36);
22403
+ i0.ɵɵpipe(37, "rpxTranslate");
22398
22404
  i0.ɵɵelementEnd()();
22399
- i0.ɵɵtemplate(30, QueryWriteRaiseQueryComponent_div_11_p_30_Template, 6, 6, "p", 19);
22400
- i0.ɵɵelementStart(31, "div", 20)(32, "div", 21);
22401
- i0.ɵɵelement(33, "input", 22);
22402
- i0.ɵɵelementStart(34, "label", 23);
22403
- i0.ɵɵtext(35);
22404
- i0.ɵɵpipe(36, "rpxTranslate");
22405
+ i0.ɵɵtemplate(38, QueryWriteRaiseQueryComponent_div_11_p_38_Template, 6, 6, "p", 24);
22406
+ i0.ɵɵelementStart(39, "div", 25)(40, "div", 26);
22407
+ i0.ɵɵelement(41, "input", 27);
22408
+ i0.ɵɵelementStart(42, "label", 28);
22409
+ i0.ɵɵtext(43);
22410
+ i0.ɵɵpipe(44, "rpxTranslate");
22405
22411
  i0.ɵɵelementEnd()();
22406
- i0.ɵɵelementStart(37, "div", 21);
22407
- i0.ɵɵelement(38, "input", 24);
22408
- i0.ɵɵelementStart(39, "label", 25);
22409
- i0.ɵɵtext(40);
22410
- i0.ɵɵpipe(41, "rpxTranslate");
22412
+ i0.ɵɵelementStart(45, "div", 26);
22413
+ i0.ɵɵelement(46, "input", 29);
22414
+ i0.ɵɵelementStart(47, "label", 30);
22415
+ i0.ɵɵtext(48);
22416
+ i0.ɵɵpipe(49, "rpxTranslate");
22411
22417
  i0.ɵɵelementEnd()()()();
22412
- i0.ɵɵtemplate(42, QueryWriteRaiseQueryComponent_div_11_ng_container_42_Template, 9, 7, "ng-container", 26);
22418
+ i0.ɵɵtemplate(50, QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template, 9, 7, "ng-container", 31);
22413
22419
  i0.ɵɵelementEnd()()()();
22414
22420
  } if (rf & 2) {
22415
22421
  const ctx_r1 = i0.ɵɵnextContext();
22416
22422
  i0.ɵɵadvance();
22417
22423
  i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
22424
+ i0.ɵɵadvance(8);
22425
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(10, 23, ctx_r1.serviceMessage));
22418
22426
  i0.ɵɵadvance(2);
22419
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(40, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("subject").hasError("required")));
22427
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(43, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("subject").hasError("required")));
22420
22428
  i0.ɵɵadvance(3);
22421
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 22, "Query subject"), " ");
22429
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 25, "Query subject"), " ");
22422
22430
  i0.ɵɵadvance(3);
22423
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 24, "The subject should be a summary of your query"), " ");
22431
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 27, "The subject should be a summary of your query"), " ");
22424
22432
  i0.ɵɵadvance(2);
22425
22433
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && (ctx_r1.formGroup.get("subject").hasError("required") || ctx_r1.formGroup.get("subject").hasError("maxlength")));
22426
22434
  i0.ɵɵadvance(2);
22427
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(42, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required")));
22435
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(45, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required")));
22428
22436
  i0.ɵɵadvance(3);
22429
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 26, "Query detail"), " ");
22437
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 29, "Query detail"), " ");
22430
22438
  i0.ɵɵadvance(3);
22431
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 28, "Include as many details as possible so case workers can respond to your query"), " ");
22439
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(28, 31, "Include as many details as possible so case workers can respond to your query"), " ");
22432
22440
  i0.ɵɵadvance(2);
22433
22441
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22434
22442
  i0.ɵɵadvance();
22435
22443
  i0.ɵɵclassProp("govuk-textarea--error", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22436
22444
  i0.ɵɵproperty("formControlName", "body");
22437
22445
  i0.ɵɵadvance(2);
22438
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(44, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required")));
22446
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(47, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required")));
22439
22447
  i0.ɵɵadvance(4);
22440
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29, 30, "Is the query hearing related?"), " ");
22448
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(37, 33, "Is the query hearing related?"), " ");
22441
22449
  i0.ɵɵadvance(2);
22442
22450
  i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required"));
22443
22451
  i0.ɵɵadvance(3);
22444
22452
  i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === true)("value", true);
22445
22453
  i0.ɵɵadvance(2);
22446
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(36, 32, "Is the query hearing related?", null, "Yes"), " ");
22454
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(44, 35, "Is the query hearing related?", null, "Yes"), " ");
22447
22455
  i0.ɵɵadvance(3);
22448
22456
  i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === false)("value", false);
22449
22457
  i0.ɵɵadvance(2);
22450
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(41, 36, "Is the query hearing related?", null, "No"), " ");
22458
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(49, 39, "Is the query hearing related?", null, "No"), " ");
22451
22459
  i0.ɵɵadvance(2);
22452
22460
  i0.ɵɵproperty("ngIf", ctx_r1.formGroup.get("isHearingRelated").value);
22453
22461
  } }
@@ -22456,6 +22464,7 @@ class QueryWriteRaiseQueryComponent {
22456
22464
  submitted;
22457
22465
  caseDetails;
22458
22466
  showForm;
22467
+ serviceMessage;
22459
22468
  raiseQueryErrorMessage = RaiseQueryErrorMessage;
22460
22469
  onSubjectInput() {
22461
22470
  const control = this.formGroup.get('subject');
@@ -22475,7 +22484,7 @@ class QueryWriteRaiseQueryComponent {
22475
22484
  return '';
22476
22485
  }
22477
22486
  static ɵfac = function QueryWriteRaiseQueryComponent_Factory(t) { return new (t || QueryWriteRaiseQueryComponent)(); };
22478
- 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) {
22487
+ 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) {
22479
22488
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "div", 1);
22480
22489
  i0.ɵɵtext(3);
22481
22490
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22488,7 +22497,7 @@ class QueryWriteRaiseQueryComponent {
22488
22497
  i0.ɵɵelement(9, "ccd-query-case-details-header", 3);
22489
22498
  i0.ɵɵelementEnd();
22490
22499
  i0.ɵɵelement(10, "hr");
22491
- i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 43, 46, "div", 4);
22500
+ i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 51, 49, "div", 4);
22492
22501
  i0.ɵɵelementEnd();
22493
22502
  } if (rf & 2) {
22494
22503
  i0.ɵɵadvance(3);
@@ -22503,7 +22512,7 @@ class QueryWriteRaiseQueryComponent {
22503
22512
  }
22504
22513
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRaiseQueryComponent, [{
22505
22514
  type: Component,
22506
- 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" }]
22515
+ 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" }]
22507
22516
  }], null, { formGroup: [{
22508
22517
  type: Input
22509
22518
  }], submitted: [{
@@ -22512,6 +22521,8 @@ class QueryWriteRaiseQueryComponent {
22512
22521
  type: Input
22513
22522
  }], showForm: [{
22514
22523
  type: Input
22524
+ }], serviceMessage: [{
22525
+ type: Input
22515
22526
  }] }); })();
22516
22527
  (() => { (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 }); })();
22517
22528
 
@@ -22894,7 +22905,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
22894
22905
  const ctx_r1 = i0.ɵɵnextContext();
22895
22906
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
22896
22907
  i0.ɵɵadvance();
22897
- i0.ɵɵproperty("ngIf", !ctx_r1.isCaseworker());
22908
+ i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser());
22898
22909
  } }
22899
22910
  class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22900
22911
  route;
@@ -22945,11 +22956,8 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22945
22956
  this.showQueryList = true;
22946
22957
  this.query = null;
22947
22958
  }
22948
- isCaseworker() {
22949
- const userDetails = JSON.parse(this.sessionStorageService?.getItem('userDetails'));
22950
- return userDetails && userDetails.roles
22951
- && !(userDetails.roles.includes('pui-case-manager')
22952
- || userDetails.roles.some((role) => role.toLowerCase().includes('judge')));
22959
+ isInternalUser() {
22960
+ return isInternalUser(this.sessionStorageService);
22953
22961
  }
22954
22962
  static ɵfac = function ReadQueryManagementFieldComponent_Factory(t) { return new (t || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier)); };
22955
22963
  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) {
@@ -22961,9 +22969,9 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
22961
22969
  }
22962
22970
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
22963
22971
  type: Component,
22964
- 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" }]
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=\"!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" }]
22965
22973
  }], () => [{ type: i1$1.ActivatedRoute }, { type: SessionStorageService }, { type: CaseNotifier }], null); })();
22966
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 14 }); })();
22974
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 15 }); })();
22967
22975
 
22968
22976
  class ReadTextAreaFieldComponent extends AbstractFieldReadComponent {
22969
22977
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadTextAreaFieldComponent_BaseFactory; return function ReadTextAreaFieldComponent_Factory(t) { return (ɵReadTextAreaFieldComponent_BaseFactory || (ɵReadTextAreaFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadTextAreaFieldComponent)))(t || ReadTextAreaFieldComponent); }; })();
@@ -30594,7 +30602,7 @@ i0.ɵɵsetComponentScope(WriteOrganisationFieldComponent, function () { return [
30594
30602
  i0.ɵɵsetComponentScope(WriteOrderSummaryFieldComponent, function () { return [ReadOrderSummaryFieldComponent]; }, []);
30595
30603
  i0.ɵɵsetComponentScope(WriteDateContainerFieldComponent, function () { return [i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective, DatetimePickerComponent,
30596
30604
  WriteDateFieldComponent]; }, []);
30597
- i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective, i2$1.MarkdownComponent, FieldWriteComponent]; }, function () { return [FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe]; });
30605
+ i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective, FieldWriteComponent]; }, function () { return [FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe]; });
30598
30606
  i0.ɵɵsetComponentScope(
30599
30607
  // ComponentLauncher web components
30600
30608
  CaseFileViewFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i14.MediaViewerComponent, CaseFileViewFolderComponent]; }, []);
@@ -30619,7 +30627,7 @@ ReadQueryManagementFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i1
30619
30627
  i0.ɵɵsetComponentScope(QueryDetailsComponent, function () { return [i5.NgForOf, i5.NgIf, AlertComponent, QueryAttachmentsReadComponent]; }, function () { return [i5.DatePipe, i1.RpxTranslatePipe]; });
30620
30628
  i0.ɵɵsetComponentScope(QueryWriteRespondToQueryComponent, function () { return [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, QueryDetailsComponent,
30621
30629
  QueryCaseDetailsHeaderComponent]; }, function () { return [i1.RpxTranslatePipe]; });
30622
- i0.ɵɵsetComponentScope(QueryWriteRaiseQueryComponent, function () { return [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.MaxLengthValidator, i4.FormGroupDirective, i4.FormControlName, QueryCaseDetailsHeaderComponent,
30630
+ 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,
30623
30631
  QueryWriteDateInputComponent]; }, function () { return [i1.RpxTranslatePipe]; });
30624
30632
  i0.ɵɵsetComponentScope(QueryCheckYourAnswersComponent, function () { return [i5.NgForOf, i5.NgIf, QueryCaseDetailsHeaderComponent,
30625
30633
  QueryAttachmentsReadComponent,
@@ -33691,9 +33699,9 @@ class CaseResolver {
33691
33699
  // as discussed for EUI-5456, need functionality to go to default page
33692
33700
  goToDefaultPage() {
33693
33701
  console.info('Going to default page!');
33694
- const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails'));
33702
+ const userDetails = JSON.parse(this.sessionStorage.getItem(USER_DETAILS));
33695
33703
  userDetails && userDetails.roles
33696
- && !userDetails.roles.includes('pui-case-manager')
33704
+ && !userDetails.roles.includes(PUI_CASE_MANAGER)
33697
33705
  &&
33698
33706
  (userDetails.roles.includes('caseworker-ia-iacjudge')
33699
33707
  || userDetails.roles.includes('caseworker-ia-caseofficer')
@@ -37833,7 +37841,7 @@ class CreateCaseFiltersComponent {
37833
37841
  return events.filter(event => event.pre_states.length === 0);
37834
37842
  }
37835
37843
  retainEventsWithCreateRights(events) {
37836
- const userProfile = JSON.parse(this.sessionStorageService.getItem('userDetails'));
37844
+ const userProfile = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
37837
37845
  return events.filter(event => userProfile && userProfile.roles &&
37838
37846
  !!userProfile.roles.find(role => this.hasCreateAccess(event, role)));
37839
37847
  }