@trudb/tru-common-lib 0.0.551 → 0.0.553
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.
|
@@ -38,7 +38,7 @@ export class TruDataGrid {
|
|
|
38
38
|
rowStyle: { background: 'white' },
|
|
39
39
|
onSelectionChanged: (params) => { },
|
|
40
40
|
onCellEditingStopped: (params) => {
|
|
41
|
-
this.gridOptions.api.redrawRows({ rowNodes: params.node });
|
|
41
|
+
this.gridOptions.api.redrawRows({ rowNodes: [params.node] });
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
this.parentToolbarTemplate = null;
|
|
@@ -255,12 +255,20 @@ export class TruDataGrid {
|
|
|
255
255
|
this.gridOptions.api.deselectAll();
|
|
256
256
|
}
|
|
257
257
|
let columnDefs = this.config.resultConfig.columnDefs;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
}
|
|
258
|
+
if (event.column.colDef.pinned) {
|
|
259
|
+
columnDefs.forEach((columnDef, index) => {
|
|
260
|
+
if (index !== 0)
|
|
261
|
+
columnDef.headerClass = 'ag-column-focus';
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
columnDefs.forEach((columnDef, index) => {
|
|
266
|
+
if (index !== 0 && event.column.colId === columnDef.field)
|
|
267
|
+
columnDef.headerClass = 'ag-column-focus';
|
|
268
|
+
else
|
|
269
|
+
columnDef.headerClass = undefined;
|
|
270
|
+
});
|
|
271
|
+
}
|
|
264
272
|
this.gridOptions.api.setColumnDefs(columnDefs);
|
|
265
273
|
}
|
|
266
274
|
ngOnInit() {
|
|
@@ -297,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
297
305
|
}], name: [{
|
|
298
306
|
type: Input
|
|
299
307
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUF3RCxNQUFNLGVBQWUsQ0FBQztBQU1sSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBY2hDLE1BQU0sT0FBTyxXQUFXO0lBK0J0QixZQUNVLFdBQTJCLEVBQzNCLHVCQUFtRCxFQUNuRCxjQUFpQyxFQUNqQyxzQkFBaUQsRUFDakQsY0FBaUMsRUFDakMsYUFBK0I7UUFML0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBNEI7UUFDbkQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMkI7UUFDakQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQWhDekMscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFcEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQWUsRUFBRSxDQUFDO1FBRTdCLHdCQUFtQixHQUFlLEVBQUUsQ0FBQztRQUVy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QUNiLDJGQUEyRjtRQUMzRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FBQztZQUNwRixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3BHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO1FBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3dHQWxVVSxXQUFXOzRGQUFYLFdBQVcsaU1DdkJ4Qixxb0ZBc0NBOzJGRGZhLFdBQVc7a0JBUHZCLFNBQVM7K0JBQ0UsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUMsdUJBQXVCLEVBQUUsTUFBTSxFQUFDO3FSQUc5QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtYXBwLWVudmlyb25tZW50JztcclxuaW1wb3J0IHsgVHJ1U2VhcmNoVmlld0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL2Jhc2Utdmlld3Mvc2VhcmNoL3NlcnZpY2VzL3RydS1zZWFyY2gtdmlldy1ldmVudC1oYW5kbGVyJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1VWlOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtdWktbm90aWZpY2F0aW9uJztcclxuaW1wb3J0IHsgSVRydURhdGFHcmlkQ29uZmlnIH0gZnJvbSAnLi9jbGFzc2VzL3RydS1kYXRhLWdyaWQtY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1RGF0YUdyaWRUeXBlcyB9IGZyb20gJy4vZW51bXMvdHJ1LWRhdGEtZ3JpZC10eXBlcyc7XHJcbmltcG9ydCB7IElUcnVUb29sYmFyRHJvcGRvd25PcHRpb24gfSBmcm9tICcuLi90b29sYmFyL2NsYXNzZXMvdHJ1LXRvb2xiYXItZHJvcGRvd24tb3B0aW9uJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIHNraXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ3VuZGVyc2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVTZWFyY2hSZXN1bHRWaWV3TWFuYWdlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1zZWFyY2gtcmVzdWx0LXZpZXctbWFuYWdlcic7XHJcbmltcG9ydCB7IFRydUNvbm5lY3Rpb25IdWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtY29ubmVjdGlvbi1odWInO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ2hhbmdlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90cnUtZGF0YS1jaGFuZ2UnO1xyXG5pbXBvcnQgeyBDZWxsRm9jdXNlZEV2ZW50LCBDZWxsS2V5RG93bkV2ZW50LCBGdWxsV2lkdGhDZWxsS2V5RG93bkV2ZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgaW5kZXhPZiB9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1kYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZGF0YS1ncmlkLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1kYXRhLWdyaWQuY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7J1tjbGFzcy50cnUtZGF0YS1ncmlkXSc6ICd0cnVlJ31cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURhdGFHcmlkIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElUcnVEYXRhR3JpZENvbmZpZztcclxuICBASW5wdXQoKSBlbnRpdHkhOiBhbnk7XHJcbiAgQElucHV0KCkgbmFtZSE6IGFueTtcclxuXHJcbiAgVHJ1RGF0YUdyaWRUeXBlcyA9IFRydURhdGFHcmlkVHlwZXM7XHJcblxyXG4gIGNvbHVtbkRlZnM6IGFueSA9IFtdO1xyXG4gIHJvd0RhdGE6IGFueSA9IFtdO1xyXG4gIHZpZXdDaG9pY2VzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgc2VsZWN0ZWRWaWV3Q2hvaWNlOiBhbnk7XHJcbiAgdW5hc3NvY2lhdGVkQ2hvaWNlczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHNlbGVjdGVkVW5hc3NvY2lhdGVkQ2hvaWNlOiBhbnk7XHJcbiAgbG9hZGluZ1RlbXBsYXRlOiBzdHJpbmcgPSAnPHNwYW4gY2xhc3M9XCJhZy1vdmVybGF5LWxvYWRpbmctY2VudGVyXCI+IERhdGEgaXMgbG9hZGluZy4uLjwvc3Bhbj4nO1xyXG4gIG5vUm93c1RlbXBsYXRlOiBzdHJpbmcgPSBgPHNwYW4+UnVuIGEgc2VhcmNoIHRvIGZpbmQgaXRlbXMuPC9zcGFuPmA7XHJcbiAgZ3JpZFR5cGU6IFRydURhdGFHcmlkVHlwZXMgPSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaFxyXG4gIHVuc2F2ZWRFbnRpdGllczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGxvYWRlZEVudGl0aWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgbGF0ZXN0U2V0dXBRdWVyeTogYW55O1xyXG4gIGdyaWRPcHRpb25zOiBhbnkgPSB7XHJcbiAgICByb3dTZWxlY3Rpb246ICdtdWx0aXBsZScsXHJcbiAgICByb3dTdHlsZTogeyBiYWNrZ3JvdW5kOiAnd2hpdGUnIH0sXHJcbiAgICBvblNlbGVjdGlvbkNoYW5nZWQ6IChwYXJhbXM6IGFueSkgPT4geyB9LFxyXG4gICAgb25DZWxsRWRpdGluZ1N0b3BwZWQ6IChwYXJhbXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5yZWRyYXdSb3dzKHsgcm93Tm9kZXM6IHBhcmFtcy5ub2RlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwYXJlbnRUb29sYmFyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBwcml2YXRlIHNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyOiBUcnVTZWFyY2hSZXN1bHRWaWV3TWFuYWdlcixcclxuICAgIHByaXZhdGUgYXBwRW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hWaWV3RXZlbnRIYW5kbGVyOiBUcnVTZWFyY2hWaWV3RXZlbnRIYW5kbGVyLFxyXG4gICAgcHJpdmF0ZSB1aU5vdGlmaWNhdGlvbjogVHJ1VWlOb3RpZmljYXRpb24sXHJcbiAgICBwcml2YXRlIGNvbm5lY3Rpb25IdWI6IFRydUNvbm5lY3Rpb25IdWIpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHkgPSAoZW50aXR5OiBhbnkpID0+IHtcclxuICAgIGxldCByb3dEYXRhID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLnJvd0RhdGFFbmhhbmNlcihlbnRpdHkpO1xyXG4gICAgcm93RGF0YS4kZW50aXR5ID0gZW50aXR5O1xyXG4gICAgcmV0dXJuIHJvd0RhdGE7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzZXROb1Jvd3NUZW1wbGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMubm9Sb3dzVGVtcGxhdGUgPSBgPHNwYW4+Tm8gcm93cyB0byBzaG93Ljwvc3Bhbj5gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUbyA9ICgpID0+IHtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuYXBwRW52aXJvbm1lbnQub25TYXZlQ29tcGxldGUkLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudD8uc3VjY2Vzc2Z1bClcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5yZWRyYXdSb3dzKCk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmFwcEVudmlyb25tZW50Lm9uUmV2ZXJ0Q29tcGxldGUkLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudD8uc3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgIGxldCByb3dOb2RlczogYW55ID0gW107XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUoKHJvd05vZGU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJvd05vZGVzLnB1c2gocm93Tm9kZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHJvd05vZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKVxyXG4gICAgICAgICAgaWYgKHJvd05vZGVzW2ldLmRhdGEuJGVudGl0eVt0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZS5uYW1lICsgJ1JlZiddIDwgMClcclxuICAgICAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkudXBkYXRlUm93RGF0YSh7IHJlbW92ZTogW3Jvd05vZGVzW2ldLmRhdGFdIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZHJhd1Jvd3MoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuYXBwRW52aXJvbm1lbnQub25EZWxldGVDb21wbGV0ZSQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50Py5zdWNjZXNzZnVsICYmIGV2ZW50LmVudGl0aWVzICYmIGV2ZW50LmVudGl0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIGxldCByb3dzVG9SZW1vdmU6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5yb3dEYXRhLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gZXZlbnQuZW50aXRpZXMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucm93RGF0YVtpXS4kZW50aXR5ID09PSBldmVudC5lbnRpdGllc1tqXSlcclxuICAgICAgICAgICAgICByb3dzVG9SZW1vdmUucHVzaCh0aGlzLnJvd0RhdGFbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiByb3dzVG9SZW1vdmUgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVkcmF3Um93cygpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnNlYXJjaFZpZXdFdmVudEhhbmRsZXIub25TZWFyY2goKS5waXBlKHNraXAoMSkpLnN1YnNjcmliZSgoc2V0dXBRdWVyeTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMub25TZWFyY2goc2V0dXBRdWVyeSk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmNvbm5lY3Rpb25IdWIuc3Vic2NyaWJlKFxyXG4gICAgICB0aGlzLmRhdGFDb250ZXh0LFxyXG4gICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSxcclxuICAgICAgdGhpcy5jb25maWcudGFibGVOYW1lLFxyXG4gICAgICAoKSA9PiB7IHJldHVybiB0aGlzLmxvYWRlZEVudGl0aWVzIH0sXHJcbiAgICAgICgpID0+IHsgcmV0dXJuIHRoaXMubGF0ZXN0U2V0dXBRdWVyeSB9LFxyXG4gICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZXhwYW5kcyxcclxuICAgICAgW10sXHJcbiAgICAgICgpID0+IHsgcmV0dXJuIHRydWU7IH0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVmcmVzaENlbGxzKHsgZm9yY2U6IHRydWUgfSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRHcmlkRGF0YSA9IChlbnRpdGllczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgdGhpcy5yb3dEYXRhID0gZW50aXRpZXMubWFwKHRoaXMuZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHksIGVudGl0aWVzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZE1hbnlUb01hbnlHcmlkRGF0YSA9IChhc3NvY2lhdGVkRW50aXRpZXM6IEFycmF5PGFueT4sIGFzc29jaWF0YWJsZUVudGl0aWVzOiBBcnJheTxhbnk+LCBpbml0YWxMb2FkOiBib29sZWFuKSA9PiB7XHJcbiAgICBpZiAoaW5pdGFsTG9hZClcclxuICAgICAgdGhpcy5yb3dEYXRhID0gYXNzb2NpYXRlZEVudGl0aWVzLm1hcCh0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5LCBhc3NvY2lhdGVkRW50aXRpZXMpO1xyXG4gICAgZWxzZVxyXG4gICAgICBhc3NvY2lhdGVkRW50aXRpZXMgPSB0aGlzLnJvd0RhdGEubWFwKChlOiBhbnkpID0+IHsgcmV0dXJuIGUuJGVudGl0eSB9KTtcclxuICAgIGxldCBhc3NvY2lhdGFibGVUeXBlTmFtZSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZS5uYW1lXHJcbiAgICBsZXQgYXNzb2NpYXRlZE1hcE9mQXNzb2NpYXRhYmxlID0gXy5tYXAoYXNzb2NpYXRlZEVudGl0aWVzLCBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZVsnbycgKyBhc3NvY2lhdGFibGVUeXBlTmFtZV07IH0pO1xyXG4gICAgdGhpcy51bmFzc29jaWF0ZWRDaG9pY2VzID0gYXNzb2NpYXRhYmxlRW50aXRpZXMuZmlsdGVyKG9iamVjdDEgPT4ge1xyXG4gICAgICByZXR1cm4gIWFzc29jaWF0ZWRNYXBPZkFzc29jaWF0YWJsZS5zb21lKG9iamVjdDIgPT4geyByZXR1cm4gb2JqZWN0MS52YWx1ZS4kID09PSBvYmplY3QyW2Fzc29jaWF0YWJsZVR5cGVOYW1lICsgJ1JlZiddOyB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHBvcnREYXRhID0gKCkgPT4ge1xyXG4gICAgdGhpcy51aU5vdGlmaWNhdGlvbi5zaG93RXhwb3J0RGlhbG9nKCkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm47XHJcbiAgICAgIGxldCBleHBvcnRHcmlkU3BlYztcclxuICAgICAgaWYgKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlKVxyXG4gICAgICAgIGV4cG9ydEdyaWRTcGVjID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUubmFtZTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIGV4cG9ydEdyaWRTcGVjID0gJyRjdXN0b209JyArIDE7XHJcblxyXG4gICAgICBsZXQgcm93Tm9kZXM6IGFueSA9IFtdO1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5mb3JFYWNoTm9kZSgocm93Tm9kZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgcm93Tm9kZXMucHVzaChyb3dOb2RlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCByZWZzID0gXy5tYXAocm93Tm9kZXMsIChyb3dOb2RlKSA9PiB7IHJldHVybiByb3dOb2RlLmRhdGEuJGVudGl0eVt0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZS5uYW1lICsgJ1JlZiddOyB9KTtcclxuICAgICAgdGhpcy5kYXRhQ29udGV4dFxyXG4gICAgICAgIC5lbnRpdHlBY2Nlc3MoKVxyXG4gICAgICAgIC5leHBvcnQodGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsIGV4cG9ydEdyaWRTcGVjLCB0aGlzLmxhdGVzdFNldHVwUXVlcnksIHJlZnMuam9pbignLCcpLCByZXN1bHQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblJvd0RhdGFDaGFuZ2VkID0gKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgaWYgKHRoaXMucm93RGF0YSA9PT0gbnVsbClcclxuICAgICAgdGhpcy5zZXROb1Jvd3NUZW1wbGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dDbGlja2VkID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgb25DZWxsRG91YmxlQ2xpY2tlZCA9IChncmlkQ29uZmlnOiBhbnkpID0+IHtcclxuICAgIGlmIChncmlkQ29uZmlnLmNvbERlZi5jZWxsQ2xhc3MgPT09ICdhZy1way1hbGlnbmVkLWNlbGwnKVxyXG4gICAgICB0aGlzLmNvbmZpZy5yb3dIZWFkZXJEb3VibGVDbGlja2VkKGdyaWRDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgb25DZWxsS2V5RG93biA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICBpZiAoIWV2ZW50LmV2ZW50KSByZXR1cm47XHJcbiAgICBjb25zdCBrZXkgPSAoZXZlbnQuZXZlbnQgYXMgdW5rbm93bikgYXMgS2V5Ym9hcmRFdmVudDtcclxuICAgIGlmIChrZXkuY29kZSA9PT0gJ1NwYWNlJykge1xyXG4gICAgICBrZXkucHJldmVudERlZmF1bHQoKTtcclxuICAgICAga2V5LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgaWYgKCFldmVudC5jb2xEZWYuY2VsbFJlbmRlcmVyKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGk/LnN0YXJ0RWRpdGluZ0NlbGwoe1xyXG4gICAgICAgICAgcm93SW5kZXg6IGV2ZW50LnJvd0luZGV4LFxyXG4gICAgICAgICAgY29sS2V5OiBldmVudC5jb2x1bW4uZ2V0Q29sSWQoKSxcclxuICAgICAgICAgIGtleToga2V5LmNvZGVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIG9uQ2VsbEZvY3VzZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LmNvbHVtbi5jb2xEZWYucGlubmVkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5zdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuZGVzZWxlY3RBbGwoKTtcclxuICAgIH1cclxuICAgIGxldCBjb2x1bW5EZWZzID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmNvbHVtbkRlZnM7XHJcbiAgICBjb2x1bW5EZWZzLmZvckVhY2goKGNvbHVtbkRlZjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCAhPT0gMCAmJiBldmVudC5jb2x1bW4uY29sSWQgPT09IGNvbHVtbkRlZi5maWVsZClcclxuICAgICAgICBjb2x1bW5EZWYuaGVhZGVyQ2xhc3MgPSAnYWctY29sdW1uLWZvY3VzJztcclxuICAgICAgZWxzZVxyXG4gICAgICAgIGNvbHVtbkRlZi5oZWFkZXJDbGFzcyA9IHVuZGVmaW5lZDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuc2V0Q29sdW1uRGVmcyhjb2x1bW5EZWZzKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoID0gKHNldHVwUXVlcnk6IGFueSkgPT4ge1xyXG4gICAgbGV0IGVudGl0eUxvYWRlZCA9IHRoaXMubG9hZGVkRW50aXRpZXMuc29tZSgocmVmKSA9PiB7IHJldHVybiByZWYgPT09IHRoaXMuZW50aXR5W3RoaXMuZW50aXR5LmNvbnN0cnVjdG9yLm5hbWUgKyAnUmVmJ107IH0pO1xyXG4gICAgbGV0IGpvaW5zID0gW107XHJcbiAgICBpZiAoZW50aXR5TG9hZGVkKSB7XHJcbiAgICAgIGpvaW5zLnB1c2godGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2hDYWNoZU9ubHkoXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsXHJcbiAgICAgICAgc2V0dXBRdWVyeSxcclxuICAgICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZXhwYW5kcykpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSlcclxuICAgICAgICBqb2lucy5wdXNoKHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoUXVlcnlDaG9pY2VzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eU1hbnlUb01hbnlUeXBlLFxyXG4gICAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLm1hbnlUb01hbnlTZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSwgbnVsbCwgZmFsc2UpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaChcclxuICAgICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSxcclxuICAgICAgICBzZXR1cFF1ZXJ5LFxyXG4gICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5leHBhbmRzLCBmYWxzZSkpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSlcclxuICAgICAgICBqb2lucy5wdXNoKHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoUXVlcnlDaG9pY2VzKFxyXG4gICAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eU1hbnlUb01hbnlUeXBlLFxyXG4gICAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLm1hbnlUb01hbnlTZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSwgbnVsbCwgdHJ1ZSkpXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYXRlc3RTZXR1cFF1ZXJ5ID0gc2V0dXBRdWVyeTtcclxuXHJcbiAgICBmb3JrSm9pbihqb2lucykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzdWx0cyA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXROb1Jvd3NUZW1wbGF0ZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgICB0aGlzLmxvYWRNYW55VG9NYW55R3JpZERhdGEocmVzdWx0c1swXSwgcmVzdWx0c1sxXSwgdHJ1ZSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5sb2FkR3JpZERhdGEocmVzdWx0c1swXSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JpZFR5cGUgIT09IFRydURhdGFHcmlkVHlwZXMuU2VhcmNoKVxyXG4gICAgICAgICAgdGhpcy5sb2FkZWRFbnRpdGllcy5wdXNoKHRoaXMuZW50aXR5W3RoaXMuZW50aXR5LmNvbnN0cnVjdG9yLm5hbWUgKyAnUmVmJ10pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVW5hc3NvY2lhdGVkQ2hvaWNlQ2hhbmdlZCA9IChvcHRpb246IElUcnVUb29sYmFyRHJvcGRvd25PcHRpb24gfCBudWxsKSA9PiB7XHJcblxyXG4gIH1cclxuXHJcbiAgY2FuQWRkID0gKCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSlcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2UgIT09IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25BZGQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KSB7XHJcbiAgICAgIGxldCBwYXJlbnROYW1lID0gdGhpcy5lbnRpdHkuY29uc3RydWN0b3IubmFtZTtcclxuICAgICAgbGV0IGFzc29jaWF0ZWRUeXBlID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGU7XHJcbiAgICAgIGxldCB1bmFzc29jaWF0ZWRUeXBlID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eU1hbnlUb01hbnlUeXBlO1xyXG4gICAgICBsZXQgcmVmID0gdGhpcy5zZWxlY3RlZFVuYXNzb2NpYXRlZENob2ljZS52YWx1ZS4kO1xyXG4gICAgICBsZXQgY2hpbGRUb0Fzc29jaWF0ZSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoQnlSZWZDYWNoZU9ubHkodW5hc3NvY2lhdGVkVHlwZSwgcmVmLCB0cnVlKVxyXG4gICAgICBpZiAoY2hpbGRUb0Fzc29jaWF0ZSkge1xyXG4gICAgICAgIC8vIGNyZWF0ZSBtYW55LXRvLW1hbnkgZW50aXR5XHJcbiAgICAgICAgbGV0IG5ld0VudGl0eSA9IHRoaXMuZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHkodGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQoYXNzb2NpYXRlZFR5cGUpKTtcclxuICAgICAgICBuZXdFbnRpdHkuJGVudGl0eVt1bmFzc29jaWF0ZWRUeXBlLm5hbWUgKyAnUmVmJ10gPSBjaGlsZFRvQXNzb2NpYXRlW3VuYXNzb2NpYXRlZFR5cGUubmFtZSArICdSZWYnXTtcclxuICAgICAgICBuZXdFbnRpdHkuJGVudGl0eVtwYXJlbnROYW1lICsgJ1JlZiddID0gdGhpcy5lbnRpdHlbcGFyZW50TmFtZSArICdSZWYnXTtcclxuICAgICAgICAvLyByZW1vdmUgaXRlbSBmcm9tIHRoZSBhZGQgZHJvcGRvd24gY29udHJvbFxyXG4gICAgICAgIGxldCBpdGVtSW5kZXggPSB0aGlzLnVuYXNzb2NpYXRlZENob2ljZXMuZmluZEluZGV4KChjaG9pY2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiBjaG9pY2VbdW5hc3NvY2lhdGVkVHlwZS5uYW1lICsgJ1JlZiddID09PSBjaGlsZFRvQXNzb2NpYXRlW3VuYXNzb2NpYXRlZFR5cGUubmFtZSArICdSZWYnXTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnVuYXNzb2NpYXRlZENob2ljZXMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgLy8gY2xlYXIgYWRkIHNlbGVjdGlvblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgLy8gYWRkIHJvdyB0byBncmlkXHJcbiAgICAgICAgdGhpcy51bnNhdmVkRW50aXRpZXMucHVzaChuZXdFbnRpdHkpO1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyBhZGQ6IFtuZXdFbnRpdHldLCBhZGRJbmRleDogMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IG5ld0VudGl0eSA9IHRoaXMuZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHkodGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5hZGQodGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUpKTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuYXBwbHlUcmFuc2FjdGlvbih7IGFkZDogW25ld0VudGl0eV0sIGFkZEluZGV4OiAwIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EZWxldGUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBsZXQgc2VsZWN0ZWRSb3dzID0gdGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dzLmxlbmd0aCkge1xyXG4gICAgICBsZXQgZW50aXRpZXMgPSBzZWxlY3RlZFJvd3MubWFwKGZ1bmN0aW9uIChyb3c6IGFueSkgeyByZXR1cm4gcm93LiRlbnRpdHk7IH0pO1xyXG4gICAgICBsZXQgY29uZmlybU1zZyA9IHRoaXMuYXBwRW52aXJvbm1lbnQuZm9ybWF0RGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZSh0aGlzLmNvbmZpZy50YWJsZU5hbWUsIHRoaXMuY29uZmlnLnRhYmxlUGx1cmFsTGFiZWwsIHNlbGVjdGVkUm93cy5sZW5ndGgpO1xyXG4gICAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KSB7XHJcbiAgICAgICAgbGV0IG9uU3VjY2VzcyA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25TZWFyY2godGhpcy5jb25maWcucmVzdWx0Q29uZmlnLnNldHVwUXVlcnkodGhpcy5lbnRpdHkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5kZWxldGUoZW50aXRpZXMsIGNvbmZpcm1Nc2csIG9uU3VjY2Vzcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5kZWxldGUoZW50aXRpZXMsIGNvbmZpcm1Nc2cpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVpTm90aWZpY2F0aW9uLndhcm5pbmcodGhpcy5hcHBFbnZpcm9ubWVudC5tc2dOb1JlY29yZHNTZWxlY3RlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktlZXAgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBsZXQgc2VsZWN0ZWRSb3dzID0gdGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dzLmxlbmd0aClcclxuICAgICAgdGhpcy5yb3dEYXRhID0gdGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgfVxyXG5cclxuICBvblJlbW92ZSA9ICgpOiB2b2lkID0+IHtcclxuICAgIGxldCBzZWxlY3RlZFJvd3MgPSB0aGlzLmdyaWRPcHRpb25zLmFwaS5nZXRTZWxlY3RlZFJvd3MoKTtcclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyByZW1vdmU6IHNlbGVjdGVkUm93cyB9KTtcclxuICB9XHJcblxyXG4gIG9uU2V0RGVmYXVsdFJlc3VsdFZpZXcgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBhbGVydCgnTm90IEltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydCA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuZXhwb3J0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvKCk7XHJcbiAgICB0aGlzLmNvbHVtbkRlZnMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY29sdW1uRGVmcztcclxuICAgIHRoaXMuZ3JpZFR5cGUgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZ3JpZFR5cGU7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWwgfHwgdGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KVxyXG4gICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvL3NldFRpbWVvdXQgdG8gcHJldmVudDogRVJST1IgRXJyb3I6IE5HMDEwMDogRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci4gXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5wYXJlbnRUb29sYmFyVGVtcGxhdGUgPSB0aGlzLnNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyLnNlYXJjaFZpZXdUb29sYmFyVGVtcGxhdGU7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbCB8fCB0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpIHtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtdG9vbGJhci1jb250YWluZXJcIj5cclxuICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgPHRydS10b29sYmFyLWRyb3Bkb3duIFtvcHRpb25zXT1cInVuYXNzb2NpYXRlZENob2ljZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZE9wdGlvbildPVwic2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblVuYXNzb2NpYXRlZENob2ljZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdyaWRUeXBlID09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueVwiPlxyXG4gICAgICA8L3RydS10b29sYmFyLWRyb3Bkb3duPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1hZGQtaWNvbidcIiBbdG9vbHRpcF09XCInQWRkIC0gW0N0cmwgKyBJXSdcIiBbZGlzYWJsZWRdPVwiIWNhbkFkZCgpXCIgKG9uQ2xpY2spPVwib25BZGQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1kZWxldGUtaWNvbidcIiBbdG9vbHRpcF09XCInRGVsZXRlIC0gW0N0cmwgKyBEXSdcIiAoY2xpY2spPVwib25EZWxldGUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1rZWVwLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0tlZXAgc2VsZWN0ZWQgcmVjb3JkcyAtIFtDdHJsICsgS10nXCIgKGNsaWNrKT1cIm9uS2VlcCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXJlbW92ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidSZW1vdmUgc2VsZWN0ZWQgcmVjb3JkcyAtIFtDdHJsICsgUl0nXCIgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPHRydS10b29sYmFyLXNlcGFyYXRvcj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItc3Rhci1lbXB0eS1pY29uJ1wiIFt0b29sdGlwXT1cIidTZXQgdGhpcyByZXN1bHQgdmlldyBhcyBkZWZhdWx0J1wiIChjbGljayk9XCJvblNldERlZmF1bHRSZXN1bHRWaWV3KClcIiAqbmdJZj1cImdyaWRUeXBlID09IFRydURhdGFHcmlkVHlwZXMuU2VhcmNoXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1zZXBhcmF0b3IgKm5nSWY9XCJncmlkVHlwZSA9PSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaFwiPjwvdHJ1LXRvb2xiYXItc2VwYXJhdG9yPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1leHBvcnQtaWNvbidcIiBbdG9vbHRpcF09XCInRXhwb3J0J1wiIChjbGljayk9XCJvbkV4cG9ydCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICA8L3RydS10b29sYmFyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhcmVudFRvb2xiYXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0cnUtZGF0YS1ncmlkLWNvbnRhaW5lclwiPlxyXG4gICAgPGFnLWdyaWQtYW5ndWxhciBjbGFzcz1cImFnLXRoZW1lLWFscGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtncmlkT3B0aW9uc109XCJncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dEYXRhXT1cInJvd0RhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2hlYWRlckhlaWdodF09XCIyNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiMjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbb3ZlcmxheUxvYWRpbmdUZW1wbGF0ZV09XCJsb2FkaW5nVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbb3ZlcmxheU5vUm93c1RlbXBsYXRlXT1cIm5vUm93c1RlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2VudGVyTmF2aWdhdGVzVmVydGljYWxseV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2VudGVyTmF2aWdhdGVzVmVydGljYWxseUFmdGVyRWRpdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHJvd0NsaWNrZWQpPVwib25Sb3dDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2VsbERvdWJsZUNsaWNrZWQpPVwib25DZWxsRG91YmxlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNlbGxLZXlEb3duKT1cIm9uQ2VsbEtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjZWxsRm9jdXNlZCk9XCJvbkNlbGxGb2N1c2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAocm93RGF0YUNoYW5nZWQpPVwib25Sb3dEYXRhQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
308
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUF3RCxNQUFNLGVBQWUsQ0FBQztBQU1sSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBY2hDLE1BQU0sT0FBTyxXQUFXO0lBK0J0QixZQUNVLFdBQTJCLEVBQzNCLHVCQUFtRCxFQUNuRCxjQUFpQyxFQUNqQyxzQkFBaUQsRUFDakQsY0FBaUMsRUFDakMsYUFBK0I7UUFML0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBNEI7UUFDbkQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBMkI7UUFDakQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQWhDekMscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFcEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQWUsRUFBRSxDQUFDO1FBRTdCLHdCQUFtQixHQUFlLEVBQUUsQ0FBQztRQUVy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bnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVTZWFyY2hWaWV3RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXInO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVVaU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS11aS1ub3RpZmljYXRpb24nO1xyXG5pbXBvcnQgeyBJVHJ1RGF0YUdyaWRDb25maWcgfSBmcm9tICcuL2NsYXNzZXMvdHJ1LWRhdGEtZ3JpZC1jb25maWcnO1xyXG5pbXBvcnQgeyBUcnVEYXRhR3JpZFR5cGVzIH0gZnJvbSAnLi9lbnVtcy90cnUtZGF0YS1ncmlkLXR5cGVzJztcclxuaW1wb3J0IHsgSVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbiB9IGZyb20gJy4uL3Rvb2xiYXIvY2xhc3Nlcy90cnUtdG9vbGJhci1kcm9wZG93bi1vcHRpb24nO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgc2tpcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IFRydVNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1tYW5hZ2VyJztcclxuaW1wb3J0IHsgVHJ1Q29ubmVjdGlvbkh1YiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1jb25uZWN0aW9uLWh1Yic7XHJcbmltcG9ydCB7IFRydURhdGFDaGFuZ2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RydS1kYXRhLWNoYW5nZSc7XHJcbmltcG9ydCB7IENlbGxGb2N1c2VkRXZlbnQsIENlbGxLZXlEb3duRXZlbnQsIEZ1bGxXaWR0aENlbGxLZXlEb3duRXZlbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1LWRhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1kYXRhLWdyaWQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWRhdGEtZ3JpZC5jc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHsnW2NsYXNzLnRydS1kYXRhLWdyaWRdJzogJ3RydWUnfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1RGF0YUdyaWQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgY29uZmlnITogSVRydURhdGFHcmlkQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGVudGl0eSE6IGFueTtcclxuICBASW5wdXQoKSBuYW1lITogYW55O1xyXG5cclxuICBUcnVEYXRhR3JpZFR5cGVzID0gVHJ1RGF0YUdyaWRUeXBlcztcclxuXHJcbiAgY29sdW1uRGVmczogYW55ID0gW107XHJcbiAgcm93RGF0YTogYW55ID0gW107XHJcbiAgdmlld0Nob2ljZXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBzZWxlY3RlZFZpZXdDaG9pY2U6IGFueTtcclxuICB1bmFzc29jaWF0ZWRDaG9pY2VzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2U6IGFueTtcclxuICBsb2FkaW5nVGVtcGxhdGU6IHN0cmluZyA9ICc8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXJcIj4gRGF0YSBpcyBsb2FkaW5nLi4uPC9zcGFuPic7XHJcbiAgbm9Sb3dzVGVtcGxhdGU6IHN0cmluZyA9IGA8c3Bhbj5SdW4gYSBzZWFyY2ggdG8gZmluZCBpdGVtcy48L3NwYW4+YDtcclxuICBncmlkVHlwZTogVHJ1RGF0YUdyaWRUeXBlcyA9IFRydURhdGFHcmlkVHlwZXMuU2VhcmNoXHJcbiAgdW5zYXZlZEVudGl0aWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgbG9hZGVkRW50aXRpZXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBsYXRlc3RTZXR1cFF1ZXJ5OiBhbnk7XHJcbiAgZ3JpZE9wdGlvbnM6IGFueSA9IHtcclxuICAgIHJvd1NlbGVjdGlvbjogJ211bHRpcGxlJyxcclxuICAgIHJvd1N0eWxlOiB7IGJhY2tncm91bmQ6ICd3aGl0ZScgfSxcclxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlZDogKHBhcmFtczogYW55KSA9PiB7IH0sXHJcbiAgICBvbkNlbGxFZGl0aW5nU3RvcHBlZDogKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZHJhd1Jvd3MoeyByb3dOb2RlczogW3BhcmFtcy5ub2RlXSB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcGFyZW50VG9vbGJhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgc3ViczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hSZXN1bHRWaWV3TWFuYWdlcjogVHJ1U2VhcmNoUmVzdWx0Vmlld01hbmFnZXIsXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgc2VhcmNoVmlld0V2ZW50SGFuZGxlcjogVHJ1U2VhcmNoVmlld0V2ZW50SGFuZGxlcixcclxuICAgIHByaXZhdGUgdWlOb3RpZmljYXRpb246IFRydVVpTm90aWZpY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBjb25uZWN0aW9uSHViOiBUcnVDb25uZWN0aW9uSHViKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVuaGFuY2VSb3dEYXRhRm9yRW50aXR5ID0gKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICBsZXQgcm93RGF0YSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5yb3dEYXRhRW5oYW5jZXIoZW50aXR5KTtcclxuICAgIHJvd0RhdGEuJGVudGl0eSA9IGVudGl0eTtcclxuICAgIHJldHVybiByb3dEYXRhO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgc2V0Tm9Sb3dzVGVtcGxhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm5vUm93c1RlbXBsYXRlID0gYDxzcGFuPk5vIHJvd3MgdG8gc2hvdy48L3NwYW4+YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG8gPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmFwcEVudmlyb25tZW50Lm9uU2F2ZUNvbXBsZXRlJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQ/LnN1Y2Nlc3NmdWwpXHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVkcmF3Um93cygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5hcHBFbnZpcm9ubWVudC5vblJldmVydENvbXBsZXRlJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQ/LnN1Y2Nlc3NmdWwpIHtcclxuICAgICAgICBsZXQgcm93Tm9kZXM6IGFueSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmZvckVhY2hOb2RlKChyb3dOb2RlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIHJldHVybiByb3dOb2Rlcy5wdXNoKHJvd05vZGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSByb3dOb2Rlcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSlcclxuICAgICAgICAgIGlmIChyb3dOb2Rlc1tpXS5kYXRhLiRlbnRpdHlbdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUubmFtZSArICdSZWYnXSA8IDApXHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnVwZGF0ZVJvd0RhdGEoeyByZW1vdmU6IFtyb3dOb2Rlc1tpXS5kYXRhXSB9KTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5yZWRyYXdSb3dzKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmFwcEVudmlyb25tZW50Lm9uRGVsZXRlQ29tcGxldGUkLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudD8uc3VjY2Vzc2Z1bCAmJiBldmVudC5lbnRpdGllcyAmJiBldmVudC5lbnRpdGllcy5sZW5ndGgpIHtcclxuICAgICAgICBsZXQgcm93c1RvUmVtb3ZlOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMucm93RGF0YS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IGV2ZW50LmVudGl0aWVzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvd0RhdGFbaV0uJGVudGl0eSA9PT0gZXZlbnQuZW50aXRpZXNbal0pXHJcbiAgICAgICAgICAgICAgcm93c1RvUmVtb3ZlLnB1c2godGhpcy5yb3dEYXRhW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuYXBwbHlUcmFuc2FjdGlvbih7IHJlbW92ZTogcm93c1RvUmVtb3ZlIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZHJhd1Jvd3MoKTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5zZWFyY2hWaWV3RXZlbnRIYW5kbGVyLm9uU2VhcmNoKCkucGlwZShza2lwKDEpKS5zdWJzY3JpYmUoKHNldHVwUXVlcnk6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLm9uU2VhcmNoKHNldHVwUXVlcnkpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5jb25uZWN0aW9uSHViLnN1YnNjcmliZShcclxuICAgICAgdGhpcy5kYXRhQ29udGV4dCxcclxuICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsXHJcbiAgICAgIHRoaXMuY29uZmlnLnRhYmxlTmFtZSxcclxuICAgICAgKCkgPT4geyByZXR1cm4gdGhpcy5sb2FkZWRFbnRpdGllcyB9LFxyXG4gICAgICAoKSA9PiB7IHJldHVybiB0aGlzLmxhdGVzdFNldHVwUXVlcnkgfSxcclxuICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmV4cGFuZHMsXHJcbiAgICAgIFtdLFxyXG4gICAgICAoKSA9PiB7IHJldHVybiB0cnVlOyB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZnJlc2hDZWxscyh7IGZvcmNlOiB0cnVlIH0pO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkR3JpZERhdGEgPSAoZW50aXRpZXM6IEFycmF5PGFueT4pID0+IHtcclxuICAgIHRoaXMucm93RGF0YSA9IGVudGl0aWVzLm1hcCh0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5LCBlbnRpdGllcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRNYW55VG9NYW55R3JpZERhdGEgPSAoYXNzb2NpYXRlZEVudGl0aWVzOiBBcnJheTxhbnk+LCBhc3NvY2lhdGFibGVFbnRpdGllczogQXJyYXk8YW55PiwgaW5pdGFsTG9hZDogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKGluaXRhbExvYWQpXHJcbiAgICAgIHRoaXMucm93RGF0YSA9IGFzc29jaWF0ZWRFbnRpdGllcy5tYXAodGhpcy5lbmhhbmNlUm93RGF0YUZvckVudGl0eSwgYXNzb2NpYXRlZEVudGl0aWVzKTtcclxuICAgIGVsc2VcclxuICAgICAgYXNzb2NpYXRlZEVudGl0aWVzID0gdGhpcy5yb3dEYXRhLm1hcCgoZTogYW55KSA9PiB7IHJldHVybiBlLiRlbnRpdHkgfSk7XHJcbiAgICBsZXQgYXNzb2NpYXRhYmxlVHlwZU5hbWUgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5TWFueVRvTWFueVR5cGUubmFtZVxyXG4gICAgbGV0IGFzc29jaWF0ZWRNYXBPZkFzc29jaWF0YWJsZSA9IF8ubWFwKGFzc29jaWF0ZWRFbnRpdGllcywgZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGVbJ28nICsgYXNzb2NpYXRhYmxlVHlwZU5hbWVdOyB9KTtcclxuICAgIHRoaXMudW5hc3NvY2lhdGVkQ2hvaWNlcyA9IGFzc29jaWF0YWJsZUVudGl0aWVzLmZpbHRlcihvYmplY3QxID0+IHtcclxuICAgICAgcmV0dXJuICFhc3NvY2lhdGVkTWFwT2ZBc3NvY2lhdGFibGUuc29tZShvYmplY3QyID0+IHsgcmV0dXJuIG9iamVjdDEudmFsdWUuJCA9PT0gb2JqZWN0Mlthc3NvY2lhdGFibGVUeXBlTmFtZSArICdSZWYnXTsgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwb3J0RGF0YSA9ICgpID0+IHtcclxuICAgIHRoaXMudWlOb3RpZmljYXRpb24uc2hvd0V4cG9ydERpYWxvZygpLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuO1xyXG4gICAgICBsZXQgZXhwb3J0R3JpZFNwZWM7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSlcclxuICAgICAgICBleHBvcnRHcmlkU3BlYyA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLm5hbWU7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBleHBvcnRHcmlkU3BlYyA9ICckY3VzdG9tPScgKyAxO1xyXG5cclxuICAgICAgbGV0IHJvd05vZGVzOiBhbnkgPSBbXTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUoKHJvd05vZGU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHJvd05vZGVzLnB1c2gocm93Tm9kZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgcmVmcyA9IF8ubWFwKHJvd05vZGVzLCAocm93Tm9kZSkgPT4geyByZXR1cm4gcm93Tm9kZS5kYXRhLiRlbnRpdHlbdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUubmFtZSArICdSZWYnXTsgfSk7XHJcbiAgICAgIHRoaXMuZGF0YUNvbnRleHRcclxuICAgICAgICAuZW50aXR5QWNjZXNzKClcclxuICAgICAgICAuZXhwb3J0KHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLCBleHBvcnRHcmlkU3BlYywgdGhpcy5sYXRlc3RTZXR1cFF1ZXJ5LCByZWZzLmpvaW4oJywnKSwgcmVzdWx0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dEYXRhQ2hhbmdlZCA9IChkYXRhOiBhbnkpID0+IHtcclxuICAgIGlmICh0aGlzLnJvd0RhdGEgPT09IG51bGwpXHJcbiAgICAgIHRoaXMuc2V0Tm9Sb3dzVGVtcGxhdGUoKTtcclxuICB9XHJcblxyXG4gIG9uUm93Q2xpY2tlZCA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIG9uQ2VsbERvdWJsZUNsaWNrZWQgPSAoZ3JpZENvbmZpZzogYW55KSA9PiB7XHJcbiAgICBpZiAoZ3JpZENvbmZpZy5jb2xEZWYuY2VsbENsYXNzID09PSAnYWctcGstYWxpZ25lZC1jZWxsJylcclxuICAgICAgdGhpcy5jb25maWcucm93SGVhZGVyRG91YmxlQ2xpY2tlZChncmlkQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIG9uQ2VsbEtleURvd24gPSAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgaWYgKCFldmVudC5ldmVudCkgcmV0dXJuO1xyXG4gICAgY29uc3Qga2V5ID0gKGV2ZW50LmV2ZW50IGFzIHVua25vd24pIGFzIEtleWJvYXJkRXZlbnQ7XHJcbiAgICBpZiAoa2V5LmNvZGUgPT09ICdTcGFjZScpIHtcclxuICAgICAga2V5LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGtleS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgIGlmICghZXZlbnQuY29sRGVmLmNlbGxSZW5kZXJlcikge1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpPy5zdGFydEVkaXRpbmdDZWxsKHtcclxuICAgICAgICAgIHJvd0luZGV4OiBldmVudC5yb3dJbmRleCxcclxuICAgICAgICAgIGNvbEtleTogZXZlbnQuY29sdW1uLmdldENvbElkKCksXHJcbiAgICAgICAgICBrZXk6IGtleS5jb2RlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgfVxyXG5cclxuICBvbkNlbGxGb2N1c2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC5jb2x1bW4uY29sRGVmLnBpbm5lZCkge1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmRlc2VsZWN0QWxsKCk7XHJcbiAgICB9XHJcbiAgICBsZXQgY29sdW1uRGVmcyA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5jb2x1bW5EZWZzO1xyXG4gICAgaWYgKGV2ZW50LmNvbHVtbi5jb2xEZWYucGlubmVkKSB7XHJcbiAgICAgIGNvbHVtbkRlZnMuZm9yRWFjaCgoY29sdW1uRGVmOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAoaW5kZXggIT09IDApXHJcbiAgICAgICAgICBjb2x1bW5EZWYuaGVhZGVyQ2xhc3MgPSAnYWctY29sdW1uLWZvY3VzJztcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb2x1bW5EZWZzLmZvckVhY2goKGNvbHVtbkRlZjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAwICYmIGV2ZW50LmNvbHVtbi5jb2xJZCA9PT0gY29sdW1uRGVmLmZpZWxkKVxyXG4gICAgICAgICAgY29sdW1uRGVmLmhlYWRlckNsYXNzID0gJ2FnLWNvbHVtbi1mb2N1cyc7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgY29sdW1uRGVmLmhlYWRlckNsYXNzID0gdW5kZWZpbmVkO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNldENvbHVtbkRlZnMoY29sdW1uRGVmcyk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCA9IChzZXR1cFF1ZXJ5OiBhbnkpID0+IHtcclxuICAgIGxldCBlbnRpdHlMb2FkZWQgPSB0aGlzLmxvYWRlZEVudGl0aWVzLnNvbWUoKHJlZikgPT4geyByZXR1cm4gcmVmID09PSB0aGlzLmVudGl0eVt0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lICsgJ1JlZiddOyB9KTtcclxuICAgIGxldCBqb2lucyA9IFtdO1xyXG4gICAgaWYgKGVudGl0eUxvYWRlZCkge1xyXG4gICAgICBqb2lucy5wdXNoKHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoQ2FjaGVPbmx5KFxyXG4gICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLFxyXG4gICAgICAgIHNldHVwUXVlcnksXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmV4cGFuZHMpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaFF1ZXJ5Q2hvaWNlcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZSxcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5tYW55VG9NYW55U2V0dXBRdWVyeSh0aGlzLmVudGl0eSksIG51bGwsIGZhbHNlKSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGpvaW5zLnB1c2godGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2goXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsXHJcbiAgICAgICAgc2V0dXBRdWVyeSxcclxuICAgICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZXhwYW5kcywgZmFsc2UpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaFF1ZXJ5Q2hvaWNlcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZSxcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5tYW55VG9NYW55U2V0dXBRdWVyeSh0aGlzLmVudGl0eSksIG51bGwsIHRydWUpKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGF0ZXN0U2V0dXBRdWVyeSA9IHNldHVwUXVlcnk7XHJcblxyXG4gICAgZm9ya0pvaW4oam9pbnMpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3VsdHMgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0Tm9Sb3dzVGVtcGxhdGUoKTtcclxuICAgICAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KVxyXG4gICAgICAgICAgdGhpcy5sb2FkTWFueVRvTWFueUdyaWREYXRhKHJlc3VsdHNbMF0sIHJlc3VsdHNbMV0sIHRydWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMubG9hZEdyaWREYXRhKHJlc3VsdHNbMF0pO1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdyaWRUeXBlICE9PSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaClcclxuICAgICAgICAgIHRoaXMubG9hZGVkRW50aXRpZXMucHVzaCh0aGlzLmVudGl0eVt0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lICsgJ1JlZiddKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblVuYXNzb2NpYXRlZENob2ljZUNoYW5nZWQgPSAob3B0aW9uOiBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIHwgbnVsbCkgPT4ge1xyXG5cclxuICB9XHJcblxyXG4gIGNhbkFkZCA9ICgpOiBib29sZWFuID0+IHtcclxuICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVW5hc3NvY2lhdGVkQ2hvaWNlICE9PSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uQWRkID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSkge1xyXG4gICAgICBsZXQgcGFyZW50TmFtZSA9IHRoaXMuZW50aXR5LmNvbnN0cnVjdG9yLm5hbWU7XHJcbiAgICAgIGxldCBhc3NvY2lhdGVkVHlwZSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlO1xyXG4gICAgICBsZXQgdW5hc3NvY2lhdGVkVHlwZSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZTtcclxuICAgICAgbGV0IHJlZiA9IHRoaXMuc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2UudmFsdWUuJDtcclxuICAgICAgbGV0IGNoaWxkVG9Bc3NvY2lhdGUgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KHVuYXNzb2NpYXRlZFR5cGUsIHJlZiwgdHJ1ZSlcclxuICAgICAgaWYgKGNoaWxkVG9Bc3NvY2lhdGUpIHtcclxuICAgICAgICAvLyBjcmVhdGUgbWFueS10by1tYW55IGVudGl0eVxyXG4gICAgICAgIGxldCBuZXdFbnRpdHkgPSB0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5KHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuYWRkKGFzc29jaWF0ZWRUeXBlKSk7XHJcbiAgICAgICAgbmV3RW50aXR5LiRlbnRpdHlbdW5hc3NvY2lhdGVkVHlwZS5uYW1lICsgJ1JlZiddID0gY2hpbGRUb0Fzc29jaWF0ZVt1bmFzc29jaWF0ZWRUeXBlLm5hbWUgKyAnUmVmJ107XHJcbiAgICAgICAgbmV3RW50aXR5LiRlbnRpdHlbcGFyZW50TmFtZSArICdSZWYnXSA9IHRoaXMuZW50aXR5W3BhcmVudE5hbWUgKyAnUmVmJ107XHJcbiAgICAgICAgLy8gcmVtb3ZlIGl0ZW0gZnJvbSB0aGUgYWRkIGRyb3Bkb3duIGNvbnRyb2xcclxuICAgICAgICBsZXQgaXRlbUluZGV4ID0gdGhpcy51bmFzc29jaWF0ZWRDaG9pY2VzLmZpbmRJbmRleCgoY2hvaWNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY2hvaWNlW3VuYXNzb2NpYXRlZFR5cGUubmFtZSArICdSZWYnXSA9PT0gY2hpbGRUb0Fzc29jaWF0ZVt1bmFzc29jaWF0ZWRUeXBlLm5hbWUgKyAnUmVmJ107XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy51bmFzc29jaWF0ZWRDaG9pY2VzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIC8vIGNsZWFyIGFkZCBzZWxlY3Rpb25cclxuICAgICAgICB0aGlzLnNlbGVjdGVkVW5hc3NvY2lhdGVkQ2hvaWNlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIC8vIGFkZCByb3cgdG8gZ3JpZFxyXG4gICAgICAgIHRoaXMudW5zYXZlZEVudGl0aWVzLnB1c2gobmV3RW50aXR5KTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgYWRkOiBbbmV3RW50aXR5XSwgYWRkSW5kZXg6IDAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBuZXdFbnRpdHkgPSB0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5KHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuYWRkKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlKSk7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyBhZGQ6IFtuZXdFbnRpdHldLCBhZGRJbmRleDogMCB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgaWYgKHNlbGVjdGVkUm93cy5sZW5ndGgpIHtcclxuICAgICAgbGV0IGVudGl0aWVzID0gc2VsZWN0ZWRSb3dzLm1hcChmdW5jdGlvbiAocm93OiBhbnkpIHsgcmV0dXJuIHJvdy4kZW50aXR5OyB9KTtcclxuICAgICAgbGV0IGNvbmZpcm1Nc2cgPSB0aGlzLmFwcEVudmlyb25tZW50LmZvcm1hdERlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UodGhpcy5jb25maWcudGFibGVOYW1lLCB0aGlzLmNvbmZpZy50YWJsZVBsdXJhbExhYmVsLCBzZWxlY3RlZFJvd3MubGVuZ3RoKTtcclxuICAgICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSkge1xyXG4gICAgICAgIGxldCBvblN1Y2Nlc3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKGVudGl0aWVzLCBjb25maXJtTXNnLCBvblN1Y2Nlc3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKGVudGl0aWVzLCBjb25maXJtTXNnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51aU5vdGlmaWNhdGlvbi53YXJuaW5nKHRoaXMuYXBwRW52aXJvbm1lbnQubXNnTm9SZWNvcmRzU2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25LZWVwID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgaWYgKHNlbGVjdGVkUm93cy5sZW5ndGgpXHJcbiAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gIH1cclxuXHJcbiAgb25SZW1vdmUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBsZXQgc2VsZWN0ZWRSb3dzID0gdGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiBzZWxlY3RlZFJvd3MgfSk7XHJcbiAgfVxyXG5cclxuICBvblNldERlZmF1bHRSZXN1bHRWaWV3ID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgYWxlcnQoJ05vdCBJbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxuXHJcbiAgb25FeHBvcnQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLmV4cG9ydERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUbygpO1xyXG4gICAgdGhpcy5jb2x1bW5EZWZzID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmNvbHVtbkRlZnM7XHJcbiAgICB0aGlzLmdyaWRUeXBlID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmdyaWRUeXBlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsIHx8IHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSlcclxuICAgICAgdGhpcy5vblNlYXJjaCh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuc2V0dXBRdWVyeSh0aGlzLmVudGl0eSkpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy9zZXRUaW1lb3V0IHRvIHByZXZlbnQ6IEVSUk9SIEVycm9yOiBORzAxMDA6IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMucGFyZW50VG9vbGJhclRlbXBsYXRlID0gdGhpcy5zZWFyY2hSZXN1bHRWaWV3TWFuYWdlci5zZWFyY2hWaWV3VG9vbGJhclRlbXBsYXRlO1xyXG4gICAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWwgfHwgdGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaCh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuc2V0dXBRdWVyeSh0aGlzLmVudGl0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0cnUtZGF0YS1ncmlkLXRvb2xiYXItY29udGFpbmVyXCI+XHJcbiAgICA8dHJ1LXRvb2xiYXI+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1kcm9wZG93biBbb3B0aW9uc109XCJ1bmFzc29jaWF0ZWRDaG9pY2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRPcHRpb24pXT1cInNlbGVjdGVkVW5hc3NvY2lhdGVkQ2hvaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25VbmFzc29jaWF0ZWRDaG9pY2VDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJncmlkVHlwZSA9PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnlcIj5cclxuICAgICAgPC90cnUtdG9vbGJhci1kcm9wZG93bj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItYWRkLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0FkZCAtIFtDdHJsICsgSV0nXCIgW2Rpc2FibGVkXT1cIiFjYW5BZGQoKVwiIChvbkNsaWNrKT1cIm9uQWRkKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItZGVsZXRlLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0RlbGV0ZSAtIFtDdHJsICsgRF0nXCIgKGNsaWNrKT1cIm9uRGVsZXRlKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXIta2VlcC1pY29uJ1wiIFt0b29sdGlwXT1cIidLZWVwIHNlbGVjdGVkIHJlY29yZHMgLSBbQ3RybCArIEtdJ1wiIChjbGljayk9XCJvbktlZXAoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1yZW1vdmUtaWNvbidcIiBbdG9vbHRpcF09XCInUmVtb3ZlIHNlbGVjdGVkIHJlY29yZHMgLSBbQ3RybCArIFJdJ1wiIChjbGljayk9XCJvblJlbW92ZSgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1zZXBhcmF0b3I+PC90cnUtdG9vbGJhci1zZXBhcmF0b3I+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXN0YXItZW1wdHktaWNvbidcIiBbdG9vbHRpcF09XCInU2V0IHRoaXMgcmVzdWx0IHZpZXcgYXMgZGVmYXVsdCdcIiAoY2xpY2spPVwib25TZXREZWZhdWx0UmVzdWx0VmlldygpXCIgKm5nSWY9XCJncmlkVHlwZSA9PSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaFwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItc2VwYXJhdG9yICpuZ0lmPVwiZ3JpZFR5cGUgPT0gVHJ1RGF0YUdyaWRUeXBlcy5TZWFyY2hcIj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItZXhwb3J0LWljb24nXCIgW3Rvb2x0aXBdPVwiJ0V4cG9ydCdcIiAoY2xpY2spPVwib25FeHBvcnQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgPC90cnUtdG9vbGJhcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYXJlbnRUb29sYmFyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1jb250YWluZXJcIj5cclxuICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgW292ZXJsYXlMb2FkaW5nVGVtcGxhdGVdPVwibG9hZGluZ1RlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCJub1Jvd3NUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtlbnRlck5hdmlnYXRlc1ZlcnRpY2FsbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtlbnRlck5hdmlnYXRlc1ZlcnRpY2FsbHlBZnRlckVkaXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChyb3dDbGlja2VkKT1cIm9uUm93Q2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNlbGxEb3VibGVDbGlja2VkKT1cIm9uQ2VsbERvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjZWxsS2V5RG93bik9XCJvbkNlbGxLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2VsbEZvY3VzZWQpPVwib25DZWxsRm9jdXNlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHJvd0RhdGFDaGFuZ2VkKT1cIm9uUm93RGF0YUNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -2666,7 +2666,7 @@ class TruDataGrid {
|
|
|
2666
2666
|
rowStyle: { background: 'white' },
|
|
2667
2667
|
onSelectionChanged: (params) => { },
|
|
2668
2668
|
onCellEditingStopped: (params) => {
|
|
2669
|
-
this.gridOptions.api.redrawRows({ rowNodes: params.node });
|
|
2669
|
+
this.gridOptions.api.redrawRows({ rowNodes: [params.node] });
|
|
2670
2670
|
}
|
|
2671
2671
|
};
|
|
2672
2672
|
this.parentToolbarTemplate = null;
|
|
@@ -2884,12 +2884,20 @@ class TruDataGrid {
|
|
|
2884
2884
|
this.gridOptions.api.deselectAll();
|
|
2885
2885
|
}
|
|
2886
2886
|
let columnDefs = this.config.resultConfig.columnDefs;
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
}
|
|
2887
|
+
if (event.column.colDef.pinned) {
|
|
2888
|
+
columnDefs.forEach((columnDef, index) => {
|
|
2889
|
+
if (index !== 0)
|
|
2890
|
+
columnDef.headerClass = 'ag-column-focus';
|
|
2891
|
+
});
|
|
2892
|
+
}
|
|
2893
|
+
else {
|
|
2894
|
+
columnDefs.forEach((columnDef, index) => {
|
|
2895
|
+
if (index !== 0 && event.column.colId === columnDef.field)
|
|
2896
|
+
columnDef.headerClass = 'ag-column-focus';
|
|
2897
|
+
else
|
|
2898
|
+
columnDef.headerClass = undefined;
|
|
2899
|
+
});
|
|
2900
|
+
}
|
|
2893
2901
|
this.gridOptions.api.setColumnDefs(columnDefs);
|
|
2894
2902
|
}
|
|
2895
2903
|
ngOnInit() {
|