@hmcts/ccd-case-ui-toolkit 7.1.78 → 7.1.79-last-submission-date
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.
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +8 -4
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +35 -4
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +41 -6
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +1 -0
- package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -11,14 +11,18 @@ export class QueryListData {
|
|
|
11
11
|
this.queries = parentMessages.map((message) => this.buildQueryListItem(message, caseQueriesCollection.caseMessages));
|
|
12
12
|
}
|
|
13
13
|
buildQueryListItem(message, allMessages) {
|
|
14
|
+
const childrenMessages = allMessages.filter((childMessage) => childMessage.value.parentId === message.value.id);
|
|
15
|
+
const children = childrenMessages.map((childMessage, index) => {
|
|
16
|
+
const childItem = this.buildQueryListItem(childMessage, allMessages);
|
|
17
|
+
childItem.messageIndexInParent = index; // Assign index for status logic
|
|
18
|
+
return childItem;
|
|
19
|
+
});
|
|
14
20
|
const queryListItem = new QueryListItem();
|
|
15
21
|
Object.assign(queryListItem, {
|
|
16
22
|
...message.value,
|
|
17
|
-
children
|
|
18
|
-
.filter((childMessage) => childMessage.value.parentId === message.value.id)
|
|
19
|
-
.map((childMessage) => this.buildQueryListItem(childMessage, allMessages))
|
|
23
|
+
children
|
|
20
24
|
});
|
|
21
25
|
return queryListItem;
|
|
22
26
|
}
|
|
23
27
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbGlzdC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9tb2RlbHMvcXVlcnktbGlzdC9xdWVyeS1saXN0LWRhdGEvcXVlcnktbGlzdC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV6RSxNQUFNLE9BQU8sYUFBYTtJQUNqQixTQUFTLENBQVM7SUFDbEIsVUFBVSxDQUFTO0lBQ25CLE9BQU8sQ0FBa0I7SUFFaEMsWUFBWSxxQkFBNEM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7UUFDbkQsbUZBQW1GO1FBQ25GLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckgsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3JJLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFxQixFQUFFLFdBQTJCO1FBQzNFLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDakYsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFvQixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDN0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNyRSxTQUFTLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLENBQUMsZ0NBQWdDO1lBQ3hFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUMzQixHQUFHLE9BQU8sQ0FBQyxLQUFLO1lBQ2hCLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXNlUXVlcmllc0NvbGxlY3Rpb24sIFF1ZXJ5TWVzc2FnZSB9IGZyb20gJy4uLy4uL2Nhc2UtcXVlcmllcy1jb2xsZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuLi9xdWVyeS1saXN0LWl0ZW0vcXVlcnktbGlzdC1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5TGlzdERhdGEge1xuICBwdWJsaWMgcGFydHlOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByb2xlT25DYXNlOiBzdHJpbmc7XG4gIHB1YmxpYyBxdWVyaWVzOiBRdWVyeUxpc3RJdGVtW107XG5cbiAgY29uc3RydWN0b3IoY2FzZVF1ZXJpZXNDb2xsZWN0aW9uOiBDYXNlUXVlcmllc0NvbGxlY3Rpb24pIHtcbiAgICB0aGlzLnBhcnR5TmFtZSA9IGNhc2VRdWVyaWVzQ29sbGVjdGlvbi5wYXJ0eU5hbWU7XG4gICAgdGhpcy5yb2xlT25DYXNlID0gY2FzZVF1ZXJpZXNDb2xsZWN0aW9uLnJvbGVPbkNhc2U7XG4gICAgLy8gZ2V0IHRoZSBwYXJlbnQgbWVzc2FnZXMgKG1lc3NhZ2VzIHdpdGhvdXQgcGFyZW50SWQpIGFuZCBhZGQgdGhlIGNoaWxkcmVuIHRvIHRoZW1cbiAgICBjb25zdCBwYXJlbnRNZXNzYWdlcyA9IGNhc2VRdWVyaWVzQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlOiBRdWVyeU1lc3NhZ2UpID0+ICFtZXNzYWdlLnZhbHVlLnBhcmVudElkKTtcbiAgICB0aGlzLnF1ZXJpZXMgPSBwYXJlbnRNZXNzYWdlcy5tYXAoKG1lc3NhZ2U6IFF1ZXJ5TWVzc2FnZSkgPT4gdGhpcy5idWlsZFF1ZXJ5TGlzdEl0ZW0obWVzc2FnZSwgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uLmNhc2VNZXNzYWdlcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFF1ZXJ5TGlzdEl0ZW0obWVzc2FnZTogUXVlcnlNZXNzYWdlLCBhbGxNZXNzYWdlczogUXVlcnlNZXNzYWdlW10pOiBRdWVyeUxpc3RJdGVtIHtcbiAgICBjb25zdCBjaGlsZHJlbk1lc3NhZ2VzID0gYWxsTWVzc2FnZXMuZmlsdGVyKFxuICAgICAgKGNoaWxkTWVzc2FnZTogUXVlcnlNZXNzYWdlKSA9PiBjaGlsZE1lc3NhZ2UudmFsdWUucGFyZW50SWQgPT09IG1lc3NhZ2UudmFsdWUuaWRcbiAgICApO1xuXG4gICAgY29uc3QgY2hpbGRyZW46IFF1ZXJ5TGlzdEl0ZW1bXSA9IGNoaWxkcmVuTWVzc2FnZXMubWFwKChjaGlsZE1lc3NhZ2UsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjaGlsZEl0ZW0gPSB0aGlzLmJ1aWxkUXVlcnlMaXN0SXRlbShjaGlsZE1lc3NhZ2UsIGFsbE1lc3NhZ2VzKTtcbiAgICAgIGNoaWxkSXRlbS5tZXNzYWdlSW5kZXhJblBhcmVudCA9IGluZGV4OyAvLyBBc3NpZ24gaW5kZXggZm9yIHN0YXR1cyBsb2dpY1xuICAgICAgcmV0dXJuIGNoaWxkSXRlbTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHF1ZXJ5TGlzdEl0ZW0gPSBuZXcgUXVlcnlMaXN0SXRlbSgpO1xuICAgIE9iamVjdC5hc3NpZ24ocXVlcnlMaXN0SXRlbSwge1xuICAgICAgLi4ubWVzc2FnZS52YWx1ZSxcbiAgICAgIGNoaWxkcmVuXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcXVlcnlMaXN0SXRlbTtcbiAgfVxufVxuIl19
|
|
@@ -11,6 +11,7 @@ export class QueryListItem {
|
|
|
11
11
|
createdBy;
|
|
12
12
|
parentId;
|
|
13
13
|
children = [];
|
|
14
|
+
messageIndexInParent = null;
|
|
14
15
|
get lastSubmittedMessage() {
|
|
15
16
|
const getLastSubmittedMessage = (item) => {
|
|
16
17
|
let lastSubmittedMessage = item;
|
|
@@ -30,21 +31,51 @@ export class QueryListItem {
|
|
|
30
31
|
return this.lastSubmittedMessage.name;
|
|
31
32
|
}
|
|
32
33
|
get lastSubmittedDate() {
|
|
33
|
-
|
|
34
|
+
const childrenCount = this.children.length;
|
|
35
|
+
if (childrenCount === 0) {
|
|
36
|
+
return new Date(this.lastSubmittedMessage.createdOn);
|
|
37
|
+
}
|
|
38
|
+
let index;
|
|
39
|
+
if (childrenCount === 1) {
|
|
40
|
+
index = 0;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
index = childrenCount % 2 === 0 ? childrenCount - 1 : childrenCount - 2;
|
|
44
|
+
}
|
|
45
|
+
return new Date(this.children[index].createdOn);
|
|
34
46
|
}
|
|
35
47
|
get lastResponseBy() {
|
|
36
48
|
return this.children?.length > 0 ? this.lastSubmittedMessage.name : '';
|
|
37
49
|
}
|
|
38
50
|
get lastResponseDate() {
|
|
39
|
-
|
|
51
|
+
const childrenCount = this.children.length;
|
|
52
|
+
if (childrenCount === 0) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
let index;
|
|
56
|
+
if (childrenCount === 1) {
|
|
57
|
+
index = 0;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
index = childrenCount % 2 === 1 ? childrenCount - 1 : childrenCount - 2;
|
|
61
|
+
}
|
|
62
|
+
return new Date(this.children[index].createdOn);
|
|
40
63
|
}
|
|
41
64
|
get responseStatus() {
|
|
42
|
-
|
|
65
|
+
// Child logic (position-based)
|
|
66
|
+
if (this.messageIndexInParent !== null) {
|
|
67
|
+
return this.messageIndexInParent % 2 === 0
|
|
68
|
+
? QueryItemResponseStatus.RESPONDED
|
|
69
|
+
: QueryItemResponseStatus.AWAITING;
|
|
70
|
+
}
|
|
71
|
+
// Parent logic (children count)
|
|
72
|
+
if (this.children && this.children.length > 0) {
|
|
43
73
|
return this.children.length % 2 === 1
|
|
44
74
|
? QueryItemResponseStatus.RESPONDED
|
|
45
75
|
: QueryItemResponseStatus.AWAITING;
|
|
46
76
|
}
|
|
77
|
+
// No children — still awaiting
|
|
47
78
|
return QueryItemResponseStatus.AWAITING;
|
|
48
79
|
}
|
|
49
80
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbGlzdC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9tb2RlbHMvcXVlcnktbGlzdC9xdWVyeS1saXN0LWl0ZW0vcXVlcnktbGlzdC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE1BQU0sT0FBTyxhQUFhO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQVM7SUFDYixJQUFJLENBQVM7SUFDYixXQUFXLEdBQTRCLEVBQUUsQ0FBQztJQUMxQyxnQkFBZ0IsQ0FBUztJQUN6QixXQUFXLENBQVU7SUFDckIsU0FBUyxDQUFPO0lBQ2hCLFNBQVMsQ0FBUztJQUNsQixRQUFRLENBQVU7SUFDbEIsUUFBUSxHQUFvQixFQUFFLENBQUM7SUFFL0Isb0JBQW9CLEdBQW1CLElBQUksQ0FBQztJQUVuRCxJQUFXLG9CQUFvQjtRQUM3QixNQUFNLHVCQUF1QixHQUFHLENBQUMsSUFBbUIsRUFBaUIsRUFBRTtZQUNyRSxJQUFJLG9CQUFvQixHQUFrQixJQUFJLENBQUM7WUFFL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSx5QkFBeUIsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakUsSUFBSSx5QkFBeUIsQ0FBQyxTQUFTLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7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cnQgeyBRdWVyeUl0ZW1SZXNwb25zZVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2VudW1zL3F1ZXJ5LWl0ZW0tcmVzcG9uc2Utc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgQ2FzZU1lc3NhZ2UsIFF1ZXJ5TWVzc2FnZURvY3VtZW50IH0gZnJvbSAnLi4vLi4vY2FzZS1xdWVyaWVzLWNvbGxlY3Rpb24ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlMaXN0SXRlbSBpbXBsZW1lbnRzIENhc2VNZXNzYWdlIHtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyBzdWJqZWN0Pzogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYm9keTogc3RyaW5nO1xuICBwdWJsaWMgYXR0YWNobWVudHM/OiBRdWVyeU1lc3NhZ2VEb2N1bWVudFtdID0gW107XG4gIHB1YmxpYyBpc0hlYXJpbmdSZWxhdGVkOiBzdHJpbmc7XG4gIHB1YmxpYyBoZWFyaW5nRGF0ZT86IHN0cmluZztcbiAgcHVibGljIGNyZWF0ZWRPbjogRGF0ZTtcbiAgcHVibGljIGNyZWF0ZWRCeTogc3RyaW5nO1xuICBwdWJsaWMgcGFyZW50SWQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBjaGlsZHJlbjogUXVlcnlMaXN0SXRlbVtdID0gW107XG5cbiAgcHVibGljIG1lc3NhZ2VJbmRleEluUGFyZW50PzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBsYXN0U3VibWl0dGVkTWVzc2FnZSgpOiBRdWVyeUxpc3RJdGVtIHtcbiAgICBjb25zdCBnZXRMYXN0U3VibWl0dGVkTWVzc2FnZSA9IChpdGVtOiBRdWVyeUxpc3RJdGVtKTogUXVlcnlMaXN0SXRlbSA9PiB7XG4gICAgICBsZXQgbGFzdFN1Ym1pdHRlZE1lc3NhZ2U6IFF1ZXJ5TGlzdEl0ZW0gPSBpdGVtO1xuXG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRMYXN0U3VibWl0dGVkTWVzc2FnZSA9IGdldExhc3RTdWJtaXR0ZWRNZXNzYWdlKGNoaWxkKTtcbiAgICAgICAgICBpZiAoY2hpbGRMYXN0U3VibWl0dGVkTWVzc2FnZS5jcmVhdGVkT24gPiBsYXN0U3VibWl0dGVkTWVzc2FnZS5jcmVhdGVkT24pIHtcbiAgICAgICAgICAgIGxhc3RTdWJtaXR0ZWRNZXNzYWdlID0gY2hpbGRMYXN0U3VibWl0dGVkTWVzc2FnZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBsYXN0U3VibWl0dGVkTWVzc2FnZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGdldExhc3RTdWJtaXR0ZWRNZXNzYWdlKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0U3VibWl0dGVkQnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0U3VibWl0dGVkTWVzc2FnZS5uYW1lO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0U3VibWl0dGVkRGF0ZSgpOiBEYXRlIHtcbiAgICBjb25zdCBjaGlsZHJlbkNvdW50ID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgaWYgKGNoaWxkcmVuQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmxhc3RTdWJtaXR0ZWRNZXNzYWdlLmNyZWF0ZWRPbik7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4OiBudW1iZXI7XG5cbiAgICBpZiAoY2hpbGRyZW5Db3VudCA9PT0gMSkge1xuICAgICAgaW5kZXggPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmRleCA9IGNoaWxkcmVuQ291bnQgJSAyID09PSAwID8gY2hpbGRyZW5Db3VudCAtIDEgOiBjaGlsZHJlbkNvdW50IC0gMjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jaGlsZHJlbltpbmRleF0uY3JlYXRlZE9uKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFJlc3BvbnNlQnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbj8ubGVuZ3RoID4gMCA/IHRoaXMubGFzdFN1Ym1pdHRlZE1lc3NhZ2UubmFtZSA6ICcnO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0UmVzcG9uc2VEYXRlKCk6IERhdGUgfCBudWxsIHtcbiAgICBjb25zdCBjaGlsZHJlbkNvdW50ID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgaWYgKGNoaWxkcmVuQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBpbmRleDogbnVtYmVyO1xuXG4gICAgaWYgKGNoaWxkcmVuQ291bnQgPT09IDEpIHtcbiAgICAgIGluZGV4ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5kZXggPSBjaGlsZHJlbkNvdW50ICUgMiA9PT0gMSA/IGNoaWxkcmVuQ291bnQgLSAxIDogY2hpbGRyZW5Db3VudCAtIDI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2hpbGRyZW5baW5kZXhdLmNyZWF0ZWRPbik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc3BvbnNlU3RhdHVzKCk6IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzIHtcbiAgICAvLyBDaGlsZCBsb2dpYyAocG9zaXRpb24tYmFzZWQpXG4gICAgaWYgKHRoaXMubWVzc2FnZUluZGV4SW5QYXJlbnQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VJbmRleEluUGFyZW50ICUgMiA9PT0gMFxuICAgICAgICA/IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLlJFU1BPTkRFRFxuICAgICAgICA6IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLkFXQUlUSU5HO1xuICAgIH1cblxuICAgIC8vIFBhcmVudCBsb2dpYyAoY2hpbGRyZW4gY291bnQpXG4gICAgaWYgKHRoaXMuY2hpbGRyZW4gJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGggJSAyID09PSAxXG4gICAgICAgID8gUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMuUkVTUE9OREVEXG4gICAgICAgIDogUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMuQVdBSVRJTkc7XG4gICAgfVxuXG4gICAgLy8gTm8gY2hpbGRyZW4g4oCUIHN0aWxsIGF3YWl0aW5nXG4gICAgcmV0dXJuIFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLkFXQUlUSU5HO1xuICB9XG59XG4iXX0=
|
|
@@ -20838,6 +20838,7 @@ class QueryListItem {
|
|
|
20838
20838
|
createdBy;
|
|
20839
20839
|
parentId;
|
|
20840
20840
|
children = [];
|
|
20841
|
+
messageIndexInParent = null;
|
|
20841
20842
|
get lastSubmittedMessage() {
|
|
20842
20843
|
const getLastSubmittedMessage = (item) => {
|
|
20843
20844
|
let lastSubmittedMessage = item;
|
|
@@ -20857,20 +20858,50 @@ class QueryListItem {
|
|
|
20857
20858
|
return this.lastSubmittedMessage.name;
|
|
20858
20859
|
}
|
|
20859
20860
|
get lastSubmittedDate() {
|
|
20860
|
-
|
|
20861
|
+
const childrenCount = this.children.length;
|
|
20862
|
+
if (childrenCount === 0) {
|
|
20863
|
+
return new Date(this.lastSubmittedMessage.createdOn);
|
|
20864
|
+
}
|
|
20865
|
+
let index;
|
|
20866
|
+
if (childrenCount === 1) {
|
|
20867
|
+
index = 0;
|
|
20868
|
+
}
|
|
20869
|
+
else {
|
|
20870
|
+
index = childrenCount % 2 === 0 ? childrenCount - 1 : childrenCount - 2;
|
|
20871
|
+
}
|
|
20872
|
+
return new Date(this.children[index].createdOn);
|
|
20861
20873
|
}
|
|
20862
20874
|
get lastResponseBy() {
|
|
20863
20875
|
return this.children?.length > 0 ? this.lastSubmittedMessage.name : '';
|
|
20864
20876
|
}
|
|
20865
20877
|
get lastResponseDate() {
|
|
20866
|
-
|
|
20878
|
+
const childrenCount = this.children.length;
|
|
20879
|
+
if (childrenCount === 0) {
|
|
20880
|
+
return null;
|
|
20881
|
+
}
|
|
20882
|
+
let index;
|
|
20883
|
+
if (childrenCount === 1) {
|
|
20884
|
+
index = 0;
|
|
20885
|
+
}
|
|
20886
|
+
else {
|
|
20887
|
+
index = childrenCount % 2 === 1 ? childrenCount - 1 : childrenCount - 2;
|
|
20888
|
+
}
|
|
20889
|
+
return new Date(this.children[index].createdOn);
|
|
20867
20890
|
}
|
|
20868
20891
|
get responseStatus() {
|
|
20869
|
-
|
|
20892
|
+
// Child logic (position-based)
|
|
20893
|
+
if (this.messageIndexInParent !== null) {
|
|
20894
|
+
return this.messageIndexInParent % 2 === 0
|
|
20895
|
+
? QueryItemResponseStatus.RESPONDED
|
|
20896
|
+
: QueryItemResponseStatus.AWAITING;
|
|
20897
|
+
}
|
|
20898
|
+
// Parent logic (children count)
|
|
20899
|
+
if (this.children && this.children.length > 0) {
|
|
20870
20900
|
return this.children.length % 2 === 1
|
|
20871
20901
|
? QueryItemResponseStatus.RESPONDED
|
|
20872
20902
|
: QueryItemResponseStatus.AWAITING;
|
|
20873
20903
|
}
|
|
20904
|
+
// No children — still awaiting
|
|
20874
20905
|
return QueryItemResponseStatus.AWAITING;
|
|
20875
20906
|
}
|
|
20876
20907
|
}
|
|
@@ -20887,12 +20918,16 @@ class QueryListData {
|
|
|
20887
20918
|
this.queries = parentMessages.map((message) => this.buildQueryListItem(message, caseQueriesCollection.caseMessages));
|
|
20888
20919
|
}
|
|
20889
20920
|
buildQueryListItem(message, allMessages) {
|
|
20921
|
+
const childrenMessages = allMessages.filter((childMessage) => childMessage.value.parentId === message.value.id);
|
|
20922
|
+
const children = childrenMessages.map((childMessage, index) => {
|
|
20923
|
+
const childItem = this.buildQueryListItem(childMessage, allMessages);
|
|
20924
|
+
childItem.messageIndexInParent = index; // Assign index for status logic
|
|
20925
|
+
return childItem;
|
|
20926
|
+
});
|
|
20890
20927
|
const queryListItem = new QueryListItem();
|
|
20891
20928
|
Object.assign(queryListItem, {
|
|
20892
20929
|
...message.value,
|
|
20893
|
-
children
|
|
20894
|
-
.filter((childMessage) => childMessage.value.parentId === message.value.id)
|
|
20895
|
-
.map((childMessage) => this.buildQueryListItem(childMessage, allMessages))
|
|
20930
|
+
children
|
|
20896
20931
|
});
|
|
20897
20932
|
return queryListItem;
|
|
20898
20933
|
}
|