@hmcts/ccd-case-ui-toolkit 5.0.25-case-file-view-all-document-count → 5.0.25-case-file-view-document-tree-functionalities-v3

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 (28) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +220 -383
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +15 -19
  6. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field.component.js +4 -4
  7. package/esm2015/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.js +117 -244
  8. package/esm2015/lib/shared/components/palette/utils/is-compound.pipe.js +2 -2
  9. package/esm2015/lib/shared/components/search-result/search-result.component.js +43 -43
  10. package/esm2015/lib/shared/domain/case-file-view/document-tree-node.model.js +6 -0
  11. package/esm2015/lib/shared/domain/case-file-view/index.js +2 -2
  12. package/esm2015/public-api.js +1 -3
  13. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +199 -354
  14. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  15. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +1 -1
  16. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  17. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +9 -2
  18. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts.map +1 -1
  19. package/lib/shared/domain/case-file-view/document-tree-node.model.d.ts +11 -0
  20. package/lib/shared/domain/case-file-view/document-tree-node.model.d.ts.map +1 -0
  21. package/lib/shared/domain/case-file-view/index.d.ts +1 -1
  22. package/lib/shared/domain/case-file-view/index.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/public-api.d.ts +0 -2
  25. package/public-api.d.ts.map +1 -1
  26. package/esm2015/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.js +0 -28
  27. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts +0 -7
  28. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts.map +0 -1
@@ -1,53 +1,76 @@
1
1
  import { NestedTreeControl } from '@angular/cdk/tree';
2
2
  import { Component, Input } from '@angular/core';
3
+ import { FormControl, FormGroup } from '@angular/forms';
3
4
  import { Observable, of } from 'rxjs';
4
- import { DocumentTreeNode } from '../../../../../domain/case-file-view';
5
+ import { switchMap, tap } from 'rxjs/operators';
6
+ import { DocumentTreeNodeType } from '../../../../../domain/case-file-view';
5
7
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/cdk/tree";
7
- function CaseFileViewFolderComponent_cdk_nested_tree_node_6_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "cdk-nested-tree-node", 7);
9
- i0.ɵɵelementStart(1, "div", 8);
10
- i0.ɵɵelementStart(2, "button", 9);
11
- i0.ɵɵelement(3, "img", 10);
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/cdk/tree";
11
+ function CaseFileViewFolderComponent_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "div");
13
+ i0.ɵɵtext(1, " No results found ");
12
14
  i0.ɵɵelementEnd();
13
- i0.ɵɵelementStart(4, "span", 11);
15
+ } }
16
+ function CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_3_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "cdk-nested-tree-node", 10);
18
+ i0.ɵɵelementStart(1, "div", 11);
19
+ i0.ɵɵelementStart(2, "button", 12);
20
+ i0.ɵɵelement(3, "img", 13);
21
+ i0.ɵɵelementStart(4, "div", 14);
14
22
  i0.ɵɵtext(5);
15
23
  i0.ɵɵelementEnd();
16
24
  i0.ɵɵelementEnd();
17
25
  i0.ɵɵelementEnd();
26
+ i0.ɵɵelementEnd();
18
27
  } if (rf & 2) {
19
- const node_r2 = ctx.$implicit;
28
+ const node_r4 = ctx.$implicit;
20
29
  i0.ɵɵadvance(5);
21
- i0.ɵɵtextInterpolate(node_r2.name);
30
+ i0.ɵɵtextInterpolate(node_r4.name);
22
31
  } }
23
- function CaseFileViewFolderComponent_cdk_nested_tree_node_7_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "cdk-nested-tree-node", 7);
25
- i0.ɵɵelementStart(1, "div", 12);
26
- i0.ɵɵelementStart(2, "button", 13);
27
- i0.ɵɵelement(3, "img", 14);
28
- i0.ɵɵelementStart(4, "span", 15);
32
+ function CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_4_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelementStart(0, "cdk-nested-tree-node", 10);
34
+ i0.ɵɵelementStart(1, "div", 11);
35
+ i0.ɵɵelementStart(2, "button", 15);
36
+ i0.ɵɵelement(3, "img", 16);
37
+ i0.ɵɵelementStart(4, "div", 17);
29
38
  i0.ɵɵtext(5);
30
39
  i0.ɵɵelementEnd();
31
40
  i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(6, "span", 16);
33
- i0.ɵɵtext(7);
34
- i0.ɵɵelementEnd();
35
41
  i0.ɵɵelementEnd();
36
- i0.ɵɵelementStart(8, "div");
37
- i0.ɵɵelementContainer(9, 17);
42
+ i0.ɵɵelementStart(6, "div");
43
+ i0.ɵɵelementContainer(7, 18);
38
44
  i0.ɵɵelementEnd();
39
45
  i0.ɵɵelementEnd();
40
46
  } if (rf & 2) {
41
- const node_r3 = ctx.$implicit;
42
- const ctx_r1 = i0.ɵɵnextContext();
47
+ const node_r5 = ctx.$implicit;
48
+ const ctx_r3 = i0.ɵɵnextContext(2);
43
49
  i0.ɵɵadvance(2);
44
- i0.ɵɵattribute("aria-label", "toggle " + node_r3.name);
45
- i0.ɵɵadvance(3);
46
- i0.ɵɵtextInterpolate(node_r3.childDocumentCount);
50
+ i0.ɵɵattribute("aria-label", "toggle " + node_r5.name);
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("src", ctx_r3.nestedTreeControl.isExpanded(node_r5) ? "/assets/images/folder-open.png" : "/assets/images/folder.png", i0.ɵɵsanitizeUrl);
47
53
  i0.ɵɵadvance(2);
48
- i0.ɵɵtextInterpolate(node_r3.name);
54
+ i0.ɵɵtextInterpolate(node_r5.name);
49
55
  i0.ɵɵadvance(1);
50
- i0.ɵɵclassProp("document-tree-invisible", !ctx_r1.nestedTreeControl.isExpanded(node_r3));
56
+ i0.ɵɵclassProp("document-tree-invisible", !ctx_r3.nestedTreeControl.isExpanded(node_r5));
57
+ } }
58
+ function CaseFileViewFolderComponent_div_5_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "div", 5);
60
+ i0.ɵɵtemplate(1, CaseFileViewFolderComponent_div_5_div_1_Template, 2, 0, "div", 6);
61
+ i0.ɵɵelementStart(2, "cdk-tree", 7);
62
+ i0.ɵɵtemplate(3, CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_3_Template, 6, 1, "cdk-nested-tree-node", 8);
63
+ i0.ɵɵtemplate(4, CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_4_Template, 8, 5, "cdk-nested-tree-node", 9);
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelementEnd();
66
+ } if (rf & 2) {
67
+ const ctx_r0 = i0.ɵɵnextContext();
68
+ i0.ɵɵadvance(1);
69
+ i0.ɵɵproperty("ngIf", !ctx_r0.nestedDataSource || ctx_r0.nestedDataSource.length === 0);
70
+ i0.ɵɵadvance(1);
71
+ i0.ɵɵproperty("dataSource", ctx_r0.nestedDataSource)("treeControl", ctx_r0.nestedTreeControl);
72
+ i0.ɵɵadvance(2);
73
+ i0.ɵɵproperty("cdkTreeNodeDefWhen", ctx_r0.nestedChildren);
51
74
  } }
52
75
  export class CaseFileViewFolderComponent {
53
76
  constructor() {
@@ -56,257 +79,107 @@ export class CaseFileViewFolderComponent {
56
79
  this.nestedChildren = (_, nodeData) => nodeData.children;
57
80
  this.nestedTreeControl = new NestedTreeControl(this.getChildren);
58
81
  }
59
- get documentCount() {
60
- var _a;
61
- if ((_a = this.nestedDataSource) === null || _a === void 0 ? void 0 : _a.length) {
62
- return this.nestedDataSource.reduce((acc, item) => {
63
- return acc + item.childDocumentCount;
64
- }, 0);
65
- }
66
- else {
67
- return 0;
68
- }
69
- }
70
82
  ngOnInit() {
83
+ this.documentFilterFormGroup = new FormGroup({});
84
+ this.documentSearchFormControl = new FormControl('');
85
+ this.documentFilterFormGroup.addControl(CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME, this.documentSearchFormControl);
86
+ // Listen to search input and initiate filter documents if at least three characters entered
87
+ this.documentFilterSubscription = this.documentSearchFormControl.valueChanges.pipe(tap((searchTerm) => this.searchTermLength = searchTerm.length), switchMap((searchTerm) => this.filter(searchTerm.toLowerCase()).pipe())).subscribe(documentTreeData => {
88
+ this.nestedDataSource = documentTreeData;
89
+ this.nestedTreeControl.dataNodes = documentTreeData;
90
+ this.searchTermLength >= CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS
91
+ ? this.nestedTreeControl.expandAll()
92
+ : this.nestedTreeControl.collapseAll();
93
+ });
94
+ // Subscribe to the input categories and documents, and generate tree data and initialise cdk tree
71
95
  this.categoriesAndDocumentsSubscription = this.categoriesAndDocuments.subscribe(categoriesAndDocuments => {
72
- // Using the mock data for now as we have to display the documents as well for demo purpose
73
- const categories = this.loadCategories(); // categoriesAndDocuments.categories;
96
+ const categories = categoriesAndDocuments.categories;
74
97
  // Generate document tree data from categories
75
- const treeData = this.generateTreeData(categories);
98
+ this.documentTreeData = this.generateTreeData(categories);
76
99
  // Append uncategorised documents
77
100
  if (categoriesAndDocuments.uncategorised_documents && categoriesAndDocuments.uncategorised_documents.length > 0) {
78
101
  const uncategorisedDocuments = this.getUncategorisedDocuments(categoriesAndDocuments.uncategorised_documents);
79
- treeData.push(uncategorisedDocuments);
102
+ this.documentTreeData.push(uncategorisedDocuments);
80
103
  }
81
104
  // Initialise cdk tree with generated data
82
- this.nestedDataSource = treeData;
105
+ this.nestedDataSource = this.documentTreeData;
106
+ this.nestedTreeControl.dataNodes = this.documentTreeData;
83
107
  });
84
108
  }
85
109
  generateTreeData(categories) {
86
- return categories.reduce((tree, node) => {
87
- const newDocumentTreeNode = new DocumentTreeNode();
88
- newDocumentTreeNode.name = node.category_name;
89
- newDocumentTreeNode.type = 'category';
90
- newDocumentTreeNode.children = [...this.generateTreeData(node.sub_categories), ...this.getDocuments(node.documents)];
91
- return [
92
- ...tree,
93
- newDocumentTreeNode,
94
- ];
95
- }, []);
110
+ return categories.reduce((tree, node) => [
111
+ ...tree,
112
+ ...[
113
+ {
114
+ name: node.category_name,
115
+ type: DocumentTreeNodeType.FOLDER,
116
+ children: [...this.generateTreeData(node.sub_categories), ...this.getDocuments(node.documents)]
117
+ },
118
+ ],
119
+ ], []);
96
120
  }
97
121
  getDocuments(documents) {
98
122
  const documentsToReturn = [];
99
123
  documents.forEach(document => {
100
- const documentTreeNode = new DocumentTreeNode();
101
- documentTreeNode.name = document.document_filename;
102
- documentTreeNode.type = 'document';
103
- documentsToReturn.push(documentTreeNode);
124
+ documentsToReturn.push({ name: document.document_filename, type: DocumentTreeNodeType.DOCUMENT });
104
125
  });
105
126
  return documentsToReturn;
106
127
  }
107
128
  getUncategorisedDocuments(uncategorisedDocuments) {
108
129
  const documents = [];
109
130
  uncategorisedDocuments.forEach(document => {
110
- const documentTreeNode = new DocumentTreeNode();
111
- documentTreeNode.name = document.document_filename;
112
- documentTreeNode.type = 'document';
113
- documents.push(documentTreeNode);
131
+ documents.push({ name: document.document_filename, type: DocumentTreeNodeType.DOCUMENT });
114
132
  });
115
- const uncategorisedNode = new DocumentTreeNode();
116
- uncategorisedNode.name = CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE;
117
- uncategorisedNode.type = 'category';
118
- uncategorisedNode.children = documents;
119
- return uncategorisedNode;
133
+ return { name: CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE, type: DocumentTreeNodeType.FOLDER, children: documents };
134
+ }
135
+ filter(searchTerm) {
136
+ // Make a copy of the data so we do not mutate the original
137
+ function copy(node) {
138
+ return Object.assign({}, node);
139
+ }
140
+ let filteredData = this.documentTreeData;
141
+ if (searchTerm && searchTerm.length >= CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS && this.documentFilterFormGroup.controls[CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME].value.length > 2) {
142
+ filteredData = this.documentTreeData.map(copy).filter(function filterTreeData(node) {
143
+ if (node.name && node.name.toLowerCase().includes(searchTerm) && node.type === DocumentTreeNodeType.DOCUMENT) {
144
+ return true;
145
+ }
146
+ // Call recursively if node has children
147
+ if (node.children) {
148
+ return (node.children = node.children.map(copy).filter(filterTreeData)).length;
149
+ }
150
+ });
151
+ }
152
+ return of(filteredData);
120
153
  }
121
154
  ngOnDestroy() {
122
155
  if (this.categoriesAndDocumentsSubscription) {
123
156
  this.categoriesAndDocumentsSubscription.unsubscribe();
124
157
  }
125
- }
126
- loadCategories() {
127
- return [
128
- {
129
- category_id: 'Beers',
130
- category_name: 'Beers',
131
- category_order: 1,
132
- documents: [
133
- {
134
- document_url: '/test',
135
- document_filename: 'Beers encyclopedia',
136
- document_binary_url: '/test/binary',
137
- attribute_path: '',
138
- upload_timestamp: ''
139
- }
140
- ],
141
- sub_categories: [
142
- {
143
- category_id: 'BeersBitters',
144
- category_name: 'Bitters',
145
- category_order: 1,
146
- documents: [],
147
- sub_categories: []
148
- },
149
- {
150
- category_id: 'BeersAmerican',
151
- category_name: 'American',
152
- category_order: 2,
153
- documents: [],
154
- sub_categories: []
155
- },
156
- {
157
- category_id: 'BeersAsian',
158
- category_name: 'Asian',
159
- category_order: 3,
160
- documents: [],
161
- sub_categories: []
162
- }
163
- ]
164
- },
165
- {
166
- category_id: 'Wines',
167
- category_name: 'Wines',
168
- category_order: 2,
169
- documents: [],
170
- sub_categories: [
171
- {
172
- category_id: 'WinesFrench',
173
- category_name: 'French',
174
- category_order: 1,
175
- documents: [],
176
- sub_categories: []
177
- },
178
- {
179
- category_id: 'WinesItalian',
180
- category_name: 'Italian',
181
- category_order: 2,
182
- documents: [],
183
- sub_categories: []
184
- }
185
- ]
186
- },
187
- {
188
- category_id: 'Spirits',
189
- category_name: 'Spirits',
190
- category_order: 3,
191
- documents: [],
192
- sub_categories: [
193
- {
194
- category_id: 'SpiritsWhisky',
195
- category_name: 'Scotch whisky',
196
- category_order: 1,
197
- documents: [],
198
- sub_categories: [
199
- {
200
- category_id: 'WhiskyHighland',
201
- category_name: 'Highland',
202
- category_order: 1,
203
- documents: [],
204
- sub_categories: [
205
- {
206
- category_id: 'WhiskyHighland1',
207
- category_name: 'Highland 1',
208
- category_order: 1,
209
- documents: [],
210
- sub_categories: []
211
- }
212
- ]
213
- },
214
- {
215
- category_id: 'WhiskyLowland',
216
- category_name: 'Lowland',
217
- category_order: 2,
218
- documents: [],
219
- sub_categories: [
220
- {
221
- category_id: 'WhiskyLowland1',
222
- category_name: 'Lowland 1',
223
- category_order: 1,
224
- documents: [
225
- {
226
- document_url: '/test',
227
- document_filename: 'Details about Whisky Lowland 1',
228
- document_binary_url: '/test/binary',
229
- attribute_path: '',
230
- upload_timestamp: ''
231
- }
232
- ],
233
- sub_categories: []
234
- },
235
- {
236
- category_id: 'WhiskyLowland2',
237
- category_name: 'Lowland 2',
238
- category_order: 2,
239
- documents: [],
240
- sub_categories: []
241
- }
242
- ]
243
- },
244
- {
245
- category_id: 'WhiskyIslay',
246
- category_name: 'Islay',
247
- category_order: 3,
248
- documents: [
249
- {
250
- document_url: '/test',
251
- document_filename: 'Details about Whisky Islay',
252
- document_binary_url: '/test/binary',
253
- attribute_path: '',
254
- upload_timestamp: ''
255
- },
256
- {
257
- document_url: '/test',
258
- document_filename: 'More information about Whisky Islay',
259
- document_binary_url: '/test/binary',
260
- attribute_path: '',
261
- upload_timestamp: ''
262
- }
263
- ],
264
- sub_categories: []
265
- },
266
- {
267
- category_id: 'WhiskySpeyside',
268
- category_name: 'Speyside',
269
- category_order: 4,
270
- documents: [],
271
- sub_categories: []
272
- },
273
- {
274
- category_id: 'WhiskyCampbeltown',
275
- category_name: 'Campbeltown',
276
- category_order: 5,
277
- documents: [],
278
- sub_categories: []
279
- }
280
- ]
281
- }
282
- ]
283
- }
284
- ];
158
+ if (this.documentFilterSubscription) {
159
+ this.documentFilterSubscription.unsubscribe();
160
+ }
285
161
  }
286
162
  }
287
163
  CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised documents';
164
+ CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';
165
+ CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS = 3;
288
166
  CaseFileViewFolderComponent.ɵfac = function CaseFileViewFolderComponent_Factory(t) { return new (t || CaseFileViewFolderComponent)(); };
289
- CaseFileViewFolderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments" }, decls: 8, vars: 4, consts: [[1, "document-filter-container"], [1, "document-filter"], [1, "documents-title"], [1, "document-tree-container"], [3, "dataSource", "treeControl"], ["class", "document-tree-node", 4, "cdkTreeNodeDef"], ["class", "document-tree-node", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-node"], [1, "node"], ["mat-icon-button", "", "disabled", "", 1, "node__icon"], ["src", "/assets/images/document.png", "alt", "Document icon", 1, "node__iconImg"], [1, "node-name", "node-name-document"], ["cdkTreeNodeToggle", "", 1, "node"], ["mat-icon-button", "", 1, "node__icon"], ["src", "/assets/images/folder.png", "alt", "Folder icon", 1, "node__iconImg"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
167
+ CaseFileViewFolderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments" }, decls: 6, vars: 2, consts: [[1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", 1, "form-control", "document-search"], [1, "documents-title"], ["class", "document-tree", 4, "ngIf"], [1, "document-tree"], [4, "ngIf"], [3, "dataSource", "treeControl"], ["class", "document-tree-node", 4, "cdkTreeNodeDef"], ["class", "document-tree-node", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-node"], [1, "node"], ["mat-icon-button", "", 1, "node-button"], ["alt", "document image", "src", "/assets/images/document.png", 1, "icon"], [1, "node-name", "node-name-document"], ["mat-icon-button", "", "cdkTreeNodeToggle", "", 1, "node-button"], ["alt", "folder image", 1, "icon", 3, "src"], [1, "node-name", "node-name-folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
290
168
  i0.ɵɵelementStart(0, "div", 0);
291
- i0.ɵɵelement(1, "div", 1);
292
- i0.ɵɵelementStart(2, "div", 2);
293
- i0.ɵɵtext(3);
294
- i0.ɵɵelementEnd();
169
+ i0.ɵɵelementStart(1, "div", 1);
170
+ i0.ɵɵelement(2, "input", 2);
295
171
  i0.ɵɵelementEnd();
296
- i0.ɵɵelementStart(4, "div", 3);
297
- i0.ɵɵelementStart(5, "cdk-tree", 4);
298
- i0.ɵɵtemplate(6, CaseFileViewFolderComponent_cdk_nested_tree_node_6_Template, 6, 1, "cdk-nested-tree-node", 5);
299
- i0.ɵɵtemplate(7, CaseFileViewFolderComponent_cdk_nested_tree_node_7_Template, 10, 5, "cdk-nested-tree-node", 6);
172
+ i0.ɵɵelementStart(3, "div", 3);
173
+ i0.ɵɵtext(4, "Documents");
300
174
  i0.ɵɵelementEnd();
301
175
  i0.ɵɵelementEnd();
176
+ i0.ɵɵtemplate(5, CaseFileViewFolderComponent_div_5_Template, 5, 4, "div", 4);
302
177
  } if (rf & 2) {
303
- i0.ɵɵadvance(3);
304
- i0.ɵɵtextInterpolate1("Documents (", ctx.documentCount, ")");
305
- i0.ɵɵadvance(2);
306
- i0.ɵɵproperty("dataSource", ctx.nestedDataSource)("treeControl", ctx.nestedTreeControl);
307
- i0.ɵɵadvance(2);
308
- i0.ɵɵproperty("cdkTreeNodeDefWhen", ctx.nestedChildren);
309
- } }, directives: [i1.CdkTree, i1.CdkTreeNodeDef, i1.CdkNestedTreeNode, i1.CdkTreeNodeToggle, i1.CdkTreeNodeOutlet], styles: [".document-filter-container[_ngcontent-%COMP%]{height:60px;border-bottom:2px solid #c9c9c9;padding-bottom:4px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{height:70%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree-container[_ngcontent-%COMP%]{margin:4px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%] .document-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .document-tree-container[_ngcontent-%COMP%] .document-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.document-tree-container[_ngcontent-%COMP%] .document-tree-node[_ngcontent-%COMP%]{display:block}.document-tree-container[_ngcontent-%COMP%] .document-tree-node[_ngcontent-%COMP%] .document-tree-node[_ngcontent-%COMP%]{padding-left:40px}.node[_ngcontent-%COMP%]{display:flex;align-items:center;padding:6px 0}.node__icon[_ngcontent-%COMP%]{position:relative;background:none;border:0}.node__iconImg[_ngcontent-%COMP%]{height:24px}.node__count[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.node__name[_ngcontent-%COMP%]{margin-left:6px}"] });
178
+ i0.ɵɵadvance(1);
179
+ i0.ɵɵproperty("formGroup", ctx.documentFilterFormGroup);
180
+ i0.ɵɵadvance(4);
181
+ i0.ɵɵproperty("ngIf", ctx.documentTreeData);
182
+ } }, directives: [i1.NgControlStatusGroup, i1.FormGroupDirective, i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlName, i2.NgIf, i3.CdkTree, i3.CdkTreeNodeDef, i3.CdkNestedTreeNode, i3.CdkTreeNodeToggle, i3.CdkTreeNodeOutlet], styles: [".document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #c9c9c9;padding-bottom:4px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{height:70%;padding:8px 8px 0;margin-bottom:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat 100% #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-tree[_ngcontent-%COMP%]{margin:4px;overflow-x:hidden;overflow-y:scroll;height:400px}.document-tree[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree[_ngcontent-%COMP%] .document-tree[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .document-tree[_ngcontent-%COMP%] .document-tree[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.document-tree[_ngcontent-%COMP%] .document-tree-node[_ngcontent-%COMP%]{display:block}.document-tree[_ngcontent-%COMP%] .document-tree-node[_ngcontent-%COMP%] .document-tree-node[_ngcontent-%COMP%]{padding-left:40px}.document-tree[_ngcontent-%COMP%] .node[_ngcontent-%COMP%]{display:flex;padding:4px;white-space:nowrap}.document-tree[_ngcontent-%COMP%] .node[_ngcontent-%COMP%] .node-button[_ngcontent-%COMP%]{display:flex;background-color:#faf8f8;border:none;width:100%}.document-tree[_ngcontent-%COMP%] .node-button[_ngcontent-%COMP%]:hover{cursor:pointer}.document-tree[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:36px;height:36px;background-size:100%;border:0;background-color:#faf8f8}.document-tree[_ngcontent-%COMP%] .node-name[_ngcontent-%COMP%]{margin-left:10px}.document-tree[_ngcontent-%COMP%] .node-name-document[_ngcontent-%COMP%], .document-tree[_ngcontent-%COMP%] .node-name-folder[_ngcontent-%COMP%]{margin-top:8px;font-size:16px}.document-tree[_ngcontent-%COMP%] .document-count[_ngcontent-%COMP%]{color:#fff}.document-tree[_ngcontent-%COMP%]::-webkit-scrollbar{width:.5em}.document-tree[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#eee}.document-tree[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#ccc}"] });
310
183
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
311
184
  type: Component,
312
185
  args: [{
@@ -317,4 +190,4 @@ CaseFileViewFolderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewF
317
190
  }], function () { return []; }, { categoriesAndDocuments: [{
318
191
  type: Input
319
192
  }] }); })();
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2pCLE1BQU0sc0NBQXNDLENBQUM7Ozs7SUNEMUMsK0NBQTRFO0lBQzFFLDhCQUFrQjtJQUNoQixpQ0FBb0Q7SUFDbEQsMEJBQWlGO0lBQ25GLGlCQUFTO0lBQ1QsZ0NBQTJDO0lBQUEsWUFBYTtJQUFBLGlCQUFPO0lBQ2pFLGlCQUFNO0lBQ1IsaUJBQXVCOzs7SUFGd0IsZUFBYTtJQUFiLGtDQUFhOzs7SUFJNUQsK0NBQWtHO0lBQ2hHLCtCQUFvQztJQUNsQyxrQ0FBc0Y7SUFDcEYsMEJBQTZFO0lBQzdFLGdDQUEwQjtJQUFBLFlBQTJCO0lBQUEsaUJBQU87SUFD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cEUsaUJBQU07UUFDTiw4QkFBcUM7UUFDbkMsbUNBQTRFO1FBRTFFLDhHQU91QjtRQUV2QiwrR0FXdUI7UUFDekIsaUJBQVc7UUFDYixpQkFBTTs7UUEzQnlCLGVBQStCO1FBQS9CLDREQUErQjtRQUdsRCxlQUErQjtRQUEvQixpREFBK0Isc0NBQUE7UUFXVSxlQUFvQjtRQUFwQix1REFBb0I7O3VGREQ1RCwyQkFBMkI7Y0FMdkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO2dCQUNyRCxXQUFXLEVBQUUsd0NBQXdDO2FBQ3REO3NDQUlpQixzQkFBc0I7a0JBQXJDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDYXNlRmlsZVZpZXdDYXRlZ29yeSxcbiAgQ2FzZUZpbGVWaWV3RG9jdW1lbnQsXG4gIENhdGVnb3JpZXNBbmREb2N1bWVudHMsXG4gIERvY3VtZW50VHJlZU5vZGVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL2Nhc2UtZmlsZS12aWV3JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlcicsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFID0gJ1VuY2F0ZWdvcmlzZWQgZG9jdW1lbnRzJztcblxuICBASW5wdXQoKSBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50czogT2JzZXJ2YWJsZTxDYXRlZ29yaWVzQW5kRG9jdW1lbnRzPjtcblxuICBwdWJsaWMgbmVzdGVkVHJlZUNvbnRyb2w6IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+O1xuICBwdWJsaWMgbmVzdGVkRGF0YVNvdXJjZTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgY2F0ZWdvcmllczogQ2FzZUZpbGVWaWV3Q2F0ZWdvcnlbXSA9IFtdO1xuICBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW4gPSAobm9kZTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gb2Yobm9kZS5jaGlsZHJlbik7XG4gIHB1YmxpYyBuZXN0ZWRDaGlsZHJlbiA9IChfOiBudW1iZXIsIG5vZGVEYXRhOiBEb2N1bWVudFRyZWVOb2RlKSA9PiBub2RlRGF0YS5jaGlsZHJlbjtcbiAgcHVibGljIGdldCBkb2N1bWVudENvdW50KCkge1xuICAgIGlmICh0aGlzLm5lc3RlZERhdGFTb3VyY2U/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMubmVzdGVkRGF0YVNvdXJjZS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gYWNjICsgaXRlbS5jaGlsZERvY3VtZW50Q291bnQ7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5uZXN0ZWRUcmVlQ29udHJvbCA9IG5ldyBOZXN0ZWRUcmVlQ29udHJvbDxEb2N1bWVudFRyZWVOb2RlPih0aGlzLmdldENoaWxkcmVuKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24gPSB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHMuc3Vic2NyaWJlKGNhdGVnb3JpZXNBbmREb2N1bWVudHMgPT4ge1xuICAgICAgLy8gVXNpbmcgdGhlIG1vY2sgZGF0YSBmb3Igbm93IGFzIHdlIGhhdmUgdG8gZGlzcGxheSB0aGUgZG9jdW1lbnRzIGFzIHdlbGwgZm9yIGRlbW8gcHVycG9zZVxuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMubG9hZENhdGVnb3JpZXMoKTsgLy8gY2F0ZWdvcmllc0FuZERvY3VtZW50cy5jYXRlZ29yaWVzO1xuICAgICAgLy8gR2VuZXJhdGUgZG9jdW1lbnQgdHJlZSBkYXRhIGZyb20gY2F0ZWdvcmllc1xuICAgICAgY29uc3QgdHJlZURhdGEgPSB0aGlzLmdlbmVyYXRlVHJlZURhdGEoY2F0ZWdvcmllcyk7XG4gICAgICAvLyBBcHBlbmQgdW5jYXRlZ29yaXNlZCBkb2N1bWVudHNcbiAgICAgIGlmIChjYXRlZ29yaWVzQW5kRG9jdW1lbnRzLnVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzICYmIGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzID0gdGhpcy5nZXRVbmNhdGVnb3Jpc2VkRG9jdW1lbnRzKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMpO1xuICAgICAgICB0cmVlRGF0YS5wdXNoKHVuY2F0ZWdvcmlzZWREb2N1bWVudHMpO1xuICAgICAgfVxuICAgICAgLy8gSW5pdGlhbGlzZSBjZGsgdHJlZSB3aXRoIGdlbmVyYXRlZCBkYXRhXG4gICAgICB0aGlzLm5lc3RlZERhdGFTb3VyY2UgPSB0cmVlRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXM6IENhc2VGaWxlVmlld0NhdGVnb3J5W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZSgodHJlZSwgbm9kZSkgPT4ge1xuICAgICAgY29uc3QgbmV3RG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBub2RlLmNhdGVnb3J5X25hbWU7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLnR5cGUgPSAnY2F0ZWdvcnknO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IFsuLi50aGlzLmdlbmVyYXRlVHJlZURhdGEobm9kZS5zdWJfY2F0ZWdvcmllcyksIC4uLnRoaXMuZ2V0RG9jdW1lbnRzKG5vZGUuZG9jdW1lbnRzKV07XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnRyZWUsXG4gICAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUsXG4gICAgICBdO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREb2N1bWVudHMoZG9jdW1lbnRzOiBDYXNlRmlsZVZpZXdEb2N1bWVudFtdKTogRG9jdW1lbnRUcmVlTm9kZVtdIHtcbiAgICBjb25zdCBkb2N1bWVudHNUb1JldHVybjogRG9jdW1lbnRUcmVlTm9kZVtdID0gW107XG4gICAgZG9jdW1lbnRzLmZvckVhY2goZG9jdW1lbnQgPT4ge1xuICAgICAgY29uc3QgZG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUudHlwZSA9ICdkb2N1bWVudCc7XG5cbiAgICAgIGRvY3VtZW50c1RvUmV0dXJuLnB1c2goZG9jdW1lbnRUcmVlTm9kZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzVG9SZXR1cm47XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5jYXRlZ29yaXNlZERvY3VtZW50cyh1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzOiBDYXNlRmlsZVZpZXdEb2N1bWVudFtdKTogRG9jdW1lbnRUcmVlTm9kZSB7XG4gICAgY29uc3QgZG9jdW1lbnRzOiBEb2N1bWVudFRyZWVOb2RlW10gPSBbXTtcbiAgICB1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzLmZvckVhY2goZG9jdW1lbnQgPT4ge1xuICAgICAgY29uc3QgZG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUudHlwZSA9ICdkb2N1bWVudCc7XG5cbiAgICAgIGRvY3VtZW50cy5wdXNoKGRvY3VtZW50VHJlZU5vZGUpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdW5jYXRlZ29yaXNlZE5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgIHVuY2F0ZWdvcmlzZWROb2RlLm5hbWUgPSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEU7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUudHlwZSA9ICdjYXRlZ29yeSc7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUuY2hpbGRyZW4gPSBkb2N1bWVudHM7XG5cbiAgICByZXR1cm4gdW5jYXRlZ29yaXNlZE5vZGU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRDYXRlZ29yaWVzKCk6IENhc2VGaWxlVmlld0NhdGVnb3J5W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnMnLFxuICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQmVlcnMnLFxuICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdCZWVycyBlbmN5Y2xvcGVkaWEnLFxuICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjYXRlZ29yeV9pZDogJ0JlZXJzQml0dGVycycsXG4gICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQml0dGVycycsXG4gICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnNBbWVyaWNhbicsXG4gICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQW1lcmljYW4nLFxuICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjYXRlZ29yeV9pZDogJ0JlZXJzQXNpYW4nLFxuICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0FzaWFuJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAzLFxuICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaW5lcycsXG4gICAgICAgIGNhdGVnb3J5X25hbWU6ICdXaW5lcycsXG4gICAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2luZXNGcmVuY2gnLFxuICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0ZyZW5jaCcsXG4gICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2luZXNJdGFsaWFuJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdJdGFsaWFuJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnlfaWQ6ICdTcGlyaXRzJyxcbiAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ1NwaXJpdHMnLFxuICAgICAgICBjYXRlZ29yeV9vcmRlcjogMyxcbiAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1NwaXJpdHNXaGlza3knLFxuICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ1Njb3RjaCB3aGlza3knLFxuICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5SGlnaGxhbmQnLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdIaWdobGFuZCcsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUhpZ2hsYW5kMScsXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdIaWdobGFuZCAxJyxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5TG93bGFuZCcsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0xvd2xhbmQnLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lMb3dsYW5kMScsXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdMb3dsYW5kIDEnLFxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IFdoaXNreSBMb3dsYW5kIDEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUxvd2xhbmQyJyxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0xvd2xhbmQgMicsXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAyLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUlzbGF5JyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnSXNsYXknLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAzLFxuICAgICAgICAgICAgICAgIGRvY3VtZW50czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF91cmw6ICcvdGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnRGV0YWlscyBhYm91dCBXaGlza3kgSXNsYXknLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiAnJ1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfdXJsOiAnL3Rlc3QnLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ01vcmUgaW5mb3JtYXRpb24gYWJvdXQgV2hpc2t5IElzbGF5JyxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogJy90ZXN0L2JpbmFyeScsXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogJydcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lTcGV5c2lkZScsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ1NwZXlzaWRlJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogNCxcbiAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lDYW1wYmVsdG93bicsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0NhbXBiZWx0b3duJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogNSxcbiAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvY3VtZW50LWZpbHRlci1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50LWZpbHRlclwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRzLXRpdGxlXCI+RG9jdW1lbnRzICh7eyBkb2N1bWVudENvdW50IH19KTwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1jb250YWluZXJcIj5cbiAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIm5lc3RlZERhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwibmVzdGVkVHJlZUNvbnRyb2xcIj5cbiAgICA8IS0tIGRvY3VtZW50IC0tPlxuICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1ub2RlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZV9faWNvblwiIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD5cbiAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1hZ2VzL2RvY3VtZW50LnBuZ1wiIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiIGFsdD1cIkRvY3VtZW50IGljb25cIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZS1uYW1lIG5vZGUtbmFtZS1kb2N1bWVudFwiPnt7bm9kZS5uYW1lfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkay1uZXN0ZWQtdHJlZS1ub2RlPlxuICAgIDwhLS0gZm9sZGVyLS0+XG4gICAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBuZXN0ZWRDaGlsZHJlblwiIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1ub2RlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm9kZVwiIGNka1RyZWVOb2RlVG9nZ2xlPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZV9faWNvblwiIG1hdC1pY29uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIid0b2dnbGUgJyArIG5vZGUubmFtZVwiID5cbiAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1hZ2VzL2ZvbGRlci5wbmdcIiBjbGFzcz1cIm5vZGVfX2ljb25JbWdcIiBhbHQ9XCJGb2xkZXIgaWNvblwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZV9fY291bnRcIj57e25vZGUuY2hpbGREb2N1bWVudENvdW50fX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGVfX25hbWUgbm9kZV9fbmFtZS0tZm9sZGVyXCI+e3tub2RlLm5hbWV9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3MuZG9jdW1lbnQtdHJlZS1pbnZpc2libGVdPVwiIW5lc3RlZFRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwvY2RrLXRyZWU+XG48L2Rpdj5cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUtMLG9CQUFvQixFQUNyQixNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7SUNDNUMsMkJBQWdFO0lBQzlELGtDQUNGO0lBQUEsaUJBQU07OztJQUdKLGdEQUE0RTtJQUMxRSwrQkFBa0I7SUFDaEIsa0NBQTRDO0lBQzFDLDBCQUEyRTtJQUMzRSwrQkFBMEM7SUFBQSxZQUFhO0lBQUEsaUJBQU07SUFDL0Qs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Q0FBd0M7YUFDdEQ7c0NBT2lCLHNCQUFzQjtrQkFBckMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5lc3RlZFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENhc2VGaWxlVmlld0NhdGVnb3J5LFxuICBDYXNlRmlsZVZpZXdEb2N1bWVudCxcbiAgQ2F0ZWdvcmllc0FuZERvY3VtZW50cyxcbiAgRG9jdW1lbnRUcmVlTm9kZSxcbiAgRG9jdW1lbnRUcmVlTm9kZVR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL2Nhc2UtZmlsZS12aWV3JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlcicsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEUgPSAnVW5jYXRlZ29yaXNlZCBkb2N1bWVudHMnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUUgPSAnZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1JTklNVU1fU0VBUkNIX0NIQVJBQ1RFUlMgPSAzO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzOiBPYnNlcnZhYmxlPENhdGVnb3JpZXNBbmREb2N1bWVudHM+O1xuXG4gIHB1YmxpYyBuZXN0ZWRUcmVlQ29udHJvbDogTmVzdGVkVHJlZUNvbnRyb2w8RG9jdW1lbnRUcmVlTm9kZT47XG4gIHB1YmxpYyBuZXN0ZWREYXRhU291cmNlOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzOiBDYXNlRmlsZVZpZXdDYXRlZ29yeVtdID0gW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBkb2N1bWVudEZpbHRlckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBkb2N1bWVudFRyZWVEYXRhOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBkb2N1bWVudEZpbHRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VhcmNoVGVybUxlbmd0aDogbnVtYmVyO1xuXG4gIHByaXZhdGUgZ2V0Q2hpbGRyZW4gPSAobm9kZTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gb2Yobm9kZS5jaGlsZHJlbik7XG4gIHB1YmxpYyBuZXN0ZWRDaGlsZHJlbiA9IChfOiBudW1iZXIsIG5vZGVEYXRhOiBEb2N1bWVudFRyZWVOb2RlKSA9PiBub2RlRGF0YS5jaGlsZHJlbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sID0gbmV3IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+KHRoaXMuZ2V0Q2hpbGRyZW4pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgIHRoaXMuZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXAuYWRkQ29udHJvbChDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FLCB0aGlzLmRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wpO1xuXG4gICAgLy8gTGlzdGVuIHRvIHNlYXJjaCBpbnB1dCBhbmQgaW5pdGlhdGUgZmlsdGVyIGRvY3VtZW50cyBpZiBhdCBsZWFzdCB0aHJlZSBjaGFyYWN0ZXJzIGVudGVyZWRcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uID0gdGhpcy5kb2N1bWVudFNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuc2VhcmNoVGVybUxlbmd0aCA9IHNlYXJjaFRlcm0ubGVuZ3RoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB0aGlzLmZpbHRlcihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpLnBpcGUoKSlcbiAgICApLnN1YnNjcmliZShkb2N1bWVudFRyZWVEYXRhID0+IHtcbiAgICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IGRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmRhdGFOb2RlcyA9IGRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLnNlYXJjaFRlcm1MZW5ndGggPj0gQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50Lk1JTklNVU1fU0VBUkNIX0NIQVJBQ1RFUlNcbiAgICAgICAgPyB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmV4cGFuZEFsbCgpXG4gICAgICAgIDogdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5jb2xsYXBzZUFsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBpbnB1dCBjYXRlZ29yaWVzIGFuZCBkb2N1bWVudHMsIGFuZCBnZW5lcmF0ZSB0cmVlIGRhdGEgYW5kIGluaXRpYWxpc2UgY2RrIHRyZWVcbiAgICB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24gPSB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHMuc3Vic2NyaWJlKGNhdGVnb3JpZXNBbmREb2N1bWVudHMgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNBbmREb2N1bWVudHMuY2F0ZWdvcmllcztcbiAgICAgIC8vIEdlbmVyYXRlIGRvY3VtZW50IHRyZWUgZGF0YSBmcm9tIGNhdGVnb3JpZXNcbiAgICAgIHRoaXMuZG9jdW1lbnRUcmVlRGF0YSA9IHRoaXMuZ2VuZXJhdGVUcmVlRGF0YShjYXRlZ29yaWVzKTtcbiAgICAgIC8vIEFwcGVuZCB1bmNhdGVnb3Jpc2VkIGRvY3VtZW50c1xuICAgICAgaWYgKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMgJiYgY2F0ZWdvcmllc0FuZERvY3VtZW50cy51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHVuY2F0ZWdvcmlzZWREb2N1bWVudHMgPSB0aGlzLmdldFVuY2F0ZWdvcmlzZWREb2N1bWVudHMoY2F0ZWdvcmllc0FuZERvY3VtZW50cy51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cyk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5wdXNoKHVuY2F0ZWdvcmlzZWREb2N1bWVudHMpO1xuICAgICAgfVxuICAgICAgLy8gSW5pdGlhbGlzZSBjZGsgdHJlZSB3aXRoIGdlbmVyYXRlZCBkYXRhXG4gICAgICB0aGlzLm5lc3RlZERhdGFTb3VyY2UgPSB0aGlzLmRvY3VtZW50VHJlZURhdGE7XG4gICAgICB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmRhdGFOb2RlcyA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXM6IENhc2VGaWxlVmlld0NhdGVnb3J5W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZSgodHJlZSwgbm9kZSkgPT4gW1xuICAgICAgLi4udHJlZSxcbiAgICAgIC4uLltcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IG5vZGUuY2F0ZWdvcnlfbmFtZSxcbiAgICAgICAgICB0eXBlOiBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVIsXG4gICAgICAgICAgY2hpbGRyZW46IFsuLi50aGlzLmdlbmVyYXRlVHJlZURhdGEobm9kZS5zdWJfY2F0ZWdvcmllcyksIC4uLnRoaXMuZ2V0RG9jdW1lbnRzKG5vZGUuZG9jdW1lbnRzKV1cbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgXSwgW10pO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50cyhkb2N1bWVudHM6IENhc2VGaWxlVmlld0RvY3VtZW50W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIGNvbnN0IGRvY3VtZW50c1RvUmV0dXJuOiBEb2N1bWVudFRyZWVOb2RlW10gPSBbXTtcbiAgICBkb2N1bWVudHMuZm9yRWFjaChkb2N1bWVudCA9PiB7XG4gICAgICBkb2N1bWVudHNUb1JldHVybi5wdXNoKHsgbmFtZTogZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWUsIHR5cGU6IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkb2N1bWVudHNUb1JldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVbmNhdGVnb3Jpc2VkRG9jdW1lbnRzKHVuY2F0ZWdvcmlzZWREb2N1bWVudHM6IENhc2VGaWxlVmlld0RvY3VtZW50W10pOiBEb2N1bWVudFRyZWVOb2RlIHtcbiAgICBjb25zdCBkb2N1bWVudHM6IERvY3VtZW50VHJlZU5vZGVbXSA9IFtdO1xuICAgIHVuY2F0ZWdvcmlzZWREb2N1bWVudHMuZm9yRWFjaChkb2N1bWVudCA9PiB7XG4gICAgICBkb2N1bWVudHMucHVzaCh7IG5hbWU6IGRvY3VtZW50LmRvY3VtZW50X2ZpbGVuYW1lLCB0eXBlOiBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVCB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4geyBuYW1lOiBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEUsIHR5cGU6IERvY3VtZW50VHJlZU5vZGVUeXBlLkZPTERFUiwgY2hpbGRyZW46IGRvY3VtZW50cyB9O1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihzZWFyY2hUZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERvY3VtZW50VHJlZU5vZGVbXT4ge1xuICAgIC8vIE1ha2UgYSBjb3B5IG9mIHRoZSBkYXRhIHNvIHdlIGRvIG5vdCBtdXRhdGUgdGhlIG9yaWdpbmFsXG4gICAgZnVuY3Rpb24gY29weShub2RlOiBEb2N1bWVudFRyZWVOb2RlKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgbm9kZSk7XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICBpZiAoc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuTUlOSU1VTV9TRUFSQ0hfQ0hBUkFDVEVSUyAmJiB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwLmNvbnRyb2xzW0Nhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudC5ET0NVTUVOVF9TRUFSQ0hfRk9STV9DT05UUk9MX05BTUVdLnZhbHVlLmxlbmd0aCA+IDIpIHtcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YS5tYXAoY29weSkuZmlsdGVyKGZ1bmN0aW9uIGZpbHRlclRyZWVEYXRhKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSAmJiBub2RlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSAmJiBub2RlLnR5cGUgPT09IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsbCByZWN1cnNpdmVseSBpZiBub2RlIGhhcyBjaGlsZHJlblxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybiAobm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4ubWFwKGNvcHkpLmZpbHRlcihmaWx0ZXJUcmVlRGF0YSkpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvZihmaWx0ZXJlZERhdGEpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kb2N1bWVudEZpbHRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kb2N1bWVudEZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvY3VtZW50LWZpbHRlci1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZG9jdW1lbnQtZmlsdGVyXCIgW2Zvcm1Hcm91cF09XCJkb2N1bWVudEZpbHRlckZvcm1Hcm91cFwiPlxuICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBkb2N1bWVudC1zZWFyY2hcIlxuICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICBpZD1cImRvY3VtZW50LXNlYXJjaFwiXG4gICAgICBuYW1lPVwiZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb2N1bWVudFNlYXJjaEZvcm1Db250cm9sXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGJ5IGRvY3VtZW50IG5hbWVcIj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudHMtdGl0bGVcIj5Eb2N1bWVudHM8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRvY3VtZW50LXRyZWVcIiAqbmdJZj1cImRvY3VtZW50VHJlZURhdGFcIj5cbiAgPGRpdiAqbmdJZj1cIiFuZXN0ZWREYXRhU291cmNlIHx8IG5lc3RlZERhdGFTb3VyY2UubGVuZ3RoID09PSAwXCI+XG4gICAgTm8gcmVzdWx0cyBmb3VuZFxuICA8L2Rpdj5cbiAgPGNkay10cmVlIFtkYXRhU291cmNlXT1cIm5lc3RlZERhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwibmVzdGVkVHJlZUNvbnRyb2xcIj5cbiAgICA8IS0tIGRvY3VtZW50IC0tPlxuICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1ub2RlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZS1idXR0b25cIiBtYXQtaWNvbi1idXR0b24+XG4gICAgICAgICAgPGltZyBhbHQ9XCJkb2N1bWVudCBpbWFnZVwiIHNyYz1cIi9hc3NldHMvaW1hZ2VzL2RvY3VtZW50LnBuZ1wiIGNsYXNzPVwiaWNvblwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtbmFtZSBub2RlLW5hbWUtZG9jdW1lbnRcIj57e25vZGUubmFtZX19PC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZGstbmVzdGVkLXRyZWUtbm9kZT5cbiAgICA8IS0tIGZvbGRlci0tPlxuICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogbmVzdGVkQ2hpbGRyZW5cIiBjbGFzcz1cImRvY3VtZW50LXRyZWUtbm9kZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5vZGUtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3RvZ2dsZSAnICsgbm9kZS5uYW1lXCIgY2RrVHJlZU5vZGVUb2dnbGU+XG4gICAgICAgICAgPGltZyBhbHQ9XCJmb2xkZXIgaW1hZ2VcIiBbc3JjXT1cIm5lc3RlZFRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnL2Fzc2V0cy9pbWFnZXMvZm9sZGVyLW9wZW4ucG5nJyA6ICcvYXNzZXRzL2ltYWdlcy9mb2xkZXIucG5nJ1wiIGNsYXNzPVwiaWNvblwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtbmFtZSBub2RlLW5hbWUtZm9sZGVyXCI+e3tub2RlLm5hbWV9fTwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3MuZG9jdW1lbnQtdHJlZS1pbnZpc2libGVdPVwiIW5lc3RlZFRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwvY2RrLXRyZWU+XG48L2Rpdj5cbiJdfQ==
@@ -15,7 +15,7 @@ export class IsCompoundPipe {
15
15
  }
16
16
  }
17
17
  IsCompoundPipe.COMPOUND_TYPES = [
18
- 'Complex', 'Label', 'AddressGlobal', 'AddressUK', 'AddressGlobalUK', 'CasePaymentHistoryViewer', 'CaseHistoryViewer', 'Organisation', 'WaysToPay'
18
+ 'Complex', 'Label', 'AddressGlobal', 'AddressUK', 'AddressGlobalUK', 'CasePaymentHistoryViewer', 'CaseHistoryViewer', 'Organisation', 'WaysToPay', 'ComponentLauncher'
19
19
  ];
20
20
  IsCompoundPipe.EXCLUDE = [
21
21
  'CaseLink', 'JudicialUser'
@@ -28,4 +28,4 @@ IsCompoundPipe.ɵpipe = i0.ɵɵdefinePipe({ name: "ccdIsCompound", type: IsCompo
28
28
  name: 'ccdIsCompound'
29
29
  }]
30
30
  }], null, null); })();
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29tcG91bmQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3V0aWxzL2lzLWNvbXBvdW5kLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxjQUFjO0lBVWxCLFNBQVMsQ0FBQyxLQUFnQjtRQUMvQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3pELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDdkUsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM5RCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7QUFyQnVCLDZCQUFjLEdBQW9CO0lBQ3hELFNBQVMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsV0FBVztDQUNsSixDQUFDO0FBRXNCLHNCQUFPLEdBQWE7SUFDMUMsVUFBVSxFQUFFLGNBQWM7Q0FDM0IsQ0FBQzs0RUFSUyxjQUFjO3NFQUFkLGNBQWM7dUZBQWQsY0FBYztjQUgxQixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGVBQWU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjY2RJc0NvbXBvdW5kJ1xufSlcbmV4cG9ydCBjbGFzcyBJc0NvbXBvdW5kUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENPTVBPVU5EX1RZUEVTOiBGaWVsZFR5cGVFbnVtW10gPSBbXG4gICAgJ0NvbXBsZXgnLCAnTGFiZWwnLCAnQWRkcmVzc0dsb2JhbCcsICdBZGRyZXNzVUsnLCAnQWRkcmVzc0dsb2JhbFVLJywgJ0Nhc2VQYXltZW50SGlzdG9yeVZpZXdlcicsICdDYXNlSGlzdG9yeVZpZXdlcicsICdPcmdhbmlzYXRpb24nLCAnV2F5c1RvUGF5J1xuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYQ0xVREU6IHN0cmluZ1tdID0gW1xuICAgICdDYXNlTGluaycsICdKdWRpY2lhbFVzZXInXG4gIF07XG5cbiAgcHVibGljIHRyYW5zZm9ybShmaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgaWYgKCFmaWVsZCB8fCAhZmllbGQuZmllbGRfdHlwZSB8fCAhZmllbGQuZmllbGRfdHlwZS50eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKElzQ29tcG91bmRQaXBlLkNPTVBPVU5EX1RZUEVTLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS50eXBlKSAhPT0gLTEpIHtcbiAgICAgIGlmIChJc0NvbXBvdW5kUGlwZS5FWENMVURFLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS5pZCkgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29tcG91bmQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3V0aWxzL2lzLWNvbXBvdW5kLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxjQUFjO0lBVWxCLFNBQVMsQ0FBQyxLQUFnQjtRQUMvQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3pELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDdkUsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM5RCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7QUFyQnVCLDZCQUFjLEdBQW9CO0lBQ3hELFNBQVMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQjtDQUN2SyxDQUFDO0FBRXNCLHNCQUFPLEdBQWE7SUFDMUMsVUFBVSxFQUFFLGNBQWM7Q0FDM0IsQ0FBQzs0RUFSUyxjQUFjO3NFQUFkLGNBQWM7dUZBQWQsY0FBYztjQUgxQixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGVBQWU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjY2RJc0NvbXBvdW5kJ1xufSlcbmV4cG9ydCBjbGFzcyBJc0NvbXBvdW5kUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENPTVBPVU5EX1RZUEVTOiBGaWVsZFR5cGVFbnVtW10gPSBbXG4gICAgJ0NvbXBsZXgnLCAnTGFiZWwnLCAnQWRkcmVzc0dsb2JhbCcsICdBZGRyZXNzVUsnLCAnQWRkcmVzc0dsb2JhbFVLJywgJ0Nhc2VQYXltZW50SGlzdG9yeVZpZXdlcicsICdDYXNlSGlzdG9yeVZpZXdlcicsICdPcmdhbmlzYXRpb24nLCAnV2F5c1RvUGF5JywgJ0NvbXBvbmVudExhdW5jaGVyJ1xuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYQ0xVREU6IHN0cmluZ1tdID0gW1xuICAgICdDYXNlTGluaycsICdKdWRpY2lhbFVzZXInXG4gIF07XG5cbiAgcHVibGljIHRyYW5zZm9ybShmaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgaWYgKCFmaWVsZCB8fCAhZmllbGQuZmllbGRfdHlwZSB8fCAhZmllbGQuZmllbGRfdHlwZS50eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKElzQ29tcG91bmRQaXBlLkNPTVBPVU5EX1RZUEVTLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS50eXBlKSAhPT0gLTEpIHtcbiAgICAgIGlmIChJc0NvbXBvdW5kUGlwZS5FWENMVURFLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS5pZCkgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=