@hmcts/ccd-case-ui-toolkit 7.2.26-mid-event-callback → 7.2.26-multiple-followup

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 (43) hide show
  1. package/esm2022/lib/app.config.mjs +2 -1
  2. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -7
  3. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +195 -50
  4. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +55 -8
  5. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +6 -59
  6. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +6 -39
  7. package/esm2022/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +1 -1
  8. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +13 -2
  9. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +82 -38
  10. package/esm2022/lib/shared/components/palette/query-management/services/index.mjs +1 -2
  11. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +12 -4
  12. package/esm2022/lib/shared/utils.mjs +1 -1
  13. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +557 -566
  14. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  15. package/lib/app.config.d.ts +2 -0
  16. package/lib/app.config.d.ts.map +1 -1
  17. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  18. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +14 -15
  19. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  20. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +15 -3
  21. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  22. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +3 -24
  23. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  24. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +3 -12
  25. 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
  26. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +1 -0
  27. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -1
  28. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +1 -0
  29. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
  30. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +15 -3
  31. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
  32. package/lib/shared/components/palette/query-management/services/index.d.ts +0 -1
  33. package/lib/shared/components/palette/query-management/services/index.d.ts.map +1 -1
  34. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +1 -1
  35. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -1
  36. package/lib/shared/utils.d.ts +1 -1
  37. package/package.json +1 -1
  38. package/esm2022/lib/shared/components/palette/query-management/constants/query-management.constants.mjs +0 -7
  39. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +0 -179
  40. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts +0 -7
  41. package/lib/shared/components/palette/query-management/constants/query-management.constants.d.ts.map +0 -1
  42. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts +0 -21
  43. package/lib/shared/components/palette/query-management/services/query-management.service.d.ts.map +0 -1
@@ -1,179 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { QueryCreateContext } from '../models';
4
- import { SessionStorageService } from '../../../../services';
5
- import { USER_DETAILS } from '../../../../utils';
6
- import { QueryManagementUtils } from '../utils/query-management.utils';
7
- import { CASE_QUERIES_COLLECTION_ID, FIELD_TYPE_COMPLEX, DISPLAY_CONTEXT_READONLY, QM_SELECT_FIRST_COLLECTION, QM_COLLECTION_PROMPT, CIVIL_JURISDICTION } from '../constants/query-management.constants';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/router";
10
- import * as i2 from "../../../../services";
11
- export class QueryManagementService {
12
- router;
13
- sessionStorageService;
14
- caseQueriesCollections;
15
- fieldId;
16
- constructor(router, sessionStorageService) {
17
- this.router = router;
18
- this.sessionStorageService = sessionStorageService;
19
- }
20
- generateCaseQueriesCollectionData(formGroup, queryCreateContext, queryItem, messageId // Get the message ID from route params (if present)
21
- ) {
22
- let currentUserDetails;
23
- try {
24
- currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));
25
- }
26
- catch (e) {
27
- console.error('Could not parse USER_DETAILS from session storage:', e);
28
- currentUserDetails = {};
29
- }
30
- const caseMessage = queryCreateContext === QueryCreateContext.NEW_QUERY
31
- ? QueryManagementUtils.getNewQueryData(formGroup, currentUserDetails)
32
- : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails);
33
- const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
34
- // Check if the field ID has been set dynamically
35
- if (!this.fieldId) {
36
- console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');
37
- this.router.navigate(['/', 'service-down']);
38
- throw new Error('Field ID for CaseQueriesCollection not found. Aborting query data generation.');
39
- }
40
- // Initialize new query data structure
41
- const newQueryData = {};
42
- if (this.caseQueriesCollections?.length) {
43
- let matchedCollection;
44
- // If it's not a new query, try to find the existing collection with the message ID
45
- if (!isNewQuery && messageId) {
46
- matchedCollection = this.caseQueriesCollections.find((collection) => collection.caseMessages.some((message) => message.value.id === messageId));
47
- }
48
- if (matchedCollection) {
49
- // Append the new case message to the matched collection's caseMessages
50
- matchedCollection.caseMessages.push({
51
- id: null,
52
- value: caseMessage
53
- });
54
- // Add the matched collection to newQueryData
55
- newQueryData[this.fieldId] = {
56
- ...matchedCollection, // Keep existing data intact
57
- caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array
58
- };
59
- }
60
- else {
61
- // Use partyName from the first collection (assumption: all share the same party)
62
- const originalPartyName = this.caseQueriesCollections?.[0]?.partyName ?? currentUserDetails?.name;
63
- // If no collection matches, or it's a new query
64
- newQueryData[this.fieldId] = {
65
- partyName: originalPartyName,
66
- roleOnCase: '', // Not returned by CCD
67
- caseMessages: [
68
- {
69
- id: null,
70
- value: caseMessage
71
- }
72
- ]
73
- };
74
- // If caseQueriesCollections is not empty, append its data
75
- newQueryData[this.fieldId].caseMessages.push(...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages));
76
- }
77
- }
78
- else {
79
- // If there are no existing collections, create a new one (e.g., for new queries)
80
- newQueryData[this.fieldId] = {
81
- partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD
82
- roleOnCase: '', // Not returned by CCD
83
- caseMessages: [
84
- {
85
- id: null,
86
- value: caseMessage
87
- }
88
- ]
89
- };
90
- }
91
- return newQueryData;
92
- }
93
- setCaseQueriesCollectionData(eventData, queryCreateContext, caseDetails, messageId) {
94
- const resolvedFieldId = this.resolveFieldId(eventData, queryCreateContext, caseDetails, messageId);
95
- if (!resolvedFieldId) {
96
- console.error('Failed to resolve fieldId for CaseQueriesCollection. Cannot proceed.');
97
- return;
98
- }
99
- this.fieldId = resolvedFieldId;
100
- this.caseQueriesCollections = eventData.case_fields.reduce((acc, field) => {
101
- if (field.id === this.fieldId) {
102
- const extracted = QueryManagementUtils.extractCaseQueriesFromCaseField(field);
103
- if (extracted && typeof extracted === 'object') {
104
- acc.push(extracted);
105
- }
106
- }
107
- return acc;
108
- }, []);
109
- }
110
- resolveFieldId(eventData, queryCreateContext, caseDetails, messageId) {
111
- // Step 1: Filter candidate fields (must be editable CaseQueriesCollection fields)
112
- const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
113
- field.field_type.type === FIELD_TYPE_COMPLEX &&
114
- field.display_context !== DISPLAY_CONTEXT_READONLY);
115
- if (!candidateFields?.length) {
116
- console.warn('No editable CaseQueriesCollection fields found.');
117
- return null;
118
- }
119
- const numberOfCollections = candidateFields.length;
120
- const jurisdictionId = caseDetails?.case_type?.jurisdiction?.id ?? '';
121
- // Step 2: If messageId is present, try to locate the field containing that message
122
- if (messageId) {
123
- const fieldByMessage = candidateFields.find((field) => field?.value?.caseMessages?.some((msg) => msg?.value?.id === messageId));
124
- if (fieldByMessage) {
125
- return fieldByMessage.id; // Found the matching field by message ID
126
- }
127
- }
128
- // Step 3: Handle new queries
129
- if (queryCreateContext === QueryCreateContext.NEW_QUERY) {
130
- // If there's only one collection, use it
131
- if (numberOfCollections === 1) {
132
- return candidateFields[0].id;
133
- }
134
- // For multiple collections, use jurisdiction-based resolution strategy
135
- if (this.getCollectionSelectionMethod(jurisdictionId) === QM_SELECT_FIRST_COLLECTION) {
136
- // Choose the one with the lowest order from the first wizard page
137
- const firstOrdered = this.getCaseQueriesCollectionFieldOrderFromWizardPages(eventData);
138
- if (firstOrdered) {
139
- return firstOrdered.id;
140
- }
141
- }
142
- else {
143
- console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);
144
- return null;
145
- }
146
- }
147
- // Step 4: Fallback — if none of the above succeeded
148
- console.warn('Could not determine fieldId for context:', queryCreateContext);
149
- return null;
150
- }
151
- getCaseQueriesCollectionFieldOrderFromWizardPages(eventData) {
152
- const candidateFields = eventData?.case_fields?.filter((field) => field.field_type.id === CASE_QUERIES_COLLECTION_ID &&
153
- field.field_type.type === FIELD_TYPE_COMPLEX &&
154
- field.display_context !== DISPLAY_CONTEXT_READONLY);
155
- if (!candidateFields?.length) {
156
- return undefined;
157
- }
158
- const firstPageFields = eventData?.wizard_pages?.[0]?.wizard_page_fields;
159
- if (!firstPageFields) {
160
- return undefined;
161
- }
162
- return candidateFields
163
- .map((field) => {
164
- const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);
165
- return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };
166
- })
167
- .sort((a, b) => a.order - b.order)[0]?.field;
168
- }
169
- getCollectionSelectionMethod(jurisdiction) {
170
- return jurisdiction.toUpperCase() === CIVIL_JURISDICTION ? QM_SELECT_FIRST_COLLECTION : QM_COLLECTION_PROMPT;
171
- }
172
- static ɵfac = function QueryManagementService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryManagementService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.SessionStorageService)); };
173
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryManagementService, factory: QueryManagementService.ɵfac, providedIn: 'root' });
174
- }
175
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryManagementService, [{
176
- type: Injectable,
177
- args: [{ providedIn: 'root' }]
178
- }], () => [{ type: i1.Router }, { type: i2.SessionStorageService }], null); })();
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9zZXJ2aWNlcy9xdWVyeS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUEyQixrQkFBa0IsRUFBd0MsTUFBTSxXQUFXLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNuQixNQUFNLHlDQUF5QyxDQUFDOzs7O0FBS2pELE1BQU0sT0FBTyxzQkFBc0I7SUFLZDtJQUNBO0lBTFosc0JBQXNCLENBQTBCO0lBQ2hELE9BQU8sQ0FBUztJQUV2QixZQUNtQixNQUFjLEVBQ2QscUJBQTRDO1FBRDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQzVELENBQUM7SUFFRyxpQ0FBaUMsQ0FDdEMsU0FBb0IsRUFDcEIsa0JBQXNDLEVBQ3RDLFNBQXdCLEVBQ3hCLFNBQWtCLENBQUMsb0RBQW9EOztRQUV2RSxJQUFJLGtCQUFrQixDQUFDO1FBRXZCLElBQUksQ0FBQztZ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bXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluJztcbmltcG9ydCB7IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0sIENhc2VRdWVyaWVzQ29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVU0VSX0RFVEFJTFMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4uL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHtcbiAgQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQsXG4gIEZJRUxEX1RZUEVfQ09NUExFWCxcbiAgRElTUExBWV9DT05URVhUX1JFQURPTkxZLFxuICBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTixcbiAgUU1fQ09MTEVDVElPTl9QUk9NUFQsXG4gIENJVklMX0pVUklTRElDVElPTlxufSBmcm9tICcuLi9jb25zdGFudHMvcXVlcnktbWFuYWdlbWVudC5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuXG5leHBvcnQgY2xhc3MgUXVlcnlNYW5hZ2VtZW50U2VydmljZSB7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIGZpZWxkSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZW5lcmF0ZUNhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQsXG4gICAgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtLFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZyAvLyBHZXQgdGhlIG1lc3NhZ2UgSUQgZnJvbSByb3V0ZSBwYXJhbXMgKGlmIHByZXNlbnQpXG4gICk6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIHtcbiAgICBsZXQgY3VycmVudFVzZXJEZXRhaWxzO1xuXG4gICAgdHJ5IHtcbiAgICAgIGN1cnJlbnRVc2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShVU0VSX0RFVEFJTFMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgcGFyc2UgVVNFUl9ERVRBSUxTIGZyb20gc2Vzc2lvbiBzdG9yYWdlOicsIGUpO1xuICAgICAgY3VycmVudFVzZXJEZXRhaWxzID0ge307XG4gICAgfVxuICAgIGNvbnN0IGNhc2VNZXNzYWdlID0gcXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZXG4gICAgICA/IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmdldE5ld1F1ZXJ5RGF0YShmb3JtR3JvdXAsIGN1cnJlbnRVc2VyRGV0YWlscylcbiAgICAgIDogUXVlcnlNYW5hZ2VtZW50VXRpbHMuZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEoZm9ybUdyb3VwLCBxdWVyeUl0ZW0sIGN1cnJlbnRVc2VyRGV0YWlscyk7XG5cbiAgICBjb25zdCBpc05ld1F1ZXJ5ID0gcXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZOyAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbmV3IHF1ZXJ5XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgSUQgaGFzIGJlZW4gc2V0IGR5bmFtaWNhbGx5XG4gICAgaWYgKCF0aGlzLmZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBGaWVsZCBJRCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG5vdCBmb3VuZC4gQ2Fubm90IHByb2NlZWQgd2l0aCBkYXRhIGdlbmVyYXRpb24uJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nLCAnc2VydmljZS1kb3duJ10pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBJRCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG5vdCBmb3VuZC4gQWJvcnRpbmcgcXVlcnkgZGF0YSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgbmV3IHF1ZXJ5IGRhdGEgc3RydWN0dXJlXG4gICAgY29uc3QgbmV3UXVlcnlEYXRhOiBRbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiA9IHt9O1xuXG4gICAgaWYgKHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBsZXQgbWF0Y2hlZENvbGxlY3Rpb247XG5cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgbmV3IHF1ZXJ5LCB0cnkgdG8gZmluZCB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbiB3aXRoIHRoZSBtZXNzYWdlIElEXG4gICAgICBpZiAoIWlzTmV3UXVlcnkgJiYgbWVzc2FnZUlkKSB7XG4gICAgICAgIG1hdGNoZWRDb2xsZWN0aW9uID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+XG4gICAgICAgICAgY29sbGVjdGlvbi5jYXNlTWVzc2FnZXMuc29tZSgobWVzc2FnZSkgPT4gbWVzc2FnZS52YWx1ZS5pZCA9PT0gbWVzc2FnZUlkKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZENvbGxlY3Rpb24pIHtcbiAgICAgICAgLy8gQXBwZW5kIHRoZSBuZXcgY2FzZSBtZXNzYWdlIHRvIHRoZSBtYXRjaGVkIGNvbGxlY3Rpb24ncyBjYXNlTWVzc2FnZXNcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIG1hdGNoZWQgY29sbGVjdGlvbiB0byBuZXdRdWVyeURhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgLi4ubWF0Y2hlZENvbGxlY3Rpb24sIC8vIEtlZXAgZXhpc3RpbmcgZGF0YSBpbnRhY3RcbiAgICAgICAgICBjYXNlTWVzc2FnZXM6IFsuLi5tYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXNdIC8vIEFwcGVuZCB0aGUgdXBkYXRlZCBtZXNzYWdlcyBhcnJheVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlIHBhcnR5TmFtZSBmcm9tIHRoZSBmaXJzdCBjb2xsZWN0aW9uIChhc3N1bXB0aW9uOiBhbGwgc2hhcmUgdGhlIHNhbWUgcGFydHkpXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsUGFydHlOYW1lID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zPy5bMF0/LnBhcnR5TmFtZSA/PyBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWU7XG5cbiAgICAgICAgLy8gSWYgbm8gY29sbGVjdGlvbiBtYXRjaGVzLCBvciBpdCdzIGEgbmV3IHF1ZXJ5XG4gICAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICAgIHBhcnR5TmFtZTogb3JpZ2luYWxQYXJ0eU5hbWUsXG4gICAgICAgICAgcm9sZU9uQ2FzZTogJycsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgICBjYXNlTWVzc2FnZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBJZiBjYXNlUXVlcmllc0NvbGxlY3Rpb25zIGlzIG5vdCBlbXB0eSwgYXBwZW5kIGl0cyBkYXRhXG4gICAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdLmNhc2VNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgIC4uLnRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucy5mbGF0TWFwKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLmNhc2VNZXNzYWdlcylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIGV4aXN0aW5nIGNvbGxlY3Rpb25zLCBjcmVhdGUgYSBuZXcgb25lIChlLmcuLCBmb3IgbmV3IHF1ZXJpZXMpXG4gICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgcGFydHlOYW1lOiBjdXJyZW50VXNlckRldGFpbHM/Lm5hbWUgfHwgYCR7Y3VycmVudFVzZXJEZXRhaWxzPy5mb3JlbmFtZX0gJHtjdXJyZW50VXNlckRldGFpbHM/LnN1cm5hbWV9YCwgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICByb2xlT25DYXNlOiAnJywgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICBjYXNlTWVzc2FnZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld1F1ZXJ5RGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKFxuICAgIGV2ZW50RGF0YTogQ2FzZUV2ZW50VHJpZ2dlcixcbiAgICBxdWVyeUNyZWF0ZUNvbnRleHQ6IFF1ZXJ5Q3JlYXRlQ29udGV4dCxcbiAgICBjYXNlRGV0YWlsczogQ2FzZVZpZXcsXG4gICAgbWVzc2FnZUlkPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHJlc29sdmVkRmllbGRJZCA9IHRoaXMucmVzb2x2ZUZpZWxkSWQoZXZlbnREYXRhLCBxdWVyeUNyZWF0ZUNvbnRleHQsIGNhc2VEZXRhaWxzLCBtZXNzYWdlSWQpO1xuXG4gICAgaWYgKCFyZXNvbHZlZEZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZXNvbHZlIGZpZWxkSWQgZm9yIENhc2VRdWVyaWVzQ29sbGVjdGlvbi4gQ2Fubm90IHByb2NlZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZElkID0gcmVzb2x2ZWRGaWVsZElkO1xuXG4gICAgdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gZXZlbnREYXRhLmNhc2VfZmllbGRzLnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlkID09PSB0aGlzLmZpZWxkSWQpIHtcbiAgICAgICAgY29uc3QgZXh0cmFjdGVkID0gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZChmaWVsZCk7XG4gICAgICAgIGlmIChleHRyYWN0ZWQgJiYgdHlwZW9mIGV4dHJhY3RlZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUZpZWxkSWQoXG4gICAgZXZlbnREYXRhOiBDYXNlRXZlbnRUcmlnZ2VyLFxuICAgIHF1ZXJ5Q3JlYXRlQ29udGV4dDogUXVlcnlDcmVhdGVDb250ZXh0LFxuICAgIGNhc2VEZXRhaWxzOiBDYXNlVmlldyxcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIFN0ZXAgMTogRmlsdGVyIGNhbmRpZGF0ZSBmaWVsZHMgKG11c3QgYmUgZWRpdGFibGUgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIGZpZWxkcylcbiAgICBjb25zdCBjYW5kaWRhdGVGaWVsZHMgPSBldmVudERhdGE/LmNhc2VfZmllbGRzPy5maWx0ZXIoXG4gICAgICAoZmllbGQpID0+XG4gICAgICAgIGZpZWxkLmZpZWxkX3R5cGUuaWQgPT09IENBU0VfUVVFUklFU19DT0xMRUNUSU9OX0lEICYmXG4gICAgICBmaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IEZJRUxEX1RZUEVfQ09NUExFWCAmJlxuICAgICAgZmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFlcbiAgICApO1xuXG4gICAgaWYgKCFjYW5kaWRhdGVGaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgY29uc29sZS53YXJuKCdObyBlZGl0YWJsZSBDYXNlUXVlcmllc0NvbGxlY3Rpb24gZmllbGRzIGZvdW5kLicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtYmVyT2ZDb2xsZWN0aW9ucyA9IGNhbmRpZGF0ZUZpZWxkcy5sZW5ndGg7XG4gICAgY29uc3QganVyaXNkaWN0aW9uSWQgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5qdXJpc2RpY3Rpb24/LmlkID8/ICcnO1xuXG4gICAgLy8gU3RlcCAyOiBJZiBtZXNzYWdlSWQgaXMgcHJlc2VudCwgdHJ5IHRvIGxvY2F0ZSB0aGUgZmllbGQgY29udGFpbmluZyB0aGF0IG1lc3NhZ2VcbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICBjb25zdCBmaWVsZEJ5TWVzc2FnZSA9IGNhbmRpZGF0ZUZpZWxkcy5maW5kKChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQ/LnZhbHVlPy5jYXNlTWVzc2FnZXM/LnNvbWUoKG1zZykgPT4gbXNnPy52YWx1ZT8uaWQgPT09IG1lc3NhZ2VJZClcbiAgICAgICk7XG4gICAgICBpZiAoZmllbGRCeU1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkQnlNZXNzYWdlLmlkOyAvLyBGb3VuZCB0aGUgbWF0Y2hpbmcgZmllbGQgYnkgbWVzc2FnZSBJRFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN0ZXAgMzogSGFuZGxlIG5ldyBxdWVyaWVzXG4gICAgaWYgKHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0Lk5FV19RVUVSWSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgY29sbGVjdGlvbiwgdXNlIGl0XG4gICAgICBpZiAobnVtYmVyT2ZDb2xsZWN0aW9ucyA9PT0gMSkge1xuICAgICAgICByZXR1cm4gY2FuZGlkYXRlRmllbGRzWzBdLmlkO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3IgbXVsdGlwbGUgY29sbGVjdGlvbnMsIHVzZSBqdXJpc2RpY3Rpb24tYmFzZWQgcmVzb2x1dGlvbiBzdHJhdGVneVxuICAgICAgaWYgKHRoaXMuZ2V0Q29sbGVjdGlvblNlbGVjdGlvbk1ldGhvZChqdXJpc2RpY3Rpb25JZCkgPT09IFFNX1NFTEVDVF9GSVJTVF9DT0xMRUNUSU9OKSB7XG4gICAgICAvLyBDaG9vc2UgdGhlIG9uZSB3aXRoIHRoZSBsb3dlc3Qgb3JkZXIgZnJvbSB0aGUgZmlyc3Qgd2l6YXJkIHBhZ2VcbiAgICAgICAgY29uc3QgZmlyc3RPcmRlcmVkID0gdGhpcy5nZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25GaWVsZE9yZGVyRnJvbVdpemFyZFBhZ2VzKGV2ZW50RGF0YSk7XG4gICAgICAgIGlmIChmaXJzdE9yZGVyZWQpIHtcbiAgICAgICAgICByZXR1cm4gZmlyc3RPcmRlcmVkLmlkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvcjogTXVsdGlwbGUgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgZm9yIHRoZSAke2p1cmlzZGljdGlvbklkfSBqdXJpc2RpY3Rpb25gKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RlcCA0OiBGYWxsYmFjayDigJQgaWYgbm9uZSBvZiB0aGUgYWJvdmUgc3VjY2VlZGVkXG4gICAgY29uc29sZS53YXJuKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGZpZWxkSWQgZm9yIGNvbnRleHQ6JywgcXVlcnlDcmVhdGVDb250ZXh0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZVF1ZXJpZXNDb2xsZWN0aW9uRmllbGRPcmRlckZyb21XaXphcmRQYWdlcyhldmVudERhdGE6IENhc2VFdmVudFRyaWdnZXIpOiBDYXNlRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhbmRpZGF0ZUZpZWxkcyA9IGV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgIChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5pZCA9PT0gQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiZcbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS50eXBlID09PSBGSUVMRF9UWVBFX0NPTVBMRVggJiZcbiAgICAgICAgZmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFlcbiAgICApO1xuXG4gICAgaWYgKCFjYW5kaWRhdGVGaWVsZHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFBhZ2VGaWVsZHMgPSBldmVudERhdGE/LndpemFyZF9wYWdlcz8uWzBdPy53aXphcmRfcGFnZV9maWVsZHM7XG5cbiAgICBpZiAoIWZpcnN0UGFnZUZpZWxkcykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FuZGlkYXRlRmllbGRzXG4gICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCB3aXphcmRGaWVsZCA9IGZpcnN0UGFnZUZpZWxkcy5maW5kKChmKSA9PiBmLmNhc2VfZmllbGRfaWQgPT09IGZpZWxkLmlkKTtcbiAgICAgICAgcmV0dXJuIHsgZmllbGQsIG9yZGVyOiB3aXphcmRGaWVsZD8ub3JkZXIgPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfTtcbiAgICAgIH0pXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpWzBdPy5maWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sbGVjdGlvblNlbGVjdGlvbk1ldGhvZChqdXJpc2RpY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGp1cmlzZGljdGlvbi50b1VwcGVyQ2FzZSgpID09PSBDSVZJTF9KVVJJU0RJQ1RJT04gPyBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTiA6IFFNX0NPTExFQ1RJT05fUFJPTVBUO1xuICB9XG59XG5cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export declare const CASE_QUERIES_COLLECTION_ID = "CaseQueriesCollection";
2
- export declare const FIELD_TYPE_COMPLEX = "Complex";
3
- export declare const DISPLAY_CONTEXT_READONLY = "READONLY";
4
- export declare const QM_SELECT_FIRST_COLLECTION = "selectFirstCollection";
5
- export declare const QM_COLLECTION_PROMPT = "promptQmCollection";
6
- export declare const CIVIL_JURISDICTION = "CIVIL";
7
- //# sourceMappingURL=query-management.constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-management.constants.d.ts","sourceRoot":"","sources":["../../../../../../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/constants/query-management.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,kBAAkB,UAAU,CAAC"}
@@ -1,21 +0,0 @@
1
- import { Router } from '@angular/router';
2
- import { CaseEventTrigger, CaseView } from '../../../../../../lib/shared/domain';
3
- import { QmCaseQueriesCollection, QueryCreateContext, QueryListItem, CaseQueriesCollection } from '../models';
4
- import { SessionStorageService } from '../../../../services';
5
- import { FormGroup } from '@angular/forms';
6
- import * as i0 from "@angular/core";
7
- export declare class QueryManagementService {
8
- private readonly router;
9
- private readonly sessionStorageService;
10
- caseQueriesCollections: CaseQueriesCollection[];
11
- fieldId: string;
12
- constructor(router: Router, sessionStorageService: SessionStorageService);
13
- generateCaseQueriesCollectionData(formGroup: FormGroup, queryCreateContext: QueryCreateContext, queryItem: QueryListItem, messageId?: string): QmCaseQueriesCollection;
14
- setCaseQueriesCollectionData(eventData: CaseEventTrigger, queryCreateContext: QueryCreateContext, caseDetails: CaseView, messageId?: string): void;
15
- private resolveFieldId;
16
- private getCaseQueriesCollectionFieldOrderFromWizardPages;
17
- private getCollectionSelectionMethod;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<QueryManagementService, never>;
19
- static ɵprov: i0.ɵɵInjectableDeclaration<QueryManagementService>;
20
- }
21
- //# sourceMappingURL=query-management.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-management.service.d.ts","sourceRoot":"","sources":["../../../../../../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/services/query-management.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAa,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAW7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;AAE3C,qBAEa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IALjC,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;gBAGJ,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,qBAAqB;IAGxD,iCAAiC,CACtC,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,SAAS,EAAE,aAAa,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,uBAAuB;IAoFnB,4BAA4B,CACjC,SAAS,EAAE,gBAAgB,EAC3B,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,QAAQ,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAqBP,OAAO,CAAC,cAAc;IAyDtB,OAAO,CAAC,iDAAiD;IA0BzD,OAAO,CAAC,4BAA4B;yCA/MzB,sBAAsB;6CAAtB,sBAAsB;CAkNlC"}