@hmcts/ccd-case-ui-toolkit 5.0.24-case-file-view-search-document-exceptions → 5.0.24-case-file-sort-documents

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 (48) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +5436 -5169
  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 +2 -2
  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-sort/case-file-view-folder-sort.component.js +44 -0
  8. package/esm2015/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.js +302 -119
  9. package/esm2015/lib/shared/components/palette/case-file-view/components/index.js +5 -1
  10. package/esm2015/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model.js +2 -0
  11. package/esm2015/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.js +88 -0
  12. package/esm2015/lib/shared/components/palette/case-file-view/components/shared/index.js +2 -0
  13. package/esm2015/lib/shared/components/palette/palette.module.js +18 -5
  14. package/esm2015/lib/shared/components/palette/utils/is-compound.pipe.js +2 -2
  15. package/esm2015/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.js +93 -0
  16. package/esm2015/lib/shared/domain/case-file-view/index.js +2 -2
  17. package/esm2015/public-api.js +3 -1
  18. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +4545 -4316
  19. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  20. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +1 -1
  21. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  22. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.d.ts +14 -0
  23. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.d.ts.map +1 -0
  24. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +6 -9
  25. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts.map +1 -1
  26. package/lib/shared/components/palette/case-file-view/components/index.d.ts +4 -0
  27. package/lib/shared/components/palette/case-file-view/components/index.d.ts.map +1 -1
  28. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model.d.ts +6 -0
  29. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model.d.ts.map +1 -0
  30. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +15 -0
  31. 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 -0
  32. package/lib/shared/components/palette/case-file-view/components/shared/index.d.ts +2 -0
  33. package/lib/shared/components/palette/case-file-view/components/shared/index.d.ts.map +1 -0
  34. package/lib/shared/components/palette/palette.module.d.ts +25 -22
  35. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  36. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts +10 -0
  37. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts.map +1 -0
  38. package/lib/shared/domain/case-file-view/index.d.ts +1 -1
  39. package/lib/shared/domain/case-file-view/index.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/public-api.d.ts +2 -0
  42. package/public-api.d.ts.map +1 -1
  43. package/esm2015/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.js +0 -178
  44. package/esm2015/lib/shared/domain/case-file-view/document-tree-node.model.js +0 -6
  45. package/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.d.ts +0 -3
  46. package/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.d.ts.map +0 -1
  47. package/lib/shared/domain/case-file-view/document-tree-node.model.d.ts +0 -11
  48. package/lib/shared/domain/case-file-view/document-tree-node.model.d.ts.map +0 -1
@@ -1,77 +1,55 @@
1
- import { NestedTreeControl } from '@angular/cdk/tree';
2
- import { Component, Input } from '@angular/core';
3
- import { FormControl, FormGroup } from '@angular/forms';
1
+ import { CdkTree, NestedTreeControl } from '@angular/cdk/tree';
2
+ import { Component, Input, ViewChild } from '@angular/core';
4
3
  import { Observable, of } from 'rxjs';
5
- import { switchMap } from 'rxjs/operators';
6
- import { DocumentTreeNodeType } from '../../../../../domain/case-file-view';
7
- import { categoriesAndDocuments } from '../../test-data/categories-and-documents-test-data';
4
+ import { DocumentTreeNode } from '../../../../../domain/case-file-view';
8
5
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@angular/cdk/tree";
12
- function CaseFileViewFolderComponent_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
13
- i0.ɵɵelementStart(0, "div");
14
- i0.ɵɵtext(1, " No results found ");
6
+ import * as i1 from "./case-file-view-folder-sort/case-file-view-folder-sort.component";
7
+ import * as i2 from "@angular/cdk/tree";
8
+ const _c0 = ["tree"];
9
+ function CaseFileViewFolderComponent_cdk_nested_tree_node_8_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelementStart(0, "cdk-nested-tree-node", 8);
11
+ i0.ɵɵelementStart(1, "div", 9);
12
+ i0.ɵɵelementStart(2, "button", 10);
13
+ i0.ɵɵelement(3, "img", 11);
15
14
  i0.ɵɵelementEnd();
16
- } }
17
- function CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_3_Template(rf, ctx) { if (rf & 1) {
18
- i0.ɵɵelementStart(0, "cdk-nested-tree-node", 10);
19
- i0.ɵɵelementStart(1, "div", 11);
20
- i0.ɵɵelement(2, "button", 12);
21
- i0.ɵɵelementStart(3, "span", 13);
22
- i0.ɵɵtext(4);
15
+ i0.ɵɵelementStart(4, "span", 12);
16
+ i0.ɵɵtext(5);
23
17
  i0.ɵɵelementEnd();
24
18
  i0.ɵɵelementEnd();
25
19
  i0.ɵɵelementEnd();
26
20
  } if (rf & 2) {
27
- const node_r4 = ctx.$implicit;
28
- i0.ɵɵadvance(4);
29
- i0.ɵɵtextInterpolate(node_r4.name);
21
+ const node_r3 = ctx.$implicit;
22
+ i0.ɵɵadvance(5);
23
+ i0.ɵɵtextInterpolate(node_r3.name);
30
24
  } }
31
- function CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_4_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelementStart(0, "cdk-nested-tree-node", 10);
33
- i0.ɵɵelementStart(1, "div", 11);
34
- i0.ɵɵelementStart(2, "button", 14);
35
- i0.ɵɵelementStart(3, "span", 15);
36
- i0.ɵɵtext(4);
25
+ function CaseFileViewFolderComponent_cdk_nested_tree_node_9_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "cdk-nested-tree-node", 8);
27
+ i0.ɵɵelementStart(1, "div", 9);
28
+ i0.ɵɵelementStart(2, "button", 13);
29
+ i0.ɵɵelement(3, "img", 14);
30
+ i0.ɵɵelementStart(4, "span", 15);
31
+ i0.ɵɵtext(5);
37
32
  i0.ɵɵelementEnd();
38
33
  i0.ɵɵelementEnd();
39
- i0.ɵɵelementStart(5, "span", 16);
40
- i0.ɵɵtext(6);
34
+ i0.ɵɵelementStart(6, "span", 16);
35
+ i0.ɵɵtext(7);
41
36
  i0.ɵɵelementEnd();
42
37
  i0.ɵɵelementEnd();
43
- i0.ɵɵelementStart(7, "div");
44
- i0.ɵɵelementContainer(8, 17);
38
+ i0.ɵɵelementStart(8, "div");
39
+ i0.ɵɵelementContainer(9, 17);
45
40
  i0.ɵɵelementEnd();
46
41
  i0.ɵɵelementEnd();
47
42
  } if (rf & 2) {
48
- const node_r5 = ctx.$implicit;
49
- const ctx_r3 = i0.ɵɵnextContext(2);
50
- i0.ɵɵadvance(2);
51
- i0.ɵɵattribute("aria-label", "toggle " + node_r5.name);
43
+ const node_r4 = ctx.$implicit;
44
+ const ctx_r2 = i0.ɵɵnextContext();
52
45
  i0.ɵɵadvance(2);
53
- i0.ɵɵtextInterpolate(node_r5.count);
46
+ i0.ɵɵattribute("aria-label", "toggle " + node_r4.name);
47
+ i0.ɵɵadvance(3);
48
+ i0.ɵɵtextInterpolate(node_r4.childDocumentCount);
54
49
  i0.ɵɵadvance(2);
55
- i0.ɵɵtextInterpolate(node_r5.name);
56
- i0.ɵɵadvance(1);
57
- i0.ɵɵclassProp("document-tree-invisible", !ctx_r3.nestedTreeControl.isExpanded(node_r5));
58
- } }
59
- function CaseFileViewFolderComponent_div_5_Template(rf, ctx) { if (rf & 1) {
60
- i0.ɵɵelementStart(0, "div", 5);
61
- i0.ɵɵtemplate(1, CaseFileViewFolderComponent_div_5_div_1_Template, 2, 0, "div", 6);
62
- i0.ɵɵelementStart(2, "cdk-tree", 7);
63
- i0.ɵɵtemplate(3, CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_3_Template, 5, 1, "cdk-nested-tree-node", 8);
64
- i0.ɵɵtemplate(4, CaseFileViewFolderComponent_div_5_cdk_nested_tree_node_4_Template, 9, 5, "cdk-nested-tree-node", 9);
65
- i0.ɵɵelementEnd();
66
- i0.ɵɵelementEnd();
67
- } if (rf & 2) {
68
- const ctx_r0 = i0.ɵɵnextContext();
69
- i0.ɵɵadvance(1);
70
- i0.ɵɵproperty("ngIf", !ctx_r0.nestedDataSource || ctx_r0.nestedDataSource.length === 0);
50
+ i0.ɵɵtextInterpolate(node_r4.name);
71
51
  i0.ɵɵadvance(1);
72
- i0.ɵɵproperty("dataSource", ctx_r0.nestedDataSource)("treeControl", ctx_r0.nestedTreeControl);
73
- i0.ɵɵadvance(2);
74
- i0.ɵɵproperty("cdkTreeNodeDefWhen", ctx_r0.nestedChildren);
52
+ i0.ɵɵclassProp("document-tree-invisible", !ctx_r2.nestedTreeControl.isExpanded(node_r4));
75
53
  } }
76
54
  export class CaseFileViewFolderComponent {
77
55
  constructor() {
@@ -81,110 +59,315 @@ export class CaseFileViewFolderComponent {
81
59
  this.nestedTreeControl = new NestedTreeControl(this.getChildren);
82
60
  }
83
61
  ngOnInit() {
84
- this.documentFilterFormGroup = new FormGroup({});
85
- this.documentSearchFormControl = new FormControl('');
86
- this.documentFilterFormGroup.addControl(CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME, this.documentSearchFormControl);
87
- // Listen to search input and initiate filter documents if at least three characters entered
88
- this.documentFilterSubscription = this.documentSearchFormControl.valueChanges.pipe(switchMap((searchTerm) => this.filter(searchTerm.toLowerCase(), this.documentTreeData))).subscribe(documentTreeData => {
89
- this.nestedDataSource = documentTreeData;
90
- });
91
- // Subscribe to the input categories and documents, and generate tree data and initialise cdk tree
92
- this.categoriesAndDocumentsSubscription = this.categoriesAndDocuments.subscribe(categoriesAndDocumentsResult => {
62
+ this.categoriesAndDocumentsSubscription = this.categoriesAndDocuments.subscribe(categoriesAndDocuments => {
93
63
  // Using the mock data for now as we have to display the documents as well for demo purpose
94
- const categories = categoriesAndDocuments.categories; // categoriesAndDocuments.categories;
64
+ const categories = this.loadCategories(); // categoriesAndDocuments.categories;
95
65
  // Generate document tree data from categories
96
- this.documentTreeData = this.generateTreeData(categories);
66
+ const treeData = this.generateTreeData(categories);
97
67
  // Append uncategorised documents
98
- if (categoriesAndDocumentsResult.uncategorised_documents && categoriesAndDocumentsResult.uncategorised_documents.length > 0) {
99
- const uncategorisedDocuments = this.getUncategorisedDocuments(categoriesAndDocumentsResult.uncategorised_documents);
100
- this.documentTreeData.push(uncategorisedDocuments);
68
+ if (categoriesAndDocuments.uncategorised_documents && categoriesAndDocuments.uncategorised_documents.length > 0) {
69
+ const uncategorisedDocuments = this.getUncategorisedDocuments(categoriesAndDocuments.uncategorised_documents);
70
+ treeData.push(uncategorisedDocuments);
101
71
  }
102
72
  // Initialise cdk tree with generated data
103
- this.nestedDataSource = this.documentTreeData;
73
+ this.nestedDataSource = treeData;
104
74
  });
105
75
  }
106
76
  generateTreeData(categories) {
107
- return categories.reduce((tree, node) => [
108
- ...tree,
109
- ...[
110
- {
111
- name: node.category_name,
112
- type: DocumentTreeNodeType.FOLDER,
113
- children: [...this.generateTreeData(node.sub_categories), ...this.getDocuments(node.documents)]
114
- },
115
- ],
116
- ], []);
77
+ return categories.reduce((tree, node) => {
78
+ const newDocumentTreeNode = new DocumentTreeNode();
79
+ newDocumentTreeNode.name = node.category_name;
80
+ newDocumentTreeNode.type = 'category';
81
+ newDocumentTreeNode.children = [...this.generateTreeData(node.sub_categories), ...this.getDocuments(node.documents)];
82
+ return [
83
+ ...tree,
84
+ newDocumentTreeNode,
85
+ ];
86
+ }, []);
117
87
  }
118
88
  getDocuments(documents) {
119
89
  const documentsToReturn = [];
120
90
  documents.forEach(document => {
121
- documentsToReturn.push({ name: document.document_filename, type: DocumentTreeNodeType.DOCUMENT });
91
+ const documentTreeNode = new DocumentTreeNode();
92
+ documentTreeNode.name = document.document_filename;
93
+ documentTreeNode.type = 'document';
94
+ documentsToReturn.push(documentTreeNode);
122
95
  });
123
96
  return documentsToReturn;
124
97
  }
125
98
  getUncategorisedDocuments(uncategorisedDocuments) {
126
99
  const documents = [];
127
100
  uncategorisedDocuments.forEach(document => {
128
- documents.push({ name: document.document_filename, type: DocumentTreeNodeType.DOCUMENT });
101
+ const documentTreeNode = new DocumentTreeNode();
102
+ documentTreeNode.name = document.document_filename;
103
+ documentTreeNode.type = 'document';
104
+ documents.push(documentTreeNode);
129
105
  });
130
- return { name: CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE, type: DocumentTreeNodeType.FOLDER, children: documents };
106
+ const uncategorisedNode = new DocumentTreeNode();
107
+ uncategorisedNode.name = CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE;
108
+ uncategorisedNode.type = 'category';
109
+ uncategorisedNode.children = documents;
110
+ return uncategorisedNode;
131
111
  }
132
- filter(searchTerm, documentTreeData) {
133
- // Make a copy of the data so we do not mutate the original
134
- function copy(node) {
135
- return Object.assign({}, node);
136
- }
137
- let filteredData = documentTreeData;
138
- if (searchTerm && searchTerm.length > 2 && this.documentFilterFormGroup.controls[CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME].value.length > 2) {
139
- filteredData = documentTreeData.map(copy).filter(function filterTreeData(node) {
140
- if (node.name && node.name.toLowerCase().includes(searchTerm) && node.type === DocumentTreeNodeType.DOCUMENT) {
141
- return true;
142
- }
143
- // Call recursively if node has children
144
- if (node.children) {
145
- return (node.children = node.children.map(copy).filter(filterTreeData)).length;
146
- }
147
- });
148
- }
149
- return of(filteredData);
112
+ sortDataSourceAscAlphabetically() {
113
+ const sortedData = this.nestedDataSource.map(item => {
114
+ item.sortChildrenAscending();
115
+ const newDocumentTreeNode = new DocumentTreeNode();
116
+ newDocumentTreeNode.name = item.name;
117
+ newDocumentTreeNode.type = item.type;
118
+ newDocumentTreeNode.children = item.children;
119
+ return newDocumentTreeNode;
120
+ });
121
+ this.updateNodeData(sortedData);
122
+ }
123
+ sortDataSourceDescAlphabetically() {
124
+ const sortedData = this.nestedDataSource.map(item => {
125
+ item.sortChildrenDescending();
126
+ return item;
127
+ });
128
+ this.updateNodeData(sortedData);
150
129
  }
151
130
  ngOnDestroy() {
152
131
  if (this.categoriesAndDocumentsSubscription) {
153
132
  this.categoriesAndDocumentsSubscription.unsubscribe();
154
133
  }
155
- if (this.documentFilterSubscription) {
156
- this.documentFilterSubscription.unsubscribe();
157
- }
134
+ }
135
+ updateNodeData(data) {
136
+ const prevSelected = this.nestedTreeControl.expansionModel.selected.map((item) => {
137
+ return item.name;
138
+ });
139
+ this.nestedTreeControl.collapseAll();
140
+ this.nestedDataSource = data.map((item) => {
141
+ const newDocumentTreeNode = new DocumentTreeNode();
142
+ newDocumentTreeNode.name = item.name;
143
+ newDocumentTreeNode.type = item.type;
144
+ newDocumentTreeNode.children = item.children;
145
+ return newDocumentTreeNode;
146
+ });
147
+ const flattenedArray = this.nestedDataSource.map((item) => {
148
+ return item.flattenedAll;
149
+ }).flat();
150
+ const newObjects = flattenedArray.filter((item) => {
151
+ return prevSelected.includes(item.name);
152
+ });
153
+ newObjects.forEach(object => this.nestedTreeControl.expand(object));
154
+ }
155
+ loadCategories() {
156
+ return [
157
+ {
158
+ category_id: 'Beers',
159
+ category_name: 'Beers',
160
+ category_order: 1,
161
+ documents: [
162
+ {
163
+ document_url: '/test',
164
+ document_filename: 'Lager encyclopedia',
165
+ document_binary_url: '/test/binary',
166
+ attribute_path: '',
167
+ upload_timestamp: ''
168
+ },
169
+ {
170
+ document_url: '/test',
171
+ document_filename: 'Beers encyclopedia',
172
+ document_binary_url: '/test/binary',
173
+ attribute_path: '',
174
+ upload_timestamp: ''
175
+ },
176
+ {
177
+ document_url: '/test',
178
+ document_filename: 'Ale encyclopedia',
179
+ document_binary_url: '/test/binary',
180
+ attribute_path: '',
181
+ upload_timestamp: ''
182
+ }
183
+ ],
184
+ sub_categories: [
185
+ {
186
+ category_id: 'BeersBitters',
187
+ category_name: 'Bitters',
188
+ category_order: 1,
189
+ documents: [],
190
+ sub_categories: []
191
+ },
192
+ {
193
+ category_id: 'BeersAmerican',
194
+ category_name: 'American',
195
+ category_order: 2,
196
+ documents: [],
197
+ sub_categories: []
198
+ },
199
+ {
200
+ category_id: 'BeersAsian',
201
+ category_name: 'Asian',
202
+ category_order: 3,
203
+ documents: [],
204
+ sub_categories: []
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ category_id: 'Wines',
210
+ category_name: 'Wines',
211
+ category_order: 2,
212
+ documents: [],
213
+ sub_categories: [
214
+ {
215
+ category_id: 'WinesFrench',
216
+ category_name: 'French',
217
+ category_order: 1,
218
+ documents: [],
219
+ sub_categories: []
220
+ },
221
+ {
222
+ category_id: 'WinesItalian',
223
+ category_name: 'Italian',
224
+ category_order: 2,
225
+ documents: [],
226
+ sub_categories: []
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ category_id: 'Spirits',
232
+ category_name: 'Spirits',
233
+ category_order: 3,
234
+ documents: [],
235
+ sub_categories: [
236
+ {
237
+ category_id: 'SpiritsWhisky',
238
+ category_name: 'Scotch whisky',
239
+ category_order: 1,
240
+ documents: [],
241
+ sub_categories: [
242
+ {
243
+ category_id: 'WhiskyHighland',
244
+ category_name: 'Highland',
245
+ category_order: 1,
246
+ documents: [],
247
+ sub_categories: [
248
+ {
249
+ category_id: 'WhiskyHighland1',
250
+ category_name: 'Highland 1',
251
+ category_order: 1,
252
+ documents: [],
253
+ sub_categories: []
254
+ }
255
+ ]
256
+ },
257
+ {
258
+ category_id: 'WhiskyLowland',
259
+ category_name: 'Lowland',
260
+ category_order: 2,
261
+ documents: [],
262
+ sub_categories: [
263
+ {
264
+ category_id: 'WhiskyLowland1',
265
+ category_name: 'Lowland 1',
266
+ category_order: 1,
267
+ documents: [
268
+ {
269
+ document_url: '/test',
270
+ document_filename: 'Details about Whisky Lowland 1',
271
+ document_binary_url: '/test/binary',
272
+ attribute_path: '',
273
+ upload_timestamp: ''
274
+ }
275
+ ],
276
+ sub_categories: []
277
+ },
278
+ {
279
+ category_id: 'WhiskyLowland2',
280
+ category_name: 'Lowland 2',
281
+ category_order: 2,
282
+ documents: [],
283
+ sub_categories: []
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ category_id: 'WhiskyIslay',
289
+ category_name: 'Islay',
290
+ category_order: 3,
291
+ documents: [
292
+ {
293
+ document_url: '/test',
294
+ document_filename: 'Details about Whisky Islay',
295
+ document_binary_url: '/test/binary',
296
+ attribute_path: '',
297
+ upload_timestamp: ''
298
+ },
299
+ {
300
+ document_url: '/test',
301
+ document_filename: 'More information about Whisky Islay',
302
+ document_binary_url: '/test/binary',
303
+ attribute_path: '',
304
+ upload_timestamp: ''
305
+ }
306
+ ],
307
+ sub_categories: []
308
+ },
309
+ {
310
+ category_id: 'WhiskySpeyside',
311
+ category_name: 'Speyside',
312
+ category_order: 4,
313
+ documents: [],
314
+ sub_categories: []
315
+ },
316
+ {
317
+ category_id: 'WhiskyCampbeltown',
318
+ category_name: 'Campbeltown',
319
+ category_order: 5,
320
+ documents: [],
321
+ sub_categories: []
322
+ }
323
+ ]
324
+ }
325
+ ]
326
+ }
327
+ ];
158
328
  }
159
329
  }
160
330
  CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised documents';
161
- CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';
162
- CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS = 2;
163
331
  CaseFileViewFolderComponent.ɵfac = function CaseFileViewFolderComponent_Factory(t) { return new (t || CaseFileViewFolderComponent)(); };
164
- 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", "", "disabled", "", 1, "icon", "icon-document"], [1, "node-name", "node-name-document"], ["mat-icon-button", "", "cdkTreeNodeToggle", "", 1, "icon", "icon-folder"], [1, "document-count"], [1, "node-name", "node-name-folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
332
+ CaseFileViewFolderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], viewQuery: function CaseFileViewFolderComponent_Query(rf, ctx) { if (rf & 1) {
333
+ i0.ɵɵviewQuery(_c0, 3);
334
+ } if (rf & 2) {
335
+ let _t;
336
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tree = _t.first);
337
+ } }, inputs: { categoriesAndDocuments: "categoriesAndDocuments" }, decls: 10, vars: 3, consts: [[1, "document-folders-header"], [1, "document-folders-header__title"], [3, "sortAscending", "sortDescending"], [1, "document-tree-container"], [3, "dataSource", "treeControl"], ["tree", ""], ["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", 1, "node__iconImg"], [1, "node__name", "node-name-document"], ["mat-icon-button", "", "cdkTreeNodeToggle", "", 1, "node__icon"], ["src", "/assets/images/folder.png", 1, "node__iconImg"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
165
338
  i0.ɵɵelementStart(0, "div", 0);
166
339
  i0.ɵɵelementStart(1, "div", 1);
167
- i0.ɵɵelement(2, "input", 2);
340
+ i0.ɵɵtext(2, "Documents");
341
+ i0.ɵɵelementEnd();
342
+ i0.ɵɵelementStart(3, "div");
343
+ i0.ɵɵelementStart(4, "ccd-case-file-view-folder-sort", 2);
344
+ i0.ɵɵlistener("sortAscending", function CaseFileViewFolderComponent_Template_ccd_case_file_view_folder_sort_sortAscending_4_listener() { return ctx.sortDataSourceAscAlphabetically(); })("sortDescending", function CaseFileViewFolderComponent_Template_ccd_case_file_view_folder_sort_sortDescending_4_listener() { return ctx.sortDataSourceDescAlphabetically(); });
345
+ i0.ɵɵelementEnd();
346
+ i0.ɵɵelementEnd();
168
347
  i0.ɵɵelementEnd();
169
- i0.ɵɵelementStart(3, "div", 3);
170
- i0.ɵɵtext(4, "Documents");
348
+ i0.ɵɵelementStart(5, "div", 3);
349
+ i0.ɵɵelementStart(6, "cdk-tree", 4, 5);
350
+ i0.ɵɵtemplate(8, CaseFileViewFolderComponent_cdk_nested_tree_node_8_Template, 6, 1, "cdk-nested-tree-node", 6);
351
+ i0.ɵɵtemplate(9, CaseFileViewFolderComponent_cdk_nested_tree_node_9_Template, 10, 5, "cdk-nested-tree-node", 7);
171
352
  i0.ɵɵelementEnd();
172
353
  i0.ɵɵelementEnd();
173
- i0.ɵɵtemplate(5, CaseFileViewFolderComponent_div_5_Template, 5, 4, "div", 4);
174
354
  } if (rf & 2) {
175
- i0.ɵɵadvance(1);
176
- i0.ɵɵproperty("formGroup", ctx.documentFilterFormGroup);
177
- i0.ɵɵadvance(4);
178
- i0.ɵɵproperty("ngIf", ctx.documentTreeData);
179
- } }, 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}.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}.document-tree[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:36px;height:36px;background-size:100%;border:0;background-color:#faf8f8}.document-tree[_ngcontent-%COMP%] .icon-folder[_ngcontent-%COMP%]{background-image:url(/assets/images/folder.png)}.document-tree[_ngcontent-%COMP%] .icon-document[_ngcontent-%COMP%]{background-image:url(/assets/images/document.png)}.document-tree[_ngcontent-%COMP%] .node-name[_ngcontent-%COMP%]{margin-left:6px}.document-tree[_ngcontent-%COMP%] .node-name-document[_ngcontent-%COMP%], .document-tree[_ngcontent-%COMP%] .node-name-folder[_ngcontent-%COMP%]{margin-top:4px}.document-tree[_ngcontent-%COMP%] .document-count[_ngcontent-%COMP%]{color:#fff}"] });
355
+ i0.ɵɵadvance(6);
356
+ i0.ɵɵproperty("dataSource", ctx.nestedDataSource)("treeControl", ctx.nestedTreeControl);
357
+ i0.ɵɵadvance(3);
358
+ i0.ɵɵproperty("cdkTreeNodeDefWhen", ctx.nestedChildren);
359
+ } }, directives: [i1.CaseFileViewFolderSortComponent, i2.CdkTree, i2.CdkTreeNodeDef, i2.CdkNestedTreeNode, i2.CdkTreeNodeToggle, i2.CdkTreeNodeOutlet], styles: [".document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #c9c9c9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{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;padding:6px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:24px;width:24px}.node__count[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;padding-top:4px}.node__name[_ngcontent-%COMP%]{margin-left:4px}"] });
180
360
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
181
361
  type: Component,
182
362
  args: [{
183
363
  selector: 'ccd-case-file-view-folder',
364
+ templateUrl: './case-file-view-folder.component.html',
184
365
  styleUrls: ['./case-file-view-folder.component.scss'],
185
- templateUrl: './case-file-view-folder.component.html'
186
366
  }]
187
367
  }], function () { return []; }, { categoriesAndDocuments: [{
188
368
  type: Input
369
+ }], tree: [{
370
+ type: ViewChild,
371
+ args: ['tree', { static: true }]
189
372
  }] }); })();
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBb0MsU0FBUyxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUtMLG9CQUFvQixFQUNyQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7SUNBMUYsMkJBQWdFO0lBQzlELGtDQUNGO0lBQUEsaUJBQU07OztJQUdKLGdEQUE0RTtJQUMxRSwrQkFBa0I7SUFDaEIsNkJBQ1M7SUFDVCxnQ0FBMkM7SUFBQSxZ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QVksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLGtDQUFrQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2RDtRQUNELElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ25DLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMvQztJQUNILENBQUM7O0FBM0d1Qix5REFBNkIsR0FBRyx5QkFBeUIsQ0FBQztBQUMxRCw2REFBaUMsR0FBRywyQkFBMkIsQ0FBQztBQUNoRSxxREFBeUIsR0FBRyxDQUFDLENBQUM7c0dBSjNDLDJCQUEyQjtnRUFBM0IsMkJBQTJCO1FDbkJ4Qyw4QkFBdUM7UUFDckMsOEJBQThFO1FBQzVFLDJCQUt3QztRQUMxQyxpQkFBTTtRQUNOLDhCQUE2QjtRQUFBLHlCQUFTO1FBQUEsaUJBQU07UUFDOUMsaUJBQU07UUFDTiw0RUEwQk07O1FBcENvQyxlQUFxQztRQUFyQyx1REFBcUM7UUFVbkQsZUFBc0I7UUFBdEIsMkNBQXNCOzt1RkRRckMsMkJBQTJCO2NBTHZDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztnQkFDckQsV0FBVyxFQUFFLHdDQUF3QzthQUN0RDtzQ0FPaUIsc0JBQXNCO2tCQUFyQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmVzdGVkVHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENhc2VGaWxlVmlld0NhdGVnb3J5LFxuICBDYXNlRmlsZVZpZXdEb2N1bWVudCxcbiAgQ2F0ZWdvcmllc0FuZERvY3VtZW50cyxcbiAgRG9jdW1lbnRUcmVlTm9kZSxcbiAgRG9jdW1lbnRUcmVlTm9kZVR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL2Nhc2UtZmlsZS12aWV3JztcbmltcG9ydCB7IGNhdGVnb3JpZXNBbmREb2N1bWVudHMgfSBmcm9tICcuLi8uLi90ZXN0LWRhdGEvY2F0ZWdvcmllcy1hbmQtZG9jdW1lbnRzLXRlc3QtZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXInLFxuICBzdHlsZVVybHM6IFsnLi9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVOQ0FURUdPUklTRURfRE9DVU1FTlRTX1RJVExFID0gJ1VuY2F0ZWdvcmlzZWQgZG9jdW1lbnRzJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FID0gJ2RvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2wnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNSU5JTVVNX1NFQVJDSF9DSEFSQUNURVJTID0gMjtcblxuICBASW5wdXQoKSBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50czogT2JzZXJ2YWJsZTxDYXRlZ29yaWVzQW5kRG9jdW1lbnRzPjtcblxuICBwdWJsaWMgbmVzdGVkVHJlZUNvbnRyb2w6IE5lc3RlZFRyZWVDb250cm9sPERvY3VtZW50VHJlZU5vZGU+O1xuICBwdWJsaWMgbmVzdGVkRGF0YVNvdXJjZTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgY2F0ZWdvcmllczogQ2FzZUZpbGVWaWV3Q2F0ZWdvcnlbXSA9IFtdO1xuICBwdWJsaWMgY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZG9jdW1lbnRGaWx0ZXJGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgZG9jdW1lbnRUcmVlRGF0YTogRG9jdW1lbnRUcmVlTm9kZVtdO1xuICBwdWJsaWMgZG9jdW1lbnRGaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGdldENoaWxkcmVuID0gKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpID0+IG9mKG5vZGUuY2hpbGRyZW4pO1xuICBwdWJsaWMgbmVzdGVkQ2hpbGRyZW4gPSAoXzogbnVtYmVyLCBub2RlRGF0YTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gbm9kZURhdGEuY2hpbGRyZW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5uZXN0ZWRUcmVlQ29udHJvbCA9IG5ldyBOZXN0ZWRUcmVlQ29udHJvbDxEb2N1bWVudFRyZWVOb2RlPih0aGlzLmdldENoaWxkcmVuKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgdGhpcy5kb2N1bWVudFNlYXJjaEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICB0aGlzLmRvY3VtZW50RmlsdGVyRm9ybUdyb3VwLmFkZENvbnRyb2woQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50LkRPQ1VNRU5UX1NFQVJDSF9GT1JNX0NPTlRST0xfTkFNRSwgdGhpcy5kb2N1bWVudFNlYXJjaEZvcm1Db250cm9sKTtcblxuICAgIC8vIExpc3RlbiB0byBzZWFyY2ggaW5wdXQgYW5kIGluaXRpYXRlIGZpbHRlciBkb2N1bWVudHMgaWYgYXQgbGVhc3QgdGhyZWUgY2hhcmFjdGVycyBlbnRlcmVkXG4gICAgdGhpcy5kb2N1bWVudEZpbHRlclN1YnNjcmlwdGlvbiA9IHRoaXMuZG9jdW1lbnRTZWFyY2hGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB0aGlzLmZpbHRlcihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCksIHRoaXMuZG9jdW1lbnRUcmVlRGF0YSkpXG4gICAgKS5zdWJzY3JpYmUoZG9jdW1lbnRUcmVlRGF0YSA9PiB7XG4gICAgICB0aGlzLm5lc3RlZERhdGFTb3VyY2UgPSBkb2N1bWVudFRyZWVEYXRhO1xuICAgIH0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBpbnB1dCBjYXRlZ29yaWVzIGFuZCBkb2N1bWVudHMsIGFuZCBnZW5lcmF0ZSB0cmVlIGRhdGEgYW5kIGluaXRpYWxpc2UgY2RrIHRyZWVcbiAgICB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24gPSB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHMuc3Vic2NyaWJlKGNhdGVnb3JpZXNBbmREb2N1bWVudHNSZXN1bHQgPT4ge1xuICAgICAgLy8gVXNpbmcgdGhlIG1vY2sgZGF0YSBmb3Igbm93IGFzIHdlIGhhdmUgdG8gZGlzcGxheSB0aGUgZG9jdW1lbnRzIGFzIHdlbGwgZm9yIGRlbW8gcHVycG9zZVxuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNBbmREb2N1bWVudHMuY2F0ZWdvcmllczsgLy8gY2F0ZWdvcmllc0FuZERvY3VtZW50cy5jYXRlZ29yaWVzO1xuICAgICAgLy8gR2VuZXJhdGUgZG9jdW1lbnQgdHJlZSBkYXRhIGZyb20gY2F0ZWdvcmllc1xuICAgICAgdGhpcy5kb2N1bWVudFRyZWVEYXRhID0gdGhpcy5nZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXMpO1xuICAgICAgLy8gQXBwZW5kIHVuY2F0ZWdvcmlzZWQgZG9jdW1lbnRzXG4gICAgICBpZiAoY2F0ZWdvcmllc0FuZERvY3VtZW50c1Jlc3VsdC51bmNhdGVnb3Jpc2VkX2RvY3VtZW50cyAmJiBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzUmVzdWx0LnVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdW5jYXRlZ29yaXNlZERvY3VtZW50cyA9IHRoaXMuZ2V0VW5jYXRlZ29yaXNlZERvY3VtZW50cyhjYXRlZ29yaWVzQW5kRG9jdW1lbnRzUmVzdWx0LnVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFRyZWVEYXRhLnB1c2godW5jYXRlZ29yaXNlZERvY3VtZW50cyk7XG4gICAgICB9XG4gICAgICAvLyBJbml0aWFsaXNlIGNkayB0cmVlIHdpdGggZ2VuZXJhdGVkIGRhdGFcbiAgICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IHRoaXMuZG9jdW1lbnRUcmVlRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXM6IENhc2VGaWxlVmlld0NhdGVnb3J5W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZSgodHJlZSwgbm9kZSkgPT4gW1xuICAgICAgLi4udHJlZSxcbiAgICAgIC4uLltcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IG5vZGUuY2F0ZWdvcnlfbmFtZSxcbiAgICAgICAgICB0eXBlOiBEb2N1bWVudFRyZWVOb2RlVHlwZS5GT0xERVIsXG4gICAgICAgICAgY2hpbGRyZW46IFsuLi50aGlzLmdlbmVyYXRlVHJlZURhdGEobm9kZS5zdWJfY2F0ZWdvcmllcyksIC4uLnRoaXMuZ2V0RG9jdW1lbnRzKG5vZGUuZG9jdW1lbnRzKV1cbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgXSwgW10pO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50cyhkb2N1bWVudHM6IENhc2VGaWxlVmlld0RvY3VtZW50W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIGNvbnN0IGRvY3VtZW50c1RvUmV0dXJuOiBEb2N1bWVudFRyZWVOb2RlW10gPSBbXTtcbiAgICBkb2N1bWVudHMuZm9yRWFjaChkb2N1bWVudCA9PiB7XG4gICAgICBkb2N1bWVudHNUb1JldHVybi5wdXNoKHsgbmFtZTogZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWUsIHR5cGU6IERvY3VtZW50VHJlZU5vZGVUeXBlLkRPQ1VNRU5UIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkb2N1bWVudHNUb1JldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVbmNhdGVnb3Jpc2VkRG9jdW1lbnRzKHVuY2F0ZWdvcmlzZWREb2N1bWVudHM6IENhc2VGaWxlVmlld0RvY3VtZW50W10pOiBEb2N1bWVudFRyZWVOb2RlIHtcbiAgICBjb25zdCBkb2N1bWVudHM6IERvY3VtZW50VHJlZU5vZGVbXSA9IFtdO1xuICAgIHVuY2F0ZWdvcmlzZWREb2N1bWVudHMuZm9yRWFjaChkb2N1bWVudCA9PiB7XG4gICAgICBkb2N1bWVudHMucHVzaCh7IG5hbWU6IGRvY3VtZW50LmRvY3VtZW50X2ZpbGVuYW1lLCB0eXBlOiBEb2N1bWVudFRyZWVOb2RlVHlwZS5ET0NVTUVOVCB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4geyBuYW1lOiBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEUsIHR5cGU6IERvY3VtZW50VHJlZU5vZGVUeXBlLkZPTERFUiwgY2hpbGRyZW46IGRvY3VtZW50cyB9O1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihzZWFyY2hUZXJtOiBzdHJpbmcsIGRvY3VtZW50VHJlZURhdGE6IERvY3VtZW50VHJlZU5vZGVbXSk6IE9ic2VydmFibGU8RG9jdW1lbnRUcmVlTm9kZVtdPiB7XG4gICAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGRhdGEgc28gd2UgZG8gbm90IG11dGF0ZSB0aGUgb3JpZ2luYWxcbiAgICBmdW5jdGlvbiBjb3B5KG5vZGU6IERvY3VtZW50VHJlZU5vZGUpIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBub2RlKTtcbiAgICB9XG5cbiAgICBsZXQgZmlsdGVyZWREYXRhID0gZG9jdW1lbnRUcmVlRGF0YTtcbiAgICBpZiAoc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+IDIgJiYgdGhpcy5kb2N1bWVudEZpbHRlckZvcm1Hcm91cC5jb250cm9sc1tDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuRE9DVU1FTlRfU0VBUkNIX0ZPUk1fQ09OVFJPTF9OQU1FXS52YWx1ZS5sZW5ndGggPiAyKSB7XG4gICAgICBmaWx0ZXJlZERhdGEgPSBkb2N1bWVudFRyZWVEYXRhLm1hcChjb3B5KS5maWx0ZXIoZnVuY3Rpb24gZmlsdGVyVHJlZURhdGEobm9kZTogRG9jdW1lbnRUcmVlTm9kZSkge1xuICAgICAgICBpZiAobm9kZS5uYW1lICYmIG5vZGUubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pICYmIG5vZGUudHlwZSA9PT0gRG9jdW1lbnRUcmVlTm9kZVR5cGUuRE9DVU1FTlQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxsIHJlY3Vyc2l2ZWx5IGlmIG5vZGUgaGFzIGNoaWxkcmVuXG4gICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgcmV0dXJuIChub2RlLmNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5tYXAoY29weSkuZmlsdGVyKGZpbHRlclRyZWVEYXRhKSkubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKGZpbHRlcmVkRGF0YSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRvY3VtZW50RmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZmlsdGVyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBkb2N1bWVudC1maWx0ZXJcIiBbZm9ybUdyb3VwXT1cImRvY3VtZW50RmlsdGVyRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGRvY3VtZW50LXNlYXJjaFwiXG4gICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgIGlkPVwiZG9jdW1lbnQtc2VhcmNoXCJcbiAgICAgIG5hbWU9XCJkb2N1bWVudFNlYXJjaEZvcm1Db250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50U2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZG9jdW1lbnQgbmFtZVwiPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50cy10aXRsZVwiPkRvY3VtZW50czwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZG9jdW1lbnQtdHJlZVwiICpuZ0lmPVwiZG9jdW1lbnRUcmVlRGF0YVwiPlxuICA8ZGl2ICpuZ0lmPVwiIW5lc3RlZERhdGFTb3VyY2UgfHwgbmVzdGVkRGF0YVNvdXJjZS5sZW5ndGggPT09IDBcIj5cbiAgICBObyByZXN1bHRzIGZvdW5kXG4gIDwvZGl2PlxuICA8Y2RrLXRyZWUgW2RhdGFTb3VyY2VdPVwibmVzdGVkRGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJuZXN0ZWRUcmVlQ29udHJvbFwiPlxuICAgIDwhLS0gZG9jdW1lbnQgLS0+XG4gICAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlXCIgY2xhc3M9XCJkb2N1bWVudC10cmVlLW5vZGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uIGljb24tZG9jdW1lbnRcIiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZWQ+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGUtbmFtZSBub2RlLW5hbWUtZG9jdW1lbnRcIj57e25vZGUubmFtZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZGstbmVzdGVkLXRyZWUtbm9kZT5cbiAgICA8IS0tIGZvbGRlci0tPlxuICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogbmVzdGVkQ2hpbGRyZW5cIiBjbGFzcz1cImRvY3VtZW50LXRyZWUtbm9kZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24gaWNvbi1mb2xkZXJcIiBtYXQtaWNvbi1idXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCIndG9nZ2xlICcgKyBub2RlLm5hbWVcIiBjZGtUcmVlTm9kZVRvZ2dsZT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3VtZW50LWNvdW50XCI+e3tub2RlLmNvdW50fX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGUtbmFtZSBub2RlLW5hbWUtZm9sZGVyXCI+e3tub2RlLm5hbWV9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3MuZG9jdW1lbnQtdHJlZS1pbnZpc2libGVdPVwiIW5lc3RlZFRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwvY2RrLXRyZWU+XG48L2Rpdj5cbiJdfQ==
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyL2Nhc2UtZmlsZS12aWV3LWZvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBc0UsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0lDVXhJLCtDQUE0RTtJQUMxRSw4QkFBa0I7SUFDaEIsa0NBQW9EO0lBQ2xELDBCQUE2RDtJQUMvRCxpQkFBUztJQUNULGdDQUE0QztJQUFBLFlBQWE7SUFBQSxpQkFBTztJQUNsRSxpQkFBTTtJQUNSLGlCQUF1Qjs7O0lBRnlCLGVBQWE7SUFBYixrQ0FBYTs7O0lBSTdELCtDQUFrRztJQUNoRyw4QkFBa0I7SUFDaEIsa0NBQXVHO0lBQ3JHLDBCQUEyRDtJQUMzRCxnQ0FBMEI7SUFB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QkFDckMsV0FBVyxFQUFFLHdDQUF3QztnQkFDckQsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7YUFDdEQ7c0NBSWlCLHNCQUFzQjtrQkFBckMsS0FBSztZQU9vQyxJQUFJO2tCQUE3QyxTQUFTO21CQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtUcmVlLCBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VGaWxlVmlld0NhdGVnb3J5LCBDYXNlRmlsZVZpZXdEb2N1bWVudCwgQ2F0ZWdvcmllc0FuZERvY3VtZW50cywgRG9jdW1lbnRUcmVlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZpbGUtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWZpbGUtdmlldy1mb2xkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEUgPSAnVW5jYXRlZ29yaXNlZCBkb2N1bWVudHMnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzOiBPYnNlcnZhYmxlPENhdGVnb3JpZXNBbmREb2N1bWVudHM+O1xuXG4gIHB1YmxpYyBuZXN0ZWRUcmVlQ29udHJvbDogTmVzdGVkVHJlZUNvbnRyb2w8RG9jdW1lbnRUcmVlTm9kZT47XG4gIHB1YmxpYyBuZXN0ZWREYXRhU291cmNlOiBEb2N1bWVudFRyZWVOb2RlW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzOiBDYXNlRmlsZVZpZXdDYXRlZ29yeVtdID0gW107XG4gIHB1YmxpYyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgndHJlZScsIHtzdGF0aWM6IHRydWV9KSBwdWJsaWMgdHJlZTogQ2RrVHJlZTxEb2N1bWVudFRyZWVOb2RlPjtcblxuICBwcml2YXRlIGdldENoaWxkcmVuID0gKG5vZGU6IERvY3VtZW50VHJlZU5vZGUpID0+IG9mKG5vZGUuY2hpbGRyZW4pO1xuICBwdWJsaWMgbmVzdGVkQ2hpbGRyZW4gPSAoXzogbnVtYmVyLCBub2RlRGF0YTogRG9jdW1lbnRUcmVlTm9kZSkgPT4gbm9kZURhdGEuY2hpbGRyZW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5uZXN0ZWRUcmVlQ29udHJvbCA9IG5ldyBOZXN0ZWRUcmVlQ29udHJvbDxEb2N1bWVudFRyZWVOb2RlPih0aGlzLmdldENoaWxkcmVuKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHNTdWJzY3JpcHRpb24gPSB0aGlzLmNhdGVnb3JpZXNBbmREb2N1bWVudHMuc3Vic2NyaWJlKGNhdGVnb3JpZXNBbmREb2N1bWVudHMgPT4ge1xuICAgICAgLy8gVXNpbmcgdGhlIG1vY2sgZGF0YSBmb3Igbm93IGFzIHdlIGhhdmUgdG8gZGlzcGxheSB0aGUgZG9jdW1lbnRzIGFzIHdlbGwgZm9yIGRlbW8gcHVycG9zZVxuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMubG9hZENhdGVnb3JpZXMoKTsgLy8gY2F0ZWdvcmllc0FuZERvY3VtZW50cy5jYXRlZ29yaWVzO1xuICAgICAgLy8gR2VuZXJhdGUgZG9jdW1lbnQgdHJlZSBkYXRhIGZyb20gY2F0ZWdvcmllc1xuICAgICAgY29uc3QgdHJlZURhdGEgPSB0aGlzLmdlbmVyYXRlVHJlZURhdGEoY2F0ZWdvcmllcyk7XG4gICAgICAvLyBBcHBlbmQgdW5jYXRlZ29yaXNlZCBkb2N1bWVudHNcbiAgICAgIGlmIChjYXRlZ29yaWVzQW5kRG9jdW1lbnRzLnVuY2F0ZWdvcmlzZWRfZG9jdW1lbnRzICYmIGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzID0gdGhpcy5nZXRVbmNhdGVnb3Jpc2VkRG9jdW1lbnRzKGNhdGVnb3JpZXNBbmREb2N1bWVudHMudW5jYXRlZ29yaXNlZF9kb2N1bWVudHMpO1xuICAgICAgICB0cmVlRGF0YS5wdXNoKHVuY2F0ZWdvcmlzZWREb2N1bWVudHMpO1xuICAgICAgfVxuICAgICAgLy8gSW5pdGlhbGlzZSBjZGsgdHJlZSB3aXRoIGdlbmVyYXRlZCBkYXRhXG4gICAgICB0aGlzLm5lc3RlZERhdGFTb3VyY2UgPSB0cmVlRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVRyZWVEYXRhKGNhdGVnb3JpZXM6IENhc2VGaWxlVmlld0NhdGVnb3J5W10pOiBEb2N1bWVudFRyZWVOb2RlW10ge1xuICAgIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZSgodHJlZSwgbm9kZSkgPT4ge1xuICAgICAgY29uc3QgbmV3RG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBub2RlLmNhdGVnb3J5X25hbWU7XG4gICAgICBuZXdEb2N1bWVudFRyZWVOb2RlLnR5cGUgPSAnY2F0ZWdvcnknO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IFsuLi50aGlzLmdlbmVyYXRlVHJlZURhdGEobm9kZS5zdWJfY2F0ZWdvcmllcyksIC4uLnRoaXMuZ2V0RG9jdW1lbnRzKG5vZGUuZG9jdW1lbnRzKV07XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnRyZWUsXG4gICAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUsXG4gICAgICBdO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREb2N1bWVudHMoZG9jdW1lbnRzOiBDYXNlRmlsZVZpZXdEb2N1bWVudFtdKTogRG9jdW1lbnRUcmVlTm9kZVtdIHtcbiAgICBjb25zdCBkb2N1bWVudHNUb1JldHVybjogRG9jdW1lbnRUcmVlTm9kZVtdID0gW107XG4gICAgZG9jdW1lbnRzLmZvckVhY2goZG9jdW1lbnQgPT4ge1xuICAgICAgY29uc3QgZG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUudHlwZSA9ICdkb2N1bWVudCc7XG5cbiAgICAgIGRvY3VtZW50c1RvUmV0dXJuLnB1c2goZG9jdW1lbnRUcmVlTm9kZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZG9jdW1lbnRzVG9SZXR1cm47XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5jYXRlZ29yaXNlZERvY3VtZW50cyh1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzOiBDYXNlRmlsZVZpZXdEb2N1bWVudFtdKTogRG9jdW1lbnRUcmVlTm9kZSB7XG4gICAgY29uc3QgZG9jdW1lbnRzOiBEb2N1bWVudFRyZWVOb2RlW10gPSBbXTtcbiAgICB1bmNhdGVnb3Jpc2VkRG9jdW1lbnRzLmZvckVhY2goZG9jdW1lbnQgPT4ge1xuICAgICAgY29uc3QgZG9jdW1lbnRUcmVlTm9kZSA9IG5ldyBEb2N1bWVudFRyZWVOb2RlKCk7XG4gICAgICBkb2N1bWVudFRyZWVOb2RlLm5hbWUgPSBkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZTtcbiAgICAgIGRvY3VtZW50VHJlZU5vZGUudHlwZSA9ICdkb2N1bWVudCc7XG5cbiAgICAgIGRvY3VtZW50cy5wdXNoKGRvY3VtZW50VHJlZU5vZGUpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdW5jYXRlZ29yaXNlZE5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgIHVuY2F0ZWdvcmlzZWROb2RlLm5hbWUgPSBDYXNlRmlsZVZpZXdGb2xkZXJDb21wb25lbnQuVU5DQVRFR09SSVNFRF9ET0NVTUVOVFNfVElUTEU7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUudHlwZSA9ICdjYXRlZ29yeSc7XG4gICAgdW5jYXRlZ29yaXNlZE5vZGUuY2hpbGRyZW4gPSBkb2N1bWVudHM7XG5cbiAgICByZXR1cm4gdW5jYXRlZ29yaXNlZE5vZGU7XG4gIH1cblxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VBc2NBbHBoYWJldGljYWxseSgpIHtcbiAgICBjb25zdCBzb3J0ZWREYXRhID0gdGhpcy5uZXN0ZWREYXRhU291cmNlLm1hcChpdGVtID0+IHtcbiAgICAgIGl0ZW0uc29ydENoaWxkcmVuQXNjZW5kaW5nKCk7XG5cbiAgICAgIGNvbnN0IG5ld0RvY3VtZW50VHJlZU5vZGUgPSBuZXcgRG9jdW1lbnRUcmVlTm9kZSgpO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS50eXBlID0gaXRlbS50eXBlO1xuICAgICAgbmV3RG9jdW1lbnRUcmVlTm9kZS5jaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgIHJldHVybiBuZXdEb2N1bWVudFRyZWVOb2RlO1xuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVOb2RlRGF0YShzb3J0ZWREYXRhKTtcbiAgfVxuICBwdWJsaWMgc29ydERhdGFTb3VyY2VEZXNjQWxwaGFiZXRpY2FsbHkoKSB7XG4gICAgY29uc3Qgc29ydGVkRGF0YSA9IHRoaXMubmVzdGVkRGF0YVNvdXJjZS5tYXAoaXRlbSA9PiB7XG4gICAgICBpdGVtLnNvcnRDaGlsZHJlbkRlc2NlbmRpbmcoKTtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVOb2RlRGF0YShzb3J0ZWREYXRhKTtcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcmllc0FuZERvY3VtZW50c1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzQW5kRG9jdW1lbnRzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZU5vZGVEYXRhKGRhdGE6IERvY3VtZW50VHJlZU5vZGVbXSkge1xuICAgIGNvbnN0IHByZXZTZWxlY3RlZCA9IHRoaXMubmVzdGVkVHJlZUNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuc2VsZWN0ZWQubWFwKFxuICAgICAgKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5uZXN0ZWRUcmVlQ29udHJvbC5jb2xsYXBzZUFsbCgpO1xuICAgIHRoaXMubmVzdGVkRGF0YVNvdXJjZSA9IGRhdGEubWFwKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBuZXdEb2N1bWVudFRyZWVOb2RlID0gbmV3IERvY3VtZW50VHJlZU5vZGUoKTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUudHlwZSA9IGl0ZW0udHlwZTtcbiAgICAgIG5ld0RvY3VtZW50VHJlZU5vZGUuY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuO1xuXG4gICAgICByZXR1cm4gbmV3RG9jdW1lbnRUcmVlTm9kZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZEFycmF5ID0gdGhpcy5uZXN0ZWREYXRhU291cmNlLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0uZmxhdHRlbmVkQWxsO1xuICAgIH0pLmZsYXQoKTtcbiAgICBjb25zdCBuZXdPYmplY3RzID0gZmxhdHRlbmVkQXJyYXkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gcHJldlNlbGVjdGVkLmluY2x1ZGVzKGl0ZW0ubmFtZSk7XG4gICAgfSk7XG4gICAgbmV3T2JqZWN0cy5mb3JFYWNoKG9iamVjdCA9PiB0aGlzLm5lc3RlZFRyZWVDb250cm9sLmV4cGFuZChvYmplY3QpKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkQ2F0ZWdvcmllcygpOiBDYXNlRmlsZVZpZXdDYXRlZ29yeVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogJ0JlZXJzJyxcbiAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0JlZXJzJyxcbiAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDEsXG4gICAgICAgIGRvY3VtZW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnTGFnZXIgZW5jeWNsb3BlZGlhJyxcbiAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogJydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnQmVlcnMgZW5jeWNsb3BlZGlhJyxcbiAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgdXBsb2FkX3RpbWVzdGFtcDogJydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnQWxlIGVuY3ljbG9wZWRpYScsXG4gICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6ICcnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnNCaXR0ZXJzJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdCaXR0ZXJzJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdCZWVyc0FtZXJpY2FuJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdBbWVyaWNhbicsXG4gICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMixcbiAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnQmVlcnNBc2lhbicsXG4gICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQXNpYW4nLFxuICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDMsXG4gICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogJ1dpbmVzJyxcbiAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ1dpbmVzJyxcbiAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaW5lc0ZyZW5jaCcsXG4gICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnRnJlbmNoJyxcbiAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaW5lc0l0YWxpYW4nLFxuICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0l0YWxpYW4nLFxuICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogJ1NwaXJpdHMnLFxuICAgICAgICBjYXRlZ29yeV9uYW1lOiAnU3Bpcml0cycsXG4gICAgICAgIGNhdGVnb3J5X29yZGVyOiAzLFxuICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnU3Bpcml0c1doaXNreScsXG4gICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnU2NvdGNoIHdoaXNreScsXG4gICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lIaWdobGFuZCcsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0hpZ2hsYW5kJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtdLFxuICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5SGlnaGxhbmQxJyxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0hpZ2hsYW5kIDEnLFxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9vcmRlcjogMSxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6ICdXaGlza3lMb3dsYW5kJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnTG93bGFuZCcsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXSxcbiAgICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUxvd2xhbmQxJyxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfbmFtZTogJ0xvd2xhbmQgMScsXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiAxLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF91cmw6ICcvdGVzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9maWxlbmFtZTogJ0RldGFpbHMgYWJvdXQgV2hpc2t5IExvd2xhbmQgMScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZV9wYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBzdWJfY2F0ZWdvcmllczogW11cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5TG93bGFuZDInLFxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnTG93bGFuZCAyJyxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzOiBbXVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiAnV2hpc2t5SXNsYXknLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X25hbWU6ICdJc2xheScsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfb3JkZXI6IDMsXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X3VybDogJy90ZXN0JyxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6ICdEZXRhaWxzIGFib3V0IFdoaXNreSBJc2xheScsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6ICcvdGVzdC9iaW5hcnknLFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVfcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICAgIHVwbG9hZF90aW1lc3RhbXA6ICcnXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF91cmw6ICcvdGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiAnTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBXaGlza3kgSXNsYXknLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiAnL3Rlc3QvYmluYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlX3BhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICB1cGxvYWRfdGltZXN0YW1wOiAnJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreVNwZXlzaWRlJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnU3BleXNpZGUnLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiA0LFxuICAgICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogJ1doaXNreUNhbXBiZWx0b3duJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9uYW1lOiAnQ2FtcGJlbHRvd24nLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X29yZGVyOiA1LFxuICAgICAgICAgICAgICAgIGRvY3VtZW50czogW10sXG4gICAgICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXM6IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtZm9sZGVycy1oZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50LWZvbGRlcnMtaGVhZGVyX190aXRsZVwiPkRvY3VtZW50czwvZGl2PlxuICA8ZGl2PlxuICAgIDxjY2QtY2FzZS1maWxlLXZpZXctZm9sZGVyLXNvcnRcbiAgICAgIChzb3J0QXNjZW5kaW5nKT1cInNvcnREYXRhU291cmNlQXNjQWxwaGFiZXRpY2FsbHkoKVwiXG4gICAgICAoc29ydERlc2NlbmRpbmcpPVwic29ydERhdGFTb3VyY2VEZXNjQWxwaGFiZXRpY2FsbHkoKVwiXG4gICAgPjwvY2NkLWNhc2UtZmlsZS12aWV3LWZvbGRlci1zb3J0PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1jb250YWluZXJcIj5cbiAgPGNkay10cmVlICN0cmVlIFtkYXRhU291cmNlXT1cIm5lc3RlZERhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwibmVzdGVkVHJlZUNvbnRyb2xcIj5cbiAgICA8IS0tIGRvY3VtZW50IC0tPlxuICAgIDxjZGstbmVzdGVkLXRyZWUtbm9kZSAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1ub2RlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZV9faWNvblwiIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZD5cbiAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1hZ2VzL2RvY3VtZW50LnBuZ1wiIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJub2RlX19uYW1lIG5vZGUtbmFtZS1kb2N1bWVudFwiPnt7bm9kZS5uYW1lfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkay1uZXN0ZWQtdHJlZS1ub2RlPlxuICAgIDwhLS0gZm9sZGVyLS0+XG4gICAgPGNkay1uZXN0ZWQtdHJlZS1ub2RlICpjZGtUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBuZXN0ZWRDaGlsZHJlblwiIGNsYXNzPVwiZG9jdW1lbnQtdHJlZS1ub2RlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm9kZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibm9kZV9faWNvblwiIG1hdC1pY29uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIid0b2dnbGUgJyArIG5vZGUubmFtZVwiIGNka1RyZWVOb2RlVG9nZ2xlPlxuICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvZm9sZGVyLnBuZ1wiIGNsYXNzPVwibm9kZV9faWNvbkltZ1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kZV9fY291bnRcIj57e25vZGUuY2hpbGREb2N1bWVudENvdW50fX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZGVfX25hbWUgbm9kZV9fbmFtZS0tZm9sZGVyXCI+e3tub2RlLm5hbWV9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbY2xhc3MuZG9jdW1lbnQtdHJlZS1pbnZpc2libGVdPVwiIW5lc3RlZFRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBjZGtUcmVlTm9kZU91dGxldD48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwvY2RrLXRyZWU+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,6 @@
1
1
  export * from './case-file-view-folder/case-file-view-folder.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50JztcbiJdfQ==
2
+ export * from './case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component';
3
+ export * from './shared';
4
+ export * from './case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component';
5
+ export * from './shared';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx5RkFBeUYsQ0FBQztBQUV4RyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHlGQUF5RixDQUFDO0FBRXhHLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXNlLWZpbGUtdmlldy1mb2xkZXIvY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXctb3ZlcmxheS1tZW51LWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL3NoYXJlZC9jYXNlLWZpbGUtdmlldy1vdmVybGF5LW1lbnUvY2FzZS1maWxlLXZpZXctb3ZlcmxheS1tZW51LWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FzZUZpbGVWaWV3T3ZlcmxheU1lbnVJdGVtIHtcbiAgYWN0aW9uVGV4dDogc3RyaW5nO1xuICBpY29uU3JjPzogc3RyaW5nO1xuICBhY3Rpb25GbigpOiB2b2lkO1xufVxuIl19