@hmcts/ccd-case-ui-toolkit 7.2.21 → 7.2.23-mid-event-callback

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 (25) hide show
  1. package/esm2022/lib/shared/components/palette/palette.module.mjs +7 -2
  2. package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +3 -3
  3. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +56 -199
  4. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +121 -62
  5. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +56 -17
  6. package/esm2022/lib/shared/components/palette/query-management/constants/query-management.constants.mjs +7 -0
  7. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +18 -9
  8. package/esm2022/lib/shared/components/palette/query-management/services/index.mjs +2 -1
  9. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +179 -0
  10. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +667 -533
  11. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  12. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  13. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +15 -13
  14. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  15. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +24 -3
  16. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  17. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +12 -3
  18. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
  19. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts +7 -0
  20. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts.map +1 -0
  21. package/lib/shared/components/palette/query-management/services/index.d.ts +1 -0
  22. package/lib/shared/components/palette/query-management/services/index.d.ts.map +1 -1
  23. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts +21 -0
  24. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts.map +1 -0
  25. package/package.json +1 -1
@@ -20637,252 +20637,6 @@ class QualifyingQuestionService {
20637
20637
  type: Injectable
20638
20638
  }], null, null); })();
20639
20639
 
20640
- function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_10_Template(rf, ctx) { if (rf & 1) {
20641
- i0.ɵɵelementContainerStart(0);
20642
- i0.ɵɵelementStart(1, "p", 8)(2, "span", 9);
20643
- i0.ɵɵtext(3);
20644
- i0.ɵɵpipe(4, "rpxTranslate");
20645
- i0.ɵɵelementEnd();
20646
- i0.ɵɵtext(5);
20647
- i0.ɵɵpipe(6, "rpxTranslate");
20648
- i0.ɵɵelementEnd();
20649
- i0.ɵɵelementContainerEnd();
20650
- } if (rf & 2) {
20651
- const ctx_r0 = i0.ɵɵnextContext(2);
20652
- i0.ɵɵadvance(3);
20653
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(4, 2, "Error:"), " ");
20654
- i0.ɵɵadvance(2);
20655
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(6, 4, ctx_r0.qualifyingQuestionsErrorMessage.SELECT_AN_OPTION), " ");
20656
- } }
20657
- function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template(rf, ctx) { if (rf & 1) {
20658
- i0.ɵɵelementContainerStart(0);
20659
- i0.ɵɵelementStart(1, "div", 13);
20660
- i0.ɵɵtext(2);
20661
- i0.ɵɵpipe(3, "rpxTranslate");
20662
- i0.ɵɵelementEnd();
20663
- i0.ɵɵelementContainerEnd();
20664
- } if (rf & 2) {
20665
- i0.ɵɵadvance(2);
20666
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "If your issue is not covered by the options above, raise a query:"));
20667
- } }
20668
- function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
20669
- const _r2 = i0.ɵɵgetCurrentView();
20670
- i0.ɵɵelementContainerStart(0);
20671
- i0.ɵɵtemplate(1, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template, 4, 3, "ng-container", 0);
20672
- i0.ɵɵelementStart(2, "div", 10)(3, "input", 11);
20673
- 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)); });
20674
- i0.ɵɵelementEnd();
20675
- i0.ɵɵelementStart(4, "label", 12);
20676
- i0.ɵɵtext(5);
20677
- i0.ɵɵpipe(6, "rpxTranslate");
20678
- i0.ɵɵelementEnd()();
20679
- i0.ɵɵelementContainerEnd();
20680
- } if (rf & 2) {
20681
- const qualifyingQuestion_r3 = ctx.$implicit;
20682
- const isLast_r4 = ctx.last;
20683
- const ctx_r0 = i0.ɵɵnextContext(2);
20684
- i0.ɵɵadvance();
20685
- i0.ɵɵproperty("ngIf", isLast_r4);
20686
- i0.ɵɵadvance(2);
20687
- i0.ɵɵpropertyInterpolate("id", qualifyingQuestion_r3.name);
20688
- i0.ɵɵproperty("formControl", ctx_r0.qualifyingQuestionsControl)("value", qualifyingQuestion_r3);
20689
- i0.ɵɵadvance();
20690
- i0.ɵɵproperty("for", qualifyingQuestion_r3.name);
20691
- i0.ɵɵadvance();
20692
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, qualifyingQuestion_r3.name));
20693
- } }
20694
- function QualifyingQuestionOptionsComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
20695
- i0.ɵɵelementContainerStart(0);
20696
- i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
20697
- i0.ɵɵtext(5);
20698
- i0.ɵɵpipe(6, "rpxTranslate");
20699
- i0.ɵɵelementEnd()();
20700
- i0.ɵɵelementStart(7, "h2", 5);
20701
- i0.ɵɵtext(8);
20702
- i0.ɵɵpipe(9, "rpxTranslate");
20703
- i0.ɵɵelementEnd();
20704
- i0.ɵɵtemplate(10, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_10_Template, 7, 6, "ng-container", 0);
20705
- i0.ɵɵelementStart(11, "div", 6);
20706
- i0.ɵɵtemplate(12, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template, 7, 8, "ng-container", 7);
20707
- i0.ɵɵpipe(13, "async");
20708
- i0.ɵɵelementEnd()()();
20709
- i0.ɵɵelementContainerEnd();
20710
- } if (rf & 2) {
20711
- const ctx_r0 = i0.ɵɵnextContext();
20712
- i0.ɵɵadvance();
20713
- i0.ɵɵclassProp("govuk-form-group--error", ctx_r0.displayError);
20714
- i0.ɵɵadvance(4);
20715
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 6, "Raise a new query"), " ");
20716
- i0.ɵɵadvance(3);
20717
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 8, "What do you need help to do?"), " ");
20718
- i0.ɵɵadvance(2);
20719
- i0.ɵɵproperty("ngIf", ctx_r0.displayError);
20720
- i0.ɵɵadvance(2);
20721
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(13, 10, ctx_r0.qualifyingQuestions$));
20722
- } }
20723
- class QualifyingQuestionOptionsComponent {
20724
- route;
20725
- router;
20726
- qualifyingQuestionService;
20727
- qualifyingQuestionsControl;
20728
- qualifyingQuestions$;
20729
- questionSelected = new EventEmitter();
20730
- qualifyingQuestionsErrorMessage = QualifyingQuestionsErrorMessage;
20731
- caseId;
20732
- constructor(route, router, qualifyingQuestionService) {
20733
- this.route = route;
20734
- this.router = router;
20735
- this.qualifyingQuestionService = qualifyingQuestionService;
20736
- }
20737
- ngOnInit() {
20738
- this.caseId = this.route.snapshot.params.cid;
20739
- // Check if there's already a selected qualifying question from the service
20740
- const savedSelection = this.qualifyingQuestionService.getQualifyingQuestionSelection();
20741
- if (savedSelection) {
20742
- this.qualifyingQuestionsControl.setValue(savedSelection);
20743
- }
20744
- }
20745
- click() {
20746
- this.router.navigate(['cases', 'case-details', this.caseId], { fragment: 'Queries' });
20747
- }
20748
- get displayError() {
20749
- return this.qualifyingQuestionsControl.touched && this.qualifyingQuestionsControl.hasError('required');
20750
- }
20751
- onSelectionChange(qualifyingQuestion) {
20752
- this.questionSelected.emit(qualifyingQuestion);
20753
- }
20754
- static ɵfac = function QualifyingQuestionOptionsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QualifyingQuestionOptionsComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(QualifyingQuestionService)); };
20755
- 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, "qm-qualifying-question__divider"]], template: function QualifyingQuestionOptionsComponent_Template(rf, ctx) { if (rf & 1) {
20756
- i0.ɵɵtemplate(0, QualifyingQuestionOptionsComponent_ng_container_0_Template, 14, 12, "ng-container", 0);
20757
- } if (rf & 2) {
20758
- i0.ɵɵproperty("ngIf", ctx.qualifyingQuestionsControl);
20759
- } }, dependencies: [i5.NgForOf, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.FormControlDirective, i5.AsyncPipe, i1.RpxTranslatePipe], encapsulation: 2 });
20760
- }
20761
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QualifyingQuestionOptionsComponent, [{
20762
- type: Component,
20763
- 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 {{ 'What do you need help to do?' | 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=\"qm-qualifying-question__divider\">{{ 'If your issue is not covered by the options above, raise a query:' | 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" }]
20764
- }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: QualifyingQuestionService }], { qualifyingQuestionsControl: [{
20765
- type: Input
20766
- }], qualifyingQuestions$: [{
20767
- type: Input
20768
- }], questionSelected: [{
20769
- type: Output
20770
- }] }); })();
20771
- (() => { (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 }); })();
20772
-
20773
- function QueryAttachmentsReadComponent_ng_container_0_ccd_read_collection_field_1_Template(rf, ctx) { if (rf & 1) {
20774
- i0.ɵɵelement(0, "ccd-read-collection-field", 2);
20775
- } if (rf & 2) {
20776
- const ctx_r0 = i0.ɵɵnextContext(2);
20777
- i0.ɵɵproperty("caseField", ctx_r0.caseFieldWithAttachments);
20778
- } }
20779
- function QueryAttachmentsReadComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
20780
- i0.ɵɵelementContainerStart(0);
20781
- i0.ɵɵtemplate(1, QueryAttachmentsReadComponent_ng_container_0_ccd_read_collection_field_1_Template, 1, 1, "ccd-read-collection-field", 1);
20782
- i0.ɵɵelementContainerEnd();
20783
- } if (rf & 2) {
20784
- const ctx_r0 = i0.ɵɵnextContext();
20785
- i0.ɵɵadvance();
20786
- i0.ɵɵproperty("ngIf", (ctx_r0.attachments == null ? null : ctx_r0.attachments.length) > 0);
20787
- } }
20788
- class QueryAttachmentsReadComponent {
20789
- attachments;
20790
- caseFieldWithAttachments;
20791
- ngOnChanges() {
20792
- this.caseFieldWithAttachments = Object.assign(new CaseField(), {
20793
- id: '',
20794
- label: '',
20795
- hint_text: '',
20796
- field_type: Object.assign(new FieldType(), {
20797
- id: 'QueryDocuments',
20798
- type: 'QueryDocuments',
20799
- min: null,
20800
- max: null,
20801
- regular_expression: null,
20802
- fixed_list_items: [],
20803
- complex_fields: [],
20804
- collection_field_type: Object.assign(new FieldType(), {
20805
- id: 'Document',
20806
- type: 'Document',
20807
- min: null,
20808
- max: null,
20809
- regular_expression: null,
20810
- fixed_list_items: [],
20811
- complex_fields: [],
20812
- collection_field_type: null
20813
- })
20814
- }),
20815
- display_context_parameter: '#COLLECTION(allowInsert,allowUpdate)',
20816
- value: []
20817
- });
20818
- this.caseFieldWithAttachments.value = this.attachments;
20819
- }
20820
- static ɵfac = function QueryAttachmentsReadComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryAttachmentsReadComponent)(); };
20821
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryAttachmentsReadComponent, selectors: [["ccd-query-attachments-read"]], inputs: { attachments: "attachments" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[4, "ngIf"], [3, "caseField", 4, "ngIf"], [3, "caseField"]], template: function QueryAttachmentsReadComponent_Template(rf, ctx) { if (rf & 1) {
20822
- i0.ɵɵtemplate(0, QueryAttachmentsReadComponent_ng_container_0_Template, 2, 1, "ng-container", 0);
20823
- } if (rf & 2) {
20824
- i0.ɵɵproperty("ngIf", (ctx.attachments == null ? null : ctx.attachments.length) > 0);
20825
- } }, styles: ["ccd-query-attachments-read .collection-field-table tr>td{border-bottom:none;padding-bottom:0}\n"], encapsulation: 2 });
20826
- }
20827
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryAttachmentsReadComponent, [{
20828
- type: Component,
20829
- args: [{ selector: 'ccd-query-attachments-read', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"attachments?.length > 0\">\n <ccd-read-collection-field\n *ngIf=\"attachments?.length > 0\"\n [caseField]=\"caseFieldWithAttachments\"\n >\n </ccd-read-collection-field>\n</ng-container>\n", styles: ["ccd-query-attachments-read .collection-field-table tr>td{border-bottom:none;padding-bottom:0}\n"] }]
20830
- }], null, { attachments: [{
20831
- type: Input
20832
- }] }); })();
20833
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryAttachmentsReadComponent, { className: "QueryAttachmentsReadComponent", filePath: "lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.ts", lineNumber: 10 }); })();
20834
-
20835
- function QueryCaseDetailsHeaderComponent_h1_0_Template(rf, ctx) { if (rf & 1) {
20836
- i0.ɵɵelementStart(0, "h1", 2);
20837
- i0.ɵɵtext(1);
20838
- i0.ɵɵpipe(2, "ccdCaseReference");
20839
- i0.ɵɵelementEnd();
20840
- } if (rf & 2) {
20841
- const ctx_r0 = i0.ɵɵnextContext();
20842
- i0.ɵɵadvance();
20843
- i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r0.caseDetails.case_id), "");
20844
- } }
20845
- function QueryCaseDetailsHeaderComponent_div_1_Template(rf, ctx) { if (rf & 1) {
20846
- i0.ɵɵelementStart(0, "div", 3);
20847
- i0.ɵɵelement(1, "ccd-label-field", 4);
20848
- i0.ɵɵelementEnd();
20849
- } if (rf & 2) {
20850
- const ctx_r0 = i0.ɵɵnextContext();
20851
- i0.ɵɵadvance();
20852
- i0.ɵɵproperty("caseField", ctx_r0.caseTitle)("caseFields", ctx_r0.caseFields);
20853
- } }
20854
- class QueryCaseDetailsHeaderComponent {
20855
- caseDetails;
20856
- caseTitle;
20857
- caseFields;
20858
- ngOnInit() {
20859
- this.caseTitle = new CaseField();
20860
- this.caseTitle.label = this.caseDetails.state.title_display;
20861
- this.caseFields = this.getCaseFieldsInfo();
20862
- }
20863
- getCaseFieldsInfo() {
20864
- const caseDataFields = this.caseDetails.tabs.reduce((acc, tab) => {
20865
- return acc.concat(tab.fields);
20866
- }, []);
20867
- return caseDataFields.concat(this.caseDetails.metadataFields);
20868
- }
20869
- static ɵfac = function QueryCaseDetailsHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryCaseDetailsHeaderComponent)(); };
20870
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCaseDetailsHeaderComponent, selectors: [["ccd-query-case-details-header"]], inputs: { caseDetails: "caseDetails" }, decls: 2, vars: 2, consts: [["class", "heading-h1", 4, "ngIf"], ["class", "case-title", 4, "ngIf"], [1, "heading-h1"], [1, "case-title"], [3, "caseField", "caseFields"]], template: function QueryCaseDetailsHeaderComponent_Template(rf, ctx) { if (rf & 1) {
20871
- i0.ɵɵtemplate(0, QueryCaseDetailsHeaderComponent_h1_0_Template, 3, 3, "h1", 0)(1, QueryCaseDetailsHeaderComponent_div_1_Template, 2, 2, "div", 1);
20872
- } if (rf & 2) {
20873
- i0.ɵɵproperty("ngIf", !ctx.caseTitle.label);
20874
- i0.ɵɵadvance();
20875
- i0.ɵɵproperty("ngIf", ctx.caseTitle.label);
20876
- } }, dependencies: [i5.NgIf, LabelFieldComponent, CaseReferencePipe], encapsulation: 2 });
20877
- }
20878
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCaseDetailsHeaderComponent, [{
20879
- type: Component,
20880
- args: [{ selector: 'ccd-query-case-details-header', template: "<h1 *ngIf=\"!caseTitle.label\" class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n<div *ngIf=\"caseTitle.label\" class=\"case-title\">\n <ccd-label-field [caseField]=\"caseTitle\" [caseFields]=\"caseFields\"></ccd-label-field>\n</div>\n" }]
20881
- }], null, { caseDetails: [{
20882
- type: Input
20883
- }] }); })();
20884
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCaseDetailsHeaderComponent, { className: "QueryCaseDetailsHeaderComponent", filePath: "lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.ts", lineNumber: 10 }); })();
20885
-
20886
20640
  var QueryCreateContext;
20887
20641
  (function (QueryCreateContext) {
20888
20642
  QueryCreateContext["NEW_QUERY_QUALIFYING_QUESTION_OPTIONS"] = "NewQueryQualifyingQuestionOptions";
@@ -21091,16 +20845,438 @@ class QueryManagementUtils {
21091
20845
  static isNonEmptyObject(elem) {
21092
20846
  return this.isObject(elem) && Object.keys(elem).length !== 0;
21093
20847
  }
21094
- static formattedDate(date) {
21095
- const formattedDate = moment(date).format('YYYY-MM-DD');
21096
- return formattedDate;
20848
+ static formattedDate(date) {
20849
+ const formattedDate = moment(date).format('YYYY-MM-DD');
20850
+ return formattedDate;
20851
+ }
20852
+ static ɵfac = function QueryManagementUtils_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementUtils)(); };
20853
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementUtils, factory: QueryManagementUtils.ɵfac });
20854
+ }
20855
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementUtils, [{
20856
+ type: Injectable
20857
+ }], null, null); })();
20858
+
20859
+ const CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';
20860
+ const FIELD_TYPE_COMPLEX = 'Complex';
20861
+ const DISPLAY_CONTEXT_READONLY = 'READONLY';
20862
+ const QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';
20863
+ const QM_COLLECTION_PROMPT = 'promptQmCollection';
20864
+ const CIVIL_JURISDICTION = 'CIVIL';
20865
+
20866
+ class QueryManagementService {
20867
+ router;
20868
+ sessionStorageService;
20869
+ caseQueriesCollections;
20870
+ fieldId;
20871
+ constructor(router, sessionStorageService) {
20872
+ this.router = router;
20873
+ this.sessionStorageService = sessionStorageService;
20874
+ }
20875
+ generateCaseQueriesCollectionData(formGroup, queryCreateContext, queryItem, messageId // Get the message ID from route params (if present)
20876
+ ) {
20877
+ let currentUserDetails;
20878
+ try {
20879
+ currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
20880
+ }
20881
+ catch (e) {
20882
+ console.error('Could not parse USER_DETAILS from session storage:', e);
20883
+ currentUserDetails = {};
20884
+ }
20885
+ const caseMessage = queryCreateContext === QueryCreateContext.NEW_QUERY
20886
+ ? QueryManagementUtils.getNewQueryData(formGroup, currentUserDetails)
20887
+ : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails);
20888
+ const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
20889
+ // Check if the field ID has been set dynamically
20890
+ if (!this.fieldId) {
20891
+ console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
20892
+ this.router.navigate(['/', 'service-down']);
20893
+ throw new Error('Field ID for CaseQueriesCollection not found. Aborting query data generation.');
20894
+ }
20895
+ // Initialize new query data structure
20896
+ const newQueryData = {};
20897
+ if (this.caseQueriesCollections?.length) {
20898
+ let matchedCollection;
20899
+ // If it's not a new query, try to find the existing collection with the message ID
20900
+ if (!isNewQuery && messageId) {
20901
+ matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
20902
+ }
20903
+ if (matchedCollection) {
20904
+ // Append the new case message to the matched collection's caseMessages
20905
+ matchedCollection.caseMessages.push({
20906
+ id: null,
20907
+ value: caseMessage
20908
+ });
20909
+ // Add the matched collection to newQueryData
20910
+ newQueryData[this.fieldId] = {
20911
+ ...matchedCollection, // Keep existing data intact
20912
+ caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
20913
+ };
20914
+ }
20915
+ else {
20916
+ // Use partyName from the first collection (assumption: all share the same party)
20917
+ const originalPartyName = this.caseQueriesCollections?.[0]?.partyName ?? currentUserDetails?.name;
20918
+ // If no collection matches, or it's a new query
20919
+ newQueryData[this.fieldId] = {
20920
+ partyName: originalPartyName,
20921
+ roleOnCase: '', // Not returned by CCD
20922
+ caseMessages: [
20923
+ {
20924
+ id: null,
20925
+ value: caseMessage
20926
+ }
20927
+ ]
20928
+ };
20929
+ // If caseQueriesCollections is not empty, append its data
20930
+ newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
20931
+ }
20932
+ }
20933
+ else {
20934
+ // If there are no existing collections, create a new one (e.g., for new queries)
20935
+ newQueryData[this.fieldId] = {
20936
+ partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
20937
+ roleOnCase: '', // Not returned by CCD
20938
+ caseMessages: [
20939
+ {
20940
+ id: null,
20941
+ value: caseMessage
20942
+ }
20943
+ ]
20944
+ };
20945
+ }
20946
+ return newQueryData;
20947
+ }
20948
+ setCaseQueriesCollectionData(eventData, queryCreateContext, caseDetails, messageId) {
20949
+ const resolvedFieldId = this.resolveFieldId(eventData, queryCreateContext, caseDetails, messageId);
20950
+ if (!resolvedFieldId) {
20951
+ console.error('Failed to resolve fieldId for CaseQueriesCollection. Cannot proceed.');
20952
+ return;
20953
+ }
20954
+ this.fieldId = resolvedFieldId;
20955
+ this.caseQueriesCollections = eventData.case_fields.reduce((acc, field) => {
20956
+ if (field.id === this.fieldId) {
20957
+ const extracted = QueryManagementUtils.extractCaseQueriesFromCaseField(field);
20958
+ if (extracted && typeof extracted === 'object') {
20959
+ acc.push(extracted);
20960
+ }
20961
+ }
20962
+ return acc;
20963
+ }, []);
20964
+ }
20965
+ resolveFieldId(eventData, queryCreateContext, caseDetails, messageId) {
20966
+ // Step 1: Filter candidate fields (must be editable CaseQueriesCollection fields)
20967
+ const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
20968
+ field.field_type.type === FIELD_TYPE_COMPLEX &&
20969
+ field.display_context !== DISPLAY_CONTEXT_READONLY);
20970
+ if (!candidateFields?.length) {
20971
+ console.warn('No editable CaseQueriesCollection fields found.');
20972
+ return null;
20973
+ }
20974
+ const numberOfCollections = candidateFields.length;
20975
+ const jurisdictionId = caseDetails?.case_type?.jurisdiction?.id ?? '';
20976
+ // Step 2: If messageId is present, try to locate the field containing that message
20977
+ if (messageId) {
20978
+ const fieldByMessage = candidateFields.find((field) => field?.value?.caseMessages?.some((msg) => msg?.value?.id === messageId));
20979
+ if (fieldByMessage) {
20980
+ return fieldByMessage.id; // Found the matching field by message ID
20981
+ }
20982
+ }
20983
+ // Step 3: Handle new queries
20984
+ if (queryCreateContext === QueryCreateContext.NEW_QUERY) {
20985
+ // If there's only one collection, use it
20986
+ if (numberOfCollections === 1) {
20987
+ return candidateFields[0].id;
20988
+ }
20989
+ // For multiple collections, use jurisdiction-based resolution strategy
20990
+ if (this.getCollectionSelectionMethod(jurisdictionId) === QM_SELECT_FIRST_COLLECTION) {
20991
+ // Choose the one with the lowest order from the first wizard page
20992
+ const firstOrdered = this.getCaseQueriesCollectionFieldOrderFromWizardPages(eventData);
20993
+ if (firstOrdered) {
20994
+ return firstOrdered.id;
20995
+ }
20996
+ }
20997
+ else {
20998
+ console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
20999
+ return null;
21000
+ }
21001
+ }
21002
+ // Step 4: Fallback — if none of the above succeeded
21003
+ console.warn('Could not determine fieldId for context:', queryCreateContext);
21004
+ return null;
21005
+ }
21006
+ getCaseQueriesCollectionFieldOrderFromWizardPages(eventData) {
21007
+ const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
21008
+ field.field_type.type === FIELD_TYPE_COMPLEX &&
21009
+ field.display_context !== DISPLAY_CONTEXT_READONLY);
21010
+ if (!candidateFields?.length) {
21011
+ return undefined;
21012
+ }
21013
+ const firstPageFields = eventData?.wizard_pages?.[0]?.wizard_page_fields;
21014
+ if (!firstPageFields) {
21015
+ return undefined;
21016
+ }
21017
+ return candidateFields
21018
+ .map((field) => {
21019
+ const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
21020
+ return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
21021
+ })
21022
+ .sort((a, b) => a.order - b.order)[0]?.field;
21023
+ }
21024
+ getCollectionSelectionMethod(jurisdiction) {
21025
+ return jurisdiction.toUpperCase() === CIVIL_JURISDICTION ? QM_SELECT_FIRST_COLLECTION : QM_COLLECTION_PROMPT;
21026
+ }
21027
+ static ɵfac = function QueryManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementService)(i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(SessionStorageService)); };
21028
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementService, factory: QueryManagementService.ɵfac, providedIn: 'root' });
21029
+ }
21030
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementService, [{
21031
+ type: Injectable,
21032
+ args: [{ providedIn: 'root' }]
21033
+ }], () => [{ type: i1$1.Router }, { type: SessionStorageService }], null); })();
21034
+
21035
+ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_10_Template(rf, ctx) { if (rf & 1) {
21036
+ i0.ɵɵelementContainerStart(0);
21037
+ i0.ɵɵelementStart(1, "p", 8)(2, "span", 9);
21038
+ i0.ɵɵtext(3);
21039
+ i0.ɵɵpipe(4, "rpxTranslate");
21040
+ i0.ɵɵelementEnd();
21041
+ i0.ɵɵtext(5);
21042
+ i0.ɵɵpipe(6, "rpxTranslate");
21043
+ i0.ɵɵelementEnd();
21044
+ i0.ɵɵelementContainerEnd();
21045
+ } if (rf & 2) {
21046
+ const ctx_r0 = i0.ɵɵnextContext(2);
21047
+ i0.ɵɵadvance(3);
21048
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(4, 2, "Error:"), " ");
21049
+ i0.ɵɵadvance(2);
21050
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(6, 4, ctx_r0.qualifyingQuestionsErrorMessage.SELECT_AN_OPTION), " ");
21051
+ } }
21052
+ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template(rf, ctx) { if (rf & 1) {
21053
+ i0.ɵɵelementContainerStart(0);
21054
+ i0.ɵɵelementStart(1, "div", 13);
21055
+ i0.ɵɵtext(2);
21056
+ i0.ɵɵpipe(3, "rpxTranslate");
21057
+ i0.ɵɵelementEnd();
21058
+ i0.ɵɵelementContainerEnd();
21059
+ } if (rf & 2) {
21060
+ i0.ɵɵadvance(2);
21061
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "If your issue is not covered by the options above, raise a query:"));
21062
+ } }
21063
+ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
21064
+ const _r2 = i0.ɵɵgetCurrentView();
21065
+ i0.ɵɵelementContainerStart(0);
21066
+ i0.ɵɵtemplate(1, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template, 4, 3, "ng-container", 0);
21067
+ i0.ɵɵelementStart(2, "div", 10)(3, "input", 11);
21068
+ 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)); });
21069
+ i0.ɵɵelementEnd();
21070
+ i0.ɵɵelementStart(4, "label", 12);
21071
+ i0.ɵɵtext(5);
21072
+ i0.ɵɵpipe(6, "rpxTranslate");
21073
+ i0.ɵɵelementEnd()();
21074
+ i0.ɵɵelementContainerEnd();
21075
+ } if (rf & 2) {
21076
+ const qualifyingQuestion_r3 = ctx.$implicit;
21077
+ const isLast_r4 = ctx.last;
21078
+ const ctx_r0 = i0.ɵɵnextContext(2);
21079
+ i0.ɵɵadvance();
21080
+ i0.ɵɵproperty("ngIf", isLast_r4);
21081
+ i0.ɵɵadvance(2);
21082
+ i0.ɵɵpropertyInterpolate("id", qualifyingQuestion_r3.name);
21083
+ i0.ɵɵproperty("formControl", ctx_r0.qualifyingQuestionsControl)("value", qualifyingQuestion_r3);
21084
+ i0.ɵɵadvance();
21085
+ i0.ɵɵproperty("for", qualifyingQuestion_r3.name);
21086
+ i0.ɵɵadvance();
21087
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, qualifyingQuestion_r3.name));
21088
+ } }
21089
+ function QualifyingQuestionOptionsComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
21090
+ i0.ɵɵelementContainerStart(0);
21091
+ i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
21092
+ i0.ɵɵtext(5);
21093
+ i0.ɵɵpipe(6, "rpxTranslate");
21094
+ i0.ɵɵelementEnd()();
21095
+ i0.ɵɵelementStart(7, "h2", 5);
21096
+ i0.ɵɵtext(8);
21097
+ i0.ɵɵpipe(9, "rpxTranslate");
21098
+ i0.ɵɵelementEnd();
21099
+ i0.ɵɵtemplate(10, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_10_Template, 7, 6, "ng-container", 0);
21100
+ i0.ɵɵelementStart(11, "div", 6);
21101
+ i0.ɵɵtemplate(12, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template, 7, 8, "ng-container", 7);
21102
+ i0.ɵɵpipe(13, "async");
21103
+ i0.ɵɵelementEnd()()();
21104
+ i0.ɵɵelementContainerEnd();
21105
+ } if (rf & 2) {
21106
+ const ctx_r0 = i0.ɵɵnextContext();
21107
+ i0.ɵɵadvance();
21108
+ i0.ɵɵclassProp("govuk-form-group--error", ctx_r0.displayError);
21109
+ i0.ɵɵadvance(4);
21110
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 6, "Raise a new query"), " ");
21111
+ i0.ɵɵadvance(3);
21112
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 8, "What do you need help to do?"), " ");
21113
+ i0.ɵɵadvance(2);
21114
+ i0.ɵɵproperty("ngIf", ctx_r0.displayError);
21115
+ i0.ɵɵadvance(2);
21116
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(13, 10, ctx_r0.qualifyingQuestions$));
21117
+ } }
21118
+ class QualifyingQuestionOptionsComponent {
21119
+ route;
21120
+ router;
21121
+ qualifyingQuestionService;
21122
+ qualifyingQuestionsControl;
21123
+ qualifyingQuestions$;
21124
+ questionSelected = new EventEmitter();
21125
+ qualifyingQuestionsErrorMessage = QualifyingQuestionsErrorMessage;
21126
+ caseId;
21127
+ constructor(route, router, qualifyingQuestionService) {
21128
+ this.route = route;
21129
+ this.router = router;
21130
+ this.qualifyingQuestionService = qualifyingQuestionService;
21131
+ }
21132
+ ngOnInit() {
21133
+ this.caseId = this.route.snapshot.params.cid;
21134
+ // Check if there's already a selected qualifying question from the service
21135
+ const savedSelection = this.qualifyingQuestionService.getQualifyingQuestionSelection();
21136
+ if (savedSelection) {
21137
+ this.qualifyingQuestionsControl.setValue(savedSelection);
21138
+ }
21139
+ }
21140
+ click() {
21141
+ this.router.navigate(['cases', 'case-details', this.caseId], { fragment: 'Queries' });
21142
+ }
21143
+ get displayError() {
21144
+ return this.qualifyingQuestionsControl.touched && this.qualifyingQuestionsControl.hasError('required');
21145
+ }
21146
+ onSelectionChange(qualifyingQuestion) {
21147
+ this.questionSelected.emit(qualifyingQuestion);
21148
+ }
21149
+ static ɵfac = function QualifyingQuestionOptionsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QualifyingQuestionOptionsComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(QualifyingQuestionService)); };
21150
+ 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, "qm-qualifying-question__divider"]], template: function QualifyingQuestionOptionsComponent_Template(rf, ctx) { if (rf & 1) {
21151
+ i0.ɵɵtemplate(0, QualifyingQuestionOptionsComponent_ng_container_0_Template, 14, 12, "ng-container", 0);
21152
+ } if (rf & 2) {
21153
+ i0.ɵɵproperty("ngIf", ctx.qualifyingQuestionsControl);
21154
+ } }, dependencies: [i5.NgForOf, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.FormControlDirective, i5.AsyncPipe, i1.RpxTranslatePipe], encapsulation: 2 });
21155
+ }
21156
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QualifyingQuestionOptionsComponent, [{
21157
+ type: Component,
21158
+ 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 {{ 'What do you need help to do?' | 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=\"qm-qualifying-question__divider\">{{ 'If your issue is not covered by the options above, raise a query:' | 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" }]
21159
+ }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: QualifyingQuestionService }], { qualifyingQuestionsControl: [{
21160
+ type: Input
21161
+ }], qualifyingQuestions$: [{
21162
+ type: Input
21163
+ }], questionSelected: [{
21164
+ type: Output
21165
+ }] }); })();
21166
+ (() => { (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 }); })();
21167
+
21168
+ function QueryAttachmentsReadComponent_ng_container_0_ccd_read_collection_field_1_Template(rf, ctx) { if (rf & 1) {
21169
+ i0.ɵɵelement(0, "ccd-read-collection-field", 2);
21170
+ } if (rf & 2) {
21171
+ const ctx_r0 = i0.ɵɵnextContext(2);
21172
+ i0.ɵɵproperty("caseField", ctx_r0.caseFieldWithAttachments);
21173
+ } }
21174
+ function QueryAttachmentsReadComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
21175
+ i0.ɵɵelementContainerStart(0);
21176
+ i0.ɵɵtemplate(1, QueryAttachmentsReadComponent_ng_container_0_ccd_read_collection_field_1_Template, 1, 1, "ccd-read-collection-field", 1);
21177
+ i0.ɵɵelementContainerEnd();
21178
+ } if (rf & 2) {
21179
+ const ctx_r0 = i0.ɵɵnextContext();
21180
+ i0.ɵɵadvance();
21181
+ i0.ɵɵproperty("ngIf", (ctx_r0.attachments == null ? null : ctx_r0.attachments.length) > 0);
21182
+ } }
21183
+ class QueryAttachmentsReadComponent {
21184
+ attachments;
21185
+ caseFieldWithAttachments;
21186
+ ngOnChanges() {
21187
+ this.caseFieldWithAttachments = Object.assign(new CaseField(), {
21188
+ id: '',
21189
+ label: '',
21190
+ hint_text: '',
21191
+ field_type: Object.assign(new FieldType(), {
21192
+ id: 'QueryDocuments',
21193
+ type: 'QueryDocuments',
21194
+ min: null,
21195
+ max: null,
21196
+ regular_expression: null,
21197
+ fixed_list_items: [],
21198
+ complex_fields: [],
21199
+ collection_field_type: Object.assign(new FieldType(), {
21200
+ id: 'Document',
21201
+ type: 'Document',
21202
+ min: null,
21203
+ max: null,
21204
+ regular_expression: null,
21205
+ fixed_list_items: [],
21206
+ complex_fields: [],
21207
+ collection_field_type: null
21208
+ })
21209
+ }),
21210
+ display_context_parameter: '#COLLECTION(allowInsert,allowUpdate)',
21211
+ value: []
21212
+ });
21213
+ this.caseFieldWithAttachments.value = this.attachments;
21214
+ }
21215
+ static ɵfac = function QueryAttachmentsReadComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryAttachmentsReadComponent)(); };
21216
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryAttachmentsReadComponent, selectors: [["ccd-query-attachments-read"]], inputs: { attachments: "attachments" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[4, "ngIf"], [3, "caseField", 4, "ngIf"], [3, "caseField"]], template: function QueryAttachmentsReadComponent_Template(rf, ctx) { if (rf & 1) {
21217
+ i0.ɵɵtemplate(0, QueryAttachmentsReadComponent_ng_container_0_Template, 2, 1, "ng-container", 0);
21218
+ } if (rf & 2) {
21219
+ i0.ɵɵproperty("ngIf", (ctx.attachments == null ? null : ctx.attachments.length) > 0);
21220
+ } }, styles: ["ccd-query-attachments-read .collection-field-table tr>td{border-bottom:none;padding-bottom:0}\n"], encapsulation: 2 });
21221
+ }
21222
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryAttachmentsReadComponent, [{
21223
+ type: Component,
21224
+ args: [{ selector: 'ccd-query-attachments-read', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"attachments?.length > 0\">\n <ccd-read-collection-field\n *ngIf=\"attachments?.length > 0\"\n [caseField]=\"caseFieldWithAttachments\"\n >\n </ccd-read-collection-field>\n</ng-container>\n", styles: ["ccd-query-attachments-read .collection-field-table tr>td{border-bottom:none;padding-bottom:0}\n"] }]
21225
+ }], null, { attachments: [{
21226
+ type: Input
21227
+ }] }); })();
21228
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryAttachmentsReadComponent, { className: "QueryAttachmentsReadComponent", filePath: "lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.ts", lineNumber: 10 }); })();
21229
+
21230
+ function QueryCaseDetailsHeaderComponent_h1_0_Template(rf, ctx) { if (rf & 1) {
21231
+ i0.ɵɵelementStart(0, "h1", 2);
21232
+ i0.ɵɵtext(1);
21233
+ i0.ɵɵpipe(2, "ccdCaseReference");
21234
+ i0.ɵɵelementEnd();
21235
+ } if (rf & 2) {
21236
+ const ctx_r0 = i0.ɵɵnextContext();
21237
+ i0.ɵɵadvance();
21238
+ i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r0.caseDetails.case_id), "");
21239
+ } }
21240
+ function QueryCaseDetailsHeaderComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21241
+ i0.ɵɵelementStart(0, "div", 3);
21242
+ i0.ɵɵelement(1, "ccd-label-field", 4);
21243
+ i0.ɵɵelementEnd();
21244
+ } if (rf & 2) {
21245
+ const ctx_r0 = i0.ɵɵnextContext();
21246
+ i0.ɵɵadvance();
21247
+ i0.ɵɵproperty("caseField", ctx_r0.caseTitle)("caseFields", ctx_r0.caseFields);
21248
+ } }
21249
+ class QueryCaseDetailsHeaderComponent {
21250
+ caseDetails;
21251
+ caseTitle;
21252
+ caseFields;
21253
+ ngOnInit() {
21254
+ this.caseTitle = new CaseField();
21255
+ this.caseTitle.label = this.caseDetails?.state?.title_display;
21256
+ this.caseFields = this.getCaseFieldsInfo();
21257
+ }
21258
+ getCaseFieldsInfo() {
21259
+ const caseDataFields = this.caseDetails?.tabs?.reduce((acc, tab) => {
21260
+ return acc.concat(tab.fields);
21261
+ }, []);
21262
+ return caseDataFields.concat(this.caseDetails.metadataFields);
21097
21263
  }
21098
- static ɵfac = function QueryManagementUtils_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementUtils)(); };
21099
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementUtils, factory: QueryManagementUtils.ɵfac });
21264
+ static ɵfac = function QueryCaseDetailsHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryCaseDetailsHeaderComponent)(); };
21265
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCaseDetailsHeaderComponent, selectors: [["ccd-query-case-details-header"]], inputs: { caseDetails: "caseDetails" }, decls: 2, vars: 2, consts: [["class", "heading-h1", 4, "ngIf"], ["class", "case-title", 4, "ngIf"], [1, "heading-h1"], [1, "case-title"], [3, "caseField", "caseFields"]], template: function QueryCaseDetailsHeaderComponent_Template(rf, ctx) { if (rf & 1) {
21266
+ i0.ɵɵtemplate(0, QueryCaseDetailsHeaderComponent_h1_0_Template, 3, 3, "h1", 0)(1, QueryCaseDetailsHeaderComponent_div_1_Template, 2, 2, "div", 1);
21267
+ } if (rf & 2) {
21268
+ i0.ɵɵproperty("ngIf", !ctx.caseTitle.label);
21269
+ i0.ɵɵadvance();
21270
+ i0.ɵɵproperty("ngIf", ctx.caseTitle.label);
21271
+ } }, dependencies: [i5.NgIf, LabelFieldComponent, CaseReferencePipe], encapsulation: 2 });
21100
21272
  }
21101
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementUtils, [{
21102
- type: Injectable
21103
- }], null, null); })();
21273
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCaseDetailsHeaderComponent, [{
21274
+ type: Component,
21275
+ args: [{ selector: 'ccd-query-case-details-header', template: "<h1 *ngIf=\"!caseTitle.label\" class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n<div *ngIf=\"caseTitle.label\" class=\"case-title\">\n <ccd-label-field [caseField]=\"caseTitle\" [caseFields]=\"caseFields\"></ccd-label-field>\n</div>\n" }]
21276
+ }], null, { caseDetails: [{
21277
+ type: Input
21278
+ }] }); })();
21279
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCaseDetailsHeaderComponent, { className: "QueryCaseDetailsHeaderComponent", filePath: "lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.ts", lineNumber: 10 }); })();
21104
21280
 
21105
21281
  function QueryCheckYourAnswersComponent_div_0_div_2_li_6_Template(rf, ctx) { if (rf & 1) {
21106
21282
  i0.ɵɵelementStart(0, "li")(1, "a", 28);
@@ -21336,15 +21512,14 @@ function QueryCheckYourAnswersComponent_div_0_dl_26_Template(rf, ctx) { if (rf &
21336
21512
  i0.ɵɵpipe(11, "rpxTranslate");
21337
21513
  i0.ɵɵelementEnd()()()();
21338
21514
  } if (rf & 2) {
21339
- let tmp_3_0;
21340
21515
  let tmp_4_0;
21341
21516
  const ctx_r2 = i0.ɵɵnextContext(2);
21342
21517
  i0.ɵɵadvance(3);
21343
- i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(4, 4, "Closing the query"), " ", (tmp_3_0 = ctx_r2.formGroup.get("closeQuery")) == null ? null : tmp_3_0.value, " ");
21518
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 3, "Closing the query"), " ");
21344
21519
  i0.ɵɵadvance(3);
21345
- i0.ɵɵtextInterpolate1(" ", ((tmp_4_0 = ctx_r2.formGroup.get("closeQuery")) == null ? null : tmp_4_0.value) ? "I want to close this query" : i0.ɵɵpipeBind1(7, 6, "No answer"), " ");
21520
+ i0.ɵɵtextInterpolate1(" ", ((tmp_4_0 = ctx_r2.formGroup.get("closeQuery")) == null ? null : tmp_4_0.value) ? "I want to close this query" : i0.ɵɵpipeBind1(7, 5, "No answer"), " ");
21346
21521
  i0.ɵɵadvance(4);
21347
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 8, "Change"), " ");
21522
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 7, "Change"), " ");
21348
21523
  } }
21349
21524
  function QueryCheckYourAnswersComponent_div_0_Template(rf, ctx) { if (rf & 1) {
21350
21525
  const _r1 = i0.ɵɵgetCurrentView();
@@ -21371,7 +21546,7 @@ function QueryCheckYourAnswersComponent_div_0_Template(rf, ctx) { if (rf & 1) {
21371
21546
  i0.ɵɵtext(22);
21372
21547
  i0.ɵɵpipe(23, "rpxTranslate");
21373
21548
  i0.ɵɵelementEnd()()()();
21374
- i0.ɵɵtemplate(24, QueryCheckYourAnswersComponent_div_0_dl_24_Template, 14, 9, "dl", 13)(25, QueryCheckYourAnswersComponent_div_0_dl_25_Template, 11, 7, "dl", 13)(26, QueryCheckYourAnswersComponent_div_0_dl_26_Template, 12, 10, "dl", 13);
21549
+ i0.ɵɵtemplate(24, QueryCheckYourAnswersComponent_div_0_dl_24_Template, 14, 9, "dl", 13)(25, QueryCheckYourAnswersComponent_div_0_dl_25_Template, 11, 7, "dl", 13)(26, QueryCheckYourAnswersComponent_div_0_dl_26_Template, 12, 9, "dl", 13);
21375
21550
  i0.ɵɵelement(27, "br");
21376
21551
  i0.ɵɵelementStart(28, "div")(29, "button", 20);
21377
21552
  i0.ɵɵlistener("click", function QueryCheckYourAnswersComponent_div_0_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.goBack()); });
@@ -21428,20 +21603,27 @@ class QueryCheckYourAnswersComponent {
21428
21603
  casesService;
21429
21604
  caseNotifier;
21430
21605
  workAllocationService;
21431
- sessionStorageService;
21432
21606
  qualifyingQuestionService;
21607
+ queryManagementService;
21608
+ errorNotifierService;
21609
+ alertService;
21433
21610
  RAISE_A_QUERY_EVENT_TRIGGER_ID = 'queryManagementRaiseQuery';
21434
21611
  RESPOND_TO_QUERY_EVENT_TRIGGER_ID = 'queryManagementRespondQuery';
21435
21612
  CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';
21613
+ static TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
21614
+ static TRIGGER_TEXT_START = 'Continue';
21436
21615
  FIELD_TYPE_COMPLEX = 'Complex';
21437
21616
  DISPLAY_CONTEXT_READONLY = 'READONLY';
21438
21617
  QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';
21439
21618
  QM_COLLECTION_PROMPT = 'promptQmCollection';
21440
21619
  CIVIL_JURISDICTION = 'CIVIL';
21620
+ triggerTextStart = QueryCheckYourAnswersComponent.TRIGGER_TEXT_START;
21621
+ triggerTextIgnoreWarnings = QueryCheckYourAnswersComponent.TRIGGER_TEXT_CONTINUE;
21441
21622
  formGroup;
21442
21623
  queryItem;
21443
21624
  queryCreateContext;
21444
21625
  eventData = null;
21626
+ qmCaseQueriesCollectionData;
21445
21627
  backClicked = new EventEmitter();
21446
21628
  querySubmitted = new EventEmitter();
21447
21629
  callbackConfirmationMessage = new EventEmitter();
@@ -21460,20 +21642,24 @@ class QueryCheckYourAnswersComponent {
21460
21642
  filteredTasks = [];
21461
21643
  readyToSubmit;
21462
21644
  isSubmitting = false;
21645
+ messgaeId;
21463
21646
  callbackErrorsSubject = new Subject();
21464
21647
  error;
21465
- constructor(route, router, casesService, caseNotifier, workAllocationService, sessionStorageService, qualifyingQuestionService) {
21648
+ constructor(route, router, casesService, caseNotifier, workAllocationService, qualifyingQuestionService, queryManagementService, errorNotifierService, alertService) {
21466
21649
  this.route = route;
21467
21650
  this.router = router;
21468
21651
  this.casesService = casesService;
21469
21652
  this.caseNotifier = caseNotifier;
21470
21653
  this.workAllocationService = workAllocationService;
21471
- this.sessionStorageService = sessionStorageService;
21472
21654
  this.qualifyingQuestionService = qualifyingQuestionService;
21655
+ this.queryManagementService = queryManagementService;
21656
+ this.errorNotifierService = errorNotifierService;
21657
+ this.alertService = alertService;
21473
21658
  }
21474
21659
  ngOnInit() {
21475
21660
  this.queryId = this.route.snapshot.params.qid;
21476
21661
  this.tid = this.route.snapshot.queryParams?.tid;
21662
+ this.messgaeId = this.route.snapshot.params.dataid;
21477
21663
  this.caseNotifier.caseView.pipe(take(1)).subscribe((caseDetails) => {
21478
21664
  this.caseDetails = caseDetails;
21479
21665
  // Find the appropriate event trigger based on the queryCreateContext
@@ -21502,8 +21688,23 @@ class QueryCheckYourAnswersComponent {
21502
21688
  }
21503
21689
  },
21504
21690
  error: (error) => {
21505
- console.error('Error in searchTasksSubscription:', error);
21506
21691
  this.readyToSubmit = false;
21692
+ if (error.status !== 401 && error.status !== 403) {
21693
+ this.errorNotifierService.announceError(error);
21694
+ this.alertService.error({ phrase: error.message });
21695
+ console.error('Error occurred while fetching event data:', error);
21696
+ this.callbackErrorsSubject.next(error);
21697
+ }
21698
+ else {
21699
+ this.errorMessages = [
21700
+ {
21701
+ title: 'Error',
21702
+ description: 'Something unexpected happened. Please try again later.',
21703
+ fieldId: 'field-id'
21704
+ }
21705
+ ];
21706
+ }
21707
+ window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21507
21708
  }
21508
21709
  });
21509
21710
  }
@@ -21514,6 +21715,7 @@ class QueryCheckYourAnswersComponent {
21514
21715
  ngOnDestroy() {
21515
21716
  this.createEventSubscription?.unsubscribe();
21516
21717
  this.searchTasksSubscription?.unsubscribe();
21718
+ this.callbackErrorsSubject?.unsubscribe();
21517
21719
  }
21518
21720
  goBack() {
21519
21721
  this.backClicked.emit(true);
@@ -21522,20 +21724,7 @@ class QueryCheckYourAnswersComponent {
21522
21724
  if (this.isSubmitting) {
21523
21725
  return;
21524
21726
  }
21525
- // Check if fieldId is null or undefined
21526
- if (!this.fieldId) {
21527
- console.error('Error: Field ID is missing. Cannot proceed with submission.');
21528
- this.errorMessages = [
21529
- {
21530
- title: 'Error',
21531
- description: 'This case is not configured for query management.',
21532
- fieldId: 'field-id'
21533
- }
21534
- ];
21535
- window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21536
- return;
21537
- }
21538
- const data = this.generateCaseQueriesCollectionData();
21727
+ const data = this.qmCaseQueriesCollectionData;
21539
21728
  const createEvent$ = this.createEvent(data);
21540
21729
  this.isSubmitting = true;
21541
21730
  if (this.queryCreateContext === QueryCreateContext.RESPOND) {
@@ -21596,172 +21785,7 @@ class QueryCheckYourAnswersComponent {
21596
21785
  handleError(error) {
21597
21786
  console.error('Error in API calls:', error);
21598
21787
  this.isSubmitting = false;
21599
- if (this.isServiceErrorFound(error)) {
21600
- this.error = null;
21601
- this.callbackErrorsSubject.next(error);
21602
- }
21603
- else {
21604
- if (error && error.status !== 401 && error.status !== 403) {
21605
- this.error = error;
21606
- }
21607
- else {
21608
- this.router.navigate(['/', 'service-down']);
21609
- }
21610
- }
21611
- window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21612
- }
21613
- generateCaseQueriesCollectionData() {
21614
- const currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21615
- const caseMessage = this.queryCreateContext === QueryCreateContext.NEW_QUERY
21616
- ? QueryManagementUtils.getNewQueryData(this.formGroup, currentUserDetails)
21617
- : QueryManagementUtils.getRespondOrFollowupQueryData(this.formGroup, this.queryItem, currentUserDetails);
21618
- const messageId = this.route.snapshot.params.dataid; // Get the message ID from route params (if present)
21619
- const isNewQuery = this.queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
21620
- // Check if the field ID has been set dynamically
21621
- if (!this.fieldId) {
21622
- console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
21623
- this.router.navigate(['/', 'service-down']);
21624
- }
21625
- // Initialize new query data structure
21626
- const newQueryData = {};
21627
- if (this.caseQueriesCollections?.length) {
21628
- let matchedCollection;
21629
- // If it's not a new query, try to find the existing collection with the message ID
21630
- if (!isNewQuery && messageId) {
21631
- matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
21632
- }
21633
- if (matchedCollection) {
21634
- // Append the new case message to the matched collection's caseMessages
21635
- matchedCollection.caseMessages.push({
21636
- id: null,
21637
- value: caseMessage
21638
- });
21639
- // Add the matched collection to newQueryData
21640
- newQueryData[this.fieldId] = {
21641
- ...matchedCollection, // Keep existing data intact
21642
- caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
21643
- };
21644
- }
21645
- else {
21646
- // Use partyName from the first collection (assumption: all share the same party)
21647
- const originalPartyName = this.caseQueriesCollections[0].partyName;
21648
- // If no collection matches, or it's a new query
21649
- newQueryData[this.fieldId] = {
21650
- partyName: originalPartyName,
21651
- roleOnCase: '', // Not returned by CCD
21652
- caseMessages: [
21653
- {
21654
- id: null,
21655
- value: caseMessage
21656
- }
21657
- ]
21658
- };
21659
- // If caseQueriesCollections is not empty, append its data
21660
- newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
21661
- }
21662
- }
21663
- else {
21664
- // If there are no existing collections, create a new one (e.g., for new queries)
21665
- newQueryData[this.fieldId] = {
21666
- partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
21667
- roleOnCase: '', // Not returned by CCD
21668
- caseMessages: [
21669
- {
21670
- id: null,
21671
- value: caseMessage
21672
- }
21673
- ]
21674
- };
21675
- }
21676
- return newQueryData;
21677
- }
21678
- setCaseQueriesCollectionData() {
21679
- if (this.eventData?.case_fields?.length) {
21680
- // Workaround for multiple qmCaseQueriesCollections that are not to be appearing in the eventData
21681
- // Counts number qmCaseQueriesCollections
21682
- const numberOfCaseQueriesCollections = this.eventData?.case_fields?.filter((caseField) => caseField.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
21683
- caseField.field_type.type === this.FIELD_TYPE_COMPLEX && caseField.display_context !== this.DISPLAY_CONTEXT_READONLY)?.length || 0;
21684
- this.caseQueriesCollections = this.eventData.case_fields.reduce((acc, caseField) => {
21685
- // Extract the ID based on conditions, updating this.fieldId dynamically
21686
- this.extractCaseQueryId(caseField, numberOfCaseQueriesCollections);
21687
- const extractedCaseQueriesFromCaseField = QueryManagementUtils.extractCaseQueriesFromCaseField(caseField);
21688
- if (extractedCaseQueriesFromCaseField && typeof extractedCaseQueriesFromCaseField === 'object') {
21689
- acc.push(extractedCaseQueriesFromCaseField);
21690
- }
21691
- return acc;
21692
- }, []);
21693
- }
21694
- }
21695
- extractCaseQueryId(data, count) {
21696
- const { id, value } = data;
21697
- const messageId = this.route.snapshot.params.dataid;
21698
- // Check if the field_type matches CaseQueriesCollection and type is Complex
21699
- if (data.field_type.id === this.CASE_QUERIES_COLLECTION_ID && data.field_type.type === this.FIELD_TYPE_COMPLEX) {
21700
- if (this.isNewQueryContext(data)) {
21701
- // If there is more than one qmCaseQueriesCollection, pick the one with the lowest order
21702
- if (count > 1) {
21703
- if (!this.handleMultipleCollections()) {
21704
- return;
21705
- }
21706
- }
21707
- else {
21708
- // Set the field ID dynamically based on the extracted data
21709
- this.fieldId = id; // Store the ID for use in generating newQueryData
21710
- }
21711
- }
21712
- // If messageId is present, find the corresponding case message
21713
- this.setMessageFieldId(messageId, value, id);
21714
- }
21715
- }
21716
- setMessageFieldId(messageId, value, id) {
21717
- if (messageId && value?.caseMessages) {
21718
- // If a matching message is found, set the fieldId to the corresponding id
21719
- const matchedMessage = value?.caseMessages?.find((message) => message.value.id === messageId);
21720
- if (matchedMessage) {
21721
- this.fieldId = id;
21722
- }
21723
- }
21724
- }
21725
- isNewQueryContext(data) {
21726
- return this.queryCreateContext === QueryCreateContext.NEW_QUERY && data.display_context !== this.DISPLAY_CONTEXT_READONLY;
21727
- }
21728
- handleMultipleCollections() {
21729
- const jurisdictionId = this.caseDetails?.case_type?.jurisdiction?.id;
21730
- if (!jurisdictionId) {
21731
- console.error('Jurisdiction ID is missing.');
21732
- return false;
21733
- }
21734
- if (this.getCollectionSelectionMethod(jurisdictionId) === this.QM_SELECT_FIRST_COLLECTION) {
21735
- // Pick the collection with the lowest order
21736
- this.fieldId = this.getCaseQueriesCollectionFieldOrderFromWizardPages()?.id;
21737
- }
21738
- else {
21739
- // Display Error, for now, until EXUI-2644 is implemented
21740
- console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
21741
- return false;
21742
- }
21743
- return true;
21744
- }
21745
- getCaseQueriesCollectionFieldOrderFromWizardPages() {
21746
- const candidateFields = this.eventData?.case_fields?.filter((field) => field.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
21747
- field.field_type.type === this.FIELD_TYPE_COMPLEX &&
21748
- field.display_context !== this.DISPLAY_CONTEXT_READONLY);
21749
- if (!candidateFields?.length) {
21750
- return undefined;
21751
- }
21752
- const firstPageFields = this.eventData?.wizard_pages?.[0]?.wizard_page_fields;
21753
- if (!firstPageFields) {
21754
- return undefined;
21755
- }
21756
- return candidateFields
21757
- .map((field) => {
21758
- const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
21759
- return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
21760
- })
21761
- .sort((a, b) => a.order - b.order)[0]?.field;
21762
- }
21763
- getCollectionSelectionMethod(jurisdiction) {
21764
- return jurisdiction.toUpperCase() === this.CIVIL_JURISDICTION ? this.QM_SELECT_FIRST_COLLECTION : this.QM_COLLECTION_PROMPT;
21788
+ this.router.navigate(['/', 'service-down']);
21765
21789
  }
21766
21790
  getDocumentAttachments() {
21767
21791
  const attachmentsValue = this.formGroup.get('attachments').value;
@@ -21773,8 +21797,14 @@ class QueryCheckYourAnswersComponent {
21773
21797
  isServiceErrorFound(error) {
21774
21798
  return !!(error?.callbackErrors?.length);
21775
21799
  }
21776
- static ɵfac = function QueryCheckYourAnswersComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryCheckYourAnswersComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(CasesService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(WorkAllocationService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(QualifyingQuestionService)); };
21777
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCheckYourAnswersComponent, selectors: [["ccd-query-check-your-answers"]], inputs: { formGroup: "formGroup", queryItem: "queryItem", queryCreateContext: "queryCreateContext", eventData: "eventData" }, outputs: { backClicked: "backClicked", querySubmitted: "querySubmitted", callbackConfirmationMessage: "callbackConfirmationMessage" }, decls: 1, vars: 1, consts: [["defaultCheckYourAnswersTitle", ""], ["isHearingRelatedFalse", ""], ["class", "govuk-grid-row", 4, "ngIf"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds-from-desktop"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], ["class", "error-summary", "role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 4, "ngIf"], [3, "callbackErrorsSubject"], [4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfElse"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-summary-list govuk-!-margin-bottom-0", 4, "ngIf"], [1, "govuk-summary-list", "govuk-!-margin-bottom-0"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key"], [1, "govuk-summary-list__value"], [1, "govuk-summary-list__actions"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", "govuk-!-margin-right-3", 3, "click"], ["data-module", "govuk-button", "type", "submit", 1, "govuk-button", 3, "click"], [3, "eventCompletionParams"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["href", "javascript:void(0)", 1, "validation-error", 3, "id"], ["role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 1, "error-summary"], ["id", "event_error-summary-heading", 1, "heading-h3", "error-summary-heading"], ["class", "error-summary-list", 4, "ngIf"], [1, "error-summary-list"], ["class", "ccd-error-summary-li", 4, "ngFor", "ngForOf"], [1, "ccd-error-summary-li"], [1, "govuk-caption-l"], ["href", "javascript:void(0)", "class", "govuk-link", 3, "click", 4, "ngIf"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-summary-list__value", "govuk-summary-list__value--documentAttached"], [3, "attachments", 4, "ngIf"], [3, "attachments"]], template: function QueryCheckYourAnswersComponent_Template(rf, ctx) { if (rf & 1) {
21800
+ setCaseQueriesCollectionData() {
21801
+ if (!this.eventData) {
21802
+ console.warn('Event data not available; skipping collection setup.');
21803
+ }
21804
+ this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messgaeId);
21805
+ }
21806
+ static ɵfac = function QueryCheckYourAnswersComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryCheckYourAnswersComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(CasesService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(WorkAllocationService), i0.ɵɵdirectiveInject(QualifyingQuestionService), i0.ɵɵdirectiveInject(QueryManagementService), i0.ɵɵdirectiveInject(ErrorNotifierService), i0.ɵɵdirectiveInject(AlertService)); };
21807
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCheckYourAnswersComponent, selectors: [["ccd-query-check-your-answers"]], inputs: { formGroup: "formGroup", queryItem: "queryItem", queryCreateContext: "queryCreateContext", eventData: "eventData", qmCaseQueriesCollectionData: "qmCaseQueriesCollectionData" }, outputs: { backClicked: "backClicked", querySubmitted: "querySubmitted", callbackConfirmationMessage: "callbackConfirmationMessage" }, decls: 1, vars: 1, consts: [["defaultCheckYourAnswersTitle", ""], ["isHearingRelatedFalse", ""], ["class", "govuk-grid-row", 4, "ngIf"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds-from-desktop"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], ["class", "error-summary", "role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 4, "ngIf"], [3, "callbackErrorsSubject"], [4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfElse"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-summary-list govuk-!-margin-bottom-0", 4, "ngIf"], [1, "govuk-summary-list", "govuk-!-margin-bottom-0"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key"], [1, "govuk-summary-list__value"], [1, "govuk-summary-list__actions"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", "govuk-!-margin-right-3", 3, "click"], ["data-module", "govuk-button", "type", "submit", 1, "govuk-button", 3, "click"], [3, "eventCompletionParams"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["href", "javascript:void(0)", 1, "validation-error", 3, "id"], ["role", "group", "aria-labelledby", "edit-case-event_error-summary-heading", "tabindex", "-1", 1, "error-summary"], ["id", "event_error-summary-heading", 1, "heading-h3", "error-summary-heading"], ["class", "error-summary-list", 4, "ngIf"], [1, "error-summary-list"], ["class", "ccd-error-summary-li", 4, "ngFor", "ngForOf"], [1, "ccd-error-summary-li"], [1, "govuk-caption-l"], ["href", "javascript:void(0)", "class", "govuk-link", 3, "click", 4, "ngIf"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-summary-list__value", "govuk-summary-list__value--documentAttached"], [3, "attachments", 4, "ngIf"], [3, "attachments"]], template: function QueryCheckYourAnswersComponent_Template(rf, ctx) { if (rf & 1) {
21778
21808
  i0.ɵɵtemplate(0, QueryCheckYourAnswersComponent_div_0_Template, 36, 25, "div", 2);
21779
21809
  } if (rf & 2) {
21780
21810
  i0.ɵɵproperty("ngIf", ctx.readyToSubmit);
@@ -21782,8 +21812,8 @@ class QueryCheckYourAnswersComponent {
21782
21812
  }
21783
21813
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCheckYourAnswersComponent, [{
21784
21814
  type: Component,
21785
- args: [{ selector: 'ccd-query-check-your-answers', template: "<div class=\"govuk-grid-row\" *ngIf=\"readyToSubmit\">\n <div class=\"govuk-grid-column-two-thirds-from-desktop\">\n <!-- Error message summary -->\n <div *ngIf=\"errorMessages.length > 0\" class=\"govuk-error-summary\"\n aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{ 'There is a problem' | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let errorMessage of errorMessages\">\n <a [id]=\"'error-' + errorMessage.fieldId\" href=\"javascript:void(0)\"\n class=\"validation-error\">{{ errorMessage.description | rpxTranslate }}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div *ngIf=\"error && (error.details || error.message)\" class=\"error-summary\" role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h3 class=\"heading-h3 error-summary-heading\" id=\"event_error-summary-heading\">\n The event could not be created\n </h3>\n <p>{{error.message}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\" class=\"ccd-error-summary-li\">{{fieldError.message}}</li>\n </ul>\n </div>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"callbackErrorsSubject\"></ccd-callback-errors>\n\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\">\n <div class=\"govuk-caption-l\">{{ 'Raise a query' | rpxTranslate }}</div>\n </ng-container>\n\n <h1 class=\"govuk-heading-l\">\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND; else defaultCheckYourAnswersTitle\">\n {{ 'Review query response details' | rpxTranslate }}\n </ng-container>\n\n <ng-template #defaultCheckYourAnswersTitle>\n {{ 'Review query details' | rpxTranslate }}\n </ng-template>\n </h1>\n <div class=\"govuk-!-margin-bottom-4\">\n <ccd-query-case-details-header [caseDetails]=\"caseDetails\"></ccd-query-case-details-header>\n </div>\n\n <dl *ngIf=\"queryCreateContext !== queryCreateContextEnum.FOLLOWUP\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Submitted query' : 'Query subject' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? queryItem.subject : formGroup.get('subject')?.value }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\" \n href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <dl class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Response detail' : 'Query detail' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ formGroup.get('body')?.value }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <dl *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ 'Is the query hearing related?' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n <ng-container *ngIf=\"formGroup.get('isHearingRelated')?.value === true; else isHearingRelatedFalse\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'Yes' }}\n </ng-container>\n <ng-template #isHearingRelatedFalse>\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'No' }}\n </ng-template>\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n\n <div *ngIf=\"formGroup.get('isHearingRelated')?.value\" class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.NEW_QUERY\n ? 'What is the date of the hearing?'\n : 'What is the date of the hearing your query is related to?' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ formGroup.get('hearingDate')?.value | date: 'dd MMM yyyy' }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n <dl class=\"govuk-summary-list govuk-!-margin-bottom-0\" *ngIf=\"this.formGroup.get('attachments').value.length > 0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.NEW_QUERY ? 'Upload a file to the query' : 'Document attached' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value govuk-summary-list__value--documentAttached\">\n <ccd-query-attachments-read\n *ngIf=\"this.formGroup.get('attachments').value\"\n [attachments]=\"attachments\"\n >\n </ccd-query-attachments-read>\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <dl *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ 'Closing the query' | rpxTranslate }} {{formGroup.get('closeQuery')?.value }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ formGroup.get('closeQuery')?.value ? 'I want to close this query' : 'No answer' | rpxTranslate }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <br>\n\n <div>\n <button class=\"govuk-button govuk-button--secondary govuk-!-margin-right-3\" data-module=\"govuk-button\"\n (click)=\"goBack()\">\n {{ 'Previous' | rpxTranslate }}\n </button>\n <button class=\"govuk-button\" data-module=\"govuk-button\" type=\"submit\" (click)=\"submit()\">\n {{ 'Submit' | rpxTranslate }}\n </button>\n </div>\n </div>\n\n <ccd-query-event-completion [eventCompletionParams]=\"eventCompletionParams\"> \n </ccd-query-event-completion>\n</div>\n", styles: [".govuk-summary-list__value--documentAttached{vertical-align:middle}\n"] }]
21786
- }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: CasesService }, { type: CaseNotifier }, { type: WorkAllocationService }, { type: SessionStorageService }, { type: QualifyingQuestionService }], { formGroup: [{
21815
+ args: [{ selector: 'ccd-query-check-your-answers', template: "<div class=\"govuk-grid-row\" *ngIf=\"readyToSubmit\">\n <div class=\"govuk-grid-column-two-thirds-from-desktop\">\n <!-- Error message summary -->\n <div *ngIf=\"errorMessages.length > 0\" class=\"govuk-error-summary\"\n aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{ 'There is a problem' | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let errorMessage of errorMessages\">\n <a [id]=\"'error-' + errorMessage.fieldId\" href=\"javascript:void(0)\"\n class=\"validation-error\">{{ errorMessage.description | rpxTranslate }}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div *ngIf=\"error && (error.details || error.message)\" class=\"error-summary\" role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n <h3 class=\"heading-h3 error-summary-heading\" id=\"event_error-summary-heading\">\n The event could not be created\n </h3>\n <p>{{error.message}}</p>\n <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n <li *ngFor=\"let fieldError of error.details.field_errors\" class=\"ccd-error-summary-li\">{{fieldError.message}}</li>\n </ul>\n </div>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"callbackErrorsSubject\"></ccd-callback-errors>\n\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\">\n <div class=\"govuk-caption-l\">{{ 'Raise a query' | rpxTranslate }}</div>\n </ng-container>\n\n <h1 class=\"govuk-heading-l\">\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND; else defaultCheckYourAnswersTitle\">\n {{ 'Review query response details' | rpxTranslate }}\n </ng-container>\n\n <ng-template #defaultCheckYourAnswersTitle>\n {{ 'Review query details' | rpxTranslate }}\n </ng-template>\n </h1>\n <div class=\"govuk-!-margin-bottom-4\">\n <ccd-query-case-details-header [caseDetails]=\"caseDetails\"></ccd-query-case-details-header>\n </div>\n\n <dl *ngIf=\"queryCreateContext !== queryCreateContextEnum.FOLLOWUP\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Submitted query' : 'Query subject' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? queryItem.subject : formGroup.get('subject')?.value }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\" \n href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <dl class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Response detail' : 'Query detail' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ formGroup.get('body')?.value }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <dl *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ 'Is the query hearing related?' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n <ng-container *ngIf=\"formGroup.get('isHearingRelated')?.value === true; else isHearingRelatedFalse\">\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'Yes' }}\n </ng-container>\n <ng-template #isHearingRelatedFalse>\n {{ 'Is the query hearing related?' | rpxTranslate: null : 'No' }}\n </ng-template>\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n\n <div *ngIf=\"formGroup.get('isHearingRelated')?.value\" class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.NEW_QUERY\n ? 'What is the date of the hearing?'\n : 'What is the date of the hearing your query is related to?' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ formGroup.get('hearingDate')?.value | date: 'dd MMM yyyy' }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n <dl class=\"govuk-summary-list govuk-!-margin-bottom-0\" *ngIf=\"this.formGroup.get('attachments').value.length > 0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ queryCreateContext === queryCreateContextEnum.NEW_QUERY ? 'Upload a file to the query' : 'Document attached' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value govuk-summary-list__value--documentAttached\">\n <ccd-query-attachments-read\n *ngIf=\"this.formGroup.get('attachments').value\"\n [attachments]=\"attachments\"\n >\n </ccd-query-attachments-read>\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <dl *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n <div class=\"govuk-summary-list__row\">\n <dt class=\"govuk-summary-list__key\">\n {{ 'Closing the query' | rpxTranslate }}\n </dt>\n <dd class=\"govuk-summary-list__value\">\n {{ formGroup.get('closeQuery')?.value ? 'I want to close this query' : 'No answer' | rpxTranslate }}\n </dd>\n <dd class=\"govuk-summary-list__actions\">\n <a href=\"javascript:void(0)\" class=\"govuk-link\" (click)=\"goBack()\">\n {{ 'Change' | rpxTranslate }}\n </a>\n </dd>\n </div>\n </dl>\n\n <br>\n\n <div>\n <button class=\"govuk-button govuk-button--secondary govuk-!-margin-right-3\" data-module=\"govuk-button\"\n (click)=\"goBack()\">\n {{ 'Previous' | rpxTranslate }}\n </button>\n <button class=\"govuk-button\" data-module=\"govuk-button\" type=\"submit\" (click)=\"submit()\">\n {{ 'Submit' | rpxTranslate }}\n </button>\n </div>\n </div>\n\n <ccd-query-event-completion [eventCompletionParams]=\"eventCompletionParams\"> \n </ccd-query-event-completion>\n</div>\n", styles: [".govuk-summary-list__value--documentAttached{vertical-align:middle}\n"] }]
21816
+ }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: CasesService }, { type: CaseNotifier }, { type: WorkAllocationService }, { type: QualifyingQuestionService }, { type: QueryManagementService }, { type: ErrorNotifierService }, { type: AlertService }], { formGroup: [{
21787
21817
  type: Input
21788
21818
  }], queryItem: [{
21789
21819
  type: Input
@@ -21791,6 +21821,8 @@ class QueryCheckYourAnswersComponent {
21791
21821
  type: Input
21792
21822
  }], eventData: [{
21793
21823
  type: Input
21824
+ }], qmCaseQueriesCollectionData: [{
21825
+ type: Input
21794
21826
  }], backClicked: [{
21795
21827
  type: Output
21796
21828
  }], querySubmitted: [{
@@ -21798,7 +21830,7 @@ class QueryCheckYourAnswersComponent {
21798
21830
  }], callbackConfirmationMessage: [{
21799
21831
  type: Output
21800
21832
  }] }); })();
21801
- (() => { (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 }); })();
21833
+ (() => { (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: 31 }); })();
21802
21834
 
21803
21835
  function QueryDetailsComponent_ng_container_0_p_1_Template(rf, ctx) { if (rf & 1) {
21804
21836
  const _r1 = i0.ɵɵgetCurrentView();
@@ -22568,8 +22600,14 @@ class QueryWriteDateInputComponent {
22568
22600
  (() => { (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 }); })();
22569
22601
 
22570
22602
  const _c0$C = a0 => ({ "govuk-form-group--error": a0 });
22603
+ function QueryWriteRaiseQueryComponent_ccd_query_case_details_header_9_Template(rf, ctx) { if (rf & 1) {
22604
+ i0.ɵɵelement(0, "ccd-query-case-details-header", 5);
22605
+ } if (rf & 2) {
22606
+ const ctx_r0 = i0.ɵɵnextContext();
22607
+ i0.ɵɵproperty("caseDetails", ctx_r0.caseDetails);
22608
+ } }
22571
22609
  function QueryWriteRaiseQueryComponent_div_11_p_19_Template(rf, ctx) { if (rf & 1) {
22572
- i0.ɵɵelementStart(0, "p", 32)(1, "span", 10);
22610
+ i0.ɵɵelementStart(0, "p", 33)(1, "span", 11);
22573
22611
  i0.ɵɵtext(2);
22574
22612
  i0.ɵɵpipe(3, "rpxTranslate");
22575
22613
  i0.ɵɵelementEnd();
@@ -22577,14 +22615,14 @@ function QueryWriteRaiseQueryComponent_div_11_p_19_Template(rf, ctx) { if (rf &
22577
22615
  i0.ɵɵpipe(5, "rpxTranslate");
22578
22616
  i0.ɵɵelementEnd();
22579
22617
  } if (rf & 2) {
22580
- const ctx_r1 = i0.ɵɵnextContext(2);
22618
+ const ctx_r0 = i0.ɵɵnextContext(2);
22581
22619
  i0.ɵɵadvance(2);
22582
22620
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
22583
22621
  i0.ɵɵadvance(2);
22584
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r1.getSubjectErrorMessage()), " ");
22622
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r0.getSubjectErrorMessage()), " ");
22585
22623
  } }
22586
22624
  function QueryWriteRaiseQueryComponent_div_11_p_29_Template(rf, ctx) { if (rf & 1) {
22587
- i0.ɵɵelementStart(0, "p", 33)(1, "span", 10);
22625
+ i0.ɵɵelementStart(0, "p", 34)(1, "span", 11);
22588
22626
  i0.ɵɵtext(2);
22589
22627
  i0.ɵɵpipe(3, "rpxTranslate");
22590
22628
  i0.ɵɵelementEnd();
@@ -22592,14 +22630,14 @@ function QueryWriteRaiseQueryComponent_div_11_p_29_Template(rf, ctx) { if (rf &
22592
22630
  i0.ɵɵpipe(5, "rpxTranslate");
22593
22631
  i0.ɵɵelementEnd();
22594
22632
  } if (rf & 2) {
22595
- const ctx_r1 = i0.ɵɵnextContext(2);
22633
+ const ctx_r0 = i0.ɵɵnextContext(2);
22596
22634
  i0.ɵɵadvance(2);
22597
22635
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 2, "Error:"), " ");
22598
22636
  i0.ɵɵadvance(2);
22599
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_BODY), " ");
22637
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r0.raiseQueryErrorMessage.QUERY_BODY), " ");
22600
22638
  } }
22601
22639
  function QueryWriteRaiseQueryComponent_div_11_p_38_Template(rf, ctx) { if (rf & 1) {
22602
- i0.ɵɵelementStart(0, "p", 34)(1, "span", 10);
22640
+ i0.ɵɵelementStart(0, "p", 35)(1, "span", 11);
22603
22641
  i0.ɵɵtext(2);
22604
22642
  i0.ɵɵpipe(3, "rpxTranslate");
22605
22643
  i0.ɵɵelementEnd();
@@ -22607,14 +22645,14 @@ function QueryWriteRaiseQueryComponent_div_11_p_38_Template(rf, ctx) { if (rf &
22607
22645
  i0.ɵɵpipe(5, "rpxTranslate");
22608
22646
  i0.ɵɵelementEnd();
22609
22647
  } if (rf & 2) {
22610
- const ctx_r1 = i0.ɵɵnextContext(2);
22648
+ const ctx_r0 = i0.ɵɵnextContext(2);
22611
22649
  i0.ɵɵadvance(2);
22612
22650
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 2, "Error:"), " ");
22613
22651
  i0.ɵɵadvance(2);
22614
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_RELATED), " ");
22652
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r0.raiseQueryErrorMessage.QUERY_HEARING_RELATED), " ");
22615
22653
  } }
22616
22654
  function QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template(rf, ctx) { if (rf & 1) {
22617
- i0.ɵɵelementStart(0, "p", 40)(1, "span", 10);
22655
+ i0.ɵɵelementStart(0, "p", 41)(1, "span", 11);
22618
22656
  i0.ɵɵtext(2);
22619
22657
  i0.ɵɵpipe(3, "rpxTranslate");
22620
22658
  i0.ɵɵelementEnd();
@@ -22622,134 +22660,158 @@ function QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template(rf, c
22622
22660
  i0.ɵɵpipe(5, "rpxTranslate");
22623
22661
  i0.ɵɵelementEnd();
22624
22662
  } if (rf & 2) {
22625
- const ctx_r1 = i0.ɵɵnextContext(3);
22663
+ const ctx_r0 = i0.ɵɵnextContext(3);
22626
22664
  i0.ɵɵadvance(2);
22627
22665
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 2, "Error:"), " ");
22628
22666
  i0.ɵɵadvance(2);
22629
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r1.raiseQueryErrorMessage.QUERY_HEARING_DATE), " ");
22667
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 4, ctx_r0.raiseQueryErrorMessage.QUERY_HEARING_DATE), " ");
22630
22668
  } }
22631
22669
  function QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template(rf, ctx) { if (rf & 1) {
22632
22670
  i0.ɵɵelementContainerStart(0);
22633
- i0.ɵɵelementStart(1, "div", 35)(2, "fieldset", 36)(3, "legend")(4, "label", 37);
22671
+ i0.ɵɵelementStart(1, "div", 36)(2, "fieldset", 37)(3, "legend")(4, "label", 38);
22634
22672
  i0.ɵɵtext(5);
22635
22673
  i0.ɵɵpipe(6, "rpxTranslate");
22636
22674
  i0.ɵɵelementEnd()();
22637
- i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template, 6, 6, "p", 38);
22638
- i0.ɵɵelement(8, "ccd-query-write-date-input", 39);
22675
+ i0.ɵɵtemplate(7, QueryWriteRaiseQueryComponent_div_11_ng_container_50_p_7_Template, 6, 6, "p", 39);
22676
+ i0.ɵɵelement(8, "ccd-query-write-date-input", 40);
22639
22677
  i0.ɵɵelementEnd()();
22640
22678
  i0.ɵɵelementContainerEnd();
22641
22679
  } if (rf & 2) {
22642
- const ctx_r1 = i0.ɵɵnextContext(2);
22680
+ const ctx_r0 = i0.ɵɵnextContext(2);
22643
22681
  i0.ɵɵadvance();
22644
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").value === true && ctx_r1.formGroup.get("hearingDate").value === null));
22682
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0$C, ctx_r0.submitted && ctx_r0.formGroup.get("isHearingRelated").value === true && ctx_r0.formGroup.get("hearingDate").value === null));
22645
22683
  i0.ɵɵadvance(4);
22646
22684
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 3, "What is the date of the hearing?"), " ");
22647
22685
  i0.ɵɵadvance(2);
22648
- i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").value === true && ctx_r1.formGroup.get("hearingDate").value === null);
22686
+ i0.ɵɵproperty("ngIf", ctx_r0.submitted && ctx_r0.formGroup.get("isHearingRelated").value === true && ctx_r0.formGroup.get("hearingDate").value === null);
22649
22687
  } }
22650
22688
  function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
22651
- const _r1 = i0.ɵɵgetCurrentView();
22652
- i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div")(3, "div", 7)(4, "span", 8);
22689
+ const _r2 = i0.ɵɵgetCurrentView();
22690
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "div")(3, "div", 8)(4, "span", 9);
22653
22691
  i0.ɵɵtext(5, "!");
22654
22692
  i0.ɵɵelementEnd();
22655
- i0.ɵɵelementStart(6, "strong", 9)(7, "span", 10);
22693
+ i0.ɵɵelementStart(6, "strong", 10)(7, "span", 11);
22656
22694
  i0.ɵɵtext(8, "Warning");
22657
22695
  i0.ɵɵelementEnd();
22658
- i0.ɵɵelement(9, "ccd-markdown", 11);
22696
+ i0.ɵɵelement(9, "ccd-markdown", 12);
22659
22697
  i0.ɵɵpipe(10, "rpxTranslate");
22660
22698
  i0.ɵɵelementEnd()();
22661
- i0.ɵɵelementStart(11, "div", 12)(12, "div", 13)(13, "label", 14);
22699
+ i0.ɵɵelementStart(11, "div", 13)(12, "div", 14)(13, "label", 15);
22662
22700
  i0.ɵɵtext(14);
22663
22701
  i0.ɵɵpipe(15, "rpxTranslate");
22664
22702
  i0.ɵɵelementEnd()();
22665
- i0.ɵɵelementStart(16, "div", 15);
22703
+ i0.ɵɵelementStart(16, "div", 16);
22666
22704
  i0.ɵɵtext(17);
22667
22705
  i0.ɵɵpipe(18, "rpxTranslate");
22668
22706
  i0.ɵɵelementEnd();
22669
- i0.ɵɵtemplate(19, QueryWriteRaiseQueryComponent_div_11_p_19_Template, 6, 6, "p", 16);
22670
- i0.ɵɵelementStart(20, "input", 17);
22671
- 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()); });
22707
+ i0.ɵɵtemplate(19, QueryWriteRaiseQueryComponent_div_11_p_19_Template, 6, 6, "p", 17);
22708
+ i0.ɵɵelementStart(20, "input", 18);
22709
+ i0.ɵɵlistener("input", function QueryWriteRaiseQueryComponent_div_11_Template_input_input_20_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSubjectInput()); });
22672
22710
  i0.ɵɵelementEnd()();
22673
- i0.ɵɵelementStart(21, "div", 12)(22, "div", 13)(23, "label", 18);
22711
+ i0.ɵɵelementStart(21, "div", 13)(22, "div", 14)(23, "label", 19);
22674
22712
  i0.ɵɵtext(24);
22675
22713
  i0.ɵɵpipe(25, "rpxTranslate");
22676
22714
  i0.ɵɵelementEnd()();
22677
- i0.ɵɵelementStart(26, "div", 19);
22715
+ i0.ɵɵelementStart(26, "div", 20);
22678
22716
  i0.ɵɵtext(27);
22679
22717
  i0.ɵɵpipe(28, "rpxTranslate");
22680
22718
  i0.ɵɵelementEnd();
22681
- i0.ɵɵtemplate(29, QueryWriteRaiseQueryComponent_div_11_p_29_Template, 6, 6, "p", 20);
22682
- i0.ɵɵelementStart(30, "textarea", 21);
22719
+ i0.ɵɵtemplate(29, QueryWriteRaiseQueryComponent_div_11_p_29_Template, 6, 6, "p", 21);
22720
+ i0.ɵɵelementStart(30, "textarea", 22);
22683
22721
  i0.ɵɵtext(31, " ");
22684
22722
  i0.ɵɵelementEnd()();
22685
- i0.ɵɵelementStart(32, "div", 12)(33, "fieldset", 22)(34, "legend")(35, "label", 23);
22723
+ i0.ɵɵelementStart(32, "div", 13)(33, "fieldset", 23)(34, "legend")(35, "label", 24);
22686
22724
  i0.ɵɵtext(36);
22687
22725
  i0.ɵɵpipe(37, "rpxTranslate");
22688
22726
  i0.ɵɵelementEnd()();
22689
- i0.ɵɵtemplate(38, QueryWriteRaiseQueryComponent_div_11_p_38_Template, 6, 6, "p", 24);
22690
- i0.ɵɵelementStart(39, "div", 25)(40, "div", 26);
22691
- i0.ɵɵelement(41, "input", 27);
22692
- i0.ɵɵelementStart(42, "label", 28);
22727
+ i0.ɵɵtemplate(38, QueryWriteRaiseQueryComponent_div_11_p_38_Template, 6, 6, "p", 25);
22728
+ i0.ɵɵelementStart(39, "div", 26)(40, "div", 27);
22729
+ i0.ɵɵelement(41, "input", 28);
22730
+ i0.ɵɵelementStart(42, "label", 29);
22693
22731
  i0.ɵɵtext(43);
22694
22732
  i0.ɵɵpipe(44, "rpxTranslate");
22695
22733
  i0.ɵɵelementEnd()();
22696
- i0.ɵɵelementStart(45, "div", 26);
22697
- i0.ɵɵelement(46, "input", 29);
22698
- i0.ɵɵelementStart(47, "label", 30);
22734
+ i0.ɵɵelementStart(45, "div", 27);
22735
+ i0.ɵɵelement(46, "input", 30);
22736
+ i0.ɵɵelementStart(47, "label", 31);
22699
22737
  i0.ɵɵtext(48);
22700
22738
  i0.ɵɵpipe(49, "rpxTranslate");
22701
22739
  i0.ɵɵelementEnd()()()();
22702
- i0.ɵɵtemplate(50, QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template, 9, 7, "ng-container", 31);
22740
+ i0.ɵɵtemplate(50, QueryWriteRaiseQueryComponent_div_11_ng_container_50_Template, 9, 7, "ng-container", 32);
22703
22741
  i0.ɵɵelementEnd()()()();
22704
22742
  } if (rf & 2) {
22705
- const ctx_r1 = i0.ɵɵnextContext();
22743
+ const ctx_r0 = i0.ɵɵnextContext();
22706
22744
  i0.ɵɵadvance();
22707
- i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
22745
+ i0.ɵɵproperty("formGroup", ctx_r0.formGroup);
22708
22746
  i0.ɵɵadvance(8);
22709
- i0.ɵɵproperty("content", i0.ɵɵpipeBind1(10, 23, ctx_r1.serviceMessage));
22747
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(10, 23, ctx_r0.serviceMessage));
22710
22748
  i0.ɵɵadvance(2);
22711
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(43, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("subject").hasError("required")));
22749
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(43, _c0$C, ctx_r0.submitted && ctx_r0.formGroup.get("subject").hasError("required")));
22712
22750
  i0.ɵɵadvance(3);
22713
22751
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 25, "Query subject"), " ");
22714
22752
  i0.ɵɵadvance(3);
22715
22753
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 27, "The subject should be a summary of your query"), " ");
22716
22754
  i0.ɵɵadvance(2);
22717
- i0.ɵɵproperty("ngIf", ctx_r1.submitted && (ctx_r1.formGroup.get("subject").hasError("required") || ctx_r1.formGroup.get("subject").hasError("maxlength")));
22755
+ i0.ɵɵproperty("ngIf", ctx_r0.submitted && (ctx_r0.formGroup.get("subject").hasError("required") || ctx_r0.formGroup.get("subject").hasError("maxlength")));
22718
22756
  i0.ɵɵadvance(2);
22719
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(45, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required")));
22757
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(45, _c0$C, ctx_r0.submitted && ctx_r0.formGroup.get("body").hasError("required")));
22720
22758
  i0.ɵɵadvance(3);
22721
22759
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 29, "Query detail"), " ");
22722
22760
  i0.ɵɵadvance(3);
22723
22761
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(28, 31, "Include as many details as possible so case workers can respond to your query"), " ");
22724
22762
  i0.ɵɵadvance(2);
22725
- i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22763
+ i0.ɵɵproperty("ngIf", ctx_r0.submitted && ctx_r0.formGroup.get("body").hasError("required"));
22726
22764
  i0.ɵɵadvance();
22727
- i0.ɵɵclassProp("govuk-textarea--error", ctx_r1.submitted && ctx_r1.formGroup.get("body").hasError("required"));
22765
+ i0.ɵɵclassProp("govuk-textarea--error", ctx_r0.submitted && ctx_r0.formGroup.get("body").hasError("required"));
22728
22766
  i0.ɵɵproperty("formControlName", "body");
22729
22767
  i0.ɵɵadvance(2);
22730
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(47, _c0$C, ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required")));
22768
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(47, _c0$C, ctx_r0.submitted && ctx_r0.formGroup.get("isHearingRelated").hasError("required")));
22731
22769
  i0.ɵɵadvance(4);
22732
22770
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(37, 33, "Is the query hearing related?"), " ");
22733
22771
  i0.ɵɵadvance(2);
22734
- i0.ɵɵproperty("ngIf", ctx_r1.submitted && ctx_r1.formGroup.get("isHearingRelated").hasError("required"));
22772
+ i0.ɵɵproperty("ngIf", ctx_r0.submitted && ctx_r0.formGroup.get("isHearingRelated").hasError("required"));
22735
22773
  i0.ɵɵadvance(3);
22736
- i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === true)("value", true);
22774
+ i0.ɵɵproperty("checked", ctx_r0.formGroup.get("isHearingRelated").value === true)("value", true);
22737
22775
  i0.ɵɵadvance(2);
22738
22776
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(44, 35, "Is the query hearing related?", null, "Yes"), " ");
22739
22777
  i0.ɵɵadvance(3);
22740
- i0.ɵɵproperty("checked", ctx_r1.formGroup.get("isHearingRelated").value === false)("value", false);
22778
+ i0.ɵɵproperty("checked", ctx_r0.formGroup.get("isHearingRelated").value === false)("value", false);
22741
22779
  i0.ɵɵadvance(2);
22742
22780
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(49, 39, "Is the query hearing related?", null, "No"), " ");
22743
22781
  i0.ɵɵadvance(2);
22744
- i0.ɵɵproperty("ngIf", ctx_r1.formGroup.get("isHearingRelated").value);
22782
+ i0.ɵɵproperty("ngIf", ctx_r0.formGroup.get("isHearingRelated").value);
22745
22783
  } }
22746
22784
  class QueryWriteRaiseQueryComponent {
22785
+ queryManagementService;
22786
+ route;
22747
22787
  formGroup;
22748
22788
  submitted;
22749
22789
  caseDetails;
22750
22790
  showForm;
22751
22791
  serviceMessage;
22792
+ queryCreateContext;
22793
+ eventData = null;
22794
+ queryItem;
22795
+ validate;
22796
+ triggerSubmission;
22797
+ queryDataCreated = new EventEmitter();
22752
22798
  raiseQueryErrorMessage = RaiseQueryErrorMessage;
22799
+ eventCompletionParams;
22800
+ messgaeId;
22801
+ constructor(queryManagementService, route) {
22802
+ this.queryManagementService = queryManagementService;
22803
+ this.route = route;
22804
+ }
22805
+ ngOnChanges() {
22806
+ this.messgaeId = this.route.snapshot.params.dataid;
22807
+ const isCollectionDataSet = this.setCaseQueriesCollectionData();
22808
+ if (isCollectionDataSet) {
22809
+ if (this.triggerSubmission) {
22810
+ const data = this.generateCaseQueriesCollectionData();
22811
+ this.queryDataCreated.emit(data);
22812
+ }
22813
+ }
22814
+ }
22753
22815
  onSubjectInput() {
22754
22816
  const control = this.formGroup.get('subject');
22755
22817
  const value = control?.value;
@@ -22767,8 +22829,19 @@ class QueryWriteRaiseQueryComponent {
22767
22829
  }
22768
22830
  return '';
22769
22831
  }
22770
- static ɵfac = function QueryWriteRaiseQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRaiseQueryComponent)(); };
22771
- 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) {
22832
+ setCaseQueriesCollectionData() {
22833
+ if (!this.eventData) {
22834
+ console.warn('Event data not available; skipping collection setup.');
22835
+ return false;
22836
+ }
22837
+ this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messgaeId);
22838
+ return true;
22839
+ }
22840
+ generateCaseQueriesCollectionData() {
22841
+ return this.queryManagementService.generateCaseQueriesCollectionData(this.formGroup, this.queryCreateContext, this.queryItem, this.messgaeId);
22842
+ }
22843
+ static ɵfac = function QueryWriteRaiseQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRaiseQueryComponent)(i0.ɵɵdirectiveInject(QueryManagementService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute)); };
22844
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteRaiseQueryComponent, selectors: [["ccd-query-write-raise-query"]], inputs: { formGroup: "formGroup", submitted: "submitted", caseDetails: "caseDetails", showForm: "showForm", serviceMessage: "serviceMessage", queryCreateContext: "queryCreateContext", eventData: "eventData", queryItem: "queryItem", validate: "validate", triggerSubmission: "triggerSubmission" }, outputs: { queryDataCreated: "queryDataCreated" }, features: [i0.ɵɵNgOnChangesFeature], decls: 12, vars: 8, consts: [[1, "govuk-!-margin-bottom-6"], [1, "govuk-caption-l"], [1, "govuk-heading-l", "govuk-!-margin-bottom-4"], [3, "caseDetails", 4, "ngIf"], ["class", "govuk-!-margin-bottom-4", 4, "ngIf"], [3, "caseDetails"], [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) {
22772
22845
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "div", 1);
22773
22846
  i0.ɵɵtext(3);
22774
22847
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22778,7 +22851,7 @@ class QueryWriteRaiseQueryComponent {
22778
22851
  i0.ɵɵpipe(7, "rpxTranslate");
22779
22852
  i0.ɵɵelementEnd()();
22780
22853
  i0.ɵɵelementStart(8, "div");
22781
- i0.ɵɵelement(9, "ccd-query-case-details-header", 3);
22854
+ i0.ɵɵtemplate(9, QueryWriteRaiseQueryComponent_ccd_query_case_details_header_9_Template, 1, 1, "ccd-query-case-details-header", 3);
22782
22855
  i0.ɵɵelementEnd();
22783
22856
  i0.ɵɵelement(10, "hr");
22784
22857
  i0.ɵɵtemplate(11, QueryWriteRaiseQueryComponent_div_11_Template, 51, 49, "div", 4);
@@ -22789,15 +22862,15 @@ class QueryWriteRaiseQueryComponent {
22789
22862
  i0.ɵɵadvance(3);
22790
22863
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 6, "Enter query details"));
22791
22864
  i0.ɵɵadvance(3);
22792
- i0.ɵɵproperty("caseDetails", ctx.caseDetails);
22865
+ i0.ɵɵproperty("ngIf", ctx.caseDetails);
22793
22866
  i0.ɵɵadvance(2);
22794
22867
  i0.ɵɵproperty("ngIf", ctx.showForm);
22795
22868
  } }, encapsulation: 2 });
22796
22869
  }
22797
22870
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRaiseQueryComponent, [{
22798
22871
  type: Component,
22799
- 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" }]
22800
- }], null, { formGroup: [{
22872
+ 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\" *ngIf=\"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" }]
22873
+ }], () => [{ type: QueryManagementService }, { type: i1$1.ActivatedRoute }], { formGroup: [{
22801
22874
  type: Input
22802
22875
  }], submitted: [{
22803
22876
  type: Input
@@ -22807,11 +22880,29 @@ class QueryWriteRaiseQueryComponent {
22807
22880
  type: Input
22808
22881
  }], serviceMessage: [{
22809
22882
  type: Input
22883
+ }], queryCreateContext: [{
22884
+ type: Input
22885
+ }], eventData: [{
22886
+ type: Input
22887
+ }], queryItem: [{
22888
+ type: Input
22889
+ }], validate: [{
22890
+ type: Input
22891
+ }], triggerSubmission: [{
22892
+ type: Input
22893
+ }], queryDataCreated: [{
22894
+ type: Output
22810
22895
  }] }); })();
22811
- (() => { (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 }); })();
22896
+ (() => { (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: 19 }); })();
22812
22897
 
22898
+ function QueryWriteRespondToQueryComponent_ccd_query_case_details_header_9_Template(rf, ctx) { if (rf & 1) {
22899
+ i0.ɵɵelement(0, "ccd-query-case-details-header", 8);
22900
+ } if (rf & 2) {
22901
+ const ctx_r0 = i0.ɵɵnextContext();
22902
+ i0.ɵɵproperty("caseDetails", ctx_r0.caseDetails);
22903
+ } }
22813
22904
  function QueryWriteRespondToQueryComponent_div_12_div_1_p_10_Template(rf, ctx) { if (rf & 1) {
22814
- i0.ɵɵelementStart(0, "p", 16)(1, "span", 17);
22905
+ i0.ɵɵelementStart(0, "p", 17)(1, "span", 18);
22815
22906
  i0.ɵɵtext(2);
22816
22907
  i0.ɵɵpipe(3, "rpxTranslate");
22817
22908
  i0.ɵɵelementEnd();
@@ -22826,16 +22917,16 @@ function QueryWriteRespondToQueryComponent_div_12_div_1_p_10_Template(rf, ctx) {
22826
22917
  i0.ɵɵtextInterpolate1("", ctx_r0.queryCreateContext === ctx_r0.queryCreateContextEnum.RESPOND ? ctx_r0.raiseQueryErrorMessages.RESPOND_QUERY_BODY : i0.ɵɵpipeBind1(5, 4, ctx_r0.raiseQueryErrorMessages.QUERY_BODY), " ");
22827
22918
  } }
22828
22919
  function QueryWriteRespondToQueryComponent_div_12_div_1_Template(rf, ctx) { if (rf & 1) {
22829
- i0.ɵɵelementStart(0, "div")(1, "h1", 9);
22920
+ i0.ɵɵelementStart(0, "div")(1, "h1", 10);
22830
22921
  i0.ɵɵtext(2);
22831
22922
  i0.ɵɵpipe(3, "rpxTranslate");
22832
22923
  i0.ɵɵelementEnd();
22833
- i0.ɵɵelementStart(4, "div", 10)(5, "div", 11)(6, "div", 12)(7, "label", 13);
22924
+ i0.ɵɵelementStart(4, "div", 11)(5, "div", 12)(6, "div", 13)(7, "label", 14);
22834
22925
  i0.ɵɵtext(8);
22835
22926
  i0.ɵɵpipe(9, "rpxTranslate");
22836
22927
  i0.ɵɵelementEnd()();
22837
- i0.ɵɵtemplate(10, QueryWriteRespondToQueryComponent_div_12_div_1_p_10_Template, 6, 6, "p", 14);
22838
- i0.ɵɵelementStart(11, "textarea", 15);
22928
+ i0.ɵɵtemplate(10, QueryWriteRespondToQueryComponent_div_12_div_1_p_10_Template, 6, 6, "p", 15);
22929
+ i0.ɵɵelementStart(11, "textarea", 16);
22839
22930
  i0.ɵɵtext(12, " ");
22840
22931
  i0.ɵɵelementEnd()()()();
22841
22932
  } if (rf & 2) {
@@ -22858,7 +22949,7 @@ function QueryWriteRespondToQueryComponent_div_12_div_1_Template(rf, ctx) { if (
22858
22949
  i0.ɵɵproperty("formControlName", "body");
22859
22950
  } }
22860
22951
  function QueryWriteRespondToQueryComponent_div_12_Template(rf, ctx) { if (rf & 1) {
22861
- i0.ɵɵelementStart(0, "div", 8);
22952
+ i0.ɵɵelementStart(0, "div", 9);
22862
22953
  i0.ɵɵtemplate(1, QueryWriteRespondToQueryComponent_div_12_div_1_Template, 13, 13, "div", 7);
22863
22954
  i0.ɵɵelementEnd();
22864
22955
  } if (rf & 2) {
@@ -22867,14 +22958,14 @@ function QueryWriteRespondToQueryComponent_div_12_Template(rf, ctx) { if (rf & 1
22867
22958
  i0.ɵɵproperty("ngIf", !ctx_r0.hasRespondedToQuery);
22868
22959
  } }
22869
22960
  function QueryWriteRespondToQueryComponent_ng_container_13_ccd_close_query_1_Template(rf, ctx) { if (rf & 1) {
22870
- i0.ɵɵelement(0, "ccd-close-query", 10);
22961
+ i0.ɵɵelement(0, "ccd-close-query", 11);
22871
22962
  } if (rf & 2) {
22872
22963
  const ctx_r0 = i0.ɵɵnextContext(2);
22873
22964
  i0.ɵɵproperty("formGroup", ctx_r0.formGroup);
22874
22965
  } }
22875
22966
  function QueryWriteRespondToQueryComponent_ng_container_13_Template(rf, ctx) { if (rf & 1) {
22876
22967
  i0.ɵɵelementContainerStart(0);
22877
- i0.ɵɵtemplate(1, QueryWriteRespondToQueryComponent_ng_container_13_ccd_close_query_1_Template, 1, 1, "ccd-close-query", 18);
22968
+ i0.ɵɵtemplate(1, QueryWriteRespondToQueryComponent_ng_container_13_ccd_close_query_1_Template, 1, 1, "ccd-close-query", 19);
22878
22969
  i0.ɵɵelementContainerEnd();
22879
22970
  } if (rf & 2) {
22880
22971
  const ctx_r0 = i0.ɵɵnextContext();
@@ -22884,12 +22975,16 @@ function QueryWriteRespondToQueryComponent_ng_container_13_Template(rf, ctx) { i
22884
22975
  class QueryWriteRespondToQueryComponent {
22885
22976
  caseNotifier;
22886
22977
  route;
22978
+ queryManagementService;
22887
22979
  queryItem;
22888
22980
  formGroup;
22889
22981
  queryCreateContext;
22890
22982
  submitted = false;
22891
22983
  caseQueriesCollections;
22892
22984
  showForm;
22985
+ triggerSubmission;
22986
+ eventData = null;
22987
+ queryDataCreated = new EventEmitter();
22893
22988
  hasRespondedToQueryTask = new EventEmitter();
22894
22989
  queryCreateContextEnum = QueryCreateContext;
22895
22990
  raiseQueryErrorMessages = RaiseQueryErrorMessage;
@@ -22899,11 +22994,13 @@ class QueryWriteRespondToQueryComponent {
22899
22994
  queryResponseStatus;
22900
22995
  queryListData;
22901
22996
  hasRespondedToQuery = false;
22997
+ messgaeId;
22902
22998
  static QUERY_ITEM_RESPOND = '3';
22903
22999
  static QUERY_ITEM_FOLLOWUP = '4';
22904
- constructor(caseNotifier, route) {
23000
+ constructor(caseNotifier, route, queryManagementService) {
22905
23001
  this.caseNotifier = caseNotifier;
22906
23002
  this.route = route;
23003
+ this.queryManagementService = queryManagementService;
22907
23004
  }
22908
23005
  ngOnInit() {
22909
23006
  this.queryItemId = this.route.snapshot.params.qid;
@@ -22945,13 +23042,31 @@ class QueryWriteRespondToQueryComponent {
22945
23042
  : matchingMessage?.id;
22946
23043
  this.queryListData = queryWithChildren?.queries.find((query) => query?.id === targetId);
22947
23044
  this.queryResponseStatus = this.queryListData?.responseStatus;
23045
+ const isCollectionDataSet = this.setCaseQueriesCollectionData();
23046
+ if (isCollectionDataSet) {
23047
+ if (this.triggerSubmission) {
23048
+ const data = this.generateCaseQueriesCollectionData();
23049
+ this.queryDataCreated.emit(data);
23050
+ }
23051
+ }
22948
23052
  }
22949
23053
  hasResponded(value) {
22950
23054
  this.hasRespondedToQuery = value;
22951
23055
  this.hasRespondedToQueryTask.emit(value);
22952
23056
  }
22953
- static ɵfac = function QueryWriteRespondToQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRespondToQueryComponent)(i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute)); };
22954
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteRespondToQueryComponent, selectors: [["ccd-query-write-respond-to-query"]], inputs: { queryItem: "queryItem", formGroup: "formGroup", queryCreateContext: "queryCreateContext", submitted: "submitted", caseQueriesCollections: "caseQueriesCollections", showForm: "showForm" }, outputs: { hasRespondedToQueryTask: "hasRespondedToQueryTask" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 11, consts: [[1, "govuk-!-margin-bottom-6"], [1, "govuk-caption-l"], [1, "govuk-heading-l", "govuk-!-margin-bottom-0"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails"], [3, "hasResponded", "query", "queryResponseStatus"], ["class", "query-respond", 4, "ngIf"], [4, "ngIf"], [1, "query-respond"], [1, "govuk-heading-m"], [3, "formGroup"], [1, "govuk-form-group", "body-textarea"], [1, "govuk-label-wrapper"], ["for", "body", 1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["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"], ["id", "body-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [3, "formGroup", 4, "ngIf"]], template: function QueryWriteRespondToQueryComponent_Template(rf, ctx) { if (rf & 1) {
23057
+ setCaseQueriesCollectionData() {
23058
+ if (!this.eventData) {
23059
+ console.warn('Event data not available; skipping collection setup.');
23060
+ return false;
23061
+ }
23062
+ this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messgaeId);
23063
+ return true;
23064
+ }
23065
+ generateCaseQueriesCollectionData() {
23066
+ return this.queryManagementService.generateCaseQueriesCollectionData(this.formGroup, this.queryCreateContext, this.queryItem, this.messgaeId);
23067
+ }
23068
+ static ɵfac = function QueryWriteRespondToQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRespondToQueryComponent)(i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(QueryManagementService)); };
23069
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteRespondToQueryComponent, selectors: [["ccd-query-write-respond-to-query"]], inputs: { queryItem: "queryItem", formGroup: "formGroup", queryCreateContext: "queryCreateContext", submitted: "submitted", caseQueriesCollections: "caseQueriesCollections", showForm: "showForm", triggerSubmission: "triggerSubmission", eventData: "eventData" }, outputs: { queryDataCreated: "queryDataCreated", hasRespondedToQueryTask: "hasRespondedToQueryTask" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 11, consts: [[1, "govuk-!-margin-bottom-6"], [1, "govuk-caption-l"], [1, "govuk-heading-l", "govuk-!-margin-bottom-0"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails", 4, "ngIf"], [3, "hasResponded", "query", "queryResponseStatus"], ["class", "query-respond", 4, "ngIf"], [4, "ngIf"], [3, "caseDetails"], [1, "query-respond"], [1, "govuk-heading-m"], [3, "formGroup"], [1, "govuk-form-group", "body-textarea"], [1, "govuk-label-wrapper"], ["for", "body", 1, "govuk-label", "govuk-label--m", "govuk-!-font-weight-bold"], ["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"], ["id", "body-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [3, "formGroup", 4, "ngIf"]], template: function QueryWriteRespondToQueryComponent_Template(rf, ctx) { if (rf & 1) {
22955
23070
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 0)(2, "div", 1);
22956
23071
  i0.ɵɵtext(3);
22957
23072
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22961,7 +23076,7 @@ class QueryWriteRespondToQueryComponent {
22961
23076
  i0.ɵɵpipe(7, "rpxTranslate");
22962
23077
  i0.ɵɵelementEnd()();
22963
23078
  i0.ɵɵelementStart(8, "div", 3);
22964
- i0.ɵɵelement(9, "ccd-query-case-details-header", 4);
23079
+ i0.ɵɵtemplate(9, QueryWriteRespondToQueryComponent_ccd_query_case_details_header_9_Template, 1, 1, "ccd-query-case-details-header", 4);
22965
23080
  i0.ɵɵelementEnd();
22966
23081
  i0.ɵɵelementStart(10, "div")(11, "ccd-query-details", 5);
22967
23082
  i0.ɵɵlistener("hasResponded", function QueryWriteRespondToQueryComponent_Template_ccd_query_details_hasResponded_11_listener($event) { return ctx.hasResponded($event); });
@@ -22973,7 +23088,7 @@ class QueryWriteRespondToQueryComponent {
22973
23088
  i0.ɵɵadvance(3);
22974
23089
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 9, "Query details"));
22975
23090
  i0.ɵɵadvance(3);
22976
- i0.ɵɵproperty("caseDetails", ctx.caseDetails);
23091
+ i0.ɵɵproperty("ngIf", ctx.caseDetails);
22977
23092
  i0.ɵɵadvance(2);
22978
23093
  i0.ɵɵproperty("query", ctx.queryListData)("queryResponseStatus", ctx.queryResponseStatus);
22979
23094
  i0.ɵɵadvance();
@@ -22984,8 +23099,8 @@ class QueryWriteRespondToQueryComponent {
22984
23099
  }
22985
23100
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRespondToQueryComponent, [{
22986
23101
  type: Component,
22987
- args: [{ selector: 'ccd-query-write-respond-to-query', template: "<div class=\"govuk-!-margin-bottom-6\">\n <div class=\"govuk-!-margin-bottom-6\">\n <div class=\"govuk-caption-l\">{{ 'Respond to a query' | rpxTranslate }}</div>\n <h1 class=\"govuk-heading-l govuk-!-margin-bottom-0\">{{ 'Query details' | rpxTranslate }}</h1>\n </div>\n\n <div class=\"govuk-!-margin-bottom-4\">\n <ccd-query-case-details-header [caseDetails]=\"caseDetails\"></ccd-query-case-details-header>\n </div>\n\n <div>\n <ccd-query-details [query]=\"queryListData\"\n [queryResponseStatus]=\"queryResponseStatus\"\n (hasResponded)=\"hasResponded($event)\"></ccd-query-details>\n </div>\n</div>\n<div class=\"query-respond\" *ngIf=\"showForm\">\n <div *ngIf=\"!hasRespondedToQuery\">\n <h1 class=\"govuk-heading-m\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Respond to a query' : 'Ask a follow-up question' | rpxTranslate }}\n </h1>\n\n <div [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group body-textarea\"\n [class.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 {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Response detail' : 'Query Body' | rpxTranslate }}\n </label>\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>{{ queryCreateContext === queryCreateContextEnum.RESPOND ? raiseQueryErrorMessages.RESPOND_QUERY_BODY : raiseQueryErrorMessages.QUERY_BODY | rpxTranslate }}\n </p>\n <textarea [formControlName]=\"'body'\" class=\"govuk-textarea\"\n [class.govuk-textarea--error]=\"submitted && formGroup.get('body')?.hasError('required')\" id=\"body\"\n name=\"body\" rows=\"5\" aria-describedby=\"body-hint body-error\">\n </textarea>\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n <ccd-close-query *ngIf=\"!hasRespondedToQuery\"\n [formGroup]=\"formGroup\">\n </ccd-close-query>\n</ng-container>", styles: [".query-respond{width:100%;max-width:720px}\n"] }]
22988
- }], () => [{ type: CaseNotifier }, { type: i1$1.ActivatedRoute }], { queryItem: [{
23102
+ args: [{ selector: 'ccd-query-write-respond-to-query', template: "<div class=\"govuk-!-margin-bottom-6\">\n <div class=\"govuk-!-margin-bottom-6\">\n <div class=\"govuk-caption-l\">{{ 'Respond to a query' | rpxTranslate }}</div>\n <h1 class=\"govuk-heading-l govuk-!-margin-bottom-0\">{{ 'Query details' | rpxTranslate }}</h1>\n </div>\n\n <div class=\"govuk-!-margin-bottom-4\">\n <ccd-query-case-details-header [caseDetails]=\"caseDetails\" *ngIf=\"caseDetails\"></ccd-query-case-details-header>\n </div>\n\n <div>\n <ccd-query-details [query]=\"queryListData\"\n [queryResponseStatus]=\"queryResponseStatus\"\n (hasResponded)=\"hasResponded($event)\"></ccd-query-details>\n </div>\n</div>\n<div class=\"query-respond\" *ngIf=\"showForm\">\n <div *ngIf=\"!hasRespondedToQuery\">\n <h1 class=\"govuk-heading-m\">\n {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Respond to a query' : 'Ask a follow-up question' | rpxTranslate }}\n </h1>\n\n <div [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group body-textarea\"\n [class.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 {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Response detail' : 'Query Body' | rpxTranslate }}\n </label>\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>{{ queryCreateContext === queryCreateContextEnum.RESPOND ? raiseQueryErrorMessages.RESPOND_QUERY_BODY : raiseQueryErrorMessages.QUERY_BODY | rpxTranslate }}\n </p>\n <textarea [formControlName]=\"'body'\" class=\"govuk-textarea\"\n [class.govuk-textarea--error]=\"submitted && formGroup.get('body')?.hasError('required')\" id=\"body\"\n name=\"body\" rows=\"5\" aria-describedby=\"body-hint body-error\">\n </textarea>\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n <ccd-close-query *ngIf=\"!hasRespondedToQuery\"\n [formGroup]=\"formGroup\">\n </ccd-close-query>\n</ng-container>", styles: [".query-respond{width:100%;max-width:720px}\n"] }]
23103
+ }], () => [{ type: CaseNotifier }, { type: i1$1.ActivatedRoute }, { type: QueryManagementService }], { queryItem: [{
22989
23104
  type: Input
22990
23105
  }], formGroup: [{
22991
23106
  type: Input
@@ -22997,10 +23112,16 @@ class QueryWriteRespondToQueryComponent {
22997
23112
  type: Input
22998
23113
  }], showForm: [{
22999
23114
  type: Input
23115
+ }], triggerSubmission: [{
23116
+ type: Input
23117
+ }], eventData: [{
23118
+ type: Input
23119
+ }], queryDataCreated: [{
23120
+ type: Output
23000
23121
  }], hasRespondedToQueryTask: [{
23001
23122
  type: Output
23002
23123
  }] }); })();
23003
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRespondToQueryComponent, { className: "QueryWriteRespondToQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.ts", lineNumber: 14 }); })();
23124
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryWriteRespondToQueryComponent, { className: "QueryWriteRespondToQueryComponent", filePath: "lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.ts", lineNumber: 18 }); })();
23004
23125
 
23005
23126
  function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {
23006
23127
  i0.ɵɵelementContainerStart(0);
@@ -23217,23 +23338,32 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_conta
23217
23338
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
23218
23339
  } }
23219
23340
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
23220
- i0.ɵɵelementStart(0, "div")(1, "p", 10);
23341
+ i0.ɵɵelementStart(0, "div")(1, "button", 9);
23221
23342
  i0.ɵɵtext(2);
23222
23343
  i0.ɵɵpipe(3, "rpxTranslate");
23223
23344
  i0.ɵɵelementEnd();
23224
- i0.ɵɵelementStart(4, "p");
23345
+ i0.ɵɵelementStart(4, "p", 10);
23225
23346
  i0.ɵɵtext(5);
23226
23347
  i0.ɵɵpipe(6, "rpxTranslate");
23348
+ i0.ɵɵelementEnd();
23349
+ i0.ɵɵelementStart(7, "p");
23350
+ i0.ɵɵtext(8);
23351
+ i0.ɵɵpipe(9, "rpxTranslate");
23227
23352
  i0.ɵɵelementEnd()();
23228
23353
  } if (rf & 2) {
23229
- i0.ɵɵadvance(2);
23230
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Your query is under review"));
23354
+ const ctx_r1 = i0.ɵɵnextContext(3);
23355
+ i0.ɵɵadvance();
23356
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction2(10, _c0$B, ctx_r1.caseId, ctx_r1.query.id));
23357
+ i0.ɵɵadvance();
23358
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "Ask a follow-up question"), " ");
23359
+ i0.ɵɵadvance(3);
23360
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, "Your query is under review"));
23231
23361
  i0.ɵɵadvance(3);
23232
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Our team will read your query and respond. Do not submit the same query more than once."));
23362
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 8, "Our team will read your query and respond. Do not submit the same query more than once."));
23233
23363
  } }
23234
23364
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23235
23365
  i0.ɵɵelementContainerStart(0);
23236
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template, 4, 7, "ng-container", 2)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template, 7, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
23366
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template, 4, 7, "ng-container", 2)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template, 10, 13, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
23237
23367
  i0.ɵɵelementContainerEnd();
23238
23368
  } if (rf & 2) {
23239
23369
  const queryIsInReview_r5 = i0.ɵɵreference(3);
@@ -23268,7 +23398,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
23268
23398
  const ctx_r1 = i0.ɵɵnextContext();
23269
23399
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
23270
23400
  i0.ɵɵadvance();
23271
- i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && !ctx_r1.isQueryClosed);
23401
+ i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && !ctx_r1.isQueryClosed && (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) > 0);
23272
23402
  i0.ɵɵadvance();
23273
23403
  i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && ctx_r1.isQueryClosed);
23274
23404
  } }
@@ -23336,7 +23466,7 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
23336
23466
  }
23337
23467
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
23338
23468
  type: Component,
23339
- args: [{ selector: 'ccd-read-query-management-field', template: "<ng-container *ngIf=\"showQueryList; else singleQueryDetails\">\n <ng-container *ngFor=\"let caseQueriesCollection of caseQueriesCollections\">\n <div *ngIf=\"showQueryList\" class=\"govuk-!-margin-top-8 govuk-!-margin-bottom-8\">\n <ccd-query-list (selectedQuery)=\"setQuery($event)\" [caseQueriesCollection]=\"caseQueriesCollection\"></ccd-query-list>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #singleQueryDetails>\n <ccd-query-details\n [query]=\"query\"\n (backClicked)=\"showQueryList = true\"\n [caseId]=\"caseId\"\n ></ccd-query-details>\n\n <ng-container *ngIf=\"!isInternalUser() && !isQueryClosed\">\n <ng-container *ngIf=\"query?.children?.length > 0 && query?.children?.length % 2 === 1; else queryIsInReview\">\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n </ng-container>\n\n <ng-template #queryIsInReview>\n <div>\n <p class=\"govuk-!-font-weight-bold\">{{ 'Your query is under review' | rpxTranslate }}</p>\n <p>{{ 'Our team will read your query and respond. Do not submit the same query more than once.' | rpxTranslate }}</p>\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!isInternalUser() && isQueryClosed\">\n <div class=\"govuk-warning-text\">\n <span aria-hidden=\"true\" class=\"govuk-warning-text__icon\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-visually-hidden\">Warning</span>\n <p class=\"qm-service-message govuk-!-font-weight-bold\">{{ 'This query has been closed by court staff.' | rpxTranslate }}</p>\n </strong>\n </div>\n </ng-container>\n</ng-template>\n" }]
23469
+ args: [{ selector: 'ccd-read-query-management-field', template: "<ng-container *ngIf=\"showQueryList; else singleQueryDetails\">\n <ng-container *ngFor=\"let caseQueriesCollection of caseQueriesCollections\">\n <div *ngIf=\"showQueryList\" class=\"govuk-!-margin-top-8 govuk-!-margin-bottom-8\">\n <ccd-query-list (selectedQuery)=\"setQuery($event)\" [caseQueriesCollection]=\"caseQueriesCollection\"></ccd-query-list>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #singleQueryDetails>\n <ccd-query-details\n [query]=\"query\"\n (backClicked)=\"showQueryList = true\"\n [caseId]=\"caseId\"\n ></ccd-query-details>\n\n <ng-container *ngIf=\"!isInternalUser() && !isQueryClosed && query?.children?.length > 0\">\n <ng-container *ngIf=\"query?.children?.length > 0 && query?.children?.length % 2 === 1; else queryIsInReview\">\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n </ng-container>\n\n <ng-template #queryIsInReview>\n <div>\n <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n {{ 'Ask a follow-up question' | rpxTranslate }}\n </button>\n <p class=\"govuk-!-font-weight-bold\">{{ 'Your query is under review' | rpxTranslate }}</p>\n <p>{{ 'Our team will read your query and respond. Do not submit the same query more than once.' | rpxTranslate }}</p>\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!isInternalUser() && isQueryClosed\">\n <div class=\"govuk-warning-text\">\n <span aria-hidden=\"true\" class=\"govuk-warning-text__icon\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-visually-hidden\">Warning</span>\n <p class=\"qm-service-message govuk-!-font-weight-bold\">{{ 'This query has been closed by court staff.' | rpxTranslate }}</p>\n </strong>\n </div>\n </ng-container>\n</ng-template>\n" }]
23340
23470
  }], () => [{ type: i1$1.ActivatedRoute }, { type: SessionStorageService }, { type: CaseNotifier }], null); })();
23341
23471
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 15 }); })();
23342
23472
 
@@ -30603,6 +30733,8 @@ class PaletteModule {
30603
30733
  CommonDataService,
30604
30734
  LinkedCasesService,
30605
30735
  QualifyingQuestionService,
30736
+ QueryManagementUtils,
30737
+ QueryManagementService,
30606
30738
  { provide: MAT_LEGACY_DATE_LOCALE, useValue: 'en-GB' }
30607
30739
  ], imports: [CommonModule,
30608
30740
  RouterModule,
@@ -30720,6 +30852,8 @@ class PaletteModule {
30720
30852
  CommonDataService,
30721
30853
  LinkedCasesService,
30722
30854
  QualifyingQuestionService,
30855
+ QueryManagementUtils,
30856
+ QueryManagementService,
30723
30857
  { provide: MAT_LEGACY_DATE_LOCALE, useValue: 'en-GB' }
30724
30858
  ],
30725
30859
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
@@ -40126,5 +40260,5 @@ class TestRouteSnapshotBuilder {
40126
40260
  * Generated bundle index. Do not edit.
40127
40261
  */
40128
40262
 
40129
- export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, textFieldType, viewerRouting };
40263
+ export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, textFieldType, viewerRouting };
40130
40264
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map