@hmcts/ccd-case-ui-toolkit 7.2.25 → 7.2.26-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";
@@ -21081,19 +20835,441 @@ class QueryManagementUtils {
21081
20835
  static isObject(elem) {
21082
20836
  return typeof elem === 'object' && elem !== null;
21083
20837
  }
21084
- static isNonEmptyObject(elem) {
21085
- return this.isObject(elem) && Object.keys(elem).length !== 0;
20838
+ static isNonEmptyObject(elem) {
20839
+ return this.isObject(elem) && Object.keys(elem).length !== 0;
20840
+ }
20841
+ static formattedDate(date) {
20842
+ const formattedDate = moment(date).format('YYYY-MM-DD');
20843
+ return formattedDate;
20844
+ }
20845
+ static ɵfac = function QueryManagementUtils_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementUtils)(); };
20846
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementUtils, factory: QueryManagementUtils.ɵfac });
20847
+ }
20848
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementUtils, [{
20849
+ type: Injectable
20850
+ }], null, null); })();
20851
+
20852
+ const CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';
20853
+ const FIELD_TYPE_COMPLEX = 'Complex';
20854
+ const DISPLAY_CONTEXT_READONLY = 'READONLY';
20855
+ const QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';
20856
+ const QM_COLLECTION_PROMPT = 'promptQmCollection';
20857
+ const CIVIL_JURISDICTION = 'CIVIL';
20858
+
20859
+ class QueryManagementService {
20860
+ router;
20861
+ sessionStorageService;
20862
+ caseQueriesCollections;
20863
+ fieldId;
20864
+ constructor(router, sessionStorageService) {
20865
+ this.router = router;
20866
+ this.sessionStorageService = sessionStorageService;
20867
+ }
20868
+ generateCaseQueriesCollectionData(formGroup, queryCreateContext, queryItem, messageId // Get the message ID from route params (if present)
20869
+ ) {
20870
+ let currentUserDetails;
20871
+ try {
20872
+ currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
20873
+ }
20874
+ catch (e) {
20875
+ console.error('Could not parse USER_DETAILS from session storage:', e);
20876
+ currentUserDetails = {};
20877
+ }
20878
+ const caseMessage = queryCreateContext === QueryCreateContext.NEW_QUERY
20879
+ ? QueryManagementUtils.getNewQueryData(formGroup, currentUserDetails)
20880
+ : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails);
20881
+ const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
20882
+ // Check if the field ID has been set dynamically
20883
+ if (!this.fieldId) {
20884
+ console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
20885
+ this.router.navigate(['/', 'service-down']);
20886
+ throw new Error('Field ID for CaseQueriesCollection not found. Aborting query data generation.');
20887
+ }
20888
+ // Initialize new query data structure
20889
+ const newQueryData = {};
20890
+ if (this.caseQueriesCollections?.length) {
20891
+ let matchedCollection;
20892
+ // If it's not a new query, try to find the existing collection with the message ID
20893
+ if (!isNewQuery && messageId) {
20894
+ matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
20895
+ }
20896
+ if (matchedCollection) {
20897
+ // Append the new case message to the matched collection's caseMessages
20898
+ matchedCollection.caseMessages.push({
20899
+ id: null,
20900
+ value: caseMessage
20901
+ });
20902
+ // Add the matched collection to newQueryData
20903
+ newQueryData[this.fieldId] = {
20904
+ ...matchedCollection, // Keep existing data intact
20905
+ caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
20906
+ };
20907
+ }
20908
+ else {
20909
+ // Use partyName from the first collection (assumption: all share the same party)
20910
+ const originalPartyName = this.caseQueriesCollections?.[0]?.partyName ?? currentUserDetails?.name;
20911
+ // If no collection matches, or it's a new query
20912
+ newQueryData[this.fieldId] = {
20913
+ partyName: originalPartyName,
20914
+ roleOnCase: '', // Not returned by CCD
20915
+ caseMessages: [
20916
+ {
20917
+ id: null,
20918
+ value: caseMessage
20919
+ }
20920
+ ]
20921
+ };
20922
+ // If caseQueriesCollections is not empty, append its data
20923
+ newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
20924
+ }
20925
+ }
20926
+ else {
20927
+ // If there are no existing collections, create a new one (e.g., for new queries)
20928
+ newQueryData[this.fieldId] = {
20929
+ partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
20930
+ roleOnCase: '', // Not returned by CCD
20931
+ caseMessages: [
20932
+ {
20933
+ id: null,
20934
+ value: caseMessage
20935
+ }
20936
+ ]
20937
+ };
20938
+ }
20939
+ return newQueryData;
20940
+ }
20941
+ setCaseQueriesCollectionData(eventData, queryCreateContext, caseDetails, messageId) {
20942
+ const resolvedFieldId = this.resolveFieldId(eventData, queryCreateContext, caseDetails, messageId);
20943
+ if (!resolvedFieldId) {
20944
+ console.error('Failed to resolve fieldId for CaseQueriesCollection. Cannot proceed.');
20945
+ return;
20946
+ }
20947
+ this.fieldId = resolvedFieldId;
20948
+ this.caseQueriesCollections = eventData.case_fields.reduce((acc, field) => {
20949
+ if (field.id === this.fieldId) {
20950
+ const extracted = QueryManagementUtils.extractCaseQueriesFromCaseField(field);
20951
+ if (extracted && typeof extracted === 'object') {
20952
+ acc.push(extracted);
20953
+ }
20954
+ }
20955
+ return acc;
20956
+ }, []);
20957
+ }
20958
+ resolveFieldId(eventData, queryCreateContext, caseDetails, messageId) {
20959
+ // Step 1: Filter candidate fields (must be editable CaseQueriesCollection fields)
20960
+ const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
20961
+ field.field_type.type === FIELD_TYPE_COMPLEX &&
20962
+ field.display_context !== DISPLAY_CONTEXT_READONLY);
20963
+ if (!candidateFields?.length) {
20964
+ console.warn('No editable CaseQueriesCollection fields found.');
20965
+ return null;
20966
+ }
20967
+ const numberOfCollections = candidateFields.length;
20968
+ const jurisdictionId = caseDetails?.case_type?.jurisdiction?.id ?? '';
20969
+ // Step 2: If messageId is present, try to locate the field containing that message
20970
+ if (messageId) {
20971
+ const fieldByMessage = candidateFields.find((field) => field?.value?.caseMessages?.some((msg) => msg?.value?.id === messageId));
20972
+ if (fieldByMessage) {
20973
+ return fieldByMessage.id; // Found the matching field by message ID
20974
+ }
20975
+ }
20976
+ // Step 3: Handle new queries
20977
+ if (queryCreateContext === QueryCreateContext.NEW_QUERY) {
20978
+ // If there's only one collection, use it
20979
+ if (numberOfCollections === 1) {
20980
+ return candidateFields[0].id;
20981
+ }
20982
+ // For multiple collections, use jurisdiction-based resolution strategy
20983
+ if (this.getCollectionSelectionMethod(jurisdictionId) === QM_SELECT_FIRST_COLLECTION) {
20984
+ // Choose the one with the lowest order from the first wizard page
20985
+ const firstOrdered = this.getCaseQueriesCollectionFieldOrderFromWizardPages(eventData);
20986
+ if (firstOrdered) {
20987
+ return firstOrdered.id;
20988
+ }
20989
+ }
20990
+ else {
20991
+ console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
20992
+ return null;
20993
+ }
20994
+ }
20995
+ // Step 4: Fallback — if none of the above succeeded
20996
+ console.warn('Could not determine fieldId for context:', queryCreateContext);
20997
+ return null;
20998
+ }
20999
+ getCaseQueriesCollectionFieldOrderFromWizardPages(eventData) {
21000
+ const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
21001
+ field.field_type.type === FIELD_TYPE_COMPLEX &&
21002
+ field.display_context !== DISPLAY_CONTEXT_READONLY);
21003
+ if (!candidateFields?.length) {
21004
+ return undefined;
21005
+ }
21006
+ const firstPageFields = eventData?.wizard_pages?.[0]?.wizard_page_fields;
21007
+ if (!firstPageFields) {
21008
+ return undefined;
21009
+ }
21010
+ return candidateFields
21011
+ .map((field) => {
21012
+ const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
21013
+ return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
21014
+ })
21015
+ .sort((a, b) => a.order - b.order)[0]?.field;
21016
+ }
21017
+ getCollectionSelectionMethod(jurisdiction) {
21018
+ return jurisdiction.toUpperCase() === CIVIL_JURISDICTION ? QM_SELECT_FIRST_COLLECTION : QM_COLLECTION_PROMPT;
21019
+ }
21020
+ static ɵfac = function QueryManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementService)(i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(SessionStorageService)); };
21021
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementService, factory: QueryManagementService.ɵfac, providedIn: 'root' });
21022
+ }
21023
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementService, [{
21024
+ type: Injectable,
21025
+ args: [{ providedIn: 'root' }]
21026
+ }], () => [{ type: i1$1.Router }, { type: SessionStorageService }], null); })();
21027
+
21028
+ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_10_Template(rf, ctx) { if (rf & 1) {
21029
+ i0.ɵɵelementContainerStart(0);
21030
+ i0.ɵɵelementStart(1, "p", 8)(2, "span", 9);
21031
+ i0.ɵɵtext(3);
21032
+ i0.ɵɵpipe(4, "rpxTranslate");
21033
+ i0.ɵɵelementEnd();
21034
+ i0.ɵɵtext(5);
21035
+ i0.ɵɵpipe(6, "rpxTranslate");
21036
+ i0.ɵɵelementEnd();
21037
+ i0.ɵɵelementContainerEnd();
21038
+ } if (rf & 2) {
21039
+ const ctx_r0 = i0.ɵɵnextContext(2);
21040
+ i0.ɵɵadvance(3);
21041
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(4, 2, "Error:"), " ");
21042
+ i0.ɵɵadvance(2);
21043
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(6, 4, ctx_r0.qualifyingQuestionsErrorMessage.SELECT_AN_OPTION), " ");
21044
+ } }
21045
+ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template(rf, ctx) { if (rf & 1) {
21046
+ i0.ɵɵelementContainerStart(0);
21047
+ i0.ɵɵelementStart(1, "div", 13);
21048
+ i0.ɵɵtext(2);
21049
+ i0.ɵɵpipe(3, "rpxTranslate");
21050
+ i0.ɵɵelementEnd();
21051
+ i0.ɵɵelementContainerEnd();
21052
+ } if (rf & 2) {
21053
+ i0.ɵɵadvance(2);
21054
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "If your issue is not covered by the options above, raise a query:"));
21055
+ } }
21056
+ function QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
21057
+ const _r2 = i0.ɵɵgetCurrentView();
21058
+ i0.ɵɵelementContainerStart(0);
21059
+ i0.ɵɵtemplate(1, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_ng_container_1_Template, 4, 3, "ng-container", 0);
21060
+ i0.ɵɵelementStart(2, "div", 10)(3, "input", 11);
21061
+ 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)); });
21062
+ i0.ɵɵelementEnd();
21063
+ i0.ɵɵelementStart(4, "label", 12);
21064
+ i0.ɵɵtext(5);
21065
+ i0.ɵɵpipe(6, "rpxTranslate");
21066
+ i0.ɵɵelementEnd()();
21067
+ i0.ɵɵelementContainerEnd();
21068
+ } if (rf & 2) {
21069
+ const qualifyingQuestion_r3 = ctx.$implicit;
21070
+ const isLast_r4 = ctx.last;
21071
+ const ctx_r0 = i0.ɵɵnextContext(2);
21072
+ i0.ɵɵadvance();
21073
+ i0.ɵɵproperty("ngIf", isLast_r4);
21074
+ i0.ɵɵadvance(2);
21075
+ i0.ɵɵpropertyInterpolate("id", qualifyingQuestion_r3.name);
21076
+ i0.ɵɵproperty("formControl", ctx_r0.qualifyingQuestionsControl)("value", qualifyingQuestion_r3);
21077
+ i0.ɵɵadvance();
21078
+ i0.ɵɵproperty("for", qualifyingQuestion_r3.name);
21079
+ i0.ɵɵadvance();
21080
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, qualifyingQuestion_r3.name));
21081
+ } }
21082
+ function QualifyingQuestionOptionsComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
21083
+ i0.ɵɵelementContainerStart(0);
21084
+ i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
21085
+ i0.ɵɵtext(5);
21086
+ i0.ɵɵpipe(6, "rpxTranslate");
21087
+ i0.ɵɵelementEnd()();
21088
+ i0.ɵɵelementStart(7, "h2", 5);
21089
+ i0.ɵɵtext(8);
21090
+ i0.ɵɵpipe(9, "rpxTranslate");
21091
+ i0.ɵɵelementEnd();
21092
+ i0.ɵɵtemplate(10, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_10_Template, 7, 6, "ng-container", 0);
21093
+ i0.ɵɵelementStart(11, "div", 6);
21094
+ i0.ɵɵtemplate(12, QualifyingQuestionOptionsComponent_ng_container_0_ng_container_12_Template, 7, 8, "ng-container", 7);
21095
+ i0.ɵɵpipe(13, "async");
21096
+ i0.ɵɵelementEnd()()();
21097
+ i0.ɵɵelementContainerEnd();
21098
+ } if (rf & 2) {
21099
+ const ctx_r0 = i0.ɵɵnextContext();
21100
+ i0.ɵɵadvance();
21101
+ i0.ɵɵclassProp("govuk-form-group--error", ctx_r0.displayError);
21102
+ i0.ɵɵadvance(4);
21103
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 6, "Raise a new query"), " ");
21104
+ i0.ɵɵadvance(3);
21105
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 8, "What do you need help to do?"), " ");
21106
+ i0.ɵɵadvance(2);
21107
+ i0.ɵɵproperty("ngIf", ctx_r0.displayError);
21108
+ i0.ɵɵadvance(2);
21109
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(13, 10, ctx_r0.qualifyingQuestions$));
21110
+ } }
21111
+ class QualifyingQuestionOptionsComponent {
21112
+ route;
21113
+ router;
21114
+ qualifyingQuestionService;
21115
+ qualifyingQuestionsControl;
21116
+ qualifyingQuestions$;
21117
+ questionSelected = new EventEmitter();
21118
+ qualifyingQuestionsErrorMessage = QualifyingQuestionsErrorMessage;
21119
+ caseId;
21120
+ constructor(route, router, qualifyingQuestionService) {
21121
+ this.route = route;
21122
+ this.router = router;
21123
+ this.qualifyingQuestionService = qualifyingQuestionService;
21124
+ }
21125
+ ngOnInit() {
21126
+ this.caseId = this.route.snapshot.params.cid;
21127
+ // Check if there's already a selected qualifying question from the service
21128
+ const savedSelection = this.qualifyingQuestionService.getQualifyingQuestionSelection();
21129
+ if (savedSelection) {
21130
+ this.qualifyingQuestionsControl.setValue(savedSelection);
21131
+ }
21132
+ }
21133
+ click() {
21134
+ this.router.navigate(['cases', 'case-details', this.caseId], { fragment: 'Queries' });
21135
+ }
21136
+ get displayError() {
21137
+ return this.qualifyingQuestionsControl.touched && this.qualifyingQuestionsControl.hasError('required');
21138
+ }
21139
+ onSelectionChange(qualifyingQuestion) {
21140
+ this.questionSelected.emit(qualifyingQuestion);
21141
+ }
21142
+ static ɵfac = function QualifyingQuestionOptionsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QualifyingQuestionOptionsComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(QualifyingQuestionService)); };
21143
+ 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) {
21144
+ i0.ɵɵtemplate(0, QualifyingQuestionOptionsComponent_ng_container_0_Template, 14, 12, "ng-container", 0);
21145
+ } if (rf & 2) {
21146
+ i0.ɵɵproperty("ngIf", ctx.qualifyingQuestionsControl);
21147
+ } }, dependencies: [i5.NgForOf, i5.NgIf, i4.DefaultValueAccessor, i4.RadioControlValueAccessor, i4.NgControlStatus, i4.FormControlDirective, i5.AsyncPipe, i1.RpxTranslatePipe], encapsulation: 2 });
21148
+ }
21149
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QualifyingQuestionOptionsComponent, [{
21150
+ type: Component,
21151
+ 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" }]
21152
+ }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: QualifyingQuestionService }], { qualifyingQuestionsControl: [{
21153
+ type: Input
21154
+ }], qualifyingQuestions$: [{
21155
+ type: Input
21156
+ }], questionSelected: [{
21157
+ type: Output
21158
+ }] }); })();
21159
+ (() => { (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 }); })();
21160
+
21161
+ function QueryAttachmentsReadComponent_ng_container_0_ccd_read_collection_field_1_Template(rf, ctx) { if (rf & 1) {
21162
+ i0.ɵɵelement(0, "ccd-read-collection-field", 2);
21163
+ } if (rf & 2) {
21164
+ const ctx_r0 = i0.ɵɵnextContext(2);
21165
+ i0.ɵɵproperty("caseField", ctx_r0.caseFieldWithAttachments);
21166
+ } }
21167
+ function QueryAttachmentsReadComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
21168
+ i0.ɵɵelementContainerStart(0);
21169
+ i0.ɵɵtemplate(1, QueryAttachmentsReadComponent_ng_container_0_ccd_read_collection_field_1_Template, 1, 1, "ccd-read-collection-field", 1);
21170
+ i0.ɵɵelementContainerEnd();
21171
+ } if (rf & 2) {
21172
+ const ctx_r0 = i0.ɵɵnextContext();
21173
+ i0.ɵɵadvance();
21174
+ i0.ɵɵproperty("ngIf", (ctx_r0.attachments == null ? null : ctx_r0.attachments.length) > 0);
21175
+ } }
21176
+ class QueryAttachmentsReadComponent {
21177
+ attachments;
21178
+ caseFieldWithAttachments;
21179
+ ngOnChanges() {
21180
+ this.caseFieldWithAttachments = Object.assign(new CaseField(), {
21181
+ id: '',
21182
+ label: '',
21183
+ hint_text: '',
21184
+ field_type: Object.assign(new FieldType(), {
21185
+ id: 'QueryDocuments',
21186
+ type: 'QueryDocuments',
21187
+ min: null,
21188
+ max: null,
21189
+ regular_expression: null,
21190
+ fixed_list_items: [],
21191
+ complex_fields: [],
21192
+ collection_field_type: Object.assign(new FieldType(), {
21193
+ id: 'Document',
21194
+ type: 'Document',
21195
+ min: null,
21196
+ max: null,
21197
+ regular_expression: null,
21198
+ fixed_list_items: [],
21199
+ complex_fields: [],
21200
+ collection_field_type: null
21201
+ })
21202
+ }),
21203
+ display_context_parameter: '#COLLECTION(allowInsert,allowUpdate)',
21204
+ value: []
21205
+ });
21206
+ this.caseFieldWithAttachments.value = this.attachments;
21207
+ }
21208
+ static ɵfac = function QueryAttachmentsReadComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryAttachmentsReadComponent)(); };
21209
+ 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) {
21210
+ i0.ɵɵtemplate(0, QueryAttachmentsReadComponent_ng_container_0_Template, 2, 1, "ng-container", 0);
21211
+ } if (rf & 2) {
21212
+ i0.ɵɵproperty("ngIf", (ctx.attachments == null ? null : ctx.attachments.length) > 0);
21213
+ } }, styles: ["ccd-query-attachments-read .collection-field-table tr>td{border-bottom:none;padding-bottom:0}\n"], encapsulation: 2 });
21214
+ }
21215
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryAttachmentsReadComponent, [{
21216
+ type: Component,
21217
+ 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"] }]
21218
+ }], null, { attachments: [{
21219
+ type: Input
21220
+ }] }); })();
21221
+ (() => { (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 }); })();
21222
+
21223
+ function QueryCaseDetailsHeaderComponent_h1_0_Template(rf, ctx) { if (rf & 1) {
21224
+ i0.ɵɵelementStart(0, "h1", 2);
21225
+ i0.ɵɵtext(1);
21226
+ i0.ɵɵpipe(2, "ccdCaseReference");
21227
+ i0.ɵɵelementEnd();
21228
+ } if (rf & 2) {
21229
+ const ctx_r0 = i0.ɵɵnextContext();
21230
+ i0.ɵɵadvance();
21231
+ i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r0.caseDetails.case_id), "");
21232
+ } }
21233
+ function QueryCaseDetailsHeaderComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21234
+ i0.ɵɵelementStart(0, "div", 3);
21235
+ i0.ɵɵelement(1, "ccd-label-field", 4);
21236
+ i0.ɵɵelementEnd();
21237
+ } if (rf & 2) {
21238
+ const ctx_r0 = i0.ɵɵnextContext();
21239
+ i0.ɵɵadvance();
21240
+ i0.ɵɵproperty("caseField", ctx_r0.caseTitle)("caseFields", ctx_r0.caseFields);
21241
+ } }
21242
+ class QueryCaseDetailsHeaderComponent {
21243
+ caseDetails;
21244
+ caseTitle;
21245
+ caseFields;
21246
+ ngOnInit() {
21247
+ this.caseTitle = new CaseField();
21248
+ this.caseTitle.label = this.caseDetails?.state?.title_display;
21249
+ this.caseFields = this.getCaseFieldsInfo();
21086
21250
  }
21087
- static formattedDate(date) {
21088
- const formattedDate = moment(date).format('YYYY-MM-DD');
21089
- return formattedDate;
21251
+ getCaseFieldsInfo() {
21252
+ const caseDataFields = this.caseDetails?.tabs?.reduce((acc, tab) => {
21253
+ return acc.concat(tab.fields);
21254
+ }, []);
21255
+ return caseDataFields.concat(this.caseDetails.metadataFields);
21090
21256
  }
21091
- static ɵfac = function QueryManagementUtils_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementUtils)(); };
21092
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementUtils, factory: QueryManagementUtils.ɵfac });
21257
+ static ɵfac = function QueryCaseDetailsHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryCaseDetailsHeaderComponent)(); };
21258
+ 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) {
21259
+ i0.ɵɵtemplate(0, QueryCaseDetailsHeaderComponent_h1_0_Template, 3, 3, "h1", 0)(1, QueryCaseDetailsHeaderComponent_div_1_Template, 2, 2, "div", 1);
21260
+ } if (rf & 2) {
21261
+ i0.ɵɵproperty("ngIf", !ctx.caseTitle.label);
21262
+ i0.ɵɵadvance();
21263
+ i0.ɵɵproperty("ngIf", ctx.caseTitle.label);
21264
+ } }, dependencies: [i5.NgIf, LabelFieldComponent, CaseReferencePipe], encapsulation: 2 });
21093
21265
  }
21094
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementUtils, [{
21095
- type: Injectable
21096
- }], null, null); })();
21266
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCaseDetailsHeaderComponent, [{
21267
+ type: Component,
21268
+ 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" }]
21269
+ }], null, { caseDetails: [{
21270
+ type: Input
21271
+ }] }); })();
21272
+ (() => { (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 }); })();
21097
21273
 
21098
21274
  function QueryCheckYourAnswersComponent_div_0_div_2_li_6_Template(rf, ctx) { if (rf & 1) {
21099
21275
  i0.ɵɵelementStart(0, "li")(1, "a", 28);
@@ -21420,20 +21596,27 @@ class QueryCheckYourAnswersComponent {
21420
21596
  casesService;
21421
21597
  caseNotifier;
21422
21598
  workAllocationService;
21423
- sessionStorageService;
21424
21599
  qualifyingQuestionService;
21600
+ queryManagementService;
21601
+ errorNotifierService;
21602
+ alertService;
21425
21603
  RAISE_A_QUERY_EVENT_TRIGGER_ID = 'queryManagementRaiseQuery';
21426
21604
  RESPOND_TO_QUERY_EVENT_TRIGGER_ID = 'queryManagementRespondQuery';
21427
21605
  CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';
21606
+ static TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
21607
+ static TRIGGER_TEXT_START = 'Continue';
21428
21608
  FIELD_TYPE_COMPLEX = 'Complex';
21429
21609
  DISPLAY_CONTEXT_READONLY = 'READONLY';
21430
21610
  QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';
21431
21611
  QM_COLLECTION_PROMPT = 'promptQmCollection';
21432
21612
  CIVIL_JURISDICTION = 'CIVIL';
21613
+ triggerTextStart = QueryCheckYourAnswersComponent.TRIGGER_TEXT_START;
21614
+ triggerTextIgnoreWarnings = QueryCheckYourAnswersComponent.TRIGGER_TEXT_CONTINUE;
21433
21615
  formGroup;
21434
21616
  queryItem;
21435
21617
  queryCreateContext;
21436
21618
  eventData = null;
21619
+ qmCaseQueriesCollectionData;
21437
21620
  backClicked = new EventEmitter();
21438
21621
  querySubmitted = new EventEmitter();
21439
21622
  callbackConfirmationMessage = new EventEmitter();
@@ -21452,20 +21635,24 @@ class QueryCheckYourAnswersComponent {
21452
21635
  filteredTasks = [];
21453
21636
  readyToSubmit;
21454
21637
  isSubmitting = false;
21638
+ messgaeId;
21455
21639
  callbackErrorsSubject = new Subject();
21456
21640
  error;
21457
- constructor(route, router, casesService, caseNotifier, workAllocationService, sessionStorageService, qualifyingQuestionService) {
21641
+ constructor(route, router, casesService, caseNotifier, workAllocationService, qualifyingQuestionService, queryManagementService, errorNotifierService, alertService) {
21458
21642
  this.route = route;
21459
21643
  this.router = router;
21460
21644
  this.casesService = casesService;
21461
21645
  this.caseNotifier = caseNotifier;
21462
21646
  this.workAllocationService = workAllocationService;
21463
- this.sessionStorageService = sessionStorageService;
21464
21647
  this.qualifyingQuestionService = qualifyingQuestionService;
21648
+ this.queryManagementService = queryManagementService;
21649
+ this.errorNotifierService = errorNotifierService;
21650
+ this.alertService = alertService;
21465
21651
  }
21466
21652
  ngOnInit() {
21467
21653
  this.queryId = this.route.snapshot.params.qid;
21468
21654
  this.tid = this.route.snapshot.queryParams?.tid;
21655
+ this.messgaeId = this.route.snapshot.params.dataid;
21469
21656
  this.caseNotifier.caseView.pipe(take(1)).subscribe((caseDetails) => {
21470
21657
  this.caseDetails = caseDetails;
21471
21658
  // Find the appropriate event trigger based on the queryCreateContext
@@ -21494,8 +21681,23 @@ class QueryCheckYourAnswersComponent {
21494
21681
  }
21495
21682
  },
21496
21683
  error: (error) => {
21497
- console.error('Error in searchTasksSubscription:', error);
21498
21684
  this.readyToSubmit = false;
21685
+ if (error.status !== 401 && error.status !== 403) {
21686
+ this.errorNotifierService.announceError(error);
21687
+ this.alertService.error({ phrase: error.message });
21688
+ console.error('Error occurred while fetching event data:', error);
21689
+ this.callbackErrorsSubject.next(error);
21690
+ }
21691
+ else {
21692
+ this.errorMessages = [
21693
+ {
21694
+ title: 'Error',
21695
+ description: 'Something unexpected happened. Please try again later.',
21696
+ fieldId: 'field-id'
21697
+ }
21698
+ ];
21699
+ }
21700
+ window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21499
21701
  }
21500
21702
  });
21501
21703
  }
@@ -21506,6 +21708,7 @@ class QueryCheckYourAnswersComponent {
21506
21708
  ngOnDestroy() {
21507
21709
  this.createEventSubscription?.unsubscribe();
21508
21710
  this.searchTasksSubscription?.unsubscribe();
21711
+ this.callbackErrorsSubject?.unsubscribe();
21509
21712
  }
21510
21713
  goBack() {
21511
21714
  this.backClicked.emit(true);
@@ -21514,20 +21717,7 @@ class QueryCheckYourAnswersComponent {
21514
21717
  if (this.isSubmitting) {
21515
21718
  return;
21516
21719
  }
21517
- // Check if fieldId is null or undefined
21518
- if (!this.fieldId) {
21519
- console.error('Error: Field ID is missing. Cannot proceed with submission.');
21520
- this.errorMessages = [
21521
- {
21522
- title: 'Error',
21523
- description: 'This case is not configured for query management.',
21524
- fieldId: 'field-id'
21525
- }
21526
- ];
21527
- window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21528
- return;
21529
- }
21530
- const data = this.generateCaseQueriesCollectionData();
21720
+ const data = this.qmCaseQueriesCollectionData;
21531
21721
  const createEvent$ = this.createEvent(data);
21532
21722
  this.isSubmitting = true;
21533
21723
  if (this.queryCreateContext === QueryCreateContext.RESPOND) {
@@ -21588,172 +21778,7 @@ class QueryCheckYourAnswersComponent {
21588
21778
  handleError(error) {
21589
21779
  console.error('Error in API calls:', error);
21590
21780
  this.isSubmitting = false;
21591
- if (this.isServiceErrorFound(error)) {
21592
- this.error = null;
21593
- this.callbackErrorsSubject.next(error);
21594
- }
21595
- else {
21596
- if (error && error.status !== 401 && error.status !== 403) {
21597
- this.error = error;
21598
- }
21599
- else {
21600
- this.router.navigate(['/', 'service-down']);
21601
- }
21602
- }
21603
- window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });
21604
- }
21605
- generateCaseQueriesCollectionData() {
21606
- const currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
21607
- const caseMessage = this.queryCreateContext === QueryCreateContext.NEW_QUERY
21608
- ? QueryManagementUtils.getNewQueryData(this.formGroup, currentUserDetails)
21609
- : QueryManagementUtils.getRespondOrFollowupQueryData(this.formGroup, this.queryItem, currentUserDetails);
21610
- const messageId = this.route.snapshot.params.dataid; // Get the message ID from route params (if present)
21611
- const isNewQuery = this.queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
21612
- // Check if the field ID has been set dynamically
21613
- if (!this.fieldId) {
21614
- console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
21615
- this.router.navigate(['/', 'service-down']);
21616
- }
21617
- // Initialize new query data structure
21618
- const newQueryData = {};
21619
- if (this.caseQueriesCollections?.length) {
21620
- let matchedCollection;
21621
- // If it's not a new query, try to find the existing collection with the message ID
21622
- if (!isNewQuery && messageId) {
21623
- matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
21624
- }
21625
- if (matchedCollection) {
21626
- // Append the new case message to the matched collection's caseMessages
21627
- matchedCollection.caseMessages.push({
21628
- id: null,
21629
- value: caseMessage
21630
- });
21631
- // Add the matched collection to newQueryData
21632
- newQueryData[this.fieldId] = {
21633
- ...matchedCollection, // Keep existing data intact
21634
- caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
21635
- };
21636
- }
21637
- else {
21638
- // Use partyName from the first collection (assumption: all share the same party)
21639
- const originalPartyName = this.caseQueriesCollections[0].partyName;
21640
- // If no collection matches, or it's a new query
21641
- newQueryData[this.fieldId] = {
21642
- partyName: originalPartyName,
21643
- roleOnCase: '', // Not returned by CCD
21644
- caseMessages: [
21645
- {
21646
- id: null,
21647
- value: caseMessage
21648
- }
21649
- ]
21650
- };
21651
- // If caseQueriesCollections is not empty, append its data
21652
- newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
21653
- }
21654
- }
21655
- else {
21656
- // If there are no existing collections, create a new one (e.g., for new queries)
21657
- newQueryData[this.fieldId] = {
21658
- partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
21659
- roleOnCase: '', // Not returned by CCD
21660
- caseMessages: [
21661
- {
21662
- id: null,
21663
- value: caseMessage
21664
- }
21665
- ]
21666
- };
21667
- }
21668
- return newQueryData;
21669
- }
21670
- setCaseQueriesCollectionData() {
21671
- if (this.eventData?.case_fields?.length) {
21672
- // Workaround for multiple qmCaseQueriesCollections that are not to be appearing in the eventData
21673
- // Counts number qmCaseQueriesCollections
21674
- const numberOfCaseQueriesCollections = this.eventData?.case_fields?.filter((caseField) => caseField.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
21675
- caseField.field_type.type === this.FIELD_TYPE_COMPLEX && caseField.display_context !== this.DISPLAY_CONTEXT_READONLY)?.length || 0;
21676
- this.caseQueriesCollections = this.eventData.case_fields.reduce((acc, caseField) => {
21677
- // Extract the ID based on conditions, updating this.fieldId dynamically
21678
- this.extractCaseQueryId(caseField, numberOfCaseQueriesCollections);
21679
- const extractedCaseQueriesFromCaseField = QueryManagementUtils.extractCaseQueriesFromCaseField(caseField);
21680
- if (extractedCaseQueriesFromCaseField && typeof extractedCaseQueriesFromCaseField === 'object') {
21681
- acc.push(extractedCaseQueriesFromCaseField);
21682
- }
21683
- return acc;
21684
- }, []);
21685
- }
21686
- }
21687
- extractCaseQueryId(data, count) {
21688
- const { id, value } = data;
21689
- const messageId = this.route.snapshot.params.dataid;
21690
- // Check if the field_type matches CaseQueriesCollection and type is Complex
21691
- if (data.field_type.id === this.CASE_QUERIES_COLLECTION_ID && data.field_type.type === this.FIELD_TYPE_COMPLEX) {
21692
- if (this.isNewQueryContext(data)) {
21693
- // If there is more than one qmCaseQueriesCollection, pick the one with the lowest order
21694
- if (count > 1) {
21695
- if (!this.handleMultipleCollections()) {
21696
- return;
21697
- }
21698
- }
21699
- else {
21700
- // Set the field ID dynamically based on the extracted data
21701
- this.fieldId = id; // Store the ID for use in generating newQueryData
21702
- }
21703
- }
21704
- // If messageId is present, find the corresponding case message
21705
- this.setMessageFieldId(messageId, value, id);
21706
- }
21707
- }
21708
- setMessageFieldId(messageId, value, id) {
21709
- if (messageId && value?.caseMessages) {
21710
- // If a matching message is found, set the fieldId to the corresponding id
21711
- const matchedMessage = value?.caseMessages?.find((message) => message.value.id === messageId);
21712
- if (matchedMessage) {
21713
- this.fieldId = id;
21714
- }
21715
- }
21716
- }
21717
- isNewQueryContext(data) {
21718
- return this.queryCreateContext === QueryCreateContext.NEW_QUERY && data.display_context !== this.DISPLAY_CONTEXT_READONLY;
21719
- }
21720
- handleMultipleCollections() {
21721
- const jurisdictionId = this.caseDetails?.case_type?.jurisdiction?.id;
21722
- if (!jurisdictionId) {
21723
- console.error('Jurisdiction ID is missing.');
21724
- return false;
21725
- }
21726
- if (this.getCollectionSelectionMethod(jurisdictionId) === this.QM_SELECT_FIRST_COLLECTION) {
21727
- // Pick the collection with the lowest order
21728
- this.fieldId = this.getCaseQueriesCollectionFieldOrderFromWizardPages()?.id;
21729
- }
21730
- else {
21731
- // Display Error, for now, until EXUI-2644 is implemented
21732
- console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
21733
- return false;
21734
- }
21735
- return true;
21736
- }
21737
- getCaseQueriesCollectionFieldOrderFromWizardPages() {
21738
- const candidateFields = this.eventData?.case_fields?.filter((field) => field.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
21739
- field.field_type.type === this.FIELD_TYPE_COMPLEX &&
21740
- field.display_context !== this.DISPLAY_CONTEXT_READONLY);
21741
- if (!candidateFields?.length) {
21742
- return undefined;
21743
- }
21744
- const firstPageFields = this.eventData?.wizard_pages?.[0]?.wizard_page_fields;
21745
- if (!firstPageFields) {
21746
- return undefined;
21747
- }
21748
- return candidateFields
21749
- .map((field) => {
21750
- const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
21751
- return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
21752
- })
21753
- .sort((a, b) => a.order - b.order)[0]?.field;
21754
- }
21755
- getCollectionSelectionMethod(jurisdiction) {
21756
- return jurisdiction.toUpperCase() === this.CIVIL_JURISDICTION ? this.QM_SELECT_FIRST_COLLECTION : this.QM_COLLECTION_PROMPT;
21781
+ this.router.navigate(['/', 'service-down']);
21757
21782
  }
21758
21783
  getDocumentAttachments() {
21759
21784
  const attachmentsValue = this.formGroup.get('attachments').value;
@@ -21765,8 +21790,14 @@ class QueryCheckYourAnswersComponent {
21765
21790
  isServiceErrorFound(error) {
21766
21791
  return !!(error?.callbackErrors?.length);
21767
21792
  }
21768
- 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)); };
21769
- 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) {
21793
+ setCaseQueriesCollectionData() {
21794
+ if (!this.eventData) {
21795
+ console.warn('Event data not available; skipping collection setup.');
21796
+ }
21797
+ this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messgaeId);
21798
+ }
21799
+ 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)); };
21800
+ 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) {
21770
21801
  i0.ɵɵtemplate(0, QueryCheckYourAnswersComponent_div_0_Template, 36, 25, "div", 2);
21771
21802
  } if (rf & 2) {
21772
21803
  i0.ɵɵproperty("ngIf", ctx.readyToSubmit);
@@ -21775,7 +21806,7 @@ class QueryCheckYourAnswersComponent {
21775
21806
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryCheckYourAnswersComponent, [{
21776
21807
  type: Component,
21777
21808
  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"] }]
21778
- }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: CasesService }, { type: CaseNotifier }, { type: WorkAllocationService }, { type: SessionStorageService }, { type: QualifyingQuestionService }], { formGroup: [{
21809
+ }], () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: CasesService }, { type: CaseNotifier }, { type: WorkAllocationService }, { type: QualifyingQuestionService }, { type: QueryManagementService }, { type: ErrorNotifierService }, { type: AlertService }], { formGroup: [{
21779
21810
  type: Input
21780
21811
  }], queryItem: [{
21781
21812
  type: Input
@@ -21783,6 +21814,8 @@ class QueryCheckYourAnswersComponent {
21783
21814
  type: Input
21784
21815
  }], eventData: [{
21785
21816
  type: Input
21817
+ }], qmCaseQueriesCollectionData: [{
21818
+ type: Input
21786
21819
  }], backClicked: [{
21787
21820
  type: Output
21788
21821
  }], querySubmitted: [{
@@ -21790,7 +21823,7 @@ class QueryCheckYourAnswersComponent {
21790
21823
  }], callbackConfirmationMessage: [{
21791
21824
  type: Output
21792
21825
  }] }); })();
21793
- (() => { (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 }); })();
21826
+ (() => { (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 }); })();
21794
21827
 
21795
21828
  function QueryDetailsComponent_ng_container_0_p_1_Template(rf, ctx) { if (rf & 1) {
21796
21829
  const _r1 = i0.ɵɵgetCurrentView();
@@ -22742,12 +22775,36 @@ function QueryWriteRaiseQueryComponent_div_11_Template(rf, ctx) { if (rf & 1) {
22742
22775
  i0.ɵɵproperty("ngIf", ctx_r0.formGroup.get("isHearingRelated").value);
22743
22776
  } }
22744
22777
  class QueryWriteRaiseQueryComponent {
22778
+ queryManagementService;
22779
+ route;
22745
22780
  formGroup;
22746
22781
  submitted;
22747
22782
  caseDetails;
22748
22783
  showForm;
22749
22784
  serviceMessage;
22785
+ queryCreateContext;
22786
+ eventData = null;
22787
+ queryItem;
22788
+ validate;
22789
+ triggerSubmission;
22790
+ queryDataCreated = new EventEmitter();
22750
22791
  raiseQueryErrorMessage = RaiseQueryErrorMessage;
22792
+ eventCompletionParams;
22793
+ messgaeId;
22794
+ constructor(queryManagementService, route) {
22795
+ this.queryManagementService = queryManagementService;
22796
+ this.route = route;
22797
+ }
22798
+ ngOnChanges() {
22799
+ this.messgaeId = this.route.snapshot.params.dataid;
22800
+ const isCollectionDataSet = this.setCaseQueriesCollectionData();
22801
+ if (isCollectionDataSet) {
22802
+ if (this.triggerSubmission) {
22803
+ const data = this.generateCaseQueriesCollectionData();
22804
+ this.queryDataCreated.emit(data);
22805
+ }
22806
+ }
22807
+ }
22751
22808
  onSubjectInput() {
22752
22809
  const control = this.formGroup.get('subject');
22753
22810
  const value = control?.value;
@@ -22765,8 +22822,19 @@ class QueryWriteRaiseQueryComponent {
22765
22822
  }
22766
22823
  return '';
22767
22824
  }
22768
- static ɵfac = function QueryWriteRaiseQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRaiseQueryComponent)(); };
22769
- 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) {
22825
+ setCaseQueriesCollectionData() {
22826
+ if (!this.eventData) {
22827
+ console.warn('Event data not available; skipping collection setup.');
22828
+ return false;
22829
+ }
22830
+ this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messgaeId);
22831
+ return true;
22832
+ }
22833
+ generateCaseQueriesCollectionData() {
22834
+ return this.queryManagementService.generateCaseQueriesCollectionData(this.formGroup, this.queryCreateContext, this.queryItem, this.messgaeId);
22835
+ }
22836
+ static ɵfac = function QueryWriteRaiseQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRaiseQueryComponent)(i0.ɵɵdirectiveInject(QueryManagementService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute)); };
22837
+ 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) {
22770
22838
  i0.ɵɵelementStart(0, "div")(1, "div", 0)(2, "div", 1);
22771
22839
  i0.ɵɵtext(3);
22772
22840
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22795,7 +22863,7 @@ class QueryWriteRaiseQueryComponent {
22795
22863
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRaiseQueryComponent, [{
22796
22864
  type: Component,
22797
22865
  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" }]
22798
- }], null, { formGroup: [{
22866
+ }], () => [{ type: QueryManagementService }, { type: i1$1.ActivatedRoute }], { formGroup: [{
22799
22867
  type: Input
22800
22868
  }], submitted: [{
22801
22869
  type: Input
@@ -22805,8 +22873,20 @@ class QueryWriteRaiseQueryComponent {
22805
22873
  type: Input
22806
22874
  }], serviceMessage: [{
22807
22875
  type: Input
22876
+ }], queryCreateContext: [{
22877
+ type: Input
22878
+ }], eventData: [{
22879
+ type: Input
22880
+ }], queryItem: [{
22881
+ type: Input
22882
+ }], validate: [{
22883
+ type: Input
22884
+ }], triggerSubmission: [{
22885
+ type: Input
22886
+ }], queryDataCreated: [{
22887
+ type: Output
22808
22888
  }] }); })();
22809
- (() => { (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 }); })();
22889
+ (() => { (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 }); })();
22810
22890
 
22811
22891
  function QueryWriteRespondToQueryComponent_ccd_query_case_details_header_9_Template(rf, ctx) { if (rf & 1) {
22812
22892
  i0.ɵɵelement(0, "ccd-query-case-details-header", 8);
@@ -22888,12 +22968,16 @@ function QueryWriteRespondToQueryComponent_ng_container_13_Template(rf, ctx) { i
22888
22968
  class QueryWriteRespondToQueryComponent {
22889
22969
  caseNotifier;
22890
22970
  route;
22971
+ queryManagementService;
22891
22972
  queryItem;
22892
22973
  formGroup;
22893
22974
  queryCreateContext;
22894
22975
  submitted = false;
22895
22976
  caseQueriesCollections;
22896
22977
  showForm;
22978
+ triggerSubmission;
22979
+ eventData = null;
22980
+ queryDataCreated = new EventEmitter();
22897
22981
  hasRespondedToQueryTask = new EventEmitter();
22898
22982
  queryCreateContextEnum = QueryCreateContext;
22899
22983
  raiseQueryErrorMessages = RaiseQueryErrorMessage;
@@ -22903,11 +22987,13 @@ class QueryWriteRespondToQueryComponent {
22903
22987
  queryResponseStatus;
22904
22988
  queryListData;
22905
22989
  hasRespondedToQuery = false;
22990
+ messgaeId;
22906
22991
  static QUERY_ITEM_RESPOND = '3';
22907
22992
  static QUERY_ITEM_FOLLOWUP = '4';
22908
- constructor(caseNotifier, route) {
22993
+ constructor(caseNotifier, route, queryManagementService) {
22909
22994
  this.caseNotifier = caseNotifier;
22910
22995
  this.route = route;
22996
+ this.queryManagementService = queryManagementService;
22911
22997
  }
22912
22998
  ngOnInit() {
22913
22999
  this.queryItemId = this.route.snapshot.params.qid;
@@ -22949,13 +23035,31 @@ class QueryWriteRespondToQueryComponent {
22949
23035
  : matchingMessage?.id;
22950
23036
  this.queryListData = queryWithChildren?.queries.find((query) => query?.id === targetId);
22951
23037
  this.queryResponseStatus = this.queryListData?.responseStatus;
23038
+ const isCollectionDataSet = this.setCaseQueriesCollectionData();
23039
+ if (isCollectionDataSet) {
23040
+ if (this.triggerSubmission) {
23041
+ const data = this.generateCaseQueriesCollectionData();
23042
+ this.queryDataCreated.emit(data);
23043
+ }
23044
+ }
22952
23045
  }
22953
23046
  hasResponded(value) {
22954
23047
  this.hasRespondedToQuery = value;
22955
23048
  this.hasRespondedToQueryTask.emit(value);
22956
23049
  }
22957
- static ɵfac = function QueryWriteRespondToQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRespondToQueryComponent)(i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute)); };
22958
- 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) {
23050
+ setCaseQueriesCollectionData() {
23051
+ if (!this.eventData) {
23052
+ console.warn('Event data not available; skipping collection setup.');
23053
+ return false;
23054
+ }
23055
+ this.queryManagementService.setCaseQueriesCollectionData(this.eventData, this.queryCreateContext, this.caseDetails, this.messgaeId);
23056
+ return true;
23057
+ }
23058
+ generateCaseQueriesCollectionData() {
23059
+ return this.queryManagementService.generateCaseQueriesCollectionData(this.formGroup, this.queryCreateContext, this.queryItem, this.messgaeId);
23060
+ }
23061
+ static ɵfac = function QueryWriteRespondToQueryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteRespondToQueryComponent)(i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(QueryManagementService)); };
23062
+ 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) {
22959
23063
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 0)(2, "div", 1);
22960
23064
  i0.ɵɵtext(3);
22961
23065
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -22989,7 +23093,7 @@ class QueryWriteRespondToQueryComponent {
22989
23093
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteRespondToQueryComponent, [{
22990
23094
  type: Component,
22991
23095
  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"] }]
22992
- }], () => [{ type: CaseNotifier }, { type: i1$1.ActivatedRoute }], { queryItem: [{
23096
+ }], () => [{ type: CaseNotifier }, { type: i1$1.ActivatedRoute }, { type: QueryManagementService }], { queryItem: [{
22993
23097
  type: Input
22994
23098
  }], formGroup: [{
22995
23099
  type: Input
@@ -23001,10 +23105,16 @@ class QueryWriteRespondToQueryComponent {
23001
23105
  type: Input
23002
23106
  }], showForm: [{
23003
23107
  type: Input
23108
+ }], triggerSubmission: [{
23109
+ type: Input
23110
+ }], eventData: [{
23111
+ type: Input
23112
+ }], queryDataCreated: [{
23113
+ type: Output
23004
23114
  }], hasRespondedToQueryTask: [{
23005
23115
  type: Output
23006
23116
  }] }); })();
23007
- (() => { (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 }); })();
23117
+ (() => { (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 }); })();
23008
23118
 
23009
23119
  function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {
23010
23120
  i0.ɵɵelementContainerStart(0);
@@ -23221,23 +23331,32 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_conta
23221
23331
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
23222
23332
  } }
23223
23333
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
23224
- i0.ɵɵelementStart(0, "div")(1, "p", 10);
23334
+ i0.ɵɵelementStart(0, "div")(1, "button", 9);
23225
23335
  i0.ɵɵtext(2);
23226
23336
  i0.ɵɵpipe(3, "rpxTranslate");
23227
23337
  i0.ɵɵelementEnd();
23228
- i0.ɵɵelementStart(4, "p");
23338
+ i0.ɵɵelementStart(4, "p", 10);
23229
23339
  i0.ɵɵtext(5);
23230
23340
  i0.ɵɵpipe(6, "rpxTranslate");
23341
+ i0.ɵɵelementEnd();
23342
+ i0.ɵɵelementStart(7, "p");
23343
+ i0.ɵɵtext(8);
23344
+ i0.ɵɵpipe(9, "rpxTranslate");
23231
23345
  i0.ɵɵelementEnd()();
23232
23346
  } if (rf & 2) {
23233
- i0.ɵɵadvance(2);
23234
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Your query is under review"));
23347
+ const ctx_r1 = i0.ɵɵnextContext(3);
23348
+ i0.ɵɵadvance();
23349
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction2(10, _c0$B, ctx_r1.caseId, ctx_r1.query.id));
23350
+ i0.ɵɵadvance();
23351
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "Ask a follow-up question"), " ");
23352
+ i0.ɵɵadvance(3);
23353
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 6, "Your query is under review"));
23235
23354
  i0.ɵɵadvance(3);
23236
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Our team will read your query and respond. Do not submit the same query more than once."));
23355
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 8, "Our team will read your query and respond. Do not submit the same query more than once."));
23237
23356
  } }
23238
23357
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23239
23358
  i0.ɵɵelementContainerStart(0);
23240
- 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);
23359
+ 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);
23241
23360
  i0.ɵɵelementContainerEnd();
23242
23361
  } if (rf & 2) {
23243
23362
  const queryIsInReview_r5 = i0.ɵɵreference(3);
@@ -23272,7 +23391,7 @@ function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if
23272
23391
  const ctx_r1 = i0.ɵɵnextContext();
23273
23392
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
23274
23393
  i0.ɵɵadvance();
23275
- i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && !ctx_r1.isQueryClosed);
23394
+ 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);
23276
23395
  i0.ɵɵadvance();
23277
23396
  i0.ɵɵproperty("ngIf", !ctx_r1.isInternalUser() && ctx_r1.isQueryClosed);
23278
23397
  } }
@@ -23340,7 +23459,7 @@ class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent {
23340
23459
  }
23341
23460
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
23342
23461
  type: Component,
23343
- 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" }]
23462
+ 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" }]
23344
23463
  }], () => [{ type: i1$1.ActivatedRoute }, { type: SessionStorageService }, { type: CaseNotifier }], null); })();
23345
23464
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 15 }); })();
23346
23465
 
@@ -30607,6 +30726,8 @@ class PaletteModule {
30607
30726
  CommonDataService,
30608
30727
  LinkedCasesService,
30609
30728
  QualifyingQuestionService,
30729
+ QueryManagementUtils,
30730
+ QueryManagementService,
30610
30731
  { provide: MAT_LEGACY_DATE_LOCALE, useValue: 'en-GB' }
30611
30732
  ], imports: [CommonModule,
30612
30733
  RouterModule,
@@ -30724,6 +30845,8 @@ class PaletteModule {
30724
30845
  CommonDataService,
30725
30846
  LinkedCasesService,
30726
30847
  QualifyingQuestionService,
30848
+ QueryManagementUtils,
30849
+ QueryManagementService,
30727
30850
  { provide: MAT_LEGACY_DATE_LOCALE, useValue: 'en-GB' }
30728
30851
  ],
30729
30852
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
@@ -40130,5 +40253,5 @@ class TestRouteSnapshotBuilder {
40130
40253
  * Generated bundle index. Do not edit.
40131
40254
  */
40132
40255
 
40133
- 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 };
40256
+ 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 };
40134
40257
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map