@hmcts/ccd-case-ui-toolkit 7.1.58 → 7.1.60-ongoing-accessibility-v1

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 (19) hide show
  1. package/esm2022/lib/shared/components/case-list/case-list.component.mjs +56 -51
  2. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +8 -1
  3. package/esm2022/lib/shared/components/pagination/pagination.component.mjs +14 -14
  4. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +6 -6
  5. package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +36 -17
  6. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +9 -7
  7. package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +26 -16
  8. package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +4 -4
  9. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +3 -3
  10. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +16 -7
  11. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +7 -5
  12. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +174 -120
  13. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  14. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +1 -0
  15. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  16. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +2 -0
  17. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts.map +1 -1
  18. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  19. package/package.json +1 -1
@@ -9,10 +9,10 @@ import * as i4 from "../pagination/pagination.component";
9
9
  import * as i5 from "ngx-pagination";
10
10
  import * as i6 from "rpx-xui-translation";
11
11
  const _c0 = (a0, a1, a2) => ({ itemsPerPage: a0, currentPage: a1, totalItems: a2 });
12
- function CaseListComponent_th_6_Template(rf, ctx) { if (rf & 1) {
12
+ function CaseListComponent_td_6_Template(rf, ctx) { if (rf & 1) {
13
13
  const _r1 = i0.ɵɵgetCurrentView();
14
- i0.ɵɵelementStart(0, "th", 8)(1, "div", 9)(2, "input", 10);
15
- i0.ɵɵlistener("change", function CaseListComponent_th_6_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectAll()); });
14
+ i0.ɵɵelementStart(0, "td", 8)(1, "div", 9)(2, "input", 10);
15
+ i0.ɵɵlistener("change", function CaseListComponent_td_6_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectAll()); });
16
16
  i0.ɵɵelementEnd();
17
17
  i0.ɵɵelement(3, "label", 11);
18
18
  i0.ɵɵelementEnd()();
@@ -20,9 +20,11 @@ function CaseListComponent_th_6_Template(rf, ctx) { if (rf & 1) {
20
20
  const ctx_r1 = i0.ɵɵnextContext();
21
21
  i0.ɵɵadvance(2);
22
22
  i0.ɵɵproperty("checked", ctx_r1.allOnPageSelected())("disabled", !ctx_r1.canAnyBeShared());
23
+ i0.ɵɵadvance();
24
+ i0.ɵɵattribute("aria-labelledby", "select-all");
23
25
  } }
24
26
  function CaseListComponent_th_7_Template(rf, ctx) { if (rf & 1) {
25
- i0.ɵɵelementStart(0, "th", 8);
27
+ i0.ɵɵelementStart(0, "th", 12);
26
28
  i0.ɵɵtext(1);
27
29
  i0.ɵɵpipe(2, "rpxTranslate");
28
30
  i0.ɵɵelementEnd();
@@ -31,22 +33,25 @@ function CaseListComponent_th_7_Template(rf, ctx) { if (rf & 1) {
31
33
  i0.ɵɵadvance();
32
34
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, h_r3.header));
33
35
  } }
34
- function CaseListComponent_ng_container_9_th_2_Template(rf, ctx) { if (rf & 1) {
36
+ function CaseListComponent_ng_container_9_td_2_Template(rf, ctx) { if (rf & 1) {
35
37
  const _r4 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelementStart(0, "th", 14)(1, "div", 9)(2, "input", 15);
37
- i0.ɵɵlistener("change", function CaseListComponent_ng_container_9_th_2_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r4); const c_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeSelection(c_r5)); })("keyup", function CaseListComponent_ng_container_9_th_2_Template_input_keyup_2_listener($event) { i0.ɵɵrestoreView(_r4); const c_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onKeyUp($event, c_r5)); });
38
+ i0.ɵɵelementStart(0, "td", 15)(1, "div", 9)(2, "input", 16);
39
+ i0.ɵɵlistener("change", function CaseListComponent_ng_container_9_td_2_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r4); const c_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeSelection(c_r5)); })("keyup", function CaseListComponent_ng_container_9_td_2_Template_input_keyup_2_listener($event) { i0.ɵɵrestoreView(_r4); const c_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onKeyUp($event, c_r5)); });
38
40
  i0.ɵɵelementEnd();
39
- i0.ɵɵelement(3, "label", 16);
41
+ i0.ɵɵelement(3, "label", 17);
40
42
  i0.ɵɵelementEnd()();
41
43
  } if (rf & 2) {
42
- const c_r5 = i0.ɵɵnextContext().$implicit;
44
+ const ctx_r5 = i0.ɵɵnextContext();
45
+ const c_r5 = ctx_r5.$implicit;
46
+ const i_r7 = ctx_r5.index;
43
47
  const ctx_r1 = i0.ɵɵnextContext();
44
48
  i0.ɵɵadvance(2);
45
- i0.ɵɵpropertyInterpolate1("id", "select-", c_r5[ctx_r1.tableConfig.idField], "");
46
- i0.ɵɵpropertyInterpolate1("name", "select-", c_r5[ctx_r1.tableConfig.idField], "");
49
+ i0.ɵɵpropertyInterpolate1("id", "select-", c_r5[ctx_r1.tableConfig.idField] || i_r7, "");
50
+ i0.ɵɵpropertyInterpolate1("name", "select-", c_r5[ctx_r1.tableConfig.idField] || i_r7, "");
47
51
  i0.ɵɵproperty("checked", ctx_r1.isSelected(c_r5))("disabled", !ctx_r1.canBeShared(c_r5));
48
52
  i0.ɵɵadvance();
49
- i0.ɵɵpropertyInterpolate1("for", "select-", c_r5[ctx_r1.tableConfig.idField], "");
53
+ i0.ɵɵpropertyInterpolate1("for", "select-", c_r5[ctx_r1.tableConfig.idField] || i_r7, "");
54
+ i0.ɵɵattribute("aria-labelledby", "select-" + (c_r5[ctx_r1.tableConfig.idField] || i_r7));
50
55
  } }
51
56
  function CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
52
57
  i0.ɵɵelementContainerStart(0);
@@ -54,52 +59,52 @@ function CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_1_Tem
54
59
  i0.ɵɵpipe(2, "rpxTranslate");
55
60
  i0.ɵɵelementContainerEnd();
56
61
  } if (rf & 2) {
57
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
62
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
58
63
  const c_r5 = i0.ɵɵnextContext().$implicit;
59
64
  i0.ɵɵadvance();
60
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, c_r5[col_r6.key]));
65
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, c_r5[col_r8.key]));
61
66
  } }
62
67
  function CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
63
68
  i0.ɵɵelementContainerStart(0);
64
- i0.ɵɵelementStart(1, "a", 19);
69
+ i0.ɵɵelementStart(1, "a", 20);
65
70
  i0.ɵɵtext(2);
66
71
  i0.ɵɵpipe(3, "rpxTranslate");
67
72
  i0.ɵɵelementEnd();
68
73
  i0.ɵɵelementContainerEnd();
69
74
  } if (rf & 2) {
70
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
75
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
71
76
  const c_r5 = i0.ɵɵnextContext().$implicit;
72
77
  i0.ɵɵadvance();
73
78
  i0.ɵɵproperty("routerLink", c_r5.routerLink);
74
79
  i0.ɵɵadvance();
75
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, c_r5[col_r6.key]));
80
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, c_r5[col_r8.key]));
76
81
  } }
77
82
  function CaseListComponent_ng_container_9_ng_container_3_th_1_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "th", 14);
79
- i0.ɵɵtemplate(1, CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_1_Template, 3, 3, "ng-container", 18)(2, CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_2_Template, 4, 4, "ng-container", 18);
83
+ i0.ɵɵelementStart(0, "th", 15);
84
+ i0.ɵɵtemplate(1, CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_1_Template, 3, 3, "ng-container", 19)(2, CaseListComponent_ng_container_9_ng_container_3_th_1_ng_container_2_Template, 4, 4, "ng-container", 19);
80
85
  i0.ɵɵelementEnd();
81
86
  } if (rf & 2) {
82
- const col_r6 = i0.ɵɵnextContext().$implicit;
87
+ const col_r8 = i0.ɵɵnextContext().$implicit;
83
88
  const c_r5 = i0.ɵɵnextContext().$implicit;
84
89
  i0.ɵɵadvance();
85
- i0.ɵɵproperty("ngIf", !col_r6.type || col_r6.type === "text");
90
+ i0.ɵɵproperty("ngIf", !col_r8.type || col_r8.type === "text");
86
91
  i0.ɵɵadvance();
87
- i0.ɵɵproperty("ngIf", col_r6.type === "link" && c_r5.routerLink);
92
+ i0.ɵɵproperty("ngIf", col_r8.type === "link" && c_r5.routerLink);
88
93
  } }
89
94
  function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
90
95
  i0.ɵɵelementContainerStart(0);
91
- i0.ɵɵelementStart(1, "a", 19);
96
+ i0.ɵɵelementStart(1, "a", 20);
92
97
  i0.ɵɵtext(2);
93
98
  i0.ɵɵpipe(3, "rpxTranslate");
94
99
  i0.ɵɵelementEnd();
95
100
  i0.ɵɵelementContainerEnd();
96
101
  } if (rf & 2) {
97
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
102
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
98
103
  const c_r5 = i0.ɵɵnextContext().$implicit;
99
104
  i0.ɵɵadvance();
100
105
  i0.ɵɵproperty("routerLink", c_r5.routerLink);
101
106
  i0.ɵɵadvance();
102
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, c_r5[col_r6.key]));
107
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, c_r5[col_r8.key]));
103
108
  } }
104
109
  function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
105
110
  i0.ɵɵelementContainerStart(0);
@@ -107,32 +112,32 @@ function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_2_Tem
107
112
  i0.ɵɵpipe(2, "currency");
108
113
  i0.ɵɵelementContainerEnd();
109
114
  } if (rf & 2) {
110
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
115
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
111
116
  const c_r5 = i0.ɵɵnextContext().$implicit;
112
117
  i0.ɵɵadvance();
113
- i0.ɵɵtextInterpolate1("-", i0.ɵɵpipeBind2(2, 1, c_r5[col_r6.key], "GBP"), "");
118
+ i0.ɵɵtextInterpolate1("-", i0.ɵɵpipeBind2(2, 1, c_r5[col_r8.key], "GBP"), "");
114
119
  } }
115
120
  function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
116
121
  i0.ɵɵelementContainerStart(0);
117
122
  i0.ɵɵtext(1);
118
123
  i0.ɵɵelementContainerEnd();
119
124
  } if (rf & 2) {
120
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
125
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
121
126
  const c_r5 = i0.ɵɵnextContext().$implicit;
122
127
  const ctx_r1 = i0.ɵɵnextContext();
123
128
  i0.ɵɵadvance();
124
- i0.ɵɵtextInterpolate(ctx_r1.formatDate(c_r5[col_r6.key]));
129
+ i0.ɵɵtextInterpolate(ctx_r1.formatDate(c_r5[col_r8.key]));
125
130
  } }
126
131
  function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {
127
132
  i0.ɵɵelementContainerStart(0);
128
133
  i0.ɵɵtext(1);
129
134
  i0.ɵɵelementContainerEnd();
130
135
  } if (rf & 2) {
131
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
136
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
132
137
  const c_r5 = i0.ɵɵnextContext().$implicit;
133
138
  const ctx_r1 = i0.ɵɵnextContext();
134
139
  i0.ɵɵadvance();
135
- i0.ɵɵtextInterpolate(ctx_r1.formatDateAtTime(c_r5[col_r6.key]));
140
+ i0.ɵɵtextInterpolate(ctx_r1.formatDateAtTime(c_r5[col_r8.key]));
136
141
  } }
137
142
  function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_5_Template(rf, ctx) { if (rf & 1) {
138
143
  i0.ɵɵelementContainerStart(0);
@@ -140,21 +145,21 @@ function CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_5_Tem
140
145
  i0.ɵɵpipe(2, "rpxTranslate");
141
146
  i0.ɵɵelementContainerEnd();
142
147
  } if (rf & 2) {
143
- const col_r6 = i0.ɵɵnextContext(2).$implicit;
148
+ const col_r8 = i0.ɵɵnextContext(2).$implicit;
144
149
  const c_r5 = i0.ɵɵnextContext().$implicit;
145
150
  i0.ɵɵadvance();
146
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, c_r5[col_r6.key]));
151
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, c_r5[col_r8.key]));
147
152
  } }
148
153
  function CaseListComponent_ng_container_9_ng_container_3_td_2_Template(rf, ctx) { if (rf & 1) {
149
- i0.ɵɵelementStart(0, "td", 20);
150
- i0.ɵɵtemplate(1, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_1_Template, 4, 4, "ng-container", 18)(2, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_2_Template, 3, 4, "ng-container", 21)(3, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_3_Template, 2, 1, "ng-container", 21)(4, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_4_Template, 2, 1, "ng-container", 21)(5, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_5_Template, 3, 3, "ng-container", 22);
154
+ i0.ɵɵelementStart(0, "td", 21);
155
+ i0.ɵɵtemplate(1, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_1_Template, 4, 4, "ng-container", 19)(2, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_2_Template, 3, 4, "ng-container", 22)(3, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_3_Template, 2, 1, "ng-container", 22)(4, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_4_Template, 2, 1, "ng-container", 22)(5, CaseListComponent_ng_container_9_ng_container_3_td_2_ng_container_5_Template, 3, 3, "ng-container", 23);
151
156
  i0.ɵɵelementEnd();
152
157
  } if (rf & 2) {
153
- const col_r6 = i0.ɵɵnextContext().$implicit;
158
+ const col_r8 = i0.ɵɵnextContext().$implicit;
154
159
  const c_r5 = i0.ɵɵnextContext().$implicit;
155
- i0.ɵɵproperty("ngSwitch", col_r6 == null ? null : col_r6.type);
160
+ i0.ɵɵproperty("ngSwitch", col_r8 == null ? null : col_r8.type);
156
161
  i0.ɵɵadvance();
157
- i0.ɵɵproperty("ngIf", col_r6.type === "link" && c_r5.routerLink);
162
+ i0.ɵɵproperty("ngIf", col_r8.type === "link" && c_r5.routerLink);
158
163
  i0.ɵɵadvance();
159
164
  i0.ɵɵproperty("ngSwitchCase", "money");
160
165
  i0.ɵɵadvance();
@@ -164,20 +169,20 @@ function CaseListComponent_ng_container_9_ng_container_3_td_2_Template(rf, ctx)
164
169
  } }
165
170
  function CaseListComponent_ng_container_9_ng_container_3_Template(rf, ctx) { if (rf & 1) {
166
171
  i0.ɵɵelementContainerStart(0);
167
- i0.ɵɵtemplate(1, CaseListComponent_ng_container_9_ng_container_3_th_1_Template, 3, 2, "th", 13)(2, CaseListComponent_ng_container_9_ng_container_3_td_2_Template, 6, 5, "td", 17);
172
+ i0.ɵɵtemplate(1, CaseListComponent_ng_container_9_ng_container_3_th_1_Template, 3, 2, "th", 14)(2, CaseListComponent_ng_container_9_ng_container_3_td_2_Template, 6, 5, "td", 18);
168
173
  i0.ɵɵelementContainerEnd();
169
174
  } if (rf & 2) {
170
- const isFirst_r7 = ctx.first;
175
+ const isFirst_r9 = ctx.first;
171
176
  const ctx_r1 = i0.ɵɵnextContext(2);
172
177
  i0.ɵɵadvance();
173
- i0.ɵɵproperty("ngIf", isFirst_r7 && ctx_r1.firstCellIsHeader);
178
+ i0.ɵɵproperty("ngIf", isFirst_r9 && ctx_r1.firstCellIsHeader);
174
179
  i0.ɵɵadvance();
175
- i0.ɵɵproperty("ngIf", !(isFirst_r7 && ctx_r1.firstCellIsHeader));
180
+ i0.ɵɵproperty("ngIf", !(isFirst_r9 && ctx_r1.firstCellIsHeader));
176
181
  } }
177
182
  function CaseListComponent_ng_container_9_Template(rf, ctx) { if (rf & 1) {
178
183
  i0.ɵɵelementContainerStart(0);
179
- i0.ɵɵelementStart(1, "tr", 12);
180
- i0.ɵɵtemplate(2, CaseListComponent_ng_container_9_th_2_Template, 4, 8, "th", 13)(3, CaseListComponent_ng_container_9_ng_container_3_Template, 3, 2, "ng-container", 6);
184
+ i0.ɵɵelementStart(1, "tr", 13);
185
+ i0.ɵɵtemplate(2, CaseListComponent_ng_container_9_td_2_Template, 4, 9, "td", 14)(3, CaseListComponent_ng_container_9_ng_container_3_Template, 3, 2, "ng-container", 6);
181
186
  i0.ɵɵelementEnd();
182
187
  i0.ɵɵelementContainerEnd();
183
188
  } if (rf & 2) {
@@ -188,9 +193,9 @@ function CaseListComponent_ng_container_9_Template(rf, ctx) { if (rf & 1) {
188
193
  i0.ɵɵproperty("ngForOf", ctx_r1.tableConfig.columnConfigs);
189
194
  } }
190
195
  function CaseListComponent_ccd_pagination_11_Template(rf, ctx) { if (rf & 1) {
191
- const _r8 = i0.ɵɵgetCurrentView();
192
- i0.ɵɵelementStart(0, "ccd-pagination", 23);
193
- i0.ɵɵlistener("pageChange", function CaseListComponent_ccd_pagination_11_Template_ccd_pagination_pageChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.goToPage($event)); });
196
+ const _r10 = i0.ɵɵgetCurrentView();
197
+ i0.ɵɵelementStart(0, "ccd-pagination", 24);
198
+ i0.ɵɵlistener("pageChange", function CaseListComponent_ccd_pagination_11_Template_ccd_pagination_pageChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.goToPage($event)); });
194
199
  i0.ɵɵelementEnd();
195
200
  } }
196
201
  export class DateTimeFormatUtils {
@@ -290,13 +295,13 @@ export class CaseListComponent {
290
295
  this.pageChange.emit(pageNumber);
291
296
  }
292
297
  static ɵfac = function CaseListComponent_Factory(t) { return new (t || CaseListComponent)(i0.ɵɵdirectiveInject(i1.BrowserService)); };
293
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseListComponent, selectors: [["ccd-case-list"]], inputs: { classes: "classes", caption: "caption", firstCellIsHeader: "firstCellIsHeader", cases: "cases", tableConfig: "tableConfig", selectionEnabled: "selectionEnabled", selectedCases: "selectedCases", currentPageNo: "currentPageNo", totalResultsCount: "totalResultsCount", pageSize: "pageSize" }, outputs: { selection: "selection", pageChange: "pageChange" }, decls: 12, vars: 17, consts: [[1, "govuk-table__caption"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["class", "govuk-table__header", "scope", "col", 4, "ngIf"], ["class", "govuk-table__header", "scope", "col", 4, "ngFor", "ngForOf"], [1, "govuk-table__body"], [4, "ngFor", "ngForOf"], [3, "pageChange", 4, "ngIf"], ["scope", "col", 1, "govuk-table__header"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["data-selector", "table-row", 1, "govuk-table__row"], ["data-selector", "table-header", "class", "govuk-table__header", "scope", "row", 4, "ngIf"], ["data-selector", "table-header", "scope", "row", 1, "govuk-table__header"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["data-selector", "table-cell", "class", "govuk-table__cell", 3, "ngSwitch", 4, "ngIf"], [4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["data-selector", "table-cell", 1, "govuk-table__cell", 3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "pageChange"]], template: function CaseListComponent_Template(rf, ctx) { if (rf & 1) {
298
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseListComponent, selectors: [["ccd-case-list"]], inputs: { classes: "classes", caption: "caption", firstCellIsHeader: "firstCellIsHeader", cases: "cases", tableConfig: "tableConfig", selectionEnabled: "selectionEnabled", selectedCases: "selectedCases", currentPageNo: "currentPageNo", totalResultsCount: "totalResultsCount", pageSize: "pageSize" }, outputs: { selection: "selection", pageChange: "pageChange" }, decls: 12, vars: 17, consts: [[1, "govuk-table__caption"], [1, "govuk-table__head"], [1, "govuk-table__row"], ["class", "govuk-table__header", 4, "ngIf"], ["class", "govuk-table__header", "scope", "col", 4, "ngFor", "ngForOf"], [1, "govuk-table__body"], [4, "ngFor", "ngForOf"], [3, "pageChange", 4, "ngIf"], [1, "govuk-table__header"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["scope", "col", 1, "govuk-table__header"], ["data-selector", "table-row", 1, "govuk-table__row"], ["data-selector", "table-header", "class", "govuk-table__header", "scope", "row", 4, "ngIf"], ["data-selector", "table-header", "scope", "row", 1, "govuk-table__header"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["data-selector", "table-cell", "class", "govuk-table__cell", 3, "ngSwitch", 4, "ngIf"], [4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["data-selector", "table-cell", 1, "govuk-table__cell", 3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "pageChange"]], template: function CaseListComponent_Template(rf, ctx) { if (rf & 1) {
294
299
  i0.ɵɵelementStart(0, "table")(1, "caption", 0);
295
300
  i0.ɵɵtext(2);
296
301
  i0.ɵɵpipe(3, "rpxTranslate");
297
302
  i0.ɵɵelementEnd();
298
303
  i0.ɵɵelementStart(4, "thead", 1)(5, "tr", 2);
299
- i0.ɵɵtemplate(6, CaseListComponent_th_6_Template, 4, 2, "th", 3)(7, CaseListComponent_th_7_Template, 3, 3, "th", 4);
304
+ i0.ɵɵtemplate(6, CaseListComponent_td_6_Template, 4, 3, "td", 3)(7, CaseListComponent_th_7_Template, 3, 3, "th", 4);
300
305
  i0.ɵɵelementEnd()();
301
306
  i0.ɵɵelementStart(8, "tbody", 5);
302
307
  i0.ɵɵtemplate(9, CaseListComponent_ng_container_9_Template, 4, 2, "ng-container", 6);
@@ -319,7 +324,7 @@ export class CaseListComponent {
319
324
  }
320
325
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseListComponent, [{
321
326
  type: Component,
322
- args: [{ selector: 'ccd-case-list', template: "<table class=\"{{'govuk-table ' + classes}}\">\n <caption class=\"govuk-table__caption\">{{caption | rpxTranslate}}</caption>\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\" *ngIf=\"selectionEnabled\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\"\n [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <!-- This label element is used to hide the standard checkbox with a govuk-styled one -->\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\">\n </label>\n </div>\n </th>\n <th class=\"govuk-table__header\" scope=\"col\" *ngFor=\"let h of tableConfig.columnConfigs\">{{h.header | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-container *ngFor=\"let c of cases | paginate: { itemsPerPage: pageSize, currentPage: currentPageNo, totalItems: totalResultsCount }\">\n <tr data-selector=\"table-row\" class=\"govuk-table__row\">\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"selectionEnabled\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ c[tableConfig.idField] }}\" name=\"select-{{ c[tableConfig.idField] }}\"\n type=\"checkbox\" (change)=\"changeSelection(c)\" [checked]=\"isSelected(c)\" [disabled]=\"!canBeShared(c)\" (keyup)=\"onKeyUp($event, c)\" />\n <!-- This label element is used to hide the standard checkbox with a govuk-styled one -->\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ c[tableConfig.idField] }}\">\n </label>\n </div>\n </th>\n <ng-container *ngFor=\"let col of tableConfig.columnConfigs; first as isFirst\">\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"isFirst && firstCellIsHeader\">\n <ng-container *ngIf=\"!col.type || col.type === 'text'\">{{c[col.key] | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && c.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"c.routerLink\">{{c[col.key] | rpxTranslate}}</a>\n </ng-container>\n </th>\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" *ngIf=\"!(isFirst && firstCellIsHeader)\" [ngSwitch]=\"col?.type\">\n <ng-container *ngIf=\"col.type === 'link' && c.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"c.routerLink\">{{c[col.key] | rpxTranslate}}</a>\n </ng-container>\n <ng-container *ngSwitchCase=\"'money'\">-{{ c[col.key] | currency:'GBP' }}</ng-container>\n <ng-container *ngSwitchCase=\"'date'\">{{formatDate(c[col.key])}}</ng-container>\n <ng-container *ngSwitchCase=\"'dateAtTime'\">{{formatDateAtTime(c[col.key])}}</ng-container>\n <ng-container *ngSwitchDefault>{{c[col.key] | rpxTranslate}}</ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<ccd-pagination *ngIf=\"totalResultsCount > pageSize\"\n (pageChange)=\"goToPage($event)\"\n></ccd-pagination>\n" }]
327
+ args: [{ selector: 'ccd-case-list', template: "<table class=\"{{'govuk-table ' + classes}}\">\n <caption class=\"govuk-table__caption\">{{caption | rpxTranslate}}</caption>\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header\" *ngIf=\"selectionEnabled\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\"\n [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <!-- This label element is used to hide the standard checkbox with a govuk-styled one -->\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n </label>\n </div>\n </td>\n <th class=\"govuk-table__header\" scope=\"col\" *ngFor=\"let h of tableConfig.columnConfigs\">{{h.header | rpxTranslate}}</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-container *ngFor=\"let c of cases | paginate: { itemsPerPage: pageSize, currentPage: currentPageNo, totalItems: totalResultsCount }; index as i\">\n <tr data-selector=\"table-row\" class=\"govuk-table__row\">\n <td data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"selectionEnabled\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ c[tableConfig.idField] || i }}\" name=\"select-{{ c[tableConfig.idField] || i }}\"\n type=\"checkbox\" (change)=\"changeSelection(c)\" [checked]=\"isSelected(c)\" [disabled]=\"!canBeShared(c)\" (keyup)=\"onKeyUp($event, c)\" />\n <!-- This label element is used to hide the standard checkbox with a govuk-styled one -->\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ c[tableConfig.idField] || i }}\" [attr.aria-labelledby]=\"'select-' + (c[tableConfig.idField] || i)\">\n </label>\n </div>\n </td>\n <ng-container *ngFor=\"let col of tableConfig.columnConfigs; first as isFirst\">\n <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"isFirst && firstCellIsHeader\">\n <ng-container *ngIf=\"!col.type || col.type === 'text'\">{{c[col.key] | rpxTranslate}}</ng-container>\n <ng-container *ngIf=\"col.type === 'link' && c.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"c.routerLink\">{{c[col.key] | rpxTranslate}}</a>\n </ng-container>\n </th>\n <td data-selector=\"table-cell\" class=\"govuk-table__cell\" *ngIf=\"!(isFirst && firstCellIsHeader)\" [ngSwitch]=\"col?.type\">\n <ng-container *ngIf=\"col.type === 'link' && c.routerLink\">\n <a class=\"govuk-link\" [routerLink]=\"c.routerLink\">{{c[col.key] | rpxTranslate}}</a>\n </ng-container>\n <ng-container *ngSwitchCase=\"'money'\">-{{ c[col.key] | currency:'GBP' }}</ng-container>\n <ng-container *ngSwitchCase=\"'date'\">{{formatDate(c[col.key])}}</ng-container>\n <ng-container *ngSwitchCase=\"'dateAtTime'\">{{formatDateAtTime(c[col.key])}}</ng-container>\n <ng-container *ngSwitchDefault>{{c[col.key] | rpxTranslate}}</ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<ccd-pagination *ngIf=\"totalResultsCount > pageSize\"\n (pageChange)=\"goToPage($event)\"\n></ccd-pagination>\n" }]
323
328
  }], () => [{ type: i1.BrowserService }], { classes: [{
324
329
  type: Input
325
330
  }], caption: [{
@@ -365,4 +370,4 @@ export class TableConfig {
365
370
  this.columnConfigs = [];
366
371
  }
367
372
  }
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWxpc3QvY2FzZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWxpc3QvY2FzZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7Ozs7SUNJOUQsQUFERixBQURGLDZCQUFxRSxhQUMvQixnQkFFc0M7SUFEaUIsNktBQVUsa0JBQVcsS0FBQztJQUEvRyxpQkFDd0U7SUFFeEUsNEJBQ1E7SUFFWixBQURFLGlCQUFNLEVBQ0g7OztJQUxNLGVBQStCO0lBQUMsQUFBaEMsb0RBQStCLHNDQUErQjs7O0lBTXpFLDZCQUF3RjtJQUFBLFlBQTJCOztJQUFBLGlCQUFLOzs7SUFBaEMsY0FBMkI7SUFBM0IsdURBQTJCOzs7O0lBUTdHLEFBREYsQUFERiw4QkFBa0csYUFDNUQsZ0JBRXdHO0lBQS9CLEFBQXJGLHVPQUFVLDRCQUFrQixLQUFDLDhOQUFpRSw0QkFBa0IsS0FBQztJQUR2SSxpQkFDMEk7SUFFMUksNEJBQ1E7SUFFWixBQURFLGlCQUFNLEVBQ0g7Ozs7SUFOc0MsZUFBd0M7SUFBeEMsZ0ZBQXdDO0lBQUMsa0ZBQTBDO0lBQzVDLEFBQTFCLGlEQUF5Qix1Q0FBNkI7SUFFdkQs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eyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Jyb3dzZXIvYnJvd3Nlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRm9ybWF0VXRpbHMge1xuICBwdWJsaWMgc3RhdGljIGZvcm1hdERhdGVBdFRpbWUoZGF0ZTogRGF0ZSwgaXMyNEhvdXI6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtmb3JtYXREYXRlKGRhdGUsICdkZCBNTU0geXl5eScsICdlbi1HQicpfSBhdCAke0RhdGVUaW1lRm9ybWF0VXRpbHMuZm9ybWF0VGltZShkYXRlLCBpczI0SG91cil9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0VGltZShkYXRlOiBEYXRlLCBpczI0SG91cjogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlzMjRIb3VyID8gZm9ybWF0RGF0ZShkYXRlLCAnSEg6bW0nLCAnZW4tR0InKSA6IGZvcm1hdERhdGUoZGF0ZSwgJ2g6bW0gYScsICdlbi1HQicpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXNlLWxpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlTGlzdENvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXMgPSAnJztcblxuICBASW5wdXQoKSBwdWJsaWMgY2FwdGlvbjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZmlyc3RDZWxsSXNIZWFkZXIgPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgY2FzZXM6IG9iamVjdFtdO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XG4gICAgaWRGaWVsZDogJ2lkJyxcbiAgICBjb2x1bW5Db25maWdzOiBbXG4gICAgICB7IGhlYWRlcjogJ0RhdGUnLCBrZXk6ICdkYXRlJywgdHlwZTogJ3RleHQnIH0sXG4gICAgICB7IGhlYWRlcjogJ0Ftb3VudCcsIGtleTogJ2Ftb3VudCcgfVxuICAgIF1cbiAgfTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRDYXNlczogYW55W10gPSBbXTtcblxuICBASW5wdXQoKSBwdWJsaWMgY3VycmVudFBhZ2VObzogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB0b3RhbFJlc3VsdHNDb3VudD86IG51bWJlcjtcblxuICBASW5wdXQoKSBwdWJsaWMgcGFnZVNpemU/OiBudW1iZXI7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnJvd3NlclNlcnZpY2U6IEJyb3dzZXJTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZSA/IGZvcm1hdERhdGUoZGF0ZSwgJ2RkIE1NTSB5eXl5JywgJ2VuLUdCJykgOiAnLSc7XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0RGF0ZUF0VGltZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZSA/IERhdGVUaW1lRm9ybWF0VXRpbHMuZm9ybWF0RGF0ZUF0VGltZShkYXRlLCBmYWxzZSkgOiAnLSc7XG4gIH1cblxuICBwdWJsaWMgY2FuQmVTaGFyZWQoYzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgY2FuQW55QmVTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZXMuc29tZShjID0+IHRoaXMuY2FuQmVTaGFyZWQoYykpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxPblBhZ2VTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBBbGwgY2FzZXMgYWxyZWFkeSBzZWxlY3RlZCwgc28gdW5zZWxlY3QgYWxsIG9uIHRoaXMgcGFnZVxuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZXMuZm9yRWFjaChhQ2FzZSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKGFDYXNlKSAmJiB0aGlzLmNhbkJlU2hhcmVkKGFDYXNlKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcyA9IFsuLi4gdGhpcy5zZWxlY3RlZENhc2VzLCBhQ2FzZV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKGFDYXNlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGFDYXNlKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKGFTZWxlY3RlZENhc2UsIGkpID0+IHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VfaWQgPT09IGFTZWxlY3RlZENhc2UuY2FzZV9pZCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcyA9IHRoaXMuc2VsZWN0ZWRDYXNlcy5zbGljZSgwLCBpKS5jb25jYXQodGhpcy5zZWxlY3RlZENhc2VzLnNsaWNlKGkgKyAxKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jYW5CZVNoYXJlZChhQ2FzZSkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzID0gWy4uLnRoaXMuc2VsZWN0ZWRDYXNlcywgYUNhc2VdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChhQ2FzZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcykge1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwLCBsZW5ndGggPSB0aGlzLnNlbGVjdGVkQ2FzZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBpZiAoYUNhc2UuY2FzZV9pZCA9PT0gdGhpcy5zZWxlY3RlZENhc2VzW2luZGV4XS5jYXNlX2lkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFsbE9uUGFnZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5jYXNlcy5zb21lKGFDYXNlID0+ICF0aGlzLmlzU2VsZWN0ZWQoYUNhc2UpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgYUNhc2U6IGFueSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQua2V5ID09PSAnU3BhY2UnKSB7XG4gICAgICBpZiAodGhpcy5icm93c2VyU2VydmljZS5pc0ZpcmVmb3ggfHwgdGhpcy5icm93c2VyU2VydmljZS5pc1NhZmFyaSB8fCB0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzSUVPckVkZ2UpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VTZWxlY3Rpb24oYUNhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlTm8gPSBwYWdlTnVtYmVyO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2VOdW1iZXIpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkNvbmZpZyB7XG4gIHB1YmxpYyBoZWFkZXI6IHN0cmluZztcbiAgcHVibGljIGtleTogc3RyaW5nO1xuICBwdWJsaWMgdHlwZT86IHN0cmluZztcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5oZWFkZXIgPSAnJztcbiAgICB0aGlzLmtleSA9ICcnO1xuICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWcge1xuICAvLyBTcGVjaWZpZXMgd2hpY2ggZmllbGQgb2YgYW4gaXRlbSB1bmlxdWVseSBpZGVudGlmaWVzIGl0IGFtb25nIG90aGVycyBvZiB0aGUgc2FtZSB0eXBlXG4gIHB1YmxpYyBpZEZpZWxkOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbHVtbkNvbmZpZ3M6IFRhYmxlQ29sdW1uQ29uZmlnW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZEZpZWxkID0gJyc7XG4gICAgdGhpcy5jb2x1bW5Db25maWdzID0gW107XG4gIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cInt7J2dvdnVrLXRhYmxlICcgKyBjbGFzc2VzfX1cIj5cbiAgPGNhcHRpb24gY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2FwdGlvblwiPnt7Y2FwdGlvbiB8IHJweFRyYW5zbGF0ZX19PC9jYXB0aW9uPlxuICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgIDx0aCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3QtYWxsXCIgbmFtZT1cInNlbGVjdC1hbGxcIiB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgpXCJcbiAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiYWxsT25QYWdlU2VsZWN0ZWQoKVwiIFtkaXNhYmxlZF09XCIhY2FuQW55QmVTaGFyZWQoKVwiIC8+XG4gICAgICAgICAgPCEtLSBUaGlzIGxhYmVsIGVsZW1lbnQgaXMgdXNlZCB0byBoaWRlIHRoZSBzdGFuZGFyZCBjaGVja2JveCB3aXRoIGEgZ292dWstc3R5bGVkIG9uZSAtLT5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC1hbGxcIj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGggY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIiAqbmdGb3I9XCJsZXQgaCBvZiB0YWJsZUNvbmZpZy5jb2x1bW5Db25maWdzXCI+e3toLmhlYWRlciB8IHJweFRyYW5zbGF0ZX19PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgY2FzZXMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2VTaXplLCBjdXJyZW50UGFnZTogY3VycmVudFBhZ2VObywgdG90YWxJdGVtczogdG90YWxSZXN1bHRzQ291bnQgfVwiPlxuICAgICAgPHRyIGRhdGEtc2VsZWN0b3I9XCJ0YWJsZS1yb3dcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgPHRoIGRhdGEtc2VsZWN0b3I9XCJ0YWJsZS1oZWFkZXJcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cInJvd1wiICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LXt7IGNbdGFibGVDb25maWcuaWRGaWVsZF0gfX1cIiBuYW1lPVwic2VsZWN0LXt7IGNbdGFibGVDb25maWcuaWRGaWVsZF0gfX1cIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24oYylcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKGMpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChjKVwiIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgYylcIiAvPlxuICAgICAgICAgICAgPCEtLSBUaGlzIGxhYmVsIGVsZW1lbnQgaXMgdXNlZCB0byBoaWRlIHRoZSBzdGFuZGFyZCBjaGVja2JveCB3aXRoIGEgZ292dWstc3R5bGVkIG9uZSAtLT5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IGNbdGFibGVDb25maWcuaWRGaWVsZF0gfX1cIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiB0YWJsZUNvbmZpZy5jb2x1bW5Db25maWdzOyBmaXJzdCBhcyBpc0ZpcnN0XCI+XG4gICAgICAgICAgPHRoIGRhdGEtc2VsZWN0b3I9XCJ0YWJsZS1oZWFkZXJcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cInJvd1wiICpuZ0lmPVwiaXNGaXJzdCAmJiBmaXJzdENlbGxJc0hlYWRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wudHlwZSB8fCBjb2wudHlwZSA9PT0gJ3RleHQnXCI+e3tjW2NvbC5rZXldIHwgcnB4VHJhbnNsYXRlfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wudHlwZSA9PT0gJ2xpbmsnICYmIGMucm91dGVyTGlua1wiPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBbcm91dGVyTGlua109XCJjLnJvdXRlckxpbmtcIj57e2NbY29sLmtleV0gfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRkIGRhdGEtc2VsZWN0b3I9XCJ0YWJsZS1jZWxsXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiICpuZ0lmPVwiIShpc0ZpcnN0ICYmIGZpcnN0Q2VsbElzSGVhZGVyKVwiIFtuZ1N3aXRjaF09XCJjb2w/LnR5cGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wudHlwZSA9PT0gJ2xpbmsnICYmIGMucm91dGVyTGlua1wiPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBbcm91dGVyTGlua109XCJjLnJvdXRlckxpbmtcIj57e2NbY29sLmtleV0gfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbmV5J1wiPi17eyBjW2NvbC5rZXldIHwgY3VycmVuY3k6J0dCUCcgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPnt7Zm9ybWF0RGF0ZShjW2NvbC5rZXldKX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZUF0VGltZSdcIj57e2Zvcm1hdERhdGVBdFRpbWUoY1tjb2wua2V5XSl9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0Pnt7Y1tjb2wua2V5XSB8IHJweFRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbjxjY2QtcGFnaW5hdGlvbiAqbmdJZj1cInRvdGFsUmVzdWx0c0NvdW50ID4gcGFnZVNpemVcIlxuICAocGFnZUNoYW5nZSk9XCJnb1RvUGFnZSgkZXZlbnQpXCJcbj48L2NjZC1wYWdpbmF0aW9uPlxuIl19
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWxpc3QvY2FzZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWxpc3QvY2FzZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7Ozs7SUNJOUQsQUFERixBQURGLDZCQUF5RCxhQUNuQixnQkFFc0M7SUFEaUIsNktBQVUsa0JBQVcsS0FBQztJQUEvRyxpQkFDd0U7SUFFeEUsNEJBQ1E7SUFFWixBQURFLGlCQUFNLEVBQ0g7OztJQUxNLGVBQStCO0lBQUMsQUFBaEMsb0RBQStCLHNDQUErQjtJQUVELGNBQXFDOzs7O0lBSTdHLDhCQUF3RjtJQUFBLFlBQTJCOztJQUFBLGlCQUFLOzs7SUFBaEMsY0FBMkI7SUFBM0IsdURBQTJCOzs7O0lBUTdHLEFBREYsQUFERiw4QkFBa0csYUFDNUQsZ0JBRXdHO0lBQS9CLEFBQXJGLHVPQUFVLDRCQUFrQixLQUFDLDhOQUFpRSw0QkFBa0IsS0FBQztJQUR2SSxpQkFDMEk7SUFFMUksNEJBQ1E7SUFFWixBQURFLGlCQUFNLEVBQ0g7Ozs7OztJQU5zQyxlQUE2QztJQUE3Qyx3RkFBNkM7SUFBQywwRkFBK0M7SUFDdEQsQUFBMUIsaURBQXlC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bnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9icm93c2VyL2Jyb3dzZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZvcm1hdFV0aWxzIHtcbiAgcHVibGljIHN0YXRpYyBmb3JtYXREYXRlQXRUaW1lKGRhdGU6IERhdGUsIGlzMjRIb3VyOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7Zm9ybWF0RGF0ZShkYXRlLCAnZGQgTU1NIHl5eXknLCAnZW4tR0InKX0gYXQgJHtEYXRlVGltZUZvcm1hdFV0aWxzLmZvcm1hdFRpbWUoZGF0ZSwgaXMyNEhvdXIpfWA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZvcm1hdFRpbWUoZGF0ZTogRGF0ZSwgaXMyNEhvdXI6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBpczI0SG91ciA/IGZvcm1hdERhdGUoZGF0ZSwgJ0hIOm1tJywgJ2VuLUdCJykgOiBmb3JtYXREYXRlKGRhdGUsICdoOm1tIGEnLCAnZW4tR0InKS50b0xvd2VyQ2FzZSgpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUxpc3RDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGFzc2VzID0gJyc7XG5cbiAgQElucHV0KCkgcHVibGljIGNhcHRpb246IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGZpcnN0Q2VsbElzSGVhZGVyID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIGNhc2VzOiBvYmplY3RbXTtcblxuICBASW5wdXQoKSBwdWJsaWMgdGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xuICAgIGlkRmllbGQ6ICdpZCcsXG4gICAgY29sdW1uQ29uZmlnczogW1xuICAgICAgeyBoZWFkZXI6ICdEYXRlJywga2V5OiAnZGF0ZScsIHR5cGU6ICd0ZXh0JyB9LFxuICAgICAgeyBoZWFkZXI6ICdBbW91bnQnLCBrZXk6ICdhbW91bnQnIH1cbiAgICBdXG4gIH07XG5cbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkQ2FzZXM6IGFueVtdID0gW107XG5cbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRQYWdlTm86IG51bWJlcjtcblxuICBASW5wdXQoKSBwdWJsaWMgdG90YWxSZXN1bHRzQ291bnQ/OiBudW1iZXI7XG5cbiAgQElucHV0KCkgcHVibGljIHBhZ2VTaXplPzogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGJyb3dzZXJTZXJ2aWNlOiBCcm93c2VyU2VydmljZSkgeyB9XG5cbiAgcHVibGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUgPyBmb3JtYXREYXRlKGRhdGUsICdkZCBNTU0geXl5eScsICdlbi1HQicpIDogJy0nO1xuICB9XG5cbiAgcHVibGljIGZvcm1hdERhdGVBdFRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUgPyBEYXRlVGltZUZvcm1hdFV0aWxzLmZvcm1hdERhdGVBdFRpbWUoZGF0ZSwgZmFsc2UpIDogJy0nO1xuICB9XG5cbiAgcHVibGljIGNhbkJlU2hhcmVkKGM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGNhbkFueUJlU2hhcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VzLnNvbWUoYyA9PiB0aGlzLmNhbkJlU2hhcmVkKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWxsT25QYWdlU2VsZWN0ZWQoKSkge1xuICAgICAgLy8gQWxsIGNhc2VzIGFscmVhZHkgc2VsZWN0ZWQsIHNvIHVuc2VsZWN0IGFsbCBvbiB0aGlzIHBhZ2VcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhc2VzLmZvckVhY2goYUNhc2UgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChhQ2FzZSkgJiYgdGhpcy5jYW5CZVNoYXJlZChhQ2FzZSkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSBbLi4uIHRoaXMuc2VsZWN0ZWRDYXNlcywgYUNhc2VdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZVNlbGVjdGlvbihhQ2FzZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChhQ2FzZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5mb3JFYWNoKChhU2VsZWN0ZWRDYXNlLCBpKSA9PiB7XG4gICAgICAgIGlmIChhQ2FzZS5jYXNlX2lkID09PSBhU2VsZWN0ZWRDYXNlLmNhc2VfaWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSB0aGlzLnNlbGVjdGVkQ2FzZXMuc2xpY2UoMCwgaSkuY29uY2F0KHRoaXMuc2VsZWN0ZWRDYXNlcy5zbGljZShpICsgMSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQoYUNhc2UpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcyA9IFsuLi50aGlzLnNlbGVjdGVkQ2FzZXMsIGFDYXNlXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoYUNhc2U6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gdGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VfaWQgPT09IHRoaXMuc2VsZWN0ZWRDYXNlc1tpbmRleF0uY2FzZV9pZCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxPblBhZ2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2FzZXMuc29tZShhQ2FzZSA9PiAhdGhpcy5pc1NlbGVjdGVkKGFDYXNlKSk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGFDYXNlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuYnJvd3NlclNlcnZpY2UuaXNGaXJlZm94IHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNTYWZhcmkgfHwgdGhpcy5icm93c2VyU2VydmljZS5pc0lFT3JFZGdlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0aW9uKGFDYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZU5vID0gcGFnZU51bWJlcjtcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChwYWdlTnVtYmVyKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5Db25maWcge1xuICBwdWJsaWMgaGVhZGVyOiBzdHJpbmc7XG4gIHB1YmxpYyBrZXk6IHN0cmluZztcbiAgcHVibGljIHR5cGU/OiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaGVhZGVyID0gJyc7XG4gICAgdGhpcy5rZXkgPSAnJztcbiAgICB0aGlzLnR5cGUgPSAndGV4dCc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlnIHtcbiAgLy8gU3BlY2lmaWVzIHdoaWNoIGZpZWxkIG9mIGFuIGl0ZW0gdW5pcXVlbHkgaWRlbnRpZmllcyBpdCBhbW9uZyBvdGhlcnMgb2YgdGhlIHNhbWUgdHlwZVxuICBwdWJsaWMgaWRGaWVsZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb2x1bW5Db25maWdzOiBUYWJsZUNvbHVtbkNvbmZpZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWRGaWVsZCA9ICcnO1xuICAgIHRoaXMuY29sdW1uQ29uZmlncyA9IFtdO1xuICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJ7eydnb3Z1ay10YWJsZSAnICsgY2xhc3Nlc319XCI+XG4gIDxjYXB0aW9uIGNsYXNzPVwiZ292dWstdGFibGVfX2NhcHRpb25cIj57e2NhcHRpb24gfCBycHhUcmFuc2xhdGV9fTwvY2FwdGlvbj5cbiAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC1hbGxcIiBuYW1lPVwic2VsZWN0LWFsbFwiIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhbGxPblBhZ2VTZWxlY3RlZCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5BbnlCZVNoYXJlZCgpXCIgLz5cbiAgICAgICAgICA8IS0tIFRoaXMgbGFiZWwgZWxlbWVudCBpcyB1c2VkIHRvIGhpZGUgdGhlIHN0YW5kYXJkIGNoZWNrYm94IHdpdGggYSBnb3Z1ay1zdHlsZWQgb25lIC0tPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LWFsbFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc2VsZWN0LWFsbCdcIj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGggY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIiAqbmdGb3I9XCJsZXQgaCBvZiB0YWJsZUNvbmZpZy5jb2x1bW5Db25maWdzXCI+e3toLmhlYWRlciB8IHJweFRyYW5zbGF0ZX19PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgY2FzZXMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2VTaXplLCBjdXJyZW50UGFnZTogY3VycmVudFBhZ2VObywgdG90YWxJdGVtczogdG90YWxSZXN1bHRzQ291bnQgfTsgIGluZGV4IGFzIGlcIj5cbiAgICAgIDx0ciBkYXRhLXNlbGVjdG9yPVwidGFibGUtcm93XCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgIDx0ZCBkYXRhLXNlbGVjdG9yPVwidGFibGUtaGVhZGVyXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJyb3dcIiAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyBjW3RhYmxlQ29uZmlnLmlkRmllbGRdIHx8IGkgfX1cIiBuYW1lPVwic2VsZWN0LXt7IGNbdGFibGVDb25maWcuaWRGaWVsZF0gfHwgaSB9fVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihjKVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQoYylcIiBbZGlzYWJsZWRdPVwiIWNhbkJlU2hhcmVkKGMpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCBjKVwiIC8+XG4gICAgICAgICAgICA8IS0tIFRoaXMgbGFiZWwgZWxlbWVudCBpcyB1c2VkIHRvIGhpZGUgdGhlIHN0YW5kYXJkIGNoZWNrYm94IHdpdGggYSBnb3Z1ay1zdHlsZWQgb25lIC0tPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3Qte3sgY1t0YWJsZUNvbmZpZy5pZEZpZWxkXSB8fCBpIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWxlY3QtJyArIChjW3RhYmxlQ29uZmlnLmlkRmllbGRdIHx8IGkpXCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgdGFibGVDb25maWcuY29sdW1uQ29uZmlnczsgZmlyc3QgYXMgaXNGaXJzdFwiPlxuICAgICAgICAgIDx0aCBkYXRhLXNlbGVjdG9yPVwidGFibGUtaGVhZGVyXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJyb3dcIiAqbmdJZj1cImlzRmlyc3QgJiYgZmlyc3RDZWxsSXNIZWFkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sLnR5cGUgfHwgY29sLnR5cGUgPT09ICd0ZXh0J1wiPnt7Y1tjb2wua2V5XSB8IHJweFRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnR5cGUgPT09ICdsaW5rJyAmJiBjLnJvdXRlckxpbmtcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgW3JvdXRlckxpbmtdPVwiYy5yb3V0ZXJMaW5rXCI+e3tjW2NvbC5rZXldIHwgcnB4VHJhbnNsYXRlfX08L2E+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0ZCBkYXRhLXNlbGVjdG9yPVwidGFibGUtY2VsbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiAqbmdJZj1cIiEoaXNGaXJzdCAmJiBmaXJzdENlbGxJc0hlYWRlcilcIiBbbmdTd2l0Y2hdPVwiY29sPy50eXBlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnR5cGUgPT09ICdsaW5rJyAmJiBjLnJvdXRlckxpbmtcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgW3JvdXRlckxpbmtdPVwiYy5yb3V0ZXJMaW5rXCI+e3tjW2NvbC5rZXldIHwgcnB4VHJhbnNsYXRlfX08L2E+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb25leSdcIj4te3sgY1tjb2wua2V5XSB8IGN1cnJlbmN5OidHQlAnIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj57e2Zvcm1hdERhdGUoY1tjb2wua2V5XSl9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVBdFRpbWUnXCI+e3tmb3JtYXREYXRlQXRUaW1lKGNbY29sLmtleV0pfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD57e2NbY29sLmtleV0gfCBycHhUcmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG48Y2NkLXBhZ2luYXRpb24gKm5nSWY9XCJ0b3RhbFJlc3VsdHNDb3VudCA+IHBhZ2VTaXplXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4+PC9jY2QtcGFnaW5hdGlvbj5cbiJdfQ==
@@ -24,6 +24,7 @@ export class CaseResolver {
24
24
  static EVENT_REGEX = new RegExp('\/trigger\/.*?\/submit$');
25
25
  static PARAM_CASE_ID = 'cid';
26
26
  static CASE_CREATED_MSG = 'The case has been created successfully';
27
+ static EVENT_ID_QM_RESPOND_TO_QUERY = 'eventId=queryManagementRespondQuery';
27
28
  static defaultWAPage = '/work/my-work/list';
28
29
  static defaultPage = '/cases';
29
30
  // we need to run the CaseResolver on every child route of 'case/:jid/:ctid/:cid'
@@ -44,6 +45,12 @@ export class CaseResolver {
44
45
  }
45
46
  resolve(route) {
46
47
  const cid = route.paramMap.get(CaseResolver.PARAM_CASE_ID);
48
+ const currentUrl = this.router.url ?? '';
49
+ // Prevent resolving if eventId=queryManagementRespondQuery is in the URL
50
+ if (currentUrl.includes(CaseResolver.EVENT_ID_QM_RESPOND_TO_QUERY)) {
51
+ console.info('Skipping resolve for event queryManagementRespondQuery.');
52
+ this.goToDefaultPage();
53
+ }
47
54
  if (!cid) {
48
55
  console.info('No case ID available in the route. Will navigate to case list.');
49
56
  // when redirected to case view after a case created, and the user has no READ access,
@@ -135,4 +142,4 @@ export class CaseResolver {
135
142
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseResolver, [{
136
143
  type: Injectable
137
144
  }], () => [{ type: i1.CaseNotifier }, { type: i2.DraftService }, { type: i3.NavigationNotifierService }, { type: i4.Router }, { type: i2.SessionStorageService }, { type: i5.AbstractAppConfig }], null); })();
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9zZXJ2aWNlcy9jYXNlLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEwQixhQUFhLEVBQVcsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBR2pELE1BQU0sT0FBTyxZQUFZO0lBV0g7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNTO0lBZnRCLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNwRSxNQUFNLENBQVUsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QyxNQUFNLENBQVUsZ0JBQWdCLEdBQUcsd0NBQXdD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QUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzNFLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSztlQUN6QixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDOztnQkFFbEQsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQzt1QkFDaEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUM7dUJBQ3ZELFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDO3VCQUN0RCxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQzt1QkFDOUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO3NFQXJIVSxZQUFZO2dFQUFaLFlBQVksV0FBWixZQUFZOztpRkFBWixZQUFZO2NBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBOYXZpZ2F0aW9uRW5kLCBSZXNvbHZlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzRnJvbUV4aXN0IH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IENhc2VWaWV3LCBEcmFmdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBEcmFmdFNlcnZpY2UsIE5hdmlnYXRpb25PcmlnaW4sIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE5hdmlnYXRpb25Ob3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24tbm90aWZpZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPENhc2VWaWV3PiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRVZFTlRfUkVHRVggPSBuZXcgUmVnRXhwKCdcXC90cmlnZ2VyXFwvLio/XFwvc3VibWl0JCcpO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfSUQgPSAnY2lkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQVNFX0NSRUFURURfTVNHID0gJ1RoZSBjYXNlIGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5JztcblxuICBwdWJsaWMgc3RhdGljIGRlZmF1bHRXQVBhZ2UgPSAnL3dvcmsvbXktd29yay9saXN0JztcbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UGFnZSA9ICcvY2FzZXMnO1xuICAvLyB3ZSBuZWVkIHRvIHJ1biB0aGUgQ2FzZVJlc29sdmVyIG9uIGV2ZXJ5IGNoaWxkIHJvdXRlIG9mICdjYXNlLzpqaWQvOmN0aWQvOmNpZCdcbiAgLy8gdGhpcyBpcyBhY2hpZXZlZCB3aXRoIHJ1bkd1YXJkc0FuZFJlc29sdmVyczogJ2Fsd2F5cycgY29uZmlndXJhdGlvblxuICAvLyB3ZSBjYWNoZSB0aGUgY2FzZSB2aWV3IHRvIGF2b2lkIHJldHJpZXZpbmcgaXQgZm9yIGVhY2ggY2hpbGQgcm91dGVcbiAgcHVibGljIHByZXZpb3VzVXJsOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZHJhZnRTZXJ2aWNlOiBEcmFmdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbmF2aWdhdGlvbk5vdGlmaWVyU2VydmljZTogTmF2aWdhdGlvbk5vdGlmaWVyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcpIHtcbiAgICByb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICB0aGlzLnByZXZpb3VzVXJsID0gZXZlbnQudXJsO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Q2FzZVZpZXc+IHtcbiAgICBjb25zdCBjaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoQ2FzZVJlc29sdmVyLlBBUkFNX0NBU0VfSUQpO1xuXG4gICAgaWYgKCFjaWQpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnTm8gY2FzZSBJRCBhdmFpbGFibGUgaW4gdGhlIHJvdXRlLiBXaWxsIG5hdmlnYXRlIHRvIGNhc2UgbGlzdC4nKTtcbiAgICAgIC8vIHdoZW4gcmVkaXJlY3RlZCB0byBjYXNlIHZpZXcgYWZ0ZXIgYSBjYXNlIGNyZWF0ZWQsIGFuZCB0aGUgdXNlciBoYXMgbm8gUkVBRCBhY2Nlc3MsXG4gICAgICAvLyB0aGUgcG9zdCByZXR1cm5zIG5vIGlkXG4gICAgICB0aGlzLm5hdmlnYXRlVG9DYXNlTGlzdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pc1Jvb3RDYXNlVmlld1JvdXRlKHJvdXRlKSA/IHRoaXMuZ2V0QW5kQ2FjaGVDYXNlVmlldyhjaWQpXG4gICAgICAgIDogdGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcgPyBQcm9taXNlLnJlc29sdmUodGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcpXG4gICAgICAgIDogdGhpcy5nZXRBbmRDYWNoZUNhc2VWaWV3KGNpZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvQ2FzZUxpc3QoKSB7XG4gICAgdGhpcy5uYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlTmF2aWdhdGlvbih7YWN0aW9uOiBOYXZpZ2F0aW9uT3JpZ2luLk5PX1JFQURfQUNDRVNTX1JFRElSRUNUSU9OfSk7XG4gIH1cblxuICBwcml2YXRlIGlzUm9vdENhc2VWaWV3Um91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICAvLyBpcyByb3V0ZSBjYXNlLzpqaWQvOmN0aWQvOmNpZFxuICAgIHJldHVybiAoKCFyb3V0ZS5maXJzdENoaWxkIHx8ICFyb3V0ZS5maXJzdENoaWxkLnVybC5sZW5ndGgpICYmICF0aGlzLmlzVGFiVmlld1JvdXRlKHJvdXRlKSk7XG4gIH1cblxuICBwcml2YXRlIGlzVGFiVmlld1JvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgLy8gaXMgcm91dGUgY2FzZS86amlkLzpjdGlkLzpjaWQjZnJhZ21lbnRcbiAgICByZXR1cm4gcm91dGUuZmlyc3RDaGlsZCAmJiByb3V0ZS5maXJzdENoaWxkLmZyYWdtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbmRDYWNoZUNhc2VWaWV3KGNpZCk6IFByb21pc2U8Q2FzZVZpZXc+IHtcbiAgICBpZiAodGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcgJiYgdGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcuY2FzZV9pZCAmJiB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldy5jYXNlX2lkID09PSBjaWQpIHtcbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmFubm91bmNlQ2FzZSh0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyk7XG4gICAgICByZXR1cm4gb2YodGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcpLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoRHJhZnQuaXNEcmFmdChjaWQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFuZENhY2hlRHJhZnQoY2lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhc2VOb3RpZmllci5mZXRjaEFuZFJlZnJlc2goY2lkKVxuICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5wcm9jZXNzRXJyb3JJbkNhc2VGZXRjaChlcnJvciwgY2lkKSkpXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QW5kQ2FjaGVEcmFmdChjaWQpOiBQcm9taXNlPENhc2VWaWV3PiB7XG4gICAgICByZXR1cm4gdGhpcy5kcmFmdFNlcnZpY2VcbiAgICAgIC5nZXREcmFmdChjaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGNhc2VWaWV3ID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZVZpZXcoKSwgY2FzZVZpZXcpO1xuICAgICAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmFubm91bmNlQ2FzZSh0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZU5vdGlmaWVyLmNhY2hlZENhc2VWaWV3O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLnByb2Nlc3NFcnJvckluQ2FzZUZldGNoKGVycm9yLCBjaWQpKVxuICAgICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0Vycm9ySW5DYXNlRmV0Y2goZXJyb3I6IGFueSwgY2FzZVJlZmVyZW5jZTogc3RyaW5nKSB7XG4gICAgY29uc29sZS5lcnJvcignISEhIHByb2Nlc3NFcnJvckluQ2FzZUZldGNoICEhIScpO1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIC8vIFRPRE8gU2hvdWxkIGJlIGxvZ2dlZCB0byByZW1vdGUgbG9nZ2luZyBpbmZyYXN0cnVjdHVyZVxuICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc2VhcmNoL25vcmVzdWx0cyddKTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgaWYgKENhc2VSZXNvbHZlci5FVkVOVF9SRUdFWC50ZXN0KHRoaXMucHJldmlvdXNVcmwpICYmIGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0L2Nhc2UnXSk7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIC8vIEVycm9yIDQwMyBhbmQgZW5hYmxlLXJlc3RyaWN0ZWQtY2FzZS1hY2Nlc3MgTGF1bmNoIERhcmtseSBmbGFnIGlzIGVuYWJsZWQsIG5hdmlnYXRlIHRvIHJlc3RyaWN0ZWQgY2FzZSBhY2Nlc3MgcGFnZVxuICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMyAmJiB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVSZXN0cmljdGVkQ2FzZUFjY2Vzc0NvbmZpZygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9yZXN0cmljdGVkLWNhc2UtYWNjZXNzLyR7Y2FzZVJlZmVyZW5jZX1gXSk7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIGlmIChlcnJvci5zdGF0dXMgIT09IDQwMSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZXJyb3InXSk7XG4gICAgfVxuICAgIHRoaXMuZ29Ub0RlZmF1bHRQYWdlKCk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9XG5cbiAgLy8gYXMgZGlzY3Vzc2VkIGZvciBFVUktNTQ1NiwgbmVlZCBmdW5jdGlvbmFsaXR5IHRvIGdvIHRvIGRlZmF1bHQgcGFnZVxuICBwcml2YXRlIGdvVG9EZWZhdWx0UGFnZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmluZm8oJ0dvaW5nIHRvIGRlZmF1bHQgcGFnZSEnKTtcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpKTtcbiAgICB1c2VyRGV0YWlscyAmJiB1c2VyRGV0YWlscy5yb2xlc1xuICAgICAgICAmJiAhdXNlckRldGFpbHMucm9sZXMuaW5jbHVkZXMoJ3B1aS1jYXNlLW1hbmFnZXInKVxuICAgICAgICAmJlxuICAgICAgICAodXNlckRldGFpbHMucm9sZXMuaW5jbHVkZXMoJ2Nhc2V3b3JrZXItaWEtaWFjanVkZ2UnKVxuICAgICAgICAgIHx8IHVzZXJEZXRhaWxzLnJvbGVzLmluY2x1ZGVzKCdjYXNld29ya2VyLWlhLWNhc2VvZmZpY2VyJylcbiAgICAgICAgICB8fCB1c2VyRGV0YWlscy5yb2xlcy5pbmNsdWRlcygnY2FzZXdvcmtlci1pYS1hZG1vZmZpY2VyJylcbiAgICAgICAgICB8fCB1c2VyRGV0YWlscy5yb2xlcy5pbmNsdWRlcygnY2FzZXdvcmtlci1jaXZpbCcpXG4gICAgICAgICAgfHwgdXNlckRldGFpbHMucm9sZXMuaW5jbHVkZXMoJ2Nhc2V3b3JrZXItcHJpdmF0ZWxhdycpKVxuICAgICAgICA/IHRoaXMucm91dGVyLm5hdmlnYXRlKFtDYXNlUmVzb2x2ZXIuZGVmYXVsdFdBUGFnZV0pIDogdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0Nhc2VSZXNvbHZlci5kZWZhdWx0UGFnZV0pO1xuICB9XG59XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9zZXJ2aWNlcy9jYXNlLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEwQixhQUFhLEVBQVcsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBR2pELE1BQU0sT0FBTyxZQUFZO0lBYUg7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNTO0lBakJ0QixNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDcEUsTUFBTSxDQUFVLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEMsTUFBTSxDQUFVLGdCQUFnQixHQUFHLHdDQUF3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OlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUmVzb2x2ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDYXNlVmlldywgRHJhZnQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRHJhZnRTZXJ2aWNlLCBOYXZpZ2F0aW9uT3JpZ2luLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLW5vdGlmaWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FzZVJlc29sdmVyIGltcGxlbWVudHMgUmVzb2x2ZTxDYXNlVmlldz4ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVWRU5UX1JFR0VYID0gbmV3IFJlZ0V4cCgnXFwvdHJpZ2dlclxcLy4qP1xcL3N1Ym1pdCQnKTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX0lEID0gJ2NpZCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9DUkVBVEVEX01TRyA9ICdUaGUgY2FzZSBoYXMgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseSc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFVkVOVF9JRF9RTV9SRVNQT05EX1RPX1FVRVJZID0gJ2V2ZW50SWQ9cXVlcnlNYW5hZ2VtZW50UmVzcG9uZFF1ZXJ5JztcblxuICBwdWJsaWMgc3RhdGljIGRlZmF1bHRXQVBhZ2UgPSAnL3dvcmsvbXktd29yay9saXN0JztcbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UGFnZSA9ICcvY2FzZXMnO1xuICAvLyB3ZSBuZWVkIHRvIHJ1biB0aGUgQ2FzZVJlc29sdmVyIG9uIGV2ZXJ5IGNoaWxkIHJvdXRlIG9mICdjYXNlLzpqaWQvOmN0aWQvOmNpZCdcbiAgLy8gdGhpcyBpcyBhY2hpZXZlZCB3aXRoIHJ1bkd1YXJkc0FuZFJlc29sdmVyczogJ2Fsd2F5cycgY29uZmlndXJhdGlvblxuICAvLyB3ZSBjYWNoZSB0aGUgY2FzZSB2aWV3IHRvIGF2b2lkIHJldHJpZXZpbmcgaXQgZm9yIGVhY2ggY2hpbGQgcm91dGVcbiAgcHVibGljIHByZXZpb3VzVXJsOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZHJhZnRTZXJ2aWNlOiBEcmFmdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbmF2aWdhdGlvbk5vdGlmaWVyU2VydmljZTogTmF2aWdhdGlvbk5vdGlmaWVyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcpIHtcbiAgICByb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICB0aGlzLnByZXZpb3VzVXJsID0gZXZlbnQudXJsO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Q2FzZVZpZXc+IHtcbiAgICBjb25zdCBjaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoQ2FzZVJlc29sdmVyLlBBUkFNX0NBU0VfSUQpO1xuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmwgPz8gJyc7XG5cbiAgICAvLyBQcmV2ZW50IHJlc29sdmluZyBpZiBldmVudElkPXF1ZXJ5TWFuYWdlbWVudFJlc3BvbmRRdWVyeSBpcyBpbiB0aGUgVVJMXG4gICAgaWYgKGN1cnJlbnRVcmwuaW5jbHVkZXMoQ2FzZVJlc29sdmVyLkVWRU5UX0lEX1FNX1JFU1BPTkRfVE9fUVVFUlkpKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1NraXBwaW5nIHJlc29sdmUgZm9yIGV2ZW50IHF1ZXJ5TWFuYWdlbWVudFJlc3BvbmRRdWVyeS4nKTtcbiAgICAgIHRoaXMuZ29Ub0RlZmF1bHRQYWdlKCk7XG4gICAgfVxuXG4gICAgaWYgKCFjaWQpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnTm8gY2FzZSBJRCBhdmFpbGFibGUgaW4gdGhlIHJvdXRlLiBXaWxsIG5hdmlnYXRlIHRvIGNhc2UgbGlzdC4nKTtcbiAgICAgIC8vIHdoZW4gcmVkaXJlY3RlZCB0byBjYXNlIHZpZXcgYWZ0ZXIgYSBjYXNlIGNyZWF0ZWQsIGFuZCB0aGUgdXNlciBoYXMgbm8gUkVBRCBhY2Nlc3MsXG4gICAgICAvLyB0aGUgcG9zdCByZXR1cm5zIG5vIGlkXG4gICAgICB0aGlzLm5hdmlnYXRlVG9DYXNlTGlzdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pc1Jvb3RDYXNlVmlld1JvdXRlKHJvdXRlKSA/IHRoaXMuZ2V0QW5kQ2FjaGVDYXNlVmlldyhjaWQpXG4gICAgICAgIDogdGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcgPyBQcm9taXNlLnJlc29sdmUodGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcpXG4gICAgICAgIDogdGhpcy5nZXRBbmRDYWNoZUNhc2VWaWV3KGNpZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvQ2FzZUxpc3QoKSB7XG4gICAgdGhpcy5uYXZpZ2F0aW9uTm90aWZpZXJTZXJ2aWNlLmFubm91bmNlTmF2aWdhdGlvbih7YWN0aW9uOiBOYXZpZ2F0aW9uT3JpZ2luLk5PX1JFQURfQUNDRVNTX1JFRElSRUNUSU9OfSk7XG4gIH1cblxuICBwcml2YXRlIGlzUm9vdENhc2VWaWV3Um91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICAvLyBpcyByb3V0ZSBjYXNlLzpqaWQvOmN0aWQvOmNpZFxuICAgIHJldHVybiAoKCFyb3V0ZS5maXJzdENoaWxkIHx8ICFyb3V0ZS5maXJzdENoaWxkLnVybC5sZW5ndGgpICYmICF0aGlzLmlzVGFiVmlld1JvdXRlKHJvdXRlKSk7XG4gIH1cblxuICBwcml2YXRlIGlzVGFiVmlld1JvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgLy8gaXMgcm91dGUgY2FzZS86amlkLzpjdGlkLzpjaWQjZnJhZ21lbnRcbiAgICByZXR1cm4gcm91dGUuZmlyc3RDaGlsZCAmJiByb3V0ZS5maXJzdENoaWxkLmZyYWdtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbmRDYWNoZUNhc2VWaWV3KGNpZCk6IFByb21pc2U8Q2FzZVZpZXc+IHtcbiAgICBpZiAodGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcgJiYgdGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcuY2FzZV9pZCAmJiB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldy5jYXNlX2lkID09PSBjaWQpIHtcbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmFubm91bmNlQ2FzZSh0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyk7XG4gICAgICByZXR1cm4gb2YodGhpcy5jYXNlTm90aWZpZXIuY2FjaGVkQ2FzZVZpZXcpLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoRHJhZnQuaXNEcmFmdChjaWQpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFuZENhY2hlRHJhZnQoY2lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhc2VOb3RpZmllci5mZXRjaEFuZFJlZnJlc2goY2lkKVxuICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhpcy5wcm9jZXNzRXJyb3JJbkNhc2VGZXRjaChlcnJvciwgY2lkKSkpXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QW5kQ2FjaGVEcmFmdChjaWQpOiBQcm9taXNlPENhc2VWaWV3PiB7XG4gICAgICByZXR1cm4gdGhpcy5kcmFmdFNlcnZpY2VcbiAgICAgIC5nZXREcmFmdChjaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGNhc2VWaWV3ID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZVZpZXcoKSwgY2FzZVZpZXcpO1xuICAgICAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmFubm91bmNlQ2FzZSh0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZU5vdGlmaWVyLmNhY2hlZENhc2VWaWV3O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB0aGlzLnByb2Nlc3NFcnJvckluQ2FzZUZldGNoKGVycm9yLCBjaWQpKVxuICAgICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0Vycm9ySW5DYXNlRmV0Y2goZXJyb3I6IGFueSwgY2FzZVJlZmVyZW5jZTogc3RyaW5nKSB7XG4gICAgY29uc29sZS5lcnJvcignISEhIHByb2Nlc3NFcnJvckluQ2FzZUZldGNoICEhIScpO1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIC8vIFRPRE8gU2hvdWxkIGJlIGxvZ2dlZCB0byByZW1vdGUgbG9nZ2luZyBpbmZyYXN0cnVjdHVyZVxuICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc2VhcmNoL25vcmVzdWx0cyddKTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgaWYgKENhc2VSZXNvbHZlci5FVkVOVF9SRUdFWC50ZXN0KHRoaXMucHJldmlvdXNVcmwpICYmIGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0L2Nhc2UnXSk7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIC8vIEVycm9yIDQwMyBhbmQgZW5hYmxlLXJlc3RyaWN0ZWQtY2FzZS1hY2Nlc3MgTGF1bmNoIERhcmtseSBmbGFnIGlzIGVuYWJsZWQsIG5hdmlnYXRlIHRvIHJlc3RyaWN0ZWQgY2FzZSBhY2Nlc3MgcGFnZVxuICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMyAmJiB0aGlzLmFwcENvbmZpZy5nZXRFbmFibGVSZXN0cmljdGVkQ2FzZUFjY2Vzc0NvbmZpZygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9yZXN0cmljdGVkLWNhc2UtYWNjZXNzLyR7Y2FzZVJlZmVyZW5jZX1gXSk7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIGlmIChlcnJvci5zdGF0dXMgIT09IDQwMSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZXJyb3InXSk7XG4gICAgfVxuICAgIHRoaXMuZ29Ub0RlZmF1bHRQYWdlKCk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9XG5cbiAgLy8gYXMgZGlzY3Vzc2VkIGZvciBFVUktNTQ1NiwgbmVlZCBmdW5jdGlvbmFsaXR5IHRvIGdvIHRvIGRlZmF1bHQgcGFnZVxuICBwcml2YXRlIGdvVG9EZWZhdWx0UGFnZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmluZm8oJ0dvaW5nIHRvIGRlZmF1bHQgcGFnZSEnKTtcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpKTtcbiAgICB1c2VyRGV0YWlscyAmJiB1c2VyRGV0YWlscy5yb2xlc1xuICAgICAgICAmJiAhdXNlckRldGFpbHMucm9sZXMuaW5jbHVkZXMoJ3B1aS1jYXNlLW1hbmFnZXInKVxuICAgICAgICAmJlxuICAgICAgICAodXNlckRldGFpbHMucm9sZXMuaW5jbHVkZXMoJ2Nhc2V3b3JrZXItaWEtaWFjanVkZ2UnKVxuICAgICAgICAgIHx8IHVzZXJEZXRhaWxzLnJvbGVzLmluY2x1ZGVzKCdjYXNld29ya2VyLWlhLWNhc2VvZmZpY2VyJylcbiAgICAgICAgICB8fCB1c2VyRGV0YWlscy5yb2xlcy5pbmNsdWRlcygnY2FzZXdvcmtlci1pYS1hZG1vZmZpY2VyJylcbiAgICAgICAgICB8fCB1c2VyRGV0YWlscy5yb2xlcy5pbmNsdWRlcygnY2FzZXdvcmtlci1jaXZpbCcpXG4gICAgICAgICAgfHwgdXNlckRldGFpbHMucm9sZXMuaW5jbHVkZXMoJ2Nhc2V3b3JrZXItcHJpdmF0ZWxhdycpKVxuICAgICAgICA/IHRoaXMucm91dGVyLm5hdmlnYXRlKFtDYXNlUmVzb2x2ZXIuZGVmYXVsdFdBUGFnZV0pIDogdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0Nhc2VSZXNvbHZlci5kZWZhdWx0UGFnZV0pO1xuICB9XG59XG4iXX0=