@hmcts/ccd-case-ui-toolkit 7.2.37 → 7.2.38-3453

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 (27) hide show
  1. package/esm2022/lib/app.config.mjs +2 -1
  2. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +5 -2
  3. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +55 -8
  4. package/esm2022/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +1 -1
  5. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +43 -7
  6. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +77 -24
  7. package/esm2022/lib/shared/components/palette/query-management/services/query-management.service.mjs +2 -2
  8. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +12 -4
  9. package/esm2022/lib/shared/utils.mjs +1 -1
  10. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +179 -40
  11. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  12. package/lib/app.config.d.ts +2 -0
  13. package/lib/app.config.d.ts.map +1 -1
  14. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +2 -1
  15. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  16. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +15 -3
  17. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  18. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +1 -0
  19. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -1
  20. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +1 -0
  21. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
  22. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +15 -3
  23. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -1
  24. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +1 -1
  25. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -1
  26. package/lib/shared/utils.d.ts +1 -1
  27. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { QueryCreateContext } from '../..';
1
2
  import { QueryItemResponseStatus } from '../../../enums/query-item-response-status.enum';
2
3
  export class QueryListItem {
3
4
  id;
@@ -11,6 +12,7 @@ export class QueryListItem {
11
12
  createdBy;
12
13
  parentId;
13
14
  isClosed;
15
+ messageType;
14
16
  children = [];
15
17
  messageIndexInParent = null;
16
18
  get lastSubmittedMessage() {
@@ -37,14 +39,34 @@ export class QueryListItem {
37
39
  }
38
40
  get lastSubmittedDate() {
39
41
  const childrenCount = this.children.length;
40
- if (childrenCount <= 1) {
42
+ const lastChild = this.children[childrenCount - 1];
43
+ // 1. Check for legacy: <= 1 child with no messageType
44
+ const allChildrenLackMessageType = this.children.every((child) => !child.messageType);
45
+ if (childrenCount <= 1 && allChildrenLackMessageType) {
41
46
  return new Date(this.lastSubmittedMessage.createdOn);
42
47
  }
43
- let index;
44
- if (childrenCount > 1) {
45
- index = childrenCount % 2 === 0 ? childrenCount - 1 : childrenCount - 2;
48
+ // 2. Check if any RESPOND exists
49
+ const hasRespond = this.children.some((child) => child.messageType === QueryCreateContext.RESPOND);
50
+ // 3. Check if all children are FOLLOWUPs and none are RESPONDs
51
+ const onlyFollowUps = this.children.every((child) => child.messageType === QueryCreateContext.FOLLOWUP);
52
+ if (onlyFollowUps && !hasRespond) {
53
+ return new Date(lastChild.createdOn);
46
54
  }
47
- return new Date(this.children[index].createdOn);
55
+ // 4. If RESPOND exists, get latest FOLLOWUP
56
+ // If no RESPOND, but there is at least one FOLLOWUP, return the last FOLLOWUP
57
+ const lastFollowUp = [...this.children]
58
+ .reverse()
59
+ .find((child) => child.messageType === QueryCreateContext.FOLLOWUP);
60
+ if (lastFollowUp) {
61
+ return new Date(lastFollowUp.createdOn);
62
+ }
63
+ // 5. Legacy fallback: no messageType at all
64
+ if (allChildrenLackMessageType) {
65
+ const index = childrenCount % 2 === 0 ? childrenCount - 1 : childrenCount - 2;
66
+ return new Date(this.children[index]?.createdOn);
67
+ }
68
+ // 6. Final fallback: return last child's date
69
+ return new Date(this.lastSubmittedMessage.createdOn);
48
70
  }
49
71
  get lastResponseBy() {
50
72
  return this.children?.length > 0 ? this.lastSubmittedMessage.name : '';
@@ -54,6 +76,11 @@ export class QueryListItem {
54
76
  if (childrenCount === 0) {
55
77
  return null;
56
78
  }
79
+ const lastChild = this.children[childrenCount - 1];
80
+ if (lastChild?.messageType === QueryCreateContext.FOLLOWUP &&
81
+ !this.children.some((child) => child.messageType === QueryCreateContext.RESPOND)) {
82
+ return null;
83
+ }
57
84
  let index;
58
85
  if (childrenCount === 1) {
59
86
  index = 0;
@@ -68,11 +95,20 @@ export class QueryListItem {
68
95
  if (item.isClosed === 'Yes') {
69
96
  return true;
70
97
  }
71
- return item.children?.some(child => isThreadClosed(child)) || false;
98
+ return item.children?.some((child) => isThreadClosed(child)) || false;
72
99
  };
73
100
  if (isThreadClosed(this)) {
74
101
  return QueryItemResponseStatus.CLOSED;
75
102
  }
103
+ const lastMessageType = this.children?.length
104
+ ? this.children[this.children.length - 1]?.messageType
105
+ : undefined;
106
+ if (lastMessageType && lastMessageType === QueryCreateContext.RESPOND) {
107
+ return QueryItemResponseStatus.RESPONDED;
108
+ }
109
+ else if (lastMessageType && lastMessageType === QueryCreateContext.FOLLOWUP) {
110
+ return QueryItemResponseStatus.AWAITING;
111
+ }
76
112
  if (this.messageIndexInParent !== null) {
77
113
  return this.messageIndexInParent % 2 === 0
78
114
  ? QueryItemResponseStatus.RESPONDED
@@ -88,4 +124,4 @@ export class QueryListItem {
88
124
  return QueryItemResponseStatus.AWAITING;
89
125
  }
90
126
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbGlzdC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9tb2RlbHMvcXVlcnktbGlzdC9xdWVyeS1saXN0LWl0ZW0vcXVlcnktbGlzdC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE1BQU0sT0FBTyxhQUFhO0lBQ2pCLEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQVM7SUFDYixJQUFJLENBQVM7SUFDYixXQUFXLEdBQTRCLEVBQUUsQ0FBQztJQUMxQyxnQkFBZ0IsQ0FBUztJQUN6QixXQUFXLENBQVU7SUFDckIsU0FBUyxDQUFPO0lBQ2hCLFNBQVMsQ0FBUztJQUNsQixRQUFRLENBQVU7SUFDbEIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBb0IsRUFBRSxDQUFDO0lBRS9CLG9CQUFvQixHQUFtQixJQUFJLENBQUM7SUFFbkQsSUFBVyxvQkFBb0I7UUFDN0IsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLElBQW1CLEVBQWlCLEVBQUU7WUFDckUsSUFBSSxvQkFBb0IsR0FBa0IsSUFBSSxDQUFDO1lBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xDLE1BQU0seUJBQXlCLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLElBQUkseUJBQXlCLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFD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LE9BQU8sSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsdUJBQXVCLENBQUMsU0FBUztnQkFDbkMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztRQUN2QyxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsU0FBUztnQkFDbkMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztRQUN2QyxDQUFDO1FBRUQsK0JBQStCO1FBQy9CLE9BQU8sdUJBQXVCLENBQUMsUUFBUSxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvcXVlcnktaXRlbS1yZXNwb25zZS1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBDYXNlTWVzc2FnZSwgUXVlcnlNZXNzYWdlRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9jYXNlLXF1ZXJpZXMtY29sbGVjdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUxpc3RJdGVtIGltcGxlbWVudHMgQ2FzZU1lc3NhZ2Uge1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIHN1YmplY3Q/OiBzdHJpbmc7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBib2R5OiBzdHJpbmc7XG4gIHB1YmxpYyBhdHRhY2htZW50cz86IFF1ZXJ5TWVzc2FnZURvY3VtZW50W10gPSBbXTtcbiAgcHVibGljIGlzSGVhcmluZ1JlbGF0ZWQ6IHN0cmluZztcbiAgcHVibGljIGhlYXJpbmdEYXRlPzogc3RyaW5nO1xuICBwdWJsaWMgY3JlYXRlZE9uOiBEYXRlO1xuICBwdWJsaWMgY3JlYXRlZEJ5OiBzdHJpbmc7XG4gIHB1YmxpYyBwYXJlbnRJZD86IHN0cmluZztcbiAgcHVibGljIGlzQ2xvc2VkPzogc3RyaW5nO1xuICBwdWJsaWMgY2hpbGRyZW46IFF1ZXJ5TGlzdEl0ZW1bXSA9IFtdO1xuXG4gIHB1YmxpYyBtZXNzYWdlSW5kZXhJblBhcmVudD86IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgbGFzdFN1Ym1pdHRlZE1lc3NhZ2UoKTogUXVlcnlMaXN0SXRlbSB7XG4gICAgY29uc3QgZ2V0TGFzdFN1Ym1pdHRlZE1lc3NhZ2UgPSAoaXRlbTogUXVlcnlMaXN0SXRlbSk6IFF1ZXJ5TGlzdEl0ZW0gPT4ge1xuICAgICAgbGV0IGxhc3RTdWJtaXR0ZWRNZXNzYWdlOiBRdWVyeUxpc3RJdGVtID0gaXRlbTtcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICBjb25zdCBjaGlsZExhc3RTdWJtaXR0ZWRNZXNzYWdlID0gZ2V0TGFzdFN1Ym1pdHRlZE1lc3NhZ2UoY2hpbGQpO1xuICAgICAgICAgIGlmIChjaGlsZExhc3RTdWJtaXR0ZWRNZXNzYWdlLmNyZWF0ZWRPbiA+IGxhc3RTdWJtaXR0ZWRNZXNzYWdlLmNyZWF0ZWRPbikge1xuICAgICAgICAgICAgbGFzdFN1Ym1pdHRlZE1lc3NhZ2UgPSBjaGlsZExhc3RTdWJtaXR0ZWRNZXNzYWdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGxhc3RTdWJtaXR0ZWRNZXNzYWdlO1xuICAgIH07XG5cbiAgICByZXR1cm4gZ2V0TGFzdFN1Ym1pdHRlZE1lc3NhZ2UodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhc3RTdWJtaXR0ZWRCeSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoaWxkcmVuQ291bnQgPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDtcbiAgICBpZiAoY2hpbGRyZW5Db3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubGFzdFN1Ym1pdHRlZE1lc3NhZ2UubmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltjaGlsZHJlbkNvdW50IC0gMV0ubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFN1Ym1pdHRlZERhdGUoKTogRGF0ZSB7XG4gICAgY29uc3QgY2hpbGRyZW5Db3VudCA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGlmIChjaGlsZHJlbkNvdW50IDw9IDEpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmxhc3RTdWJtaXR0ZWRNZXNzYWdlLmNyZWF0ZWRPbik7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4OiBudW1iZXI7XG5cbiAgICBpZiAoY2hpbGRyZW5Db3VudCA+IDEpIHtcbiAgICAgIGluZGV4ID0gY2hpbGRyZW5Db3VudCAlIDIgPT09IDAgPyBjaGlsZHJlbkNvdW50IC0gMSA6IGNoaWxkcmVuQ291bnQgLSAyO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmNoaWxkcmVuW2luZGV4XS5jcmVhdGVkT24pO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0UmVzcG9uc2VCeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuPy5sZW5ndGggPiAwID8gdGhpcy5sYXN0U3VibWl0dGVkTWVzc2FnZS5uYW1lIDogJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhc3RSZXNwb25zZURhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IGNoaWxkcmVuQ291bnQgPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDtcbiAgICBpZiAoY2hpbGRyZW5Db3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4OiBudW1iZXI7XG5cbiAgICBpZiAoY2hpbGRyZW5Db3VudCA9PT0gMSkge1xuICAgICAgaW5kZXggPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmRleCA9IGNoaWxkcmVuQ291bnQgJSAyID09PSAxID8gY2hpbGRyZW5Db3VudCAtIDEgOiBjaGlsZHJlbkNvdW50IC0gMjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jaGlsZHJlbltpbmRleF0uY3JlYXRlZE9uKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzcG9uc2VTdGF0dXMoKTogUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMge1xuICAgIGNvbnN0IGlzVGhyZWFkQ2xvc2VkID0gKGl0ZW06IFF1ZXJ5TGlzdEl0ZW0pOiBib29sZWFuID0+IHtcbiAgICAgIGlmIChpdGVtLmlzQ2xvc2VkID09PSAnWWVzJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpdGVtLmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGlzVGhyZWFkQ2xvc2VkKGNoaWxkKSkgfHwgZmFsc2U7XG4gICAgfTtcblxuICAgIGlmIChpc1RocmVhZENsb3NlZCh0aGlzKSkge1xuICAgICAgcmV0dXJuIFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLkNMT1NFRDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZXNzYWdlSW5kZXhJblBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZUluZGV4SW5QYXJlbnQgJSAyID09PSAwXG4gICAgICAgID8gUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMuUkVTUE9OREVEXG4gICAgICAgIDogUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMuQVdBSVRJTkc7XG4gICAgfVxuXG4gICAgLy8gUGFyZW50IGxvZ2ljIChjaGlsZHJlbiBjb3VudClcbiAgICBpZiAodGhpcy5jaGlsZHJlbiAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aCAlIDIgPT09IDFcbiAgICAgICAgPyBRdWVyeUl0ZW1SZXNwb25zZVN0YXR1cy5SRVNQT05ERURcbiAgICAgICAgOiBRdWVyeUl0ZW1SZXNwb25zZVN0YXR1cy5BV0FJVElORztcbiAgICB9XG5cbiAgICAvLyBObyBjaGlsZHJlbiDigJQgc3RpbGwgYXdhaXRpbmdcbiAgICByZXR1cm4gUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMuQVdBSVRJTkc7XG4gIH1cbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbGlzdC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9tb2RlbHMvcXVlcnktbGlzdC9xdWVyeS1saXN0LWl0ZW0vcXVlcnktbGlzdC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUd6RixNQUFNLE9BQU8sYUFBYTtJQUNqQixFQUFFLENBQVM7SUFDWCxPQUFPLENBQVU7SUFDakIsSUFBSSxDQUFTO0lBQ2IsSUFBSSxDQUFTO0lBQ2IsV0FBVyxHQUE0QixFQUFFLENBQUM7SUFDMUMsZ0JBQWdCLENBQVM7SUFDekIsV0FBVyxDQUFVO0lBQ3JCLFNBQVMsQ0FBTztJQUNoQixTQUFTLENBQVM7SUFDbEIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsQ0FBVTtJQUNsQixXQUFXLENBQVU7SUFDckIsUUFBUSxHQUFvQixFQUFFLENBQUM7SUFFL0Isb0JBQW9CLEdBQW1CLElBQUksQ0FBQztJQUVuRCxJQUFXLG9CQUFvQjtRQUM3QixNQUFNLHVCQUF1QixHQUFHLENBQUMsSUFBbUIsRUFBaUIsRUFBRTtZQUNyRSxJQUFJLG9CQUFvQixHQUFrQixJQUFJLENBQUM7WUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSx5QkFBeUIsR0FBRyx1QkFBdUIsQ0FBQyxL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QUUsQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsU0FBUztnQkFDbkMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztRQUN2QyxDQUFDO1FBRUQsK0JBQStCO1FBQy9CLE9BQU8sdUJBQXVCLENBQUMsUUFBUSxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5Q3JlYXRlQ29udGV4dCB9IGZyb20gJy4uLy4uJztcbmltcG9ydCB7IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvcXVlcnktaXRlbS1yZXNwb25zZS1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBDYXNlTWVzc2FnZSwgUXVlcnlNZXNzYWdlRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9jYXNlLXF1ZXJpZXMtY29sbGVjdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUxpc3RJdGVtIGltcGxlbWVudHMgQ2FzZU1lc3NhZ2Uge1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIHN1YmplY3Q/OiBzdHJpbmc7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBib2R5OiBzdHJpbmc7XG4gIHB1YmxpYyBhdHRhY2htZW50cz86IFF1ZXJ5TWVzc2FnZURvY3VtZW50W10gPSBbXTtcbiAgcHVibGljIGlzSGVhcmluZ1JlbGF0ZWQ6IHN0cmluZztcbiAgcHVibGljIGhlYXJpbmdEYXRlPzogc3RyaW5nO1xuICBwdWJsaWMgY3JlYXRlZE9uOiBEYXRlO1xuICBwdWJsaWMgY3JlYXRlZEJ5OiBzdHJpbmc7XG4gIHB1YmxpYyBwYXJlbnRJZD86IHN0cmluZztcbiAgcHVibGljIGlzQ2xvc2VkPzogc3RyaW5nO1xuICBwdWJsaWMgbWVzc2FnZVR5cGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBjaGlsZHJlbjogUXVlcnlMaXN0SXRlbVtdID0gW107XG5cbiAgcHVibGljIG1lc3NhZ2VJbmRleEluUGFyZW50PzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBsYXN0U3VibWl0dGVkTWVzc2FnZSgpOiBRdWVyeUxpc3RJdGVtIHtcbiAgICBjb25zdCBnZXRMYXN0U3VibWl0dGVkTWVzc2FnZSA9IChpdGVtOiBRdWVyeUxpc3RJdGVtKTogUXVlcnlMaXN0SXRlbSA9PiB7XG4gICAgICBsZXQgbGFzdFN1Ym1pdHRlZE1lc3NhZ2U6IFF1ZXJ5TGlzdEl0ZW0gPSBpdGVtO1xuICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgIGNvbnN0IGNoaWxkTGFzdFN1Ym1pdHRlZE1lc3NhZ2UgPSBnZXRMYXN0U3VibWl0dGVkTWVzc2FnZShjaGlsZCk7XG4gICAgICAgICAgaWYgKGNoaWxkTGFzdFN1Ym1pdHRlZE1lc3NhZ2UuY3JlYXRlZE9uID4gbGFzdFN1Ym1pdHRlZE1lc3NhZ2UuY3JlYXRlZE9uKSB7XG4gICAgICAgICAgICBsYXN0U3VibWl0dGVkTWVzc2FnZSA9IGNoaWxkTGFzdFN1Ym1pdHRlZE1lc3NhZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFzdFN1Ym1pdHRlZE1lc3NhZ2U7XG4gICAgfTtcblxuICAgIHJldHVybiBnZXRMYXN0U3VibWl0dGVkTWVzc2FnZSh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFN1Ym1pdHRlZEJ5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hpbGRyZW5Db3VudCA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGlmIChjaGlsZHJlbkNvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYXN0U3VibWl0dGVkTWVzc2FnZS5uYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuW2NoaWxkcmVuQ291bnQgLSAxXS5uYW1lO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0U3VibWl0dGVkRGF0ZSgpOiBEYXRlIHtcbiAgICBjb25zdCBjaGlsZHJlbkNvdW50ID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgY29uc3QgbGFzdENoaWxkID0gdGhpcy5jaGlsZHJlbltjaGlsZHJlbkNvdW50IC0gMV07XG5cbiAgICAvLyAxLiBDaGVjayBmb3IgbGVnYWN5OiA8PSAxIGNoaWxkIHdpdGggbm8gbWVzc2FnZVR5cGVcbiAgICBjb25zdCBhbGxDaGlsZHJlbkxhY2tNZXNzYWdlVHlwZSA9IHRoaXMuY2hpbGRyZW4uZXZlcnkoXG4gICAgICAoY2hpbGQpID0+ICFjaGlsZC5tZXNzYWdlVHlwZVxuICAgICk7XG4gICAgaWYgKGNoaWxkcmVuQ291bnQgPD0gMSAmJiBhbGxDaGlsZHJlbkxhY2tNZXNzYWdlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMubGFzdFN1Ym1pdHRlZE1lc3NhZ2UuY3JlYXRlZE9uKTtcbiAgICB9XG5cbiAgICAvLyAyLiBDaGVjayBpZiBhbnkgUkVTUE9ORCBleGlzdHNcbiAgICBjb25zdCBoYXNSZXNwb25kID0gdGhpcy5jaGlsZHJlbi5zb21lKFxuICAgICAgKGNoaWxkKSA9PiBjaGlsZC5tZXNzYWdlVHlwZSA9PT0gUXVlcnlDcmVhdGVDb250ZXh0LlJFU1BPTkRcbiAgICApO1xuXG4gICAgLy8gMy4gQ2hlY2sgaWYgYWxsIGNoaWxkcmVuIGFyZSBGT0xMT1dVUHMgYW5kIG5vbmUgYXJlIFJFU1BPTkRzXG4gICAgY29uc3Qgb25seUZvbGxvd1VwcyA9IHRoaXMuY2hpbGRyZW4uZXZlcnkoXG4gICAgICAoY2hpbGQpID0+IGNoaWxkLm1lc3NhZ2VUeXBlID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuRk9MTE9XVVBcbiAgICApO1xuXG4gICAgaWYgKG9ubHlGb2xsb3dVcHMgJiYgIWhhc1Jlc3BvbmQpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShsYXN0Q2hpbGQuY3JlYXRlZE9uKTtcbiAgICB9XG5cbiAgICAvLyA0LiBJZiBSRVNQT05EIGV4aXN0cywgZ2V0IGxhdGVzdCBGT0xMT1dVUFxuICAgIC8vIElmIG5vIFJFU1BPTkQsIGJ1dCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgRk9MTE9XVVAsIHJldHVybiB0aGUgbGFzdCBGT0xMT1dVUFxuICAgIGNvbnN0IGxhc3RGb2xsb3dVcCA9IFsuLi50aGlzLmNoaWxkcmVuXVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5tZXNzYWdlVHlwZSA9PT0gUXVlcnlDcmVhdGVDb250ZXh0LkZPTExPV1VQKTtcblxuICAgIGlmIChsYXN0Rm9sbG93VXApIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShsYXN0Rm9sbG93VXAuY3JlYXRlZE9uKTtcbiAgICB9XG5cbiAgICAvLyA1LiBMZWdhY3kgZmFsbGJhY2s6IG5vIG1lc3NhZ2VUeXBlIGF0IGFsbFxuICAgIGlmIChhbGxDaGlsZHJlbkxhY2tNZXNzYWdlVHlwZSkge1xuICAgICAgY29uc3QgaW5kZXggPSBjaGlsZHJlbkNvdW50ICUgMiA9PT0gMCA/IGNoaWxkcmVuQ291bnQgLSAxIDogY2hpbGRyZW5Db3VudCAtIDI7XG4gICAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jaGlsZHJlbltpbmRleF0/LmNyZWF0ZWRPbik7XG4gICAgfVxuXG4gICAgLy8gNi4gRmluYWwgZmFsbGJhY2s6IHJldHVybiBsYXN0IGNoaWxkJ3MgZGF0ZVxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmxhc3RTdWJtaXR0ZWRNZXNzYWdlLmNyZWF0ZWRPbik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhc3RSZXNwb25zZUJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4/Lmxlbmd0aCA+IDAgPyB0aGlzLmxhc3RTdWJtaXR0ZWRNZXNzYWdlLm5hbWUgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFJlc3BvbnNlRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgY29uc3QgY2hpbGRyZW5Db3VudCA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGlmIChjaGlsZHJlbkNvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBsYXN0Q2hpbGQgPSB0aGlzLmNoaWxkcmVuW2NoaWxkcmVuQ291bnQgLSAxXTtcblxuICAgIGlmIChcbiAgICAgIGxhc3RDaGlsZD8ubWVzc2FnZVR5cGUgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5GT0xMT1dVUCAmJlxuICAgICF0aGlzLmNoaWxkcmVuLnNvbWUoKGNoaWxkKSA9PiBjaGlsZC5tZXNzYWdlVHlwZSA9PT0gUXVlcnlDcmVhdGVDb250ZXh0LlJFU1BPTkQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXg6IG51bWJlcjtcbiAgICBpZiAoY2hpbGRyZW5Db3VudCA9PT0gMSkge1xuICAgICAgaW5kZXggPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmRleCA9IGNoaWxkcmVuQ291bnQgJSAyID09PSAxID8gY2hpbGRyZW5Db3VudCAtIDEgOiBjaGlsZHJlbkNvdW50IC0gMjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jaGlsZHJlbltpbmRleF0uY3JlYXRlZE9uKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzcG9uc2VTdGF0dXMoKTogUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMge1xuICAgIGNvbnN0IGlzVGhyZWFkQ2xvc2VkID0gKGl0ZW06IFF1ZXJ5TGlzdEl0ZW0pOiBib29sZWFuID0+IHtcbiAgICAgIGlmIChpdGVtLmlzQ2xvc2VkID09PSAnWWVzJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpdGVtLmNoaWxkcmVuPy5zb21lKChjaGlsZCkgPT4gaXNUaHJlYWRDbG9zZWQoY2hpbGQpKSB8fCBmYWxzZTtcbiAgICB9O1xuXG4gICAgaWYgKGlzVGhyZWFkQ2xvc2VkKHRoaXMpKSB7XG4gICAgICByZXR1cm4gUXVlcnlJdGVtUmVzcG9uc2VTdGF0dXMuQ0xPU0VEO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3RNZXNzYWdlVHlwZSA9IHRoaXMuY2hpbGRyZW4/Lmxlbmd0aFxuICAgICAgPyB0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV0/Lm1lc3NhZ2VUeXBlXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChsYXN0TWVzc2FnZVR5cGUgJiYgbGFzdE1lc3NhZ2VUeXBlID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuUkVTUE9ORCkge1xuICAgICAgcmV0dXJuIFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLlJFU1BPTkRFRDtcbiAgICB9IGVsc2UgaWYgKGxhc3RNZXNzYWdlVHlwZSAmJiBsYXN0TWVzc2FnZVR5cGUgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5GT0xMT1dVUCkge1xuICAgICAgcmV0dXJuIFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLkFXQUlUSU5HO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1lc3NhZ2VJbmRleEluUGFyZW50ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5tZXNzYWdlSW5kZXhJblBhcmVudCAlIDIgPT09IDBcbiAgICAgICAgPyBRdWVyeUl0ZW1SZXNwb25zZVN0YXR1cy5SRVNQT05ERURcbiAgICAgICAgOiBRdWVyeUl0ZW1SZXNwb25zZVN0YXR1cy5BV0FJVElORztcbiAgICB9XG5cbiAgICAvLyBQYXJlbnQgbG9naWMgKGNoaWxkcmVuIGNvdW50KVxuICAgIGlmICh0aGlzLmNoaWxkcmVuICYmIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoICUgMiA9PT0gMVxuICAgICAgICA/IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLlJFU1BPTkRFRFxuICAgICAgICA6IFF1ZXJ5SXRlbVJlc3BvbnNlU3RhdHVzLkFXQUlUSU5HO1xuICAgIH1cblxuICAgIC8vIE5vIGNoaWxkcmVuIOKAlCBzdGlsbCBhd2FpdGluZ1xuICAgIHJldHVybiBRdWVyeUl0ZW1SZXNwb25zZVN0YXR1cy5BV0FJVElORztcbiAgfVxufVxuIl19
@@ -4,16 +4,19 @@ import { SessionStorageService } from '../../../services';
4
4
  import { isInternalUser } from '../../../utils';
5
5
  import { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';
6
6
  import { PaletteContext } from '../base-field/palette-context.enum';
7
+ import { QueryCreateContext } from './models';
7
8
  import { QueryManagementUtils } from './utils/query-management.utils';
8
9
  import { CaseNotifier } from '../../case-editor/services/case.notifier';
10
+ import { AbstractAppConfig } from '../../../../app.config';
9
11
  import * as i0 from "@angular/core";
10
12
  import * as i1 from "@angular/router";
11
13
  import * as i2 from "../../../services";
12
14
  import * as i3 from "../../case-editor/services/case.notifier";
15
+ import * as i4 from "../../../../app.config";
13
16
  const _c0 = (a0, a1) => ["/query-management", "query", a0, "4", a1];
14
17
  function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) {
15
18
  const _r1 = i0.ɵɵgetCurrentView();
16
- i0.ɵɵelementStart(0, "div", 5)(1, "ccd-query-list", 6);
19
+ i0.ɵɵelementStart(0, "div", 6)(1, "ccd-query-list", 7);
17
20
  i0.ɵɵlistener("selectedQuery", function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template_ccd_query_list_selectedQuery_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setQuery($event)); });
18
21
  i0.ɵɵelementEnd()();
19
22
  } if (rf & 2) {
@@ -23,7 +26,7 @@ function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_T
23
26
  } }
24
27
  function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
25
28
  i0.ɵɵelementContainerStart(0);
26
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template, 2, 1, "div", 4);
29
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_div_1_Template, 2, 1, "div", 5);
27
30
  i0.ɵɵelementContainerEnd();
28
31
  } if (rf & 2) {
29
32
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -32,7 +35,7 @@ function ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Templat
32
35
  } }
33
36
  function ReadQueryManagementFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
34
37
  i0.ɵɵelementContainerStart(0);
35
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 3);
38
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 4);
36
39
  i0.ɵɵelementContainerEnd();
37
40
  } if (rf & 2) {
38
41
  const ctx_r1 = i0.ɵɵnextContext();
@@ -41,7 +44,7 @@ function ReadQueryManagementFieldComponent_ng_container_0_Template(rf, ctx) { if
41
44
  } }
42
45
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
43
46
  i0.ɵɵelementContainerStart(0);
44
- i0.ɵɵelementStart(1, "button", 9);
47
+ i0.ɵɵelementStart(1, "button", 10);
45
48
  i0.ɵɵtext(2);
46
49
  i0.ɵɵpipe(3, "rpxTranslate");
47
50
  i0.ɵɵelementEnd();
@@ -53,8 +56,22 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_conta
53
56
  i0.ɵɵadvance();
54
57
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
55
58
  } }
56
- function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
57
- i0.ɵɵelementStart(0, "div")(1, "p", 10);
59
+ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementContainerStart(0);
61
+ i0.ɵɵelementStart(1, "button", 10);
62
+ i0.ɵɵtext(2);
63
+ i0.ɵɵpipe(3, "rpxTranslate");
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelementContainerEnd();
66
+ } if (rf & 2) {
67
+ const ctx_r1 = i0.ɵɵnextContext(4);
68
+ i0.ɵɵadvance();
69
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction2(4, _c0, ctx_r1.caseId, ctx_r1.query.id));
70
+ i0.ɵɵadvance();
71
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Ask a follow-up question"), " ");
72
+ } }
73
+ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "div")(1, "p", 11);
58
75
  i0.ɵɵtext(2);
59
76
  i0.ɵɵpipe(3, "rpxTranslate");
60
77
  i0.ɵɵelementEnd();
@@ -68,25 +85,32 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_templ
68
85
  i0.ɵɵadvance(3);
69
86
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "Our team will read your query and respond. Do not submit the same query more than once."));
70
87
  } }
88
+ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
89
+ i0.ɵɵtemplate(0, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_container_0_Template, 4, 7, "ng-container", 3)(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_ng_template_1_Template, 7, 6, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
90
+ } if (rf & 2) {
91
+ const queryIsInReview_r5 = i0.ɵɵreference(2);
92
+ const ctx_r1 = i0.ɵɵnextContext(3);
93
+ i0.ɵɵproperty("ngIf", (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) > 0 && (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) % 2 === 1)("ngIfElse", queryIsInReview_r5);
94
+ } }
71
95
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
72
96
  i0.ɵɵelementContainerStart(0);
73
- 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);
97
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_container_1_Template, 4, 7, "ng-container", 3)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_ng_template_2_Template, 3, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
74
98
  i0.ɵɵelementContainerEnd();
75
99
  } if (rf & 2) {
76
- const queryIsInReview_r5 = i0.ɵɵreference(3);
100
+ const sequentialQuery_r6 = i0.ɵɵreference(3);
77
101
  const ctx_r1 = i0.ɵɵnextContext(2);
78
102
  i0.ɵɵadvance();
79
- i0.ɵɵproperty("ngIf", (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) > 0 && (ctx_r1.query == null ? null : ctx_r1.query.children == null ? null : ctx_r1.query.children.length) % 2 === 1)("ngIfElse", queryIsInReview_r5);
103
+ i0.ɵɵproperty("ngIf", ctx_r1.messageType && ctx_r1.messageType === ctx_r1.followUpQuery && ctx_r1.isMultipleFollowUpEnabled || ctx_r1.messageType && ctx_r1.messageType === ctx_r1.respondToQuery)("ngIfElse", sequentialQuery_r6);
80
104
  } }
81
105
  function ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
82
106
  i0.ɵɵelementContainerStart(0);
83
- i0.ɵɵelementStart(1, "div", 11)(2, "span", 12);
107
+ i0.ɵɵelementStart(1, "div", 12)(2, "span", 13);
84
108
  i0.ɵɵtext(3, "!");
85
109
  i0.ɵɵelementEnd();
86
- i0.ɵɵelementStart(4, "strong", 13)(5, "span", 14);
110
+ i0.ɵɵelementStart(4, "strong", 14)(5, "span", 15);
87
111
  i0.ɵɵtext(6, "Warning");
88
112
  i0.ɵɵelementEnd();
89
- i0.ɵɵelementStart(7, "p", 15);
113
+ i0.ɵɵelementStart(7, "p", 16);
90
114
  i0.ɵɵtext(8);
91
115
  i0.ɵɵpipe(9, "rpxTranslate");
92
116
  i0.ɵɵelementEnd()()();
@@ -97,10 +121,10 @@ function ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template
97
121
  } }
98
122
  function ReadQueryManagementFieldComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
99
123
  const _r4 = i0.ɵɵgetCurrentView();
100
- i0.ɵɵelementStart(0, "ccd-query-details", 7);
124
+ i0.ɵɵelementStart(0, "ccd-query-details", 8);
101
125
  i0.ɵɵlistener("backClicked", function ReadQueryManagementFieldComponent_ng_template_1_Template_ccd_query_details_backClicked_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showQueryList = true); });
102
126
  i0.ɵɵelementEnd();
103
- i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template, 4, 2, "ng-container", 8)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template, 10, 3, "ng-container", 8);
127
+ i0.ɵɵtemplate(1, ReadQueryManagementFieldComponent_ng_template_1_ng_container_1_Template, 4, 2, "ng-container", 9)(2, ReadQueryManagementFieldComponent_ng_template_1_ng_container_2_Template, 10, 3, "ng-container", 9);
104
128
  } if (rf & 2) {
105
129
  const ctx_r1 = i0.ɵɵnextContext();
106
130
  i0.ɵɵproperty("query", ctx_r1.query)("caseId", ctx_r1.caseId);
@@ -113,19 +137,36 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
113
137
  route;
114
138
  sessionStorageService;
115
139
  caseNotifier;
140
+ abstractConfig;
116
141
  caseQueriesCollections;
117
142
  query;
118
143
  showQueryList = true;
119
144
  caseId;
145
+ messageType;
146
+ followUpQuery = QueryCreateContext.FOLLOWUP;
147
+ respondToQuery = QueryCreateContext.RESPOND;
120
148
  isQueryClosed = false;
121
- constructor(route, sessionStorageService, caseNotifier) {
149
+ value;
150
+ isMultipleFollowUpEnabled = false;
151
+ currentJurisdictionId;
152
+ enableServiceSpecificMultiFollowups = [];
153
+ caseSubscription;
154
+ constructor(route, sessionStorageService, caseNotifier, abstractConfig) {
122
155
  super();
123
156
  this.route = route;
124
157
  this.sessionStorageService = sessionStorageService;
125
158
  this.caseNotifier = caseNotifier;
159
+ this.abstractConfig = abstractConfig;
126
160
  }
127
161
  ngOnInit() {
128
162
  this.caseId = this.route.snapshot.params.cid;
163
+ this.enableServiceSpecificMultiFollowups = this.abstractConfig.getEnableServiceSpecificMultiFollowups() || [];
164
+ this.caseSubscription = this.caseNotifier.caseView.subscribe((caseDetails) => {
165
+ if (caseDetails?.case_type?.jurisdiction?.id) {
166
+ this.currentJurisdictionId = caseDetails.case_type.jurisdiction.id;
167
+ this.isMultipleFollowUpEnabled = this.enableServiceSpecificMultiFollowups.includes(this.currentJurisdictionId);
168
+ }
169
+ });
129
170
  if (this.context === PaletteContext.DEFAULT) {
130
171
  // EUI-8303 Using mock data until CCD is ready with the API and data contract
131
172
  // this.caseQueriesCollections = caseMessagesMockData;
@@ -151,9 +192,13 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
151
192
  // QueryManagementUtils.extractCaseQueriesFromCaseField();
152
193
  }
153
194
  }
195
+ ngOnDestroy() {
196
+ this.caseSubscription?.unsubscribe();
197
+ }
154
198
  setQuery(query) {
155
199
  this.showQueryList = false;
156
200
  this.query = query;
201
+ this.messageType = this.getMessageType(query);
157
202
  this.isQueryClosed = this.query?.children?.some((queryItem) => queryItem?.isClosed === 'Yes');
158
203
  }
159
204
  backToQueryListPage() {
@@ -163,17 +208,25 @@ export class ReadQueryManagementFieldComponent extends AbstractFieldReadComponen
163
208
  isInternalUser() {
164
209
  return isInternalUser(this.sessionStorageService);
165
210
  }
166
- static ɵfac = function ReadQueryManagementFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SessionStorageService), i0.ɵɵdirectiveInject(i3.CaseNotifier)); };
167
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadQueryManagementFieldComponent, selectors: [["ccd-read-query-management-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["singleQueryDetails", ""], ["queryIsInReview", ""], [4, "ngIf", "ngIfElse"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-margin-top-8 govuk-!-margin-bottom-8", 4, "ngIf"], [1, "govuk-!-margin-top-8", "govuk-!-margin-bottom-8"], [3, "selectedQuery", "caseQueriesCollection"], [3, "backClicked", "query", "caseId"], [4, "ngIf"], ["id", "ask-follow-up-question", "data-module", "govuk-button", 1, "govuk-button", 3, "routerLink"], [1, "govuk-!-font-weight-bold"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-visually-hidden"], [1, "qm-service-message", "govuk-!-font-weight-bold"]], template: function ReadQueryManagementFieldComponent_Template(rf, ctx) { if (rf & 1) {
168
- i0.ɵɵtemplate(0, ReadQueryManagementFieldComponent_ng_container_0_Template, 2, 1, "ng-container", 2)(1, ReadQueryManagementFieldComponent_ng_template_1_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
211
+ getMessageType(query) {
212
+ if (!query) {
213
+ return undefined;
214
+ }
215
+ return query.children?.length
216
+ ? query.children[query.children.length - 1]?.messageType
217
+ : query?.messageType;
218
+ }
219
+ static ɵfac = function ReadQueryManagementFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadQueryManagementFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SessionStorageService), i0.ɵɵdirectiveInject(i3.CaseNotifier), i0.ɵɵdirectiveInject(i4.AbstractAppConfig)); };
220
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadQueryManagementFieldComponent, selectors: [["ccd-read-query-management-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["singleQueryDetails", ""], ["sequentialQuery", ""], ["queryIsInReview", ""], [4, "ngIf", "ngIfElse"], [4, "ngFor", "ngForOf"], ["class", "govuk-!-margin-top-8 govuk-!-margin-bottom-8", 4, "ngIf"], [1, "govuk-!-margin-top-8", "govuk-!-margin-bottom-8"], [3, "selectedQuery", "caseQueriesCollection"], [3, "backClicked", "query", "caseId"], [4, "ngIf"], ["id", "ask-follow-up-question", "data-module", "govuk-button", 1, "govuk-button", 3, "routerLink"], [1, "govuk-!-font-weight-bold"], [1, "govuk-warning-text"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-visually-hidden"], [1, "qm-service-message", "govuk-!-font-weight-bold"]], template: function ReadQueryManagementFieldComponent_Template(rf, ctx) { if (rf & 1) {
221
+ i0.ɵɵtemplate(0, ReadQueryManagementFieldComponent_ng_container_0_Template, 2, 1, "ng-container", 3)(1, ReadQueryManagementFieldComponent_ng_template_1_Template, 3, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
169
222
  } if (rf & 2) {
170
- const singleQueryDetails_r6 = i0.ɵɵreference(2);
171
- i0.ɵɵproperty("ngIf", ctx.showQueryList)("ngIfElse", singleQueryDetails_r6);
223
+ const singleQueryDetails_r7 = i0.ɵɵreference(2);
224
+ i0.ɵɵproperty("ngIf", ctx.showQueryList)("ngIfElse", singleQueryDetails_r7);
172
225
  } }, encapsulation: 2 });
173
226
  }
174
227
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadQueryManagementFieldComponent, [{
175
228
  type: Component,
176
- 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=\"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 HMCTS staff.' | rpxTranslate }}</p>\n </strong>\n </div>\n </ng-container>\n</ng-template>\n" }]
177
- }], () => [{ type: i1.ActivatedRoute }, { type: i2.SessionStorageService }, { type: i3.CaseNotifier }], null); })();
178
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 15 }); })();
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7OztJQ05sRSxBQURGLDhCQUFnRix3QkFDcUI7SUFBbkYsMFBBQWlCLHVCQUFnQixLQUFDO0lBQ3BELEFBRHFHLGlCQUFpQixFQUNoSDs7O0lBRCtDLGNBQStDO0lBQS9DLGdFQUErQzs7O0lBRnRHLDZCQUEyRTtJQUN6RSxnSEFBZ0Y7Ozs7SUFB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QUFDLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDOzRCQUUxRyxJQUFJLGlDQUFpQyxJQUFJLE9BQU8saUNBQWlDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0NBQy9GLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQzs0QkFDOUMsQ0FBQzs0QkFDRCxPQUFPLEdBQUcsQ0FBQzt3QkFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ1gsQ0FBQztnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBRUwsc0VBQXNFO1lBQ3RFLDBEQUEwRDtRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEQsQ0FBQzsySEE3RFUsaUNBQWlDOzZEQUFqQyxpQ0FBaUM7WUNOOUMsQUFSQSxvR0FBNkQsc0hBUTVCOzs7WUFSRyxBQUFyQix3Q0FBcUIsbUNBQXVCOzs7aUZEYzlDLGlDQUFpQztjQUo3QyxTQUFTOzJCQUNFLGlDQUFpQzs7a0ZBR2hDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGlzSW50ZXJuYWxVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5pbXBvcnQgeyBDYXNlUXVlcmllc0NvbGxlY3Rpb24sIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4vdXRpbHMvcXVlcnktbWFuYWdlbWVudC51dGlscyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLXF1ZXJ5LW1hbmFnZW1lbnQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIHF1ZXJ5OiBRdWVyeUxpc3RJdGVtO1xuICBwdWJsaWMgc2hvd1F1ZXJ5TGlzdDogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgaXNRdWVyeUNsb3NlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuY2lkO1xuICAgIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQpIHtcbiAgICAgIC8vIEVVSS04MzAzIFVzaW5nIG1vY2sgZGF0YSB1bnRpbCBDQ0QgaXMgcmVhZHkgd2l0aCB0aGUgQVBJIGFuZCBkYXRhIGNvbnRyYWN0XG4gICAgICAvLyB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSBjYXNlTWVzc2FnZXNNb2NrRGF0YTtcblxuICAgICAgLy8gVE9ETzogQWN0dWFsIGltcGxlbWVudGF0aW9uIG9uY2UgdGhlIENDRCBBUEkgYW5kIGRhdGEgY29udHJhY3QgaXMgYXZhaWxhYmxlXG4gICAgICAvLyBFYWNoIHBhcnRpZXMgd2lsbCBoYXZlIGEgc2VwYXJhdGUgY29sbGVjdGlvbiBvZiBwYXJ0eSBtZXNzYWdlc1xuICAgICAgLy8gRmluZCB3aGV0aGVyIHF1ZXJpZXMgdGFiIGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FzZSBkYXRhXG4gICAgICB0aGlzLmNhc2VOb3RpZmllci5mZXRjaEFuZFJlZnJlc2godGhpcy5jYXNlSWQpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlPy50YWJzKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IChjYXNlRGV0YWlscy50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcG9uZW50TGF1bmNoZXInICYmIGNhc2VGaWVsZC5pZCA9PT0gdGhpcy5jYXNlRmllbGQuaWQpKVxuICAgICAgICAgICAgICAgIFswXS5maWVsZHM/LnJlZHVjZSgoYWNjLCBjYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmV4dHJhY3RDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQoY2FzZUZpZWxkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCAmJiB0eXBlb2YgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsaXN0IG9mIHBhcnRpZXMgYW5kIHRoZWlyIGNhc2UgcXVlcmllcyBjb2xsZWN0aW9uc1xuICAgICAgLy8gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1F1ZXJ5TGlzdCA9IGZhbHNlO1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmlzUXVlcnlDbG9zZWQgPSB0aGlzLnF1ZXJ5Py5jaGlsZHJlbj8uc29tZSgocXVlcnlJdGVtKSA9PiBxdWVyeUl0ZW0/LmlzQ2xvc2VkID09PSAnWWVzJyk7XG4gIH1cblxuICBwdWJsaWMgYmFja1RvUXVlcnlMaXN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dRdWVyeUxpc3QgPSB0cnVlO1xuICAgIHRoaXMucXVlcnkgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGlzSW50ZXJuYWxVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0ludGVybmFsVXNlcih0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UXVlcnlMaXN0OyBlbHNlIHNpbmdsZVF1ZXJ5RGV0YWlsc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXNlUXVlcmllc0NvbGxlY3Rpb24gb2YgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93UXVlcnlMaXN0XCIgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtOCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tOFwiPlxuICAgICAgPGNjZC1xdWVyeS1saXN0IChzZWxlY3RlZFF1ZXJ5KT1cInNldFF1ZXJ5KCRldmVudClcIiBbY2FzZVF1ZXJpZXNDb2xsZWN0aW9uXT1cImNhc2VRdWVyaWVzQ29sbGVjdGlvblwiPjwvY2NkLXF1ZXJ5LWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2luZ2xlUXVlcnlEZXRhaWxzPlxuICA8Y2NkLXF1ZXJ5LWRldGFpbHNcbiAgICBbcXVlcnldPVwicXVlcnlcIlxuICAgIChiYWNrQ2xpY2tlZCk9XCJzaG93UXVlcnlMaXN0ID0gdHJ1ZVwiXG4gICAgW2Nhc2VJZF09XCJjYXNlSWRcIlxuICA+PC9jY2QtcXVlcnktZGV0YWlscz5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSW50ZXJuYWxVc2VyKCkgJiYgIWlzUXVlcnlDbG9zZWRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnk/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmIHF1ZXJ5Py5jaGlsZHJlbj8ubGVuZ3RoICUgMiA9PT0gMTsgZWxzZSBxdWVyeUlzSW5SZXZpZXdcIj5cbiAgICAgIDxidXR0b24gaWQ9XCJhc2stZm9sbG93LXVwLXF1ZXN0aW9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3F1ZXJ5LW1hbmFnZW1lbnQnLCAncXVlcnknLCBjYXNlSWQsICc0JywgcXVlcnkuaWRdXCI+XG4gICAgICAgIHt7ICdBc2sgYSBmb2xsb3ctdXAgcXVlc3Rpb24nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcXVlcnlJc0luUmV2aWV3PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyAnWW91ciBxdWVyeSBpcyB1bmRlciByZXZpZXcnIHwgcnB4VHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8cD57eyAnT3VyIHRlYW0gd2lsbCByZWFkIHlvdXIgcXVlcnkgYW5kIHJlc3BvbmQuIERvIG5vdCBzdWJtaXQgdGhlIHNhbWUgcXVlcnkgbW9yZSB0aGFuIG9uY2UuJyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNRdWVyeUNsb3NlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRcIj5cbiAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCI+ITwvc3Bhbj5cbiAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5XYXJuaW5nPC9zcGFuPlxuICAgICAgICA8cCBjbGFzcz1cInFtLXNlcnZpY2UtbWVzc2FnZSBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyAnVGhpcyBxdWVyeSBoYXMgYmVlbiBjbG9zZWQgYnkgSE1DVFMgc3RhZmYuJyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
229
+ 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=\"(messageType && messageType === followUpQuery && isMultipleFollowUpEnabled) || (messageType && messageType === respondToQuery); else sequentialQuery\">\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 <ng-template #sequentialQuery>\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-template>\n\n </ng-container>\n <ng-container *ngIf=\"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 HMCTS staff.' | rpxTranslate }}</p>\n </strong>\n </div>\n </ng-container>\n</ng-template>\n" }]
230
+ }], () => [{ type: i1.ActivatedRoute }, { type: i2.SessionStorageService }, { type: i3.CaseNotifier }, { type: i4.AbstractAppConfig }], null); })();
231
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadQueryManagementFieldComponent, { className: "ReadQueryManagementFieldComponent", filePath: "lib/shared/components/palette/query-management/read-query-management-field.component.ts", lineNumber: 18 }); })();
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsa0JBQWtCLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0lDUHJELEFBREYsOEJBQWdGLHdCQUNxQjtJQUFuRiwwUEFBaUIsdUJBQWdC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UUFBUSxFQUFFLE1BQU07WUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVztZQUN4RCxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztJQUN6QixDQUFDOzJIQWpHVSxpQ0FBaUM7NkRBQWpDLGlDQUFpQztZQ1Q5QyxBQVJBLG9HQUE2RCxzSEFRNUI7OztZQVJHLEFBQXJCLHdDQUFxQixtQ0FBdUI7OztpRkRpQjlDLGlDQUFpQztjQUo3QyxTQUFTOzJCQUNFLGlDQUFpQzs7a0ZBR2hDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENhc2VUYWIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgaXNJbnRlcm5hbFVzZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFsZXR0ZUNvbnRleHQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL3BhbGV0dGUtY29udGV4dC5lbnVtJztcbmltcG9ydCB7IENhc2VRdWVyaWVzQ29sbGVjdGlvbiwgUXVlcnlDcmVhdGVDb250ZXh0LCBRdWVyeUxpc3RJdGVtIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgUXVlcnlNYW5hZ2VtZW50VXRpbHMgfSBmcm9tICcuL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS5ub3RpZmllcic7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLXF1ZXJ5LW1hbmFnZW1lbnQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1xdWVyeS1tYW5hZ2VtZW50LWZpZWxkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnM6IENhc2VRdWVyaWVzQ29sbGVjdGlvbltdO1xuICBwdWJsaWMgcXVlcnk6IFF1ZXJ5TGlzdEl0ZW07XG4gIHB1YmxpYyBzaG93UXVlcnlMaXN0OiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgbWVzc2FnZVR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgZm9sbG93VXBRdWVyeTogc3RyaW5nID0gUXVlcnlDcmVhdGVDb250ZXh0LkZPTExPV1VQO1xuICBwdWJsaWMgcmVzcG9uZFRvUXVlcnk6IHN0cmluZyA9IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EO1xuXG4gIHB1YmxpYyBpc1F1ZXJ5Q2xvc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHZhbHVlOiBib29sZWFuO1xuICBwdWJsaWMgaXNNdWx0aXBsZUZvbGxvd1VwRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY3VycmVudEp1cmlzZGljdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBlbmFibGVTZXJ2aWNlU3BlY2lmaWNNdWx0aUZvbGxvd3Vwczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIGNhc2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhYnN0cmFjdENvbmZpZzogQWJzdHJhY3RBcHBDb25maWdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmNpZDtcblxuICAgIHRoaXMuZW5hYmxlU2VydmljZVNwZWNpZmljTXVsdGlGb2xsb3d1cHMgPSB0aGlzLmFic3RyYWN0Q29uZmlnLmdldEVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzKCkgfHwgW107XG4gICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uID0gdGhpcy5jYXNlTm90aWZpZXIuY2FzZVZpZXcuc3Vic2NyaWJlKChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgaWYgKGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SnVyaXNkaWN0aW9uSWQgPSBjYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkO1xuICAgICAgICB0aGlzLmlzTXVsdGlwbGVGb2xsb3dVcEVuYWJsZWQgPSB0aGlzLmVuYWJsZVNlcnZpY2VTcGVjaWZpY011bHRpRm9sbG93dXBzLmluY2x1ZGVzKHRoaXMuY3VycmVudEp1cmlzZGljdGlvbklkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQpIHtcbiAgICAgIC8vIEVVSS04MzAzIFVzaW5nIG1vY2sgZGF0YSB1bnRpbCBDQ0QgaXMgcmVhZHkgd2l0aCB0aGUgQVBJIGFuZCBkYXRhIGNvbnRyYWN0XG4gICAgICAvLyB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSBjYXNlTWVzc2FnZXNNb2NrRGF0YTtcblxuICAgICAgLy8gVE9ETzogQWN0dWFsIGltcGxlbWVudGF0aW9uIG9uY2UgdGhlIENDRCBBUEkgYW5kIGRhdGEgY29udHJhY3QgaXMgYXZhaWxhYmxlXG4gICAgICAvLyBFYWNoIHBhcnRpZXMgd2lsbCBoYXZlIGEgc2VwYXJhdGUgY29sbGVjdGlvbiBvZiBwYXJ0eSBtZXNzYWdlc1xuICAgICAgLy8gRmluZCB3aGV0aGVyIHF1ZXJpZXMgdGFiIGlzIGF2YWlsYWJsZSBpbiB0aGUgY2FzZSBkYXRhXG4gICAgICB0aGlzLmNhc2VOb3RpZmllci5mZXRjaEFuZFJlZnJlc2godGhpcy5jYXNlSWQpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlPy50YWJzKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IChjYXNlRGV0YWlscy50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcG9uZW50TGF1bmNoZXInICYmIGNhc2VGaWVsZC5pZCA9PT0gdGhpcy5jYXNlRmllbGQuaWQpKVxuICAgICAgICAgICAgICAgIFswXS5maWVsZHM/LnJlZHVjZSgoYWNjLCBjYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmV4dHJhY3RDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQoY2FzZUZpZWxkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCAmJiB0eXBlb2YgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsaXN0IG9mIHBhcnRpZXMgYW5kIHRoZWlyIGNhc2UgcXVlcmllcyBjb2xsZWN0aW9uc1xuICAgICAgLy8gUXVlcnlNYW5hZ2VtZW50VXRpbHMuZXh0cmFjdENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRRdWVyeShxdWVyeSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1F1ZXJ5TGlzdCA9IGZhbHNlO1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLm1lc3NhZ2VUeXBlID0gdGhpcy5nZXRNZXNzYWdlVHlwZShxdWVyeSk7XG4gICAgdGhpcy5pc1F1ZXJ5Q2xvc2VkID0gdGhpcy5xdWVyeT8uY2hpbGRyZW4/LnNvbWUoKHF1ZXJ5SXRlbSkgPT4gcXVlcnlJdGVtPy5pc0Nsb3NlZCA9PT0gJ1llcycpO1xuICB9XG5cbiAgcHVibGljIGJhY2tUb1F1ZXJ5TGlzdFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93UXVlcnlMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBpc0ludGVybmFsVXNlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNJbnRlcm5hbFVzZXIodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIGdldE1lc3NhZ2VUeXBlKHF1ZXJ5OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5LmNoaWxkcmVuPy5sZW5ndGhcbiAgICAgID8gcXVlcnkuY2hpbGRyZW5bcXVlcnkuY2hpbGRyZW4ubGVuZ3RoIC0gMV0/Lm1lc3NhZ2VUeXBlXG4gICAgICA6IHF1ZXJ5Py5tZXNzYWdlVHlwZTtcbiAgfVxufVxuXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1F1ZXJ5TGlzdDsgZWxzZSBzaW5nbGVRdWVyeURldGFpbHNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG9mIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1F1ZXJ5TGlzdFwiIGNsYXNzPVwiZ292dWstIS1tYXJnaW4tdG9wLTggZ292dWstIS1tYXJnaW4tYm90dG9tLThcIj5cbiAgICAgIDxjY2QtcXVlcnktbGlzdCAoc2VsZWN0ZWRRdWVyeSk9XCJzZXRRdWVyeSgkZXZlbnQpXCIgW2Nhc2VRdWVyaWVzQ29sbGVjdGlvbl09XCJjYXNlUXVlcmllc0NvbGxlY3Rpb25cIj48L2NjZC1xdWVyeS1saXN0PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3NpbmdsZVF1ZXJ5RGV0YWlscz5cbiAgPGNjZC1xdWVyeS1kZXRhaWxzXG4gICAgW3F1ZXJ5XT1cInF1ZXJ5XCJcbiAgICAoYmFja0NsaWNrZWQpPVwic2hvd1F1ZXJ5TGlzdCA9IHRydWVcIlxuICAgIFtjYXNlSWRdPVwiY2FzZUlkXCJcbiAgPjwvY2NkLXF1ZXJ5LWRldGFpbHM+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ludGVybmFsVXNlcigpICYmICFpc1F1ZXJ5Q2xvc2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihtZXNzYWdlVHlwZSAmJiBtZXNzYWdlVHlwZSA9PT0gZm9sbG93VXBRdWVyeSAgJiYgaXNNdWx0aXBsZUZvbGxvd1VwRW5hYmxlZCkgfHwgKG1lc3NhZ2VUeXBlICYmIG1lc3NhZ2VUeXBlID09PSByZXNwb25kVG9RdWVyeSk7IGVsc2Ugc2VxdWVudGlhbFF1ZXJ5XCI+XG4gICAgICA8YnV0dG9uIGlkPVwiYXNrLWZvbGxvdy11cC1xdWVzdGlvblwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9xdWVyeS1tYW5hZ2VtZW50JywgJ3F1ZXJ5JywgY2FzZUlkLCAnNCcsIHF1ZXJ5LmlkXVwiPlxuICAgICAgICB7eyAnQXNrIGEgZm9sbG93LXVwIHF1ZXN0aW9uJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzZXF1ZW50aWFsUXVlcnk+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnk/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmIHF1ZXJ5Py5jaGlsZHJlbj8ubGVuZ3RoICUgMiA9PT0gMTsgZWxzZSBxdWVyeUlzSW5SZXZpZXdcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImFzay1mb2xsb3ctdXAtcXVlc3Rpb25cIiBjbGFzcz1cImdvdnVrLWJ1dHRvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9xdWVyeS1tYW5hZ2VtZW50JywgJ3F1ZXJ5JywgY2FzZUlkLCAnNCcsIHF1ZXJ5LmlkXVwiPlxuICAgICAgICAgIHt7ICdBc2sgYSBmb2xsb3ctdXAgcXVlc3Rpb24nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjcXVlcnlJc0luUmV2aWV3PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgJ1lvdXIgcXVlcnkgaXMgdW5kZXIgcmV2aWV3JyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICA8cD57eyAnT3VyIHRlYW0gd2lsbCByZWFkIHlvdXIgcXVlcnkgYW5kIHJlc3BvbmQuIERvIG5vdCBzdWJtaXQgdGhlIHNhbWUgcXVlcnkgbW9yZSB0aGFuIG9uY2UuJyB8IHJweFRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1F1ZXJ5Q2xvc2VkXCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dFwiPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPldhcm5pbmc8L3NwYW4+XG4gICAgICAgIDxwIGNsYXNzPVwicW0tc2VydmljZS1tZXNzYWdlIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7ICdUaGlzIHF1ZXJ5IGhhcyBiZWVuIGNsb3NlZCBieSBITUNUUyBzdGFmZi4nIHwgcnB4VHJhbnNsYXRlIH19PC9wPlxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -29,7 +29,7 @@ export class QueryManagementService {
29
29
  }
30
30
  const caseMessage = queryCreateContext === QueryCreateContext.NEW_QUERY
31
31
  ? QueryManagementUtils.getNewQueryData(formGroup, currentUserDetails)
32
- : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails);
32
+ : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails, queryCreateContext);
33
33
  const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query
34
34
  // Check if the field ID has been set dynamically
35
35
  if (!this.fieldId) {
@@ -176,4 +176,4 @@ export class QueryManagementService {
176
176
  type: Injectable,
177
177
  args: [{ providedIn: 'root' }]
178
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==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvcXVlcnktbWFuYWdlbWVudC9zZXJ2aWNlcy9xdWVyeS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUEyQixrQkFBa0IsRUFBd0MsTUFBTSxXQUFXLENBQUM7QUFDOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNuQixNQUFNLHlDQUF5QyxDQUFDOzs7O0FBS2pELE1BQU0sT0FBTyxzQkFBc0I7SUFLZDtJQUNBO0lBTFosc0JBQXNCLENBQTBCO0lBQ2hELE9BQU8sQ0FBUztJQUV2QixZQUNtQixNQUFjLEVBQ2QscUJBQTRDO1FBRDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQzVELENBQUM7SUFFRyxpQ0FBaUMsQ0FDdEMsU0FBb0IsRUFDcEIsa0JBQXNDLEVBQ3RDLFNBQXdCLEVBQ3hCLFNBQWtCLENBQUMsb0RBQW9EOztRQUV2RSxJQUFJLGtCQUFrQixDQUFDO1FBRXZCLElBQUksQ0FBQztZ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YXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluJztcbmltcG9ydCB7IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0sIENhc2VRdWVyaWVzQ29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVU0VSX0RFVEFJTFMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4uL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHtcbiAgQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQsXG4gIEZJRUxEX1RZUEVfQ09NUExFWCxcbiAgRElTUExBWV9DT05URVhUX1JFQURPTkxZLFxuICBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTixcbiAgUU1fQ09MTEVDVElPTl9QUk9NUFQsXG4gIENJVklMX0pVUklTRElDVElPTlxufSBmcm9tICcuLi9jb25zdGFudHMvcXVlcnktbWFuYWdlbWVudC5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuXG5leHBvcnQgY2xhc3MgUXVlcnlNYW5hZ2VtZW50U2VydmljZSB7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIGZpZWxkSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZW5lcmF0ZUNhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQsXG4gICAgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtLFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZyAvLyBHZXQgdGhlIG1lc3NhZ2UgSUQgZnJvbSByb3V0ZSBwYXJhbXMgKGlmIHByZXNlbnQpXG4gICk6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIHtcbiAgICBsZXQgY3VycmVudFVzZXJEZXRhaWxzO1xuXG4gICAgdHJ5IHtcbiAgICAgIGN1cnJlbnRVc2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShVU0VSX0RFVEFJTFMpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgcGFyc2UgVVNFUl9ERVRBSUxTIGZyb20gc2Vzc2lvbiBzdG9yYWdlOicsIGUpO1xuICAgICAgY3VycmVudFVzZXJEZXRhaWxzID0ge307XG4gICAgfVxuICAgIGNvbnN0IGNhc2VNZXNzYWdlID0gcXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZXG4gICAgICA/IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmdldE5ld1F1ZXJ5RGF0YShmb3JtR3JvdXAsIGN1cnJlbnRVc2VyRGV0YWlscylcbiAgICAgIDogUXVlcnlNYW5hZ2VtZW50VXRpbHMuZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEoZm9ybUdyb3VwLCBxdWVyeUl0ZW0sIGN1cnJlbnRVc2VyRGV0YWlscywgcXVlcnlDcmVhdGVDb250ZXh0KTtcblxuICAgIGNvbnN0IGlzTmV3UXVlcnkgPSBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5ORVdfUVVFUlk7IC8vIENoZWNrIGlmIHRoaXMgaXMgYSBuZXcgcXVlcnlcblxuICAgIC8vIENoZWNrIGlmIHRoZSBmaWVsZCBJRCBoYXMgYmVlbiBzZXQgZHluYW1pY2FsbHlcbiAgICBpZiAoIXRoaXMuZmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IEZpZWxkIElEIGZvciBDYXNlUXVlcmllc0NvbGxlY3Rpb24gbm90IGZvdW5kLiBDYW5ub3QgcHJvY2VlZCB3aXRoIGRhdGEgZ2VuZXJhdGlvbi4nKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsICdzZXJ2aWNlLWRvd24nXSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIElEIGZvciBDYXNlUXVlcmllc0NvbGxlY3Rpb24gbm90IGZvdW5kLiBBYm9ydGluZyBxdWVyeSBkYXRhIGdlbmVyYXRpb24uJyk7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBuZXcgcXVlcnkgZGF0YSBzdHJ1Y3R1cmVcbiAgICBjb25zdCBuZXdRdWVyeURhdGE6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uID0ge307XG5cbiAgICBpZiAodGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgIGxldCBtYXRjaGVkQ29sbGVjdGlvbjtcblxuICAgICAgLy8gSWYgaXQncyBub3QgYSBuZXcgcXVlcnksIHRyeSB0byBmaW5kIHRoZSBleGlzdGluZyBjb2xsZWN0aW9uIHdpdGggdGhlIG1lc3NhZ2UgSURcbiAgICAgIGlmICghaXNOZXdRdWVyeSAmJiBtZXNzYWdlSWQpIHtcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24gPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT5cbiAgICAgICAgICBjb2xsZWN0aW9uLmNhc2VNZXNzYWdlcy5zb21lKChtZXNzYWdlKSA9PiBtZXNzYWdlLnZhbHVlLmlkID09PSBtZXNzYWdlSWQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXRjaGVkQ29sbGVjdGlvbikge1xuICAgICAgICAvLyBBcHBlbmQgdGhlIG5ldyBjYXNlIG1lc3NhZ2UgdG8gdGhlIG1hdGNoZWQgY29sbGVjdGlvbidzIGNhc2VNZXNzYWdlc1xuICAgICAgICBtYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgbWF0Y2hlZCBjb2xsZWN0aW9uIHRvIG5ld1F1ZXJ5RGF0YVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgICAuLi5tYXRjaGVkQ29sbGVjdGlvbiwgLy8gS2VlcCBleGlzdGluZyBkYXRhIGludGFjdFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogWy4uLm1hdGNoZWRDb2xsZWN0aW9uLmNhc2VNZXNzYWdlc10gLy8gQXBwZW5kIHRoZSB1cGRhdGVkIG1lc3NhZ2VzIGFycmF5XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVc2UgcGFydHlOYW1lIGZyb20gdGhlIGZpcnN0IGNvbGxlY3Rpb24gKGFzc3VtcHRpb246IGFsbCBzaGFyZSB0aGUgc2FtZSBwYXJ0eSlcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQYXJ0eU5hbWUgPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnM/LlswXT8ucGFydHlOYW1lID8/IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZTtcblxuICAgICAgICAvLyBJZiBubyBjb2xsZWN0aW9uIG1hdGNoZXMsIG9yIGl0J3MgYSBuZXcgcXVlcnlcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgcGFydHlOYW1lOiBvcmlnaW5hbFBhcnR5TmFtZSxcbiAgICAgICAgICByb2xlT25DYXNlOiAnJywgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIElmIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgaXMgbm90IGVtcHR5LCBhcHBlbmQgaXRzIGRhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0uY2FzZU1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZsYXRNYXAoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgY29sbGVjdGlvbnMsIGNyZWF0ZSBhIG5ldyBvbmUgKGUuZy4sIGZvciBuZXcgcXVlcmllcylcbiAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICBwYXJ0eU5hbWU6IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZSB8fCBgJHtjdXJyZW50VXNlckRldGFpbHM/LmZvcmVuYW1lfSAke2N1cnJlbnRVc2VyRGV0YWlscz8uc3VybmFtZX1gLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIHJvbGVPbkNhc2U6ICcnLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3UXVlcnlEYXRhO1xuICB9XG5cbiAgcHVibGljIHNldENhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoXG4gICAgZXZlbnREYXRhOiBDYXNlRXZlbnRUcmlnZ2VyLFxuICAgIHF1ZXJ5Q3JlYXRlQ29udGV4dDogUXVlcnlDcmVhdGVDb250ZXh0LFxuICAgIGNhc2VEZXRhaWxzOiBDYXNlVmlldyxcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcmVzb2x2ZWRGaWVsZElkID0gdGhpcy5yZXNvbHZlRmllbGRJZChldmVudERhdGEsIHF1ZXJ5Q3JlYXRlQ29udGV4dCwgY2FzZURldGFpbHMsIG1lc3NhZ2VJZCk7XG5cbiAgICBpZiAoIXJlc29sdmVkRmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlc29sdmUgZmllbGRJZCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLiBDYW5ub3QgcHJvY2VlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkSWQgPSByZXNvbHZlZEZpZWxkSWQ7XG5cbiAgICB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSBldmVudERhdGEuY2FzZV9maWVsZHMucmVkdWNlKChhY2MsIGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQuaWQgPT09IHRoaXMuZmllbGRJZCkge1xuICAgICAgICBjb25zdCBleHRyYWN0ZWQgPSBRdWVyeU1hbmFnZW1lbnRVdGlscy5leHRyYWN0Q2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkKGZpZWxkKTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZCAmJiB0eXBlb2YgZXh0cmFjdGVkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGFjYy5wdXNoKGV4dHJhY3RlZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRmllbGRJZChcbiAgICBldmVudERhdGE6IENhc2VFdmVudFRyaWdnZXIsXG4gICAgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQsXG4gICAgY2FzZURldGFpbHM6IENhc2VWaWV3LFxuICAgIG1lc3NhZ2VJZD86IHN0cmluZ1xuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gU3RlcCAxOiBGaWx0ZXIgY2FuZGlkYXRlIGZpZWxkcyAobXVzdCBiZSBlZGl0YWJsZSBDYXNlUXVlcmllc0NvbGxlY3Rpb24gZmllbGRzKVxuICAgIGNvbnN0IGNhbmRpZGF0ZUZpZWxkcyA9IGV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgIChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5pZCA9PT0gQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiZcbiAgICAgIGZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gRklFTERfVFlQRV9DT01QTEVYICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHQgIT09IERJU1BMQVlfQ09OVEVYVF9SRUFET05MWVxuICAgICk7XG5cbiAgICBpZiAoIWNhbmRpZGF0ZUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vIGVkaXRhYmxlIENhc2VRdWVyaWVzQ29sbGVjdGlvbiBmaWVsZHMgZm91bmQuJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBudW1iZXJPZkNvbGxlY3Rpb25zID0gY2FuZGlkYXRlRmllbGRzLmxlbmd0aDtcbiAgICBjb25zdCBqdXJpc2RpY3Rpb25JZCA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQgPz8gJyc7XG5cbiAgICAvLyBTdGVwIDI6IElmIG1lc3NhZ2VJZCBpcyBwcmVzZW50LCB0cnkgdG8gbG9jYXRlIHRoZSBmaWVsZCBjb250YWluaW5nIHRoYXQgbWVzc2FnZVxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIGNvbnN0IGZpZWxkQnlNZXNzYWdlID0gY2FuZGlkYXRlRmllbGRzLmZpbmQoKGZpZWxkKSA9PlxuICAgICAgICBmaWVsZD8udmFsdWU/LmNhc2VNZXNzYWdlcz8uc29tZSgobXNnKSA9PiBtc2c/LnZhbHVlPy5pZCA9PT0gbWVzc2FnZUlkKVxuICAgICAgKTtcbiAgICAgIGlmIChmaWVsZEJ5TWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gZmllbGRCeU1lc3NhZ2UuaWQ7IC8vIEZvdW5kIHRoZSBtYXRjaGluZyBmaWVsZCBieSBtZXNzYWdlIElEXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RlcCAzOiBIYW5kbGUgbmV3IHF1ZXJpZXNcbiAgICBpZiAocXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZKSB7XG4gICAgLy8gSWYgdGhlcmUncyBvbmx5IG9uZSBjb2xsZWN0aW9uLCB1c2UgaXRcbiAgICAgIGlmIChudW1iZXJPZkNvbGxlY3Rpb25zID09PSAxKSB7XG4gICAgICAgIHJldHVybiBjYW5kaWRhdGVGaWVsZHNbMF0uaWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBtdWx0aXBsZSBjb2xsZWN0aW9ucywgdXNlIGp1cmlzZGljdGlvbi1iYXNlZCByZXNvbHV0aW9uIHN0cmF0ZWd5XG4gICAgICBpZiAodGhpcy5nZXRDb2xsZWN0aW9uU2VsZWN0aW9uTWV0aG9kKGp1cmlzZGljdGlvbklkKSA9PT0gUU1fU0VMRUNUX0ZJUlNUX0NPTExFQ1RJT04pIHtcbiAgICAgIC8vIENob29zZSB0aGUgb25lIHdpdGggdGhlIGxvd2VzdCBvcmRlciBmcm9tIHRoZSBmaXJzdCB3aXphcmQgcGFnZVxuICAgICAgICBjb25zdCBmaXJzdE9yZGVyZWQgPSB0aGlzLmdldENhc2VRdWVyaWVzQ29sbGVjdGlvbkZpZWxkT3JkZXJGcm9tV2l6YXJkUGFnZXMoZXZlbnREYXRhKTtcbiAgICAgICAgaWYgKGZpcnN0T3JkZXJlZCkge1xuICAgICAgICAgIHJldHVybiBmaXJzdE9yZGVyZWQuaWQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yOiBNdWx0aXBsZSBDYXNlUXVlcmllc0NvbGxlY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldCBmb3IgdGhlICR7anVyaXNkaWN0aW9uSWR9IGp1cmlzZGljdGlvbmApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdGVwIDQ6IEZhbGxiYWNrIOKAlCBpZiBub25lIG9mIHRoZSBhYm92ZSBzdWNjZWVkZWRcbiAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBkZXRlcm1pbmUgZmllbGRJZCBmb3IgY29udGV4dDonLCBxdWVyeUNyZWF0ZUNvbnRleHQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25GaWVsZE9yZGVyRnJvbVdpemFyZFBhZ2VzKGV2ZW50RGF0YTogQ2FzZUV2ZW50VHJpZ2dlcik6IENhc2VGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY2FuZGlkYXRlRmllbGRzID0gZXZlbnREYXRhPy5jYXNlX2ZpZWxkcz8uZmlsdGVyKFxuICAgICAgKGZpZWxkKSA9PlxuICAgICAgICBmaWVsZC5maWVsZF90eXBlLmlkID09PSBDQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJlxuICAgICAgICBmaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IEZJRUxEX1RZUEVfQ09NUExFWCAmJlxuICAgICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHQgIT09IERJU1BMQVlfQ09OVEVYVF9SRUFET05MWVxuICAgICk7XG5cbiAgICBpZiAoIWNhbmRpZGF0ZUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0UGFnZUZpZWxkcyA9IGV2ZW50RGF0YT8ud2l6YXJkX3BhZ2VzPy5bMF0/LndpemFyZF9wYWdlX2ZpZWxkcztcblxuICAgIGlmICghZmlyc3RQYWdlRmllbGRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBjYW5kaWRhdGVGaWVsZHNcbiAgICAgIC5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpemFyZEZpZWxkID0gZmlyc3RQYWdlRmllbGRzLmZpbmQoKGYpID0+IGYuY2FzZV9maWVsZF9pZCA9PT0gZmllbGQuaWQpO1xuICAgICAgICByZXR1cm4geyBmaWVsZCwgb3JkZXI6IHdpemFyZEZpZWxkPy5vcmRlciA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9O1xuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcilbMF0/LmZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xsZWN0aW9uU2VsZWN0aW9uTWV0aG9kKGp1cmlzZGljdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4ganVyaXNkaWN0aW9uLnRvVXBwZXJDYXNlKCkgPT09IENJVklMX0pVUklTRElDVElPTiA/IFFNX1NFTEVDVF9GSVJTVF9DT0xMRUNUSU9OIDogUU1fQ09MTEVDVElPTl9QUk9NUFQ7XG4gIH1cbn1cblxuIl19