@messaia/cdk 13.3.6-rc10 → 13.3.6-rc13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/base/components/generic-list.component.mjs +14 -7
- package/esm2020/lib/chips/chips.module.mjs +15 -5
- package/esm2020/lib/chips/components/chips.component.mjs +188 -180
- package/esm2020/lib/chips/directives/autocomplete-option.directive.mjs +18 -0
- package/esm2020/lib/chips/directives/chip.directive.mjs +18 -0
- package/esm2020/lib/common/functions/utils.mjs +15 -1
- package/esm2020/lib/forms/components/generic-form/generic-form.component.mjs +5 -3
- package/esm2020/lib/forms/models/form-field-definition.mjs +1 -1
- package/esm2020/lib/layout/layout-nav-list/layout-nav-list.component.mjs +20 -31
- package/esm2020/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +44 -20
- package/esm2020/lib/table/components/dynamic-table/dynamic-table.component.mjs +3 -3
- package/esm2020/lib/table/table.data-source.mjs +48 -14
- package/fesm2015/messaia-cdk.mjs +337 -234
- package/fesm2015/messaia-cdk.mjs.map +1 -1
- package/fesm2020/messaia-cdk.mjs +330 -230
- package/fesm2020/messaia-cdk.mjs.map +1 -1
- package/lib/base/components/generic-list.component.d.ts +4 -0
- package/lib/chips/chips.module.d.ts +17 -10
- package/lib/chips/components/chips.component.d.ts +107 -67
- package/lib/chips/directives/autocomplete-option.directive.d.ts +11 -0
- package/lib/chips/directives/chip.directive.d.ts +11 -0
- package/lib/common/functions/utils.d.ts +7 -0
- package/lib/common/styles/_common-theme.scss +10 -5
- package/lib/forms/models/form-field-definition.d.ts +2 -0
- package/lib/layout/layout-nav-list/layout-nav-list.component.d.ts +12 -9
- package/lib/layout/layout-nav-list/layout-nav-list.directives.d.ts +36 -0
- package/lib/table/table.data-source.d.ts +24 -2
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
2
|
import { DataSource } from '@angular/cdk/table';
|
|
3
|
+
import { EventEmitter } from '@angular/core';
|
|
4
|
+
import { MatSort } from '@angular/material/sort';
|
|
3
5
|
import { BehaviorSubject, merge, of as observableOf } from 'rxjs';
|
|
4
6
|
import { catchError, map, skip, switchMap } from 'rxjs/operators';
|
|
5
7
|
import { Utils } from '../common/functions/utils';
|
|
@@ -13,11 +15,11 @@ export class TableDataSource extends DataSource {
|
|
|
13
15
|
* @param paginator
|
|
14
16
|
* @param sort
|
|
15
17
|
*/
|
|
16
|
-
constructor(service, paginator,
|
|
18
|
+
constructor(service, paginator, sorter) {
|
|
17
19
|
super();
|
|
18
20
|
this.service = service;
|
|
19
21
|
this.paginator = paginator;
|
|
20
|
-
this.
|
|
22
|
+
this.sorter = sorter;
|
|
21
23
|
/**
|
|
22
24
|
* Represents a value that changes over time.
|
|
23
25
|
* Observers can subscribe to the subject to receive filter changes
|
|
@@ -37,6 +39,18 @@ export class TableDataSource extends DataSource {
|
|
|
37
39
|
* Used to power selecting one or more options from a list.
|
|
38
40
|
*/
|
|
39
41
|
this.selectionModel = new SelectionModel(true, []);
|
|
42
|
+
/**
|
|
43
|
+
* Sort change event emitter
|
|
44
|
+
*/
|
|
45
|
+
this.onSortChange = new EventEmitter();
|
|
46
|
+
/**
|
|
47
|
+
* _sort: MatSort | null
|
|
48
|
+
*/
|
|
49
|
+
this._sort = new MatSort();
|
|
50
|
+
/**
|
|
51
|
+
* isConnected: boolean
|
|
52
|
+
*/
|
|
53
|
+
this.isConnected = false;
|
|
40
54
|
/**
|
|
41
55
|
* The navigations to includes
|
|
42
56
|
*/
|
|
@@ -76,7 +90,7 @@ export class TableDataSource extends DataSource {
|
|
|
76
90
|
/**
|
|
77
91
|
* A flag to show loading process
|
|
78
92
|
*/
|
|
79
|
-
this.isLoading =
|
|
93
|
+
this.isLoading = false;
|
|
80
94
|
/**
|
|
81
95
|
* Get selected Items
|
|
82
96
|
*/
|
|
@@ -85,6 +99,7 @@ export class TableDataSource extends DataSource {
|
|
|
85
99
|
* Get selected Items
|
|
86
100
|
*/
|
|
87
101
|
this.getSelectedIds = () => this.getSelected('id');
|
|
102
|
+
this.sort = sorter;
|
|
88
103
|
}
|
|
89
104
|
/**
|
|
90
105
|
* Gets filter
|
|
@@ -100,6 +115,15 @@ export class TableDataSource extends DataSource {
|
|
|
100
115
|
}
|
|
101
116
|
this._filterChange.next(filter);
|
|
102
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Instance of the MatSort directive used by the table to control its sorting. Sort changes
|
|
120
|
+
* emitted by the MatSort will trigger an update to the table's rendered data.
|
|
121
|
+
*/
|
|
122
|
+
get sort() { return this._sort; }
|
|
123
|
+
set sort(sort) {
|
|
124
|
+
this._sort = sort;
|
|
125
|
+
this._sort?.sortChange.subscribe(x => this.onSortChange.emit(x));
|
|
126
|
+
}
|
|
103
127
|
/**
|
|
104
128
|
* Gets reload token
|
|
105
129
|
*/
|
|
@@ -111,32 +135,33 @@ export class TableDataSource extends DataSource {
|
|
|
111
135
|
* @returns Observable that emits a new value when the data changes.
|
|
112
136
|
*/
|
|
113
137
|
connect(_ = null) {
|
|
138
|
+
this.isConnected = true;
|
|
114
139
|
/* A list of fields to observe */
|
|
115
140
|
const displayDataChanges = [
|
|
116
|
-
this.
|
|
117
|
-
this.paginator?.page
|
|
141
|
+
this.onSortChange,
|
|
142
|
+
this.paginator?.page,
|
|
118
143
|
this._filterChange,
|
|
119
144
|
this._reloadChange
|
|
120
145
|
];
|
|
121
146
|
/* If the user changes the sort order, reset back to the first page */
|
|
122
|
-
this.
|
|
147
|
+
this.onSortChange.subscribe(() => { this.paginator.pageIndex = 0; });
|
|
123
148
|
return merge(...displayDataChanges)
|
|
124
149
|
.pipe(skip(1), switchMap(() => {
|
|
125
150
|
/* Flip flag to show that loading has begun */
|
|
126
151
|
this.isLoading = true;
|
|
127
152
|
/* Remove empty filters */
|
|
128
|
-
|
|
129
|
-
|
|
153
|
+
Utils.cleanObject(this.fieldFilters);
|
|
154
|
+
Utils.cleanObject(this.staticFieldFilters);
|
|
130
155
|
/* Load data and return it */
|
|
131
|
-
return this.service.getList(Object.assign({
|
|
156
|
+
return this.service.getList(Utils.cleanObject(Object.assign({
|
|
132
157
|
includes: this.includes,
|
|
133
158
|
projection: Array.isArray(this.projection) ? this.projection.join(',') : this.projection,
|
|
134
159
|
page: this.paginator.pageIndex + 1,
|
|
135
160
|
pageSize: this.paginator.pageSize,
|
|
136
161
|
search: this.filter.toLowerCase(),
|
|
137
|
-
sortBy: this.sort
|
|
138
|
-
sortOrder: this.sort
|
|
139
|
-
},
|
|
162
|
+
sortBy: this.sort?.active,
|
|
163
|
+
sortOrder: this.sort?.direction
|
|
164
|
+
}, this.fieldFilters ?? {}, this.staticFieldFilters ?? {})), null, { 'CheckOut': 'Yes' });
|
|
140
165
|
}), map((result) => {
|
|
141
166
|
/* Flip flag to show that loading has finished */
|
|
142
167
|
this.isLoading = false;
|
|
@@ -162,7 +187,9 @@ export class TableDataSource extends DataSource {
|
|
|
162
187
|
* @param _ The component that exposes a view over the data provided by this
|
|
163
188
|
* data source.
|
|
164
189
|
*/
|
|
165
|
-
disconnect(_ = null) {
|
|
190
|
+
disconnect(_ = null) {
|
|
191
|
+
this.isConnected = false;
|
|
192
|
+
}
|
|
166
193
|
/**
|
|
167
194
|
* Reloads items
|
|
168
195
|
* @param clearSelection
|
|
@@ -173,6 +200,13 @@ export class TableDataSource extends DataSource {
|
|
|
173
200
|
this.selectionModel.clear();
|
|
174
201
|
}
|
|
175
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Clears field filters
|
|
205
|
+
*/
|
|
206
|
+
applyFilters(newFilters = {}) {
|
|
207
|
+
this.fieldFilters = newFilters || {};
|
|
208
|
+
this.reload();
|
|
209
|
+
}
|
|
176
210
|
/**
|
|
177
211
|
* Clears field filters
|
|
178
212
|
*/
|
|
@@ -209,4 +243,4 @@ export class TableDataSource extends DataSource {
|
|
|
209
243
|
}
|
|
210
244
|
}
|
|
211
245
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUloRCxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBbUUsU0FBUSxVQUFtQjtJQXNHMUc7Ozs7O09BS0c7SUFDSCxZQUNRLE9BQWlCLEVBQ2pCLFNBQXVCLEVBQ3ZCLElBQWE7UUFFcEIsS0FBSyxFQUFFLENBQUM7UUFKRCxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBUztRQTdHckI7OztXQUdHO1FBQ0ssa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoRDs7O1dBR0c7UUFDSSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXREOzs7V0FHRztRQUNJLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBRXJFOztXQUVHO1FBQ0ksbUJBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUF3QjlEOztXQUVHO1FBQ0ksYUFBUSxH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Q0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUNoQztTQUNEO0lBQ0YsQ0FBQztDQVdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvblZpZXdlciwgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2tpcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2h0dHAvc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbiB9IGZyb20gJy4vbW9kZWxzL3BhZ2luYXRpb24nO1xyXG5cclxuLyoqXHJcbiAqIEEgZ2VuZXJpYyBkYXRhc291cmNlIGZvciBkYXRhLXRhYmxlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVGFibGVEYXRhU291cmNlPFRFbnRpdHksIFRTZXJ2aWNlIGV4dGVuZHMgR2VuZXJpY1NlcnZpY2U8VEVudGl0eT4+IGV4dGVuZHMgRGF0YVNvdXJjZTxURW50aXR5PiB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlcHJlc2VudHMgYSB2YWx1ZSB0aGF0IGNoYW5nZXMgb3ZlciB0aW1lLiBcclxuXHQgKiBPYnNlcnZlcnMgY2FuIHN1YnNjcmliZSB0byB0aGUgc3ViamVjdCB0byByZWNlaXZlIGZpbHRlciBjaGFuZ2VzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfZmlsdGVyQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIG9uRGF0YUxvYWRlZDogZnVuY3Rpb24oJGV2ZW50KVxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIGRhdGEgaXMgbG9hZGVkXHJcblx0ICovXHJcblx0cHVibGljIF9yZWxvYWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIG9uRGF0YUxvYWRlZDogZnVuY3Rpb24oJGV2ZW50KVxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIGRhdGEgaXMgbG9hZGVkXHJcblx0ICovXHJcblx0cHVibGljIG9uRGF0YUxvYWRlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFnaW5hdGlvbjxURW50aXR5Pj4obnVsbCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVzZWQgdG8gcG93ZXIgc2VsZWN0aW5nIG9uZSBvciBtb3JlIG9wdGlvbnMgZnJvbSBhIGxpc3QuXHJcblx0ICovXHJcblx0cHVibGljIHNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsPFRFbnRpdHk+KHRydWUsIFtdKTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyBmaWx0ZXJcclxuXHQgKi9cclxuXHRnZXQgZmlsdGVyKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9maWx0ZXJDaGFuZ2UudmFsdWU7IH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBmaWx0ZXJcclxuXHQgKi9cclxuXHRzZXQgZmlsdGVyKGZpbHRlcjogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy5wYWdpbmF0b3IpIHtcclxuXHRcdFx0dGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ID0gMDtcclxuXHRcdFx0dGhpcy5wYWdlSW5kZXggPSAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX2ZpbHRlckNoYW5nZS5uZXh0KGZpbHRlcik7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHJlbG9hZCB0b2tlblxyXG5cdCAqL1xyXG5cdGdldCByZWxvYWRUb2tlbigpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fcmVsb2FkQ2hhbmdlLnZhbHVlOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBuYXZpZ2F0aW9ucyB0byBpbmNsdWRlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpbmNsdWRlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBwcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGxpc3Qgb2YgaXRlbXNcclxuXHQgKi9cclxuXHRwdWJsaWMgaXRlbXM6IFRFbnRpdHlbXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBhZGQgc29tZSBmaWVsZCBvcGVyYXRvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRPcGVyYXRvcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIHN0YXRpYyBmaWVsZCBmaWx0ZXJzXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpY0ZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBjdXJyZW50IHBhZ2UgaW5kZXguXHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGN1cnJlbnQgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGJlaW5nIHBhZ2VkXHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgY3VycmVudCBwYWdlIHNpemVcclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG5cclxuXHQvKipcclxuXHQgKiBOdW1iZXIgb2YgcGFnZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIGZsYWcgdG8gc2hvdyBsb2FkaW5nIHByb2Nlc3NcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogQ29uc3RydWN0b3JcclxuXHQgKiBAcGFyYW0gc2VydmljZSBcclxuXHQgKiBAcGFyYW0gcGFnaW5hdG9yIFxyXG5cdCAqIEBwYXJhbSBzb3J0IFxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHNlcnZpY2U6IFRTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yLFxyXG5cdFx0cHVibGljIHNvcnQ6IE1hdFNvcnRcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb25uZWN0cyBhIGNvbGxlY3Rpb24gdmlld2VyIChzdWNoIGFzIGEgZGF0YS10YWJsZSkgdG8gdGhpcyBkYXRhIHNvdXJjZS5cclxuXHQgKiBAcGFyYW0gXyBUaGUgY29tcG9uZW50IHRoYXQgZXhwb3NlcyBhIHZpZXcgb3ZlciB0aGUgZGF0YSBwcm92aWRlZCBieSB0aGlzXHJcblx0ICogICAgIGRhdGEgc291cmNlLlxyXG5cdCAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhIG5ldyB2YWx1ZSB3aGVuIHRoZSBkYXRhIGNoYW5nZXMuXHJcblx0ICovXHJcblx0cHVibGljIGNvbm5lY3QoXzogQ29sbGVjdGlvblZpZXdlciA9IG51bGwpOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT4ge1xyXG5cdFx0LyogQSBsaXN0IG9mIGZpZWxkcyB0byBvYnNlcnZlICAqL1xyXG5cdFx0Y29uc3QgZGlzcGxheURhdGFDaGFuZ2VzID0gW1xyXG5cdFx0XHR0aGlzLnNvcnQ/LnNvcnRDaGFuZ2UsXHJcblx0XHRcdHRoaXMucGFnaW5hdG9yPy5wYWdlIHx8IDEsXHJcblx0XHRcdHRoaXMuX2ZpbHRlckNoYW5nZSxcclxuXHRcdFx0dGhpcy5fcmVsb2FkQ2hhbmdlXHJcblx0XHRdO1xyXG5cclxuXHRcdC8qIElmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHNvcnQgb3JkZXIsIHJlc2V0IGJhY2sgdG8gdGhlIGZpcnN0IHBhZ2UgKi9cclxuXHRcdHRoaXMuc29ydC5zb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7IH0pO1xyXG5cclxuXHRcdHJldHVybiBtZXJnZSguLi5kaXNwbGF5RGF0YUNoYW5nZXMpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHNraXAoMSksXHJcblx0XHRcdFx0c3dpdGNoTWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdC8qIEZsaXAgZmxhZyB0byBzaG93IHRoYXQgbG9hZGluZyBoYXMgYmVndW4gKi9cclxuXHRcdFx0XHRcdHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcblx0XHRcdFx0XHQvKiBSZW1vdmUgZW1wdHkgZmlsdGVycyAqL1xyXG5cdFx0XHRcdFx0T2JqZWN0LmtleXModGhpcy5maWVsZEZpbHRlcnMpLmZvckVhY2goKGtleSkgPT4gKCh0aGlzLmZpZWxkRmlsdGVyc1trZXldID09IG51bGwgfHwgdGhpcy5maWVsZEZpbHRlcnNba2V5XSA9PSAnJyB8fCB0aGlzLmZpZWxkRmlsdGVyc1trZXldID09ICd1bmRlZmluZWQnKSkgJiYgdGhpcy5maWVsZEZpbHRlcnNba2V5XSAhPSAwICYmIGRlbGV0ZSB0aGlzLmZpZWxkRmlsdGVyc1trZXldKTtcclxuXHRcdFx0XHRcdE9iamVjdC5rZXlzKHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzKS5mb3JFYWNoKChrZXkpID0+ICgodGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSA9PSBudWxsIHx8IHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT0gJycgfHwgdGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSA9PSAndW5kZWZpbmVkJykpICYmIHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gIT0gMCAmJiBkZWxldGUgdGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSk7XHJcblxyXG5cdFx0XHRcdFx0LyogTG9hZCBkYXRhIGFuZCByZXR1cm4gaXQgKi9cclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0TGlzdChPYmplY3QuYXNzaWduKHtcclxuXHRcdFx0XHRcdFx0aW5jbHVkZXM6IHRoaXMuaW5jbHVkZXMsXHJcblx0XHRcdFx0XHRcdHByb2plY3Rpb246IEFycmF5LmlzQXJyYXkodGhpcy5wcm9qZWN0aW9uKSA/IHRoaXMucHJvamVjdGlvbi5qb2luKCcsJykgOiB0aGlzLnByb2plY3Rpb24sXHJcblx0XHRcdFx0XHRcdHBhZ2U6IHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCArIDEsXHJcblx0XHRcdFx0XHRcdHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSxcclxuXHRcdFx0XHRcdFx0c2VhcmNoOiB0aGlzLmZpbHRlci50b0xvd2VyQ2FzZSgpLFxyXG5cdFx0XHRcdFx0XHRzb3J0Qnk6IHRoaXMuc29ydC5hY3RpdmUsXHJcblx0XHRcdFx0XHRcdHNvcnRPcmRlcjogdGhpcy5zb3J0LmRpcmVjdGlvblxyXG5cdFx0XHRcdFx0fSwgVXRpbHMuY2xlYW5PYmplY3QodGhpcy5maWVsZEZpbHRlcnMpIHx8IHt9LCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycyksIG51bGwsIHsgJ0NoZWNrT3V0JzogJ1llcycgfSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHQvKiBVcGRhdGUgcGFnaW5hdGlvbiBmaWVsZHMgKi9cclxuXHRcdFx0XHRcdHRoaXMucGFnZUluZGV4ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVzdWx0LnBhZ2UgLSAxLCByZXN1bHQucGFnZUNvdW50IC0gMSksIDApO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHRcdFx0XHRcdHRoaXMucGFnZVNpemUgPSByZXN1bHQucGFnZVNpemU7XHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VDb3VudCA9IHJlc3VsdC5wYWdlQ291bnQ7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG5cclxuXHRcdFx0XHRcdC8qIFJhaXNlIG9ubG9hZCBldmVudCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5vbkRhdGFMb2FkZWQubmV4dChyZXN1bHQpO1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLml0ZW1zO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKCkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHRyZXR1cm4gb2JzZXJ2YWJsZU9mKFtdKTtcclxuXHRcdFx0XHR9KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEaXNjb25uZWN0cyBhIGNvbGxlY3Rpb24gdmlld2VyIChzdWNoIGFzIGEgZGF0YS10YWJsZSkgZnJvbSB0aGlzIGRhdGEgc291cmNlLiBDYW4gYmUgdXNlZFxyXG5cdCAqIHRvIHBlcmZvcm0gYW55IGNsZWFuLXVwIG9yIHRlYXItZG93biBvcGVyYXRpb25zIHdoZW4gYSB2aWV3IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBfIFRoZSBjb21wb25lbnQgdGhhdCBleHBvc2VzIGEgdmlldyBvdmVyIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoaXNcclxuXHQgKiAgICAgZGF0YSBzb3VyY2UuXHJcblx0ICovXHJcblx0cHVibGljIGRpc2Nvbm5lY3QoXzogQ29sbGVjdGlvblZpZXdlciA9IG51bGwpOiB2b2lkIHsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWxvYWRzIGl0ZW1zXHJcblx0ICogQHBhcmFtIGNsZWFyU2VsZWN0aW9uIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgY2xlYXJGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzLCB3aGV0aGVyIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnRvdGFsO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlcyBzZWxlY3RlZCBpdGVtc1xyXG5cdCAqIEBwYXJhbSBjaGVja2JveCBcclxuXHQgKiBAcGFyYW0gcHJlZGljYXRlXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLml0ZW1zLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICF4Wydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gdGhpcy50b3RhbCkge1xyXG5cdFx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBzZWxlY3RlZCBJdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcpOiBUVHlwZVtdID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKHggPT4geFtrZXldKTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHNlbGVjdGVkIEl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlbGVjdGVkSWRzID0gKCk6IG51bWJlcltdID0+IHRoaXMuZ2V0U2VsZWN0ZWQ8bnVtYmVyPignaWQnKTtcclxufSJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBbUUsU0FBUSxVQUFtQjtJQStIMUc7Ozs7O09BS0c7SUFDSCxZQUNRLE9BQWlCLEVBQ2pCLFNBQXVCLEVBQ3ZCLE1BQWdCO1FBRXZCLEtBQUssRUFBRSxDQUFDO1FBSkQsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQVU7UUF0SXhCOzs7V0FHRztRQUNLLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEQ7OztXQUdHO1FBQ0ksa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUV0RDs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUVyRTs7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QWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVwRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN2RCxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDaEM7U0FDRDtJQUNGLENBQUM7Q0FXRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25WaWV3ZXIsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBza2lwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vY29tbW9uL2Z1bmN0aW9ucy91dGlscyc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogQSBnZW5lcmljIGRhdGFzb3VyY2UgZm9yIGRhdGEtdGFibGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFTb3VyY2U8VEVudGl0eSwgVFNlcnZpY2UgZXh0ZW5kcyBHZW5lcmljU2VydmljZTxURW50aXR5Pj4gZXh0ZW5kcyBEYXRhU291cmNlPFRFbnRpdHk+IHtcclxuXHJcblx0LyoqXHJcblx0ICogUmVwcmVzZW50cyBhIHZhbHVlIHRoYXQgY2hhbmdlcyBvdmVyIHRpbWUuIFxyXG5cdCAqIE9ic2VydmVycyBjYW4gc3Vic2NyaWJlIHRvIHRoZSBzdWJqZWN0IHRvIHJlY2VpdmUgZmlsdGVyIGNoYW5nZXNcclxuXHQgKi9cclxuXHRwcml2YXRlIF9maWx0ZXJDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcclxuXHJcblx0LyoqXHJcblx0ICogb25EYXRhTG9hZGVkOiBmdW5jdGlvbigkZXZlbnQpXHJcblx0ICogRXZlbnQgZW1pdHRlZCBhZnRlciB0aGUgZGF0YSBpcyBsb2FkZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgX3JlbG9hZENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuXHJcblx0LyoqXHJcblx0ICogb25EYXRhTG9hZGVkOiBmdW5jdGlvbigkZXZlbnQpXHJcblx0ICogRXZlbnQgZW1pdHRlZCBhZnRlciB0aGUgZGF0YSBpcyBsb2FkZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBwb3dlciBzZWxlY3Rpbmcgb25lIG9yIG1vcmUgb3B0aW9ucyBmcm9tIGEgbGlzdC5cclxuXHQgKi9cclxuXHRwdWJsaWMgc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VEVudGl0eT4odHJ1ZSwgW10pO1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIGZpbHRlclxyXG5cdCAqL1xyXG5cdGdldCBmaWx0ZXIoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2ZpbHRlckNoYW5nZS52YWx1ZTsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXRzIGZpbHRlclxyXG5cdCAqL1xyXG5cdHNldCBmaWx0ZXIoZmlsdGVyOiBzdHJpbmcpIHtcclxuXHRcdGlmICh0aGlzLnBhZ2luYXRvcikge1xyXG5cdFx0XHR0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG5cdFx0XHR0aGlzLnBhZ2VJbmRleCA9IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5fZmlsdGVyQ2hhbmdlLm5leHQoZmlsdGVyKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNvcnQgY2hhbmdlIGV2ZW50IGVtaXR0ZXJcclxuXHQgKi9cclxuXHRwcml2YXRlIG9uU29ydENoYW5nZTogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBfc29ydDogTWF0U29ydCB8IG51bGxcclxuXHQgKi9cclxuXHRwcml2YXRlIF9zb3J0OiBNYXRTb3J0IHwgbnVsbCA9IG5ldyBNYXRTb3J0KCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluc3RhbmNlIG9mIHRoZSBNYXRTb3J0IGRpcmVjdGl2ZSB1c2VkIGJ5IHRoZSB0YWJsZSB0byBjb250cm9sIGl0cyBzb3J0aW5nLiBTb3J0IGNoYW5nZXNcclxuXHQgKiBlbWl0dGVkIGJ5IHRoZSBNYXRTb3J0IHdpbGwgdHJpZ2dlciBhbiB1cGRhdGUgdG8gdGhlIHRhYmxlJ3MgcmVuZGVyZWQgZGF0YS5cclxuXHQgKi9cclxuXHRnZXQgc29ydCgpOiBNYXRTb3J0IHwgbnVsbCB7IHJldHVybiB0aGlzLl9zb3J0OyB9XHJcblx0c2V0IHNvcnQoc29ydDogTWF0U29ydCB8IG51bGwpIHtcclxuXHRcdHRoaXMuX3NvcnQgPSBzb3J0O1xyXG5cdFx0dGhpcy5fc29ydD8uc29ydENoYW5nZS5zdWJzY3JpYmUoeCA9PiB0aGlzLm9uU29ydENoYW5nZS5lbWl0KHgpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgcmVsb2FkIHRva2VuXHJcblx0ICovXHJcblx0Z2V0IHJlbG9hZFRva2VuKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9yZWxvYWRDaGFuZ2UudmFsdWU7IH1cclxuXHJcblx0LyoqXHJcblx0ICogaXNDb25uZWN0ZWQ6IGJvb2xlYW5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNDb25uZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hdmlnYXRpb25zIHRvIGluY2x1ZGVzXHJcblx0ICovXHJcblx0cHVibGljIGluY2x1ZGVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdXHJcblx0ICovXHJcblx0cHVibGljIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgbGlzdCBvZiBpdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpdGVtczogVEVudGl0eVtdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVzZWQgdG8gYWRkIHNvbWUgZmllbGQgZmlsdGVyc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZEZpbHRlcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIGZpZWxkIG9wZXJhdG9yc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZE9wZXJhdG9yczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVzZWQgdG8gYWRkIHNvbWUgc3RhdGljIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljRmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGN1cnJlbnQgcGFnZSBpbmRleC5cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgY3VycmVudCB0b3RhbCBudW1iZXIgb2YgaXRlbXMgYmVpbmcgcGFnZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgdG90YWw6IG51bWJlciA9IDA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBjdXJyZW50IHBhZ2Ugc2l6ZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE51bWJlciBvZiBwYWdlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgZmxhZyB0byBzaG93IGxvYWRpbmcgcHJvY2Vzc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogQ29uc3RydWN0b3JcclxuXHQgKiBAcGFyYW0gc2VydmljZSBcclxuXHQgKiBAcGFyYW0gcGFnaW5hdG9yIFxyXG5cdCAqIEBwYXJhbSBzb3J0IFxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHNlcnZpY2U6IFRTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yLFxyXG5cdFx0cHVibGljIHNvcnRlcj86IE1hdFNvcnRcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLnNvcnQgPSBzb3J0ZXI7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb25uZWN0cyBhIGNvbGxlY3Rpb24gdmlld2VyIChzdWNoIGFzIGEgZGF0YS10YWJsZSkgdG8gdGhpcyBkYXRhIHNvdXJjZS5cclxuXHQgKiBAcGFyYW0gXyBUaGUgY29tcG9uZW50IHRoYXQgZXhwb3NlcyBhIHZpZXcgb3ZlciB0aGUgZGF0YSBwcm92aWRlZCBieSB0aGlzXHJcblx0ICogICAgIGRhdGEgc291cmNlLlxyXG5cdCAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhIG5ldyB2YWx1ZSB3aGVuIHRoZSBkYXRhIGNoYW5nZXMuXHJcblx0ICovXHJcblx0cHVibGljIGNvbm5lY3QoXzogQ29sbGVjdGlvblZpZXdlciA9IG51bGwpOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT4ge1xyXG5cdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XHJcblxyXG5cdFx0LyogQSBsaXN0IG9mIGZpZWxkcyB0byBvYnNlcnZlICAqL1xyXG5cdFx0Y29uc3QgZGlzcGxheURhdGFDaGFuZ2VzID0gW1xyXG5cdFx0XHR0aGlzLm9uU29ydENoYW5nZSxcclxuXHRcdFx0dGhpcy5wYWdpbmF0b3I/LnBhZ2UsXHJcblx0XHRcdHRoaXMuX2ZpbHRlckNoYW5nZSxcclxuXHRcdFx0dGhpcy5fcmVsb2FkQ2hhbmdlXHJcblx0XHRdO1xyXG5cclxuXHRcdC8qIElmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHNvcnQgb3JkZXIsIHJlc2V0IGJhY2sgdG8gdGhlIGZpcnN0IHBhZ2UgKi9cclxuXHRcdHRoaXMub25Tb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7IH0pO1xyXG5cclxuXHRcdHJldHVybiBtZXJnZSguLi5kaXNwbGF5RGF0YUNoYW5nZXMpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHNraXAoMSksXHJcblx0XHRcdFx0c3dpdGNoTWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdC8qIEZsaXAgZmxhZyB0byBzaG93IHRoYXQgbG9hZGluZyBoYXMgYmVndW4gKi9cclxuXHRcdFx0XHRcdHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcblx0XHRcdFx0XHQvKiBSZW1vdmUgZW1wdHkgZmlsdGVycyAqL1xyXG5cdFx0XHRcdFx0VXRpbHMuY2xlYW5PYmplY3QodGhpcy5maWVsZEZpbHRlcnMpO1xyXG5cdFx0XHRcdFx0VXRpbHMuY2xlYW5PYmplY3QodGhpcy5zdGF0aWNGaWVsZEZpbHRlcnMpO1xyXG5cclxuXHRcdFx0XHRcdC8qIExvYWQgZGF0YSBhbmQgcmV0dXJuIGl0ICovXHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5zZXJ2aWNlLmdldExpc3QoVXRpbHMuY2xlYW5PYmplY3QoT2JqZWN0LmFzc2lnbih7XHJcblx0XHRcdFx0XHRcdGluY2x1ZGVzOiB0aGlzLmluY2x1ZGVzLFxyXG5cdFx0XHRcdFx0XHRwcm9qZWN0aW9uOiBBcnJheS5pc0FycmF5KHRoaXMucHJvamVjdGlvbikgPyB0aGlzLnByb2plY3Rpb24uam9pbignLCcpIDogdGhpcy5wcm9qZWN0aW9uLFxyXG5cdFx0XHRcdFx0XHRwYWdlOiB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggKyAxLFxyXG5cdFx0XHRcdFx0XHRwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXHJcblx0XHRcdFx0XHRcdHNlYXJjaDogdGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSxcclxuXHRcdFx0XHRcdFx0c29ydEJ5OiB0aGlzLnNvcnQ/LmFjdGl2ZSxcclxuXHRcdFx0XHRcdFx0c29ydE9yZGVyOiB0aGlzLnNvcnQ/LmRpcmVjdGlvblxyXG5cdFx0XHRcdFx0fSwgdGhpcy5maWVsZEZpbHRlcnMgPz8ge30sIHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzID8/IHt9KSksIG51bGwsIHsgJ0NoZWNrT3V0JzogJ1llcycgfSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHQvKiBVcGRhdGUgcGFnaW5hdGlvbiBmaWVsZHMgKi9cclxuXHRcdFx0XHRcdHRoaXMucGFnZUluZGV4ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVzdWx0LnBhZ2UgLSAxLCByZXN1bHQucGFnZUNvdW50IC0gMSksIDApO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHRcdFx0XHRcdHRoaXMucGFnZVNpemUgPSByZXN1bHQucGFnZVNpemU7XHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VDb3VudCA9IHJlc3VsdC5wYWdlQ291bnQ7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG5cclxuXHRcdFx0XHRcdC8qIFJhaXNlIG9ubG9hZCBldmVudCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5vbkRhdGFMb2FkZWQubmV4dChyZXN1bHQpO1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLml0ZW1zO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKCkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHRyZXR1cm4gb2JzZXJ2YWJsZU9mKFtdKTtcclxuXHRcdFx0XHR9KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEaXNjb25uZWN0cyBhIGNvbGxlY3Rpb24gdmlld2VyIChzdWNoIGFzIGEgZGF0YS10YWJsZSkgZnJvbSB0aGlzIGRhdGEgc291cmNlLiBDYW4gYmUgdXNlZFxyXG5cdCAqIHRvIHBlcmZvcm0gYW55IGNsZWFuLXVwIG9yIHRlYXItZG93biBvcGVyYXRpb25zIHdoZW4gYSB2aWV3IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBfIFRoZSBjb21wb25lbnQgdGhhdCBleHBvc2VzIGEgdmlldyBvdmVyIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoaXNcclxuXHQgKiAgICAgZGF0YSBzb3VyY2UuXHJcblx0ICovXHJcblx0cHVibGljIGRpc2Nvbm5lY3QoXzogQ29sbGVjdGlvblZpZXdlciA9IG51bGwpOiB2b2lkIHtcclxuXHRcdHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbG9hZHMgaXRlbXNcclxuXHQgKiBAcGFyYW0gY2xlYXJTZWxlY3Rpb24gXHJcblx0ICovXHJcblx0cHVibGljIHJlbG9hZChjbGVhclNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuXHRcdHRoaXMuX3JlbG9hZENoYW5nZS5uZXh0KE1hdGgucmFuZG9tKCkpO1xyXG5cclxuXHRcdGlmIChjbGVhclNlbGVjdGlvbikge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbGVhcnMgZmllbGQgZmlsdGVyc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhcHBseUZpbHRlcnMobmV3RmlsdGVyczogYW55ID0ge30pOiB2b2lkIHtcclxuXHRcdHRoaXMuZmllbGRGaWx0ZXJzID0gbmV3RmlsdGVycyB8fCB7fTtcclxuXHRcdHRoaXMucmVsb2FkKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbGVhcnMgZmllbGQgZmlsdGVyc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBjbGVhckZpbHRlcnMobmV3RmlsdGVyczogYW55ID0ge30pOiB2b2lkIHtcclxuXHRcdHRoaXMuZmllbGRGaWx0ZXJzID0gbmV3RmlsdGVycyB8fCB7fTtcclxuXHRcdHRoaXMucmVsb2FkKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDaGVja3MsIHdoZXRoZXIgYWxsIGl0ZW1zIGFyZSBzZWxlY3RlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5sZW5ndGggPT09IHRoaXMudG90YWw7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUb2dnbGVzIHNlbGVjdGVkIGl0ZW1zXHJcblx0ICogQHBhcmFtIGNoZWNrYm94IFxyXG5cdCAqIEBwYXJhbSBwcmVkaWNhdGVcclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlU2VsZWN0KGNoZWNrYm94OiBNYXRDaGVja2JveENoYW5nZSwgcHJlZGljYXRlPzogKHZhbHVlOiBURW50aXR5LCBpbmRleDogbnVtYmVyLCBhcnJheTogVEVudGl0eVtdKSA9PiB1bmtub3duKSB7XHJcblx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSgpKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcclxuXHRcdFx0Y2hlY2tib3guc291cmNlLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuaXRlbXMuZmlsdGVyKHByZWRpY2F0ZSA/IHByZWRpY2F0ZSA6IHggPT4geClcclxuXHRcdFx0XHQuZmlsdGVyKHggPT4gIXhbJ2xvY2tlZCddKVxyXG5cdFx0XHRcdC5mb3JFYWNoKGRhdGEgPT4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoZGF0YSkpO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoICE9PSB0aGlzLnRvdGFsKSB7XHJcblx0XHRcdFx0Y2hlY2tib3guc291cmNlLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHNlbGVjdGVkIEl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlbGVjdGVkID0gPFRUeXBlPihrZXk6IHN0cmluZyk6IFRUeXBlW10gPT4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5tYXAoeCA9PiB4W2tleV0pO1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgc2VsZWN0ZWQgSXRlbXNcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0U2VsZWN0ZWRJZHMgPSAoKTogbnVtYmVyW10gPT4gdGhpcy5nZXRTZWxlY3RlZDxudW1iZXI+KCdpZCcpO1xyXG59Il19
|