@hmcts/ccd-case-ui-toolkit 7.2.23 → 7.2.25-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 (24) 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-check-your-answers/query-check-your-answers.component.mjs +51 -193
  3. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +59 -6
  4. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +39 -6
  5. package/esm2022/lib/shared/components/palette/query-management/constants/query-management.constants.mjs +7 -0
  6. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +18 -9
  7. package/esm2022/lib/shared/components/palette/query-management/services/index.mjs +2 -1
  8. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +179 -0
  9. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +585 -462
  10. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  11. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  12. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +15 -13
  13. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  14. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +24 -3
  15. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  16. 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
  17. 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
  18. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts +7 -0
  19. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts.map +1 -0
  20. package/lib/shared/components/palette/query-management/services/index.d.ts +1 -0
  21. package/lib/shared/components/palette/query-management/services/index.d.ts.map +1 -1
  22. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts +21 -0
  23. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts.map +1 -0
  24. 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";
@@ -21088,19 +20842,441 @@ class QueryManagementUtils {
21088
20842
  static isObject(elem) {
21089
20843
  return typeof elem === 'object' && elem !== null;
21090
20844
  }
21091
- static isNonEmptyObject(elem) {
21092
- return this.isObject(elem) && Object.keys(elem).length !== 0;
20845
+ static isNonEmptyObject(elem) {
20846
+ return this.isObject(elem) && Object.keys(elem).length !== 0;
20847
+ }
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();
21093
21257
  }
21094
- static formattedDate(date) {
21095
- const formattedDate = moment(date).format('YYYY-MM-DD');
21096
- return formattedDate;
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);
@@ -21427,20 +21603,27 @@ class QueryCheckYourAnswersComponent {
21427
21603
  casesService;
21428
21604
  caseNotifier;
21429
21605
  workAllocationService;
21430
- sessionStorageService;
21431
21606
  qualifyingQuestionService;
21607
+ queryManagementService;
21608
+ errorNotifierService;
21609
+ alertService;
21432
21610
  RAISE_A_QUERY_EVENT_TRIGGER_ID = 'queryManagementRaiseQuery';
21433
21611
  RESPOND_TO_QUERY_EVENT_TRIGGER_ID = 'queryManagementRespondQuery';
21434
21612
  CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';
21613
+ static TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
21614
+ static TRIGGER_TEXT_START = 'Continue';
21435
21615
  FIELD_TYPE_COMPLEX = 'Complex';
21436
21616
  DISPLAY_CONTEXT_READONLY = 'READONLY';
21437
21617
  QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';
21438
21618
  QM_COLLECTION_PROMPT = 'promptQmCollection';
21439
21619
  CIVIL_JURISDICTION = 'CIVIL';
21620
+ triggerTextStart = QueryCheckYourAnswersComponent.TRIGGER_TEXT_START;
21621
+ triggerTextIgnoreWarnings = QueryCheckYourAnswersComponent.TRIGGER_TEXT_CONTINUE;
21440
21622
  formGroup;
21441
21623
  queryItem;
21442
21624
  queryCreateContext;
21443
21625
  eventData = null;
21626
+ qmCaseQueriesCollectionData;
21444
21627
  backClicked = new EventEmitter();
21445
21628
  querySubmitted = new EventEmitter();
21446
21629
  callbackConfirmationMessage = new EventEmitter();
@@ -21459,20 +21642,24 @@ class QueryCheckYourAnswersComponent {
21459
21642
  filteredTasks = [];
21460
21643
  readyToSubmit;
21461
21644
  isSubmitting = false;
21645
+ messgaeId;
21462
21646
  callbackErrorsSubject = new Subject();
21463
21647
  error;
21464
- constructor(route, router, casesService, caseNotifier, workAllocationService, sessionStorageService, qualifyingQuestionService) {
21648
+ constructor(route, router, casesService, caseNotifier, workAllocationService, qualifyingQuestionService, queryManagementService, errorNotifierService, alertService) {
21465
21649
  this.route = route;
21466
21650
  this.router = router;
21467
21651
  this.casesService = casesService;
21468
21652
  this.caseNotifier = caseNotifier;
21469
21653
  this.workAllocationService = workAllocationService;
21470
- this.sessionStorageService = sessionStorageService;
21471
21654
  this.qualifyingQuestionService = qualifyingQuestionService;
21655
+ this.queryManagementService = queryManagementService;
21656
+ this.errorNotifierService = errorNotifierService;
21657
+ this.alertService = alertService;
21472
21658
  }
21473
21659
  ngOnInit() {
21474
21660
  this.queryId = this.route.snapshot.params.qid;
21475
21661
  this.tid = this.route.snapshot.queryParams?.tid;
21662
+ this.messgaeId = this.route.snapshot.params.dataid;
21476
21663
  this.caseNotifier.caseView.pipe(take(1)).subscribe((caseDetails) => {
21477
21664
  this.caseDetails = caseDetails;
21478
21665
  // Find the appropriate event trigger based on the queryCreateContext
@@ -21501,8 +21688,23 @@ class QueryCheckYourAnswersComponent {
21501
21688
  }
21502
21689
  },
21503
21690
  error: (error) => {
21504
- console.error('Error in searchTasksSubscription:', error);
21505
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' });
21506
21708
  }
21507
21709
  });
21508
21710
  }
@@ -21513,6 +21715,7 @@ class QueryCheckYourAnswersComponent {
21513
21715
  ngOnDestroy() {
21514
21716
  this.createEventSubscription?.unsubscribe();
21515
21717
  this.searchTasksSubscription?.unsubscribe();
21718
+ this.callbackErrorsSubject?.unsubscribe();
21516
21719
  }
21517
21720
  goBack() {
21518
21721
  this.backClicked.emit(true);
@@ -21521,20 +21724,7 @@ class QueryCheckYourAnswersComponent {
21521
21724
  if (this.isSubmitting) {
21522
21725
  return;
21523
21726
  }
21524
- // Check if fieldId is null or undefined
21525
- if (!this.fieldId) {
21526
- console.error('Error: Field ID is missing. Cannot proceed with submission.');
21527
- this.errorMessages = [
21528
- {
21529
- title: 'Error',
21530
- description: 'This case is not configured for query management.',
21531
- fieldId: 'field-id'
21532
- }
21533
- ];
21534
- window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21535
- return;
21536
- }
21537
- const data = this.generateCaseQueriesCollectionData();
21727
+ const data = this.qmCaseQueriesCollectionData;
21538
21728
  const createEvent$ = this.createEvent(data);
21539
21729
  this.isSubmitting = true;
21540
21730
  if (this.queryCreateContext === QueryCreateContext.RESPOND) {
@@ -21595,172 +21785,7 @@ class QueryCheckYourAnswersComponent {
21595
21785
  handleError(error) {
21596
21786
  console.error('Error in API calls:', error);
21597
21787
  this.isSubmitting = false;
21598
- if (this.isServiceErrorFound(error)) {
21599
- this.error = null;
21600
- this.callbackErrorsSubject.next(error);
21601
- }
21602
- else {
21603
- if (error && error.status !== 401 && error.status !== 403) {
21604
- this.error = error;
21605
- }
21606
- else {
21607
- this.router.navigate(['/', 'service-down']);
21608
- }
21609
- }
21610
- window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21611
- }
21612
- generateCaseQueriesCollectionData() {
21613
- const currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21614
- const caseMessage = this.queryCreateContext === QueryCreateContext.NEW_QUERY
21615
- ? QueryManagementUtils.getNewQueryData(this.formGroup, currentUserDetails)
21616
- : QueryManagementUtils.getRespondOrFollowupQueryData(this.formGroup, this.queryItem, currentUserDetails);
21617
- const messageId = this.route.snapshot.params.dataid; // Get the message ID from route params (if present)
21618
- const isNewQuery = this.queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
21619
- // Check if the field ID has been set dynamically
21620
- if (!this.fieldId) {
21621
- console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
21622
- this.router.navigate(['/', 'service-down']);
21623
- }
21624
- // Initialize new query data structure
21625
- const newQueryData = {};
21626
- if (this.caseQueriesCollections?.length) {
21627
- let matchedCollection;
21628
- // If it's not a new query, try to find the existing collection with the message ID
21629
- if (!isNewQuery && messageId) {
21630
- matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
21631
- }
21632
- if (matchedCollection) {
21633
- // Append the new case message to the matched collection's caseMessages
21634
- matchedCollection.caseMessages.push({
21635
- id: null,
21636
- value: caseMessage
21637
- });
21638
- // Add the matched collection to newQueryData
21639
- newQueryData[this.fieldId] = {
21640
- ...matchedCollection, // Keep existing data intact
21641
- caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
21642
- };
21643
- }
21644
- else {
21645
- // Use partyName from the first collection (assumption: all share the same party)
21646
- const originalPartyName = this.caseQueriesCollections[0].partyName;
21647
- // If no collection matches, or it's a new query
21648
- newQueryData[this.fieldId] = {
21649
- partyName: originalPartyName,
21650
- roleOnCase: '', // Not returned by CCD
21651
- caseMessages: [
21652
- {
21653
- id: null,
21654
- value: caseMessage
21655
- }
21656
- ]
21657
- };
21658
- // If caseQueriesCollections is not empty, append its data
21659
- newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
21660
- }
21661
- }
21662
- else {
21663
- // If there are no existing collections, create a new one (e.g., for new queries)
21664
- newQueryData[this.fieldId] = {
21665
- partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
21666
- roleOnCase: '', // Not returned by CCD
21667
- caseMessages: [
21668
- {
21669
- id: null,
21670
- value: caseMessage
21671
- }
21672
- ]
21673
- };
21674
- }
21675
- return newQueryData;
21676
- }
21677
- setCaseQueriesCollectionData() {
21678
- if (this.eventData?.case_fields?.length) {
21679
- // Workaround for multiple qmCaseQueriesCollections that are not to be appearing in the eventData
21680
- // Counts number qmCaseQueriesCollections
21681
- const numberOfCaseQueriesCollections = this.eventData?.case_fields?.filter((caseField) => caseField.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
21682
- caseField.field_type.type === this.FIELD_TYPE_COMPLEX && caseField.display_context !== this.DISPLAY_CONTEXT_READONLY)?.length || 0;
21683
- this.caseQueriesCollections = this.eventData.case_fields.reduce((acc, caseField) => {
21684
- // Extract the ID based on conditions, updating this.fieldId dynamically
21685
- this.extractCaseQueryId(caseField, numberOfCaseQueriesCollections);
21686
- const extractedCaseQueriesFromCaseField = QueryManagementUtils.extractCaseQueriesFromCaseField(caseField);
21687
- if (extractedCaseQueriesFromCaseField && typeof extractedCaseQueriesFromCaseField === 'object') {
21688
- acc.push(extractedCaseQueriesFromCaseField);
21689
- }
21690
- return acc;
21691
- }, []);
21692
- }
21693
- }
21694
- extractCaseQueryId(data, count) {
21695
- const { id, value } = data;
21696
- const messageId = this.route.snapshot.params.dataid;
21697
- // Check if the field_type matches CaseQueriesCollection and type is Complex
21698
- if (data.field_type.id === this.CASE_QUERIES_COLLECTION_ID && data.field_type.type === this.FIELD_TYPE_COMPLEX) {
21699
- if (this.isNewQueryContext(data)) {
21700
- // If there is more than one qmCaseQueriesCollection, pick the one with the lowest order
21701
- if (count > 1) {
21702
- if (!this.handleMultipleCollections()) {
21703
- return;
21704
- }
21705
- }
21706
- else {
21707
- // Set the field ID dynamically based on the extracted data
21708
- this.fieldId = id; // Store the ID for use in generating newQueryData
21709
- }
21710
- }
21711
- // If messageId is present, find the corresponding case message
21712
- this.setMessageFieldId(messageId, value, id);
21713
- }
21714
- }
21715
- setMessageFieldId(messageId, value, id) {
21716
- if (messageId && value?.caseMessages) {
21717
- // If a matching message is found, set the fieldId to the corresponding id
21718
- const matchedMessage = value?.caseMessages?.find((message) => message.value.id === messageId);
21719
- if (matchedMessage) {
21720
- this.fieldId = id;
21721
- }
21722
- }
21723
- }
21724
- isNewQueryContext(data) {
21725
- return this.queryCreateContext === QueryCreateContext.NEW_QUERY && data.display_context !== this.DISPLAY_CONTEXT_READONLY;
21726
- }
21727
- handleMultipleCollections() {
21728
- const jurisdictionId = this.caseDetails?.case_type?.jurisdiction?.id;
21729
- if (!jurisdictionId) {
21730
- console.error('Jurisdiction ID is missing.');
21731
- return false;
21732
- }
21733
- if (this.getCollectionSelectionMethod(jurisdictionId) === this.QM_SELECT_FIRST_COLLECTION) {
21734
- // Pick the collection with the lowest order
21735
- this.fieldId = this.getCaseQueriesCollectionFieldOrderFromWizardPages()?.id;
21736
- }
21737
- else {
21738
- // Display Error, for now, until EXUI-2644 is implemented
21739
- console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
21740
- return false;
21741
- }
21742
- return true;
21743
- }
21744
- getCaseQueriesCollectionFieldOrderFromWizardPages() {
21745
- const candidateFields = this.eventData?.case_fields?.filter((field) => field.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
21746
- field.field_type.type === this.FIELD_TYPE_COMPLEX &&
21747
- field.display_context !== this.DISPLAY_CONTEXT_READONLY);
21748
- if (!candidateFields?.length) {
21749
- return undefined;
21750
- }
21751
- const firstPageFields = this.eventData?.wizard_pages?.[0]?.wizard_page_fields;
21752
- if (!firstPageFields) {
21753
- return undefined;
21754
- }
21755
- return candidateFields
21756
- .map((field) => {
21757
- const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
21758
- return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
21759
- })
21760
- .sort((a, b) => a.order - b.order)[0]?.field;
21761
- }
21762
- getCollectionSelectionMethod(jurisdiction) {
21763
- return jurisdiction.toUpperCase() === this.CIVIL_JURISDICTION ? this.QM_SELECT_FIRST_COLLECTION : this.QM_COLLECTION_PROMPT;
21788
+ this.router.navigate(['/', 'service-down']);
21764
21789
  }
21765
21790
  getDocumentAttachments() {
21766
21791
  const attachmentsValue = this.formGroup.get('attachments').value;
@@ -21772,8 +21797,14 @@ class QueryCheckYourAnswersComponent {
21772
21797
  isServiceErrorFound(error) {
21773
21798
  return !!(error?.callbackErrors?.length);
21774
21799
  }
21775
- 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)); };
21776
- 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) {
21777
21808
  i0.ɵɵtemplate(0, QueryCheckYourAnswersComponent_div_0_Template, 36, 25, "div", 2);
21778
21809
  } if (rf & 2) {
21779
21810
  i0.ɵɵproperty("ngIf", ctx.readyToSubmit);
@@ -21782,7 +21813,7 @@ class QueryCheckYourAnswersComponent {
21782
21813
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCheckYourAnswersComponent, [{
21783
21814
  type: Component,
21784
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"] }]
21785
- }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: CasesService }, { type: CaseNotifier }, { type: WorkAllocationService }, { type: SessionStorageService }, { type: QualifyingQuestionService }], { formGroup: [{
21816
+ }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: CasesService }, { type: CaseNotifier }, { type: WorkAllocationService }, { type: QualifyingQuestionService }, { type: QueryManagementService }, { type: ErrorNotifierService }, { type: AlertService }], { formGroup: [{
21786
21817
  type: Input
21787
21818
  }], queryItem: [{
21788
21819
  type: Input
@@ -21790,6 +21821,8 @@ class QueryCheckYourAnswersComponent {
21790
21821
  type: Input
21791
21822
  }], eventData: [{
21792
21823
  type: Input
21824
+ }], qmCaseQueriesCollectionData: [{
21825
+ type: Input
21793
21826
  }], backClicked: [{
21794
21827
  type: Output
21795
21828
  }], querySubmitted: [{
@@ -21797,7 +21830,7 @@ class QueryCheckYourAnswersComponent {
21797
21830
  }], callbackConfirmationMessage: [{
21798
21831
  type: Output
21799
21832
  }] }); })();
21800
- (() => { (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 }); })();
21801
21834
 
21802
21835
  function QueryDetailsComponent_ng_container_0_p_1_Template(rf, ctx) { if (rf & 1) {
21803
21836
  const _r1 = i0.ɵɵgetCurrentView();
@@ -22749,12 +22782,36 @@ function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
22749
22782
  i0.ɵɵproperty("ngIf", ctx_r0.formGroup.get("isHearingRelated").value);
22750
22783
  } }
22751
22784
  class QueryWriteRaiseQueryComponent {
22785
+ queryManagementService;
22786
+ route;
22752
22787
  formGroup;
22753
22788
  submitted;
22754
22789
  caseDetails;
22755
22790
  showForm;
22756
22791
  serviceMessage;
22792
+ queryCreateContext;
22793
+ eventData = null;
22794
+ queryItem;
22795
+ validate;
22796
+ triggerSubmission;
22797
+ queryDataCreated = new EventEmitter();
22757
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
+ }
22758
22815
  onSubjectInput() {
22759
22816
  const control = this.formGroup.get('subject');
22760
22817
  const value = control?.value;
@@ -22772,8 +22829,19 @@ class QueryWriteRaiseQueryComponent {
22772
22829
  }
22773
22830
  return '';
22774
22831
  }
22775
- static ɵfac = function QueryWriteRaiseQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRaiseQueryComponent)(); };
22776
- 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", 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) {
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) {
22777
22845
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "div", 1);
22778
22846
  i0.ɵɵtext(3);
22779
22847
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22802,7 +22870,7 @@ class QueryWriteRaiseQueryComponent {
22802
22870
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRaiseQueryComponent, [{
22803
22871
  type: Component,
22804
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" }]
22805
- }], null, { formGroup: [{
22873
+ }], () => [{ type: QueryManagementService }, { type: i1$1.ActivatedRoute }], { formGroup: [{
22806
22874
  type: Input
22807
22875
  }], submitted: [{
22808
22876
  type: Input
@@ -22812,8 +22880,20 @@ class QueryWriteRaiseQueryComponent {
22812
22880
  type: Input
22813
22881
  }], serviceMessage: [{
22814
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
22815
22895
  }] }); })();
22816
- (() => { (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 }); })();
22817
22897
 
22818
22898
  function QueryWriteRespondToQueryComponent_ccd_query_case_details_header_9_Template(rf, ctx) { if (rf & 1) {
22819
22899
  i0.ɵɵelement(0, "ccd-query-case-details-header", 8);
@@ -22895,12 +22975,16 @@ function QueryWriteRespondToQueryComponent_ng_container_13_Template(rf, ctx) { i
22895
22975
  class QueryWriteRespondToQueryComponent {
22896
22976
  caseNotifier;
22897
22977
  route;
22978
+ queryManagementService;
22898
22979
  queryItem;
22899
22980
  formGroup;
22900
22981
  queryCreateContext;
22901
22982
  submitted = false;
22902
22983
  caseQueriesCollections;
22903
22984
  showForm;
22985
+ triggerSubmission;
22986
+ eventData = null;
22987
+ queryDataCreated = new EventEmitter();
22904
22988
  hasRespondedToQueryTask = new EventEmitter();
22905
22989
  queryCreateContextEnum = QueryCreateContext;
22906
22990
  raiseQueryErrorMessages = RaiseQueryErrorMessage;
@@ -22910,11 +22994,13 @@ class QueryWriteRespondToQueryComponent {
22910
22994
  queryResponseStatus;
22911
22995
  queryListData;
22912
22996
  hasRespondedToQuery = false;
22997
+ messgaeId;
22913
22998
  static QUERY_ITEM_RESPOND = '3';
22914
22999
  static QUERY_ITEM_FOLLOWUP = '4';
22915
- constructor(caseNotifier, route) {
23000
+ constructor(caseNotifier, route, queryManagementService) {
22916
23001
  this.caseNotifier = caseNotifier;
22917
23002
  this.route = route;
23003
+ this.queryManagementService = queryManagementService;
22918
23004
  }
22919
23005
  ngOnInit() {
22920
23006
  this.queryItemId = this.route.snapshot.params.qid;
@@ -22956,13 +23042,31 @@ class QueryWriteRespondToQueryComponent {
22956
23042
  : matchingMessage?.id;
22957
23043
  this.queryListData = queryWithChildren?.queries.find((query) => query?.id === targetId);
22958
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
+ }
22959
23052
  }
22960
23053
  hasResponded(value) {
22961
23054
  this.hasRespondedToQuery = value;
22962
23055
  this.hasRespondedToQueryTask.emit(value);
22963
23056
  }
22964
- static ɵfac = function QueryWriteRespondToQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRespondToQueryComponent)(i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute)); };
22965
- 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", 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) {
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) {
22966
23070
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 0)(2, "div", 1);
22967
23071
  i0.ɵɵtext(3);
22968
23072
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22996,7 +23100,7 @@ class QueryWriteRespondToQueryComponent {
22996
23100
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRespondToQueryComponent, [{
22997
23101
  type: Component,
22998
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"] }]
22999
- }], () => [{ type: CaseNotifier }, { type: i1$1.ActivatedRoute }], { queryItem: [{
23103
+ }], () => [{ type: CaseNotifier }, { type: i1$1.ActivatedRoute }, { type: QueryManagementService }], { queryItem: [{
23000
23104
  type: Input
23001
23105
  }], formGroup: [{
23002
23106
  type: Input
@@ -23008,10 +23112,16 @@ class QueryWriteRespondToQueryComponent {
23008
23112
  type: Input
23009
23113
  }], showForm: [{
23010
23114
  type: Input
23115
+ }], triggerSubmission: [{
23116
+ type: Input
23117
+ }], eventData: [{
23118
+ type: Input
23119
+ }], queryDataCreated: [{
23120
+ type: Output
23011
23121
  }], hasRespondedToQueryTask: [{
23012
23122
  type: Output
23013
23123
  }] }); })();
23014
- (() => { (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 }); })();
23015
23125
 
23016
23126
  function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {
23017
23127
  i0.ɵɵelementContainerStart(0);
@@ -23228,23 +23338,32 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_conta
23228
23338
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
23229
23339
  } }
23230
23340
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
23231
- i0.ɵɵelementStart(0, "div")(1, "p", 10);
23341
+ i0.ɵɵelementStart(0, "div")(1, "button", 9);
23232
23342
  i0.ɵɵtext(2);
23233
23343
  i0.ɵɵpipe(3, "rpxTranslate");
23234
23344
  i0.ɵɵelementEnd();
23235
- i0.ɵɵelementStart(4, "p");
23345
+ i0.ɵɵelementStart(4, "p", 10);
23236
23346
  i0.ɵɵtext(5);
23237
23347
  i0.ɵɵpipe(6, "rpxTranslate");
23348
+ i0.ɵɵelementEnd();
23349
+ i0.ɵɵelementStart(7, "p");
23350
+ i0.ɵɵtext(8);
23351
+ i0.ɵɵpipe(9, "rpxTranslate");
23238
23352
  i0.ɵɵelementEnd()();
23239
23353
  } if (rf & 2) {
23240
- i0.ɵɵadvance(2);
23241
- 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"));
23242
23361
  i0.ɵɵadvance(3);
23243
- 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."));
23244
23363
  } }
23245
23364
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23246
23365
  i0.ɵɵelementContainerStart(0);
23247
- 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);
23248
23367
  i0.ɵɵelementContainerEnd();
23249
23368
  } if (rf & 2) {
23250
23369
  const queryIsInReview_r5 = i0.ɵɵreference(3);
@@ -23279,7 +23398,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
23279
23398
  const ctx_r1 = i0.ɵɵnextContext();
23280
23399
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
23281
23400
  i0.ɵɵadvance();
23282
- 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);
23283
23402
  i0.ɵɵadvance();
23284
23403
  i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && ctx_r1.isQueryClosed);
23285
23404
  } }
@@ -23347,7 +23466,7 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
23347
23466
  }
23348
23467
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
23349
23468
  type: Component,
23350
- 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" }]
23351
23470
  }], () => [{ type: i1$1.ActivatedRoute }, { type: SessionStorageService }, { type: CaseNotifier }], null); })();
23352
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 }); })();
23353
23472
 
@@ -30614,6 +30733,8 @@ class PaletteModule {
30614
30733
  CommonDataService,
30615
30734
  LinkedCasesService,
30616
30735
  QualifyingQuestionService,
30736
+ QueryManagementUtils,
30737
+ QueryManagementService,
30617
30738
  { provide: MAT_LEGACY_DATE_LOCALE, useValue: 'en-GB' }
30618
30739
  ], imports: [CommonModule,
30619
30740
  RouterModule,
@@ -30731,6 +30852,8 @@ class PaletteModule {
30731
30852
  CommonDataService,
30732
30853
  LinkedCasesService,
30733
30854
  QualifyingQuestionService,
30855
+ QueryManagementUtils,
30856
+ QueryManagementService,
30734
30857
  { provide: MAT_LEGACY_DATE_LOCALE, useValue: 'en-GB' }
30735
30858
  ],
30736
30859
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
@@ -40137,5 +40260,5 @@ class TestRouteSnapshotBuilder {
40137
40260
  * Generated bundle index. Do not edit.
40138
40261
  */
40139
40262
 
40140
- 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 };
40141
40264
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map