@ieeesa-npm/tenants 0.2.6 → 0.2.7

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.
@@ -55,7 +55,7 @@ export class ViewTenantsListComponent {
55
55
  this.tableColumns = this.viewTenantsConstants?.tableColumns;
56
56
  this.emptyFieldValueReplacedBy = this.viewTenantsConstants?.emptyFieldValueReplacedBy;
57
57
  this.paginatorConfig = {
58
- recordsPerPage: this.viewTenantsConstants?.pageSizeOptions?.[0],
58
+ recordsPerPage: this.viewTenantsConstants?.pageSizeOptions[0],
59
59
  pageSizeOptions: this.viewTenantsConstants.pageSizeOptions,
60
60
  totalRecords: 0,
61
61
  };
@@ -85,14 +85,7 @@ export class ViewTenantsListComponent {
85
85
  this.sharedService?.setRoutePaths(this.routePaths);
86
86
  this.configureTableInfo();
87
87
  this.defaultSortedColumn = this.columnSchema[0].columnDef;
88
- this.getTenantsAndInitializeTableView({
89
- payload: {
90
- offset: 0,
91
- pageSize: this.paginatorConfig?.recordsPerPage,
92
- sortedBy: ViewTenantsColumnSchemaDef.APP_ID,
93
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
94
- },
95
- });
88
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
96
89
  }
97
90
  /**
98
91
  * Validates permission based access for provided feature.
@@ -228,14 +221,7 @@ export class ViewTenantsListComponent {
228
221
  this.dialogRef?.close();
229
222
  const appTitle = this.tenantApplicationsService.getNewTenantInfo?.appTitle;
230
223
  this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${appTitle} ${this.createTenantScreenTexts?.message?.success?.submission}`);
231
- this.getTenantsAndInitializeTableView({
232
- payload: {
233
- offset: 0,
234
- pageSize: this.paginatorConfig?.recordsPerPage,
235
- sortedBy: ViewTenantsColumnSchemaDef.APP_ID,
236
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
237
- },
238
- });
224
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
239
225
  });
240
226
  this.dialogRef?.componentInstance?.formCancel
241
227
  .pipe(takeUntil(this.destroy$))
@@ -252,15 +238,34 @@ export class ViewTenantsListComponent {
252
238
  this.defaultSortedColumn = sort.active;
253
239
  this.defaultColumnSortDirection =
254
240
  sort.direction === TableColumnSortDirection.ASCENDING;
241
+ this.sortConfig = {
242
+ sort: sort,
243
+ isSortedByAscending: this.defaultColumnSortDirection,
244
+ };
245
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
246
+ }
247
+ /**
248
+ * Constructs and returns the payload for fetching the tenants list.
249
+ * @returns GetTenantsPayload
250
+ */
251
+ getTenantsPayload() {
255
252
  const payload = {
256
253
  payload: {
257
- offset: 0,
258
- pageSize: this.paginatorConfig?.recordsPerPage,
259
- sortedBy: this.defaultSortedColumn,
260
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
254
+ offset: this.pageEvent?.pageIndex
255
+ ? this.pageEvent?.pageIndex
256
+ : 0,
257
+ pageSize: this.pageEvent?.pageSize
258
+ ? this.pageEvent?.pageSize
259
+ : this.paginatorConfig?.recordsPerPage,
260
+ sortedBy: this.sortConfig?.sort?.active
261
+ ? this.sortConfig?.sort?.active
262
+ : ViewTenantsColumnSchemaDef.APP_ID,
263
+ sortedOrderBy: this.filterSortedOrderBy(this.sortConfig?.isSortedByAscending
264
+ ? this.sortConfig?.isSortedByAscending
265
+ : this.defaultColumnSortDirection),
261
266
  },
262
267
  };
263
- this.getTenantsAndInitializeTableView(payload);
268
+ return payload;
264
269
  }
265
270
  /**
266
271
  * Returning sorting order according to column definition.
@@ -279,14 +284,8 @@ export class ViewTenantsListComponent {
279
284
  * @memberof ViewTenantsListComponent
280
285
  */
281
286
  onTablePaginationChange(pageEvent) {
282
- this.getTenantsAndInitializeTableView({
283
- payload: {
284
- offset: pageEvent.pageIndex,
285
- pageSize: pageEvent.pageSize,
286
- sortedBy: this.defaultSortedColumn,
287
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
288
- },
289
- });
287
+ this.pageEvent = pageEvent;
288
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
290
289
  }
291
290
  /**
292
291
  * Navigates to view tenants detail component.
@@ -332,4 +331,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
332
331
  }], viewTenantsDetails: [{
333
332
  type: Output
334
333
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUlkLHdCQUF3QixFQUN4QixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLG9DQUFvQyxDQUFDO0FBSzVDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsV0FBVyxHQUVaLE1BQU0seURBQXlELENBQUM7QUFFakUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFHcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlD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QUFDLGlCQUM3QyxpQkFBaUIsQ0FBQyxJQUFJOzZQQVE1QixlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgUGFnaW5hdG9yQ29uZmlnLFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgVGVuYW50c1JvdXRlc0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtcclxuICBUZW5hbnRTdGF0dXMsXHJcbiAgUGVybWlzc2lvblR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLFxyXG4gIFNvcnRPcmRlckJ5LFxyXG4gIEdldFRlbmFudHNQYXlsb2FkLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXZpZXctdGVuYW50LWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDcmVhdGVUZW5hbnRBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZW5hbnRCYXNpY0luZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRGdW5jdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS12aWV3LXRlbmFudHMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBEYXRhVGFibGVDb21wb25lbnRdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3VGVuYW50c0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgdmlld1RlbmFudHNDb25zdGFudHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGVuYW50c1BhZ2VJbmZvOiB7XHJcbiAgICB0ZW5hbnRzVGl0bGU6IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgdGVuYW50c1RpdGxlOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwgPSAnJztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBJbnB1dCgpIHJvdXRlUGF0aHMhOiBUZW5hbnRzUm91dGVzQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgQElucHV0KCkgZGVmYXVsdFNvcnRlZENvbHVtbjogc3RyaW5nID0gVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lEO1xyXG4gIEBPdXRwdXQoKSBjcmVhdGVUZW5hbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHZpZXdUZW5hbnRzRGV0YWlsczogRXZlbnRFbWl0dGVyPFRlbmFudEJhc2ljSW5mbz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxUZW5hbnRCYXNpY0luZm8+KCk7XHJcbiAgdGFibGVEYXRhITogVGVuYW50QmFzaWNJbmZvW107XHJcbiAgY29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIHRhYmxlQ29sdW1ucyA9IHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LnRhYmxlQ29sdW1ucztcclxuICBlbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5ID1cclxuICAgIHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnk7XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8ucGFnZVNpemVPcHRpb25zPy5bMF0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMudmlld1RlbmFudHNDb25zdGFudHMucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgdXNlclRlbmFudHNQZXJtaXNzaW9ucyE6IFRlbmFudHNQZXJtaXNzaW9uc1tdO1xyXG4gIHBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvblR5cGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZVRlbmFudFNjcmVlblRleHRzOiBhbnkgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlVGVuYW50O1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlOiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogeyBtYXRjaGVzOiBib29sZWFuIH0pID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgcGVybWlzc2lvbnMsIHJvdXRlciBjb25maWcgcGF0aCwgYmFzZSBBUEkgVVJMLCB0YWJsZSBjb2x1bW4gc2NoZW1hIGFuZCBnZXRzIHRoZSB0ZW5hbnRzIGxpc3QuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zID1cclxuICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlPy5maWx0ZXJQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZT8uc2V0QXBwQ29uZmlnKFxyXG4gICAgICB0aGlzLmFwaUJhc2VVUkwsXHJcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy50ZW5hbnRzUGFnZUluZm8gPSB7XHJcbiAgICAgIHRlbmFudHNUaXRsZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8udGVuYW50c1RpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucm91dGVQYXRocyA9IHRoaXMucm91dGVQYXRocyA/PyB0aGlzLmNvbnN0YW50cz8ucm91dGVDb25maWdQYXRoO1xyXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlPy5zZXRSb3V0ZVBhdGhzKHRoaXMucm91dGVQYXRocyk7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZVRhYmxlSW5mbygpO1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMF0uY29sdW1uRGVmO1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzb3J0ZWRCeTogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lELFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyBwZXJtaXNzaW9uIGJhc2VkIGFjY2VzcyBmb3IgcHJvdmlkZWQgZmVhdHVyZS5cclxuICAgKiBAcGFyYW0ge1Blcm1pc3Npb25UeXBlfSBwZXJtaXNzaW9uVHlwZVxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZS52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgcGVybWlzc2lvblR5cGUsXHJcbiAgICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJlcyB0YWJsZSBzY2hlbWEgdG8gZGlzcGxheSB0aGUgdGVuYW50cyBpbiB0YWJsZSB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBjb25maWd1cmVUYWJsZUluZm8oKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lELFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBJZCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTElOSyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmFwcElkfWAsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAyLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX1RJVExFLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBUaXRsZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5hcHBUaXRsZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiBWaWV3VGVuYW50c0NvbHVtblNjaGVtYURlZi5BUFBfREVTQ1JJUFRJT04sXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy50YWJsZUNvbHVtbnM/LmFwcERlc2NyaXB0aW9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50LmFwcERlc2NyaXB0aW9uID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuRkVBVFVSRVMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy50YWJsZUNvbHVtbnM/LmZlYXR1cmVzLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtcclxuICAgICAgICAgICAgZWxlbWVudD8uZmVhdHVyZXMgJiYgZWxlbWVudD8uZmVhdHVyZXM/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0RmVhdHVyZXNOYW1lKGVsZW1lbnQ/LmZlYXR1cmVzKVxyXG4gICAgICAgICAgICAgIDogdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5XHJcbiAgICAgICAgICB9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuU1RBVFVTLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5zdGF0dXMsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuc3RhdHVzID8gVGVuYW50U3RhdHVzLkFDVElWRSA6IFRlbmFudFN0YXR1cy5JTkFDVElWRX1gLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdCB0aGUgZmVhdHVyZXMgbmFtZSBpbiB0byBzaW5nbGUgc2VudGVuY2Ugd2l0aCBjb21tYSBzZXBhcmF0ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1hdEZlYXR1cmVzTmFtZShmZWF0dXJlczogRmVhdHVyZXNbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZmVhdHVyZXNcclxuICAgICAgLm1hcCgoZmVhdHVyZTogRmVhdHVyZXMpID0+IHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXHJcbiAgICAgICAgcmV0dXJuIGZlYXR1cmUuZmVhdHVyZU5hbWU7XHJcbiAgICAgIH0pXHJcbiAgICAgID8uam9pbignLCAnKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hpbmcgZGV0YWlscyBvZiB0ZW5hbnRzIGFuZCBpbml0aWFsaXplIHRhYmxlIHZpZXdcclxuICAgKiBAcGFyYW0ge0dldFRlbmFudHNQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFRlbmFudHNBbmRJbml0aWFsaXplVGFibGVWaWV3KHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgICAgLmdldFRlbmFudHNMaXN0KHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlc3BvbnNlPy5ib2R5Py5hcHBEZXRhaWxzIGFzIFRlbmFudEJhc2ljSW5mb1tdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcudG90YWxSZWNvcmRzID0gcmVzcG9uc2U/LmJvZHlcclxuICAgICAgICAgICAgPy50b3RhbFJlY29yZHMgYXMgbnVtYmVyO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IsIHRoaXMuY29uc3RhbnRzPy5lcnJvcnMpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkaWFsb2cgb3B0aW9ucyBmb3IgY3JlYXRlIHRlbmFudCBtb2RhbCBhbmQgY2FsbHMgb3Blbk1vZGFsIG1ldGhvZC5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlbkNyZWF0ZVRlbmFudEZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2Uuc2V0VGVuYW50RnVuY3Rpb25UeXBlKFxyXG4gICAgICBUZW5hbnRGdW5jdGlvblR5cGUuQ1JFQVRFXHJcbiAgICApO1xyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGluZzogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8uYWRkVGVuYW50LFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZVRlbmFudEFwcGxpY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtY3JlYXRlLXRlbmFudCcpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBtb2RhbCBjb21wb25lbnQgd2l0aCByZWNlaXZlZCBwYXJhbXMgYW5kIGhhbmRsZXMgZm9ybSBzdWJtaXNzaW9uIHN1Y2Nlc3MgYW5kIGVycm9ycy5cclxuICAgKiBAcGFyYW0geyp9IGRpYWxvZ09wdGlvbnNcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2NsYXNzTmFtZV1cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzLCBuby11bnVzZWQtdmFyc1xyXG4gIG9wZW5Nb2RhbChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBkaWFsb2dPcHRpb25zOiBhbnksXHJcbiAgICBjbGFzc05hbWU/OiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZSA/PyAnJztcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c/Lm9wZW4oTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGlhbG9nT3B0aW9ucyxcclxuICAgICAgd2lkdGg6ICcnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCBjbGFzc05hbWVdLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8uc3VibWl0Rm9ybVJlc3BvbnNlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSwgbm8tdW51c2VkLXZhcnNcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBjb25zdCBhcHBUaXRsZSA9XHJcbiAgICAgICAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UuZ2V0TmV3VGVuYW50SW5mbz8uYXBwVGl0bGU7XHJcbiAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICBgJHthcHBUaXRsZX0gJHt0aGlzLmNyZWF0ZVRlbmFudFNjcmVlblRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9ufWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZ2V0VGVuYW50c0FuZEluaXRpYWxpemVUYWJsZVZpZXcoe1xyXG4gICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgICAgIHNvcnRlZEJ5OiBWaWV3VGVuYW50c0NvbHVtblNjaGVtYURlZi5BUFBfSUQsXHJcbiAgICAgICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8uZm9ybUNhbmNlbFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU29ydHMgdGhlIHRlbmFudHMgYnkgYXBwbGljYXRpb24gaWQgb3IgdGl0bGUgaW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcuXHJcbiAgICogQHBhcmFtIHtTb3J0fSBzb3J0XHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU29ydFRlbmFudHMoc29ydDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gc29ydC5hY3RpdmU7XHJcbiAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID1cclxuICAgICAgc29ydC5kaXJlY3Rpb24gPT09IFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBHZXRUZW5hbnRzUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNvcnRlZEJ5OiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgc29ydGVkT3JkZXJCeTogdGhpcy5maWx0ZXJTb3J0ZWRPcmRlckJ5KFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvblxyXG4gICAgICAgICksXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyhwYXlsb2FkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybmluZyBzb3J0aW5nIG9yZGVyIGFjY29yZGluZyB0byBjb2x1bW4gZGVmaW5pdGlvbi5cclxuICAgKiBAcGFyYW0gZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgKiBAcmV0dXJucyBTb3J0T3JkZXJCeS5BU0MgfCBTb3J0T3JkZXJCeS5ERVNDXHJcbiAgICovXHJcbiAgZmlsdGVyU29ydGVkT3JkZXJCeShkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbjogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPyBTb3J0T3JkZXJCeS5BU0MgOiBTb3J0T3JkZXJCeS5ERVNDO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHRoZSByZWNvcmRzIGFjY29yZGluZyB0byBwYWdpbmF0aW9uLlxyXG4gICAqICBAcGFyYW0ge3tcclxuICAgKiAgICAgcGFnZU9mZnNldDogbnVtYmVyO1xyXG4gICAqICAgICBwYWdlTGltaXQ6IG51bWJlcjtcclxuICAgKiAgIH19IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvblRhYmxlUGFnaW5hdGlvbkNoYW5nZShwYWdlRXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBvZmZzZXQ6IHBhZ2VFdmVudC5wYWdlSW5kZXgsXHJcbiAgICAgICAgcGFnZVNpemU6IHBhZ2VFdmVudC5wYWdlU2l6ZSxcclxuICAgICAgICBzb3J0ZWRCeTogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5hdmlnYXRlcyB0byB2aWV3IHRlbmFudHMgZGV0YWlsIGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0ge3t0ZW5hbnRJbmZvOiBUZW5hbnRCYXNpY0luZm99fVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvVmlld1RlbmFudERldGFpbHModGVuYW50SW5mbzogVGVuYW50QmFzaWNJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAodGVuYW50SW5mbykge1xyXG4gICAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2Uuc2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbih0ZW5hbnRJbmZvKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJvdXRlUGF0aHM/LnZpZXdUZW5hbnREZXRhaWxzKVxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yb3V0ZVBhdGhzPy52aWV3VGVuYW50RGV0YWlsc10pO1xyXG4gICAgZWxzZSB0aGlzLnZpZXdUZW5hbnRzRGV0YWlscy5lbWl0KHRlbmFudEluZm8pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2Etdmlldy10ZW5hbnRzLWxpc3RcIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ2llZWVzYS12aWV3LXRlbmFudHMtbGlzdF9fbW9iaWxlJzogaXNNb2JpbGVWaWV3IH1cIlxyXG4+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2EtaGVhZGxpbmUtbGctMzIgcHktMyBtYi0wXCI+XHJcbiAgICB7eyB0ZW5hbnRzUGFnZUluZm8udGVuYW50c1RpdGxlIH19XHJcbiAgPC9wPlxyXG4gIDxkaXYgY2xhc3M9XCJpZWVlc2Etdmlldy10ZW5hbnRzLWxpc3RfX2NvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvbiBtZS0zXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInZpZXdUZW5hbnRzQ29uc3RhbnRzPy5hcmlhTGFiZWw/LmFkZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5DcmVhdGVUZW5hbnRGb3JtKClcIlxyXG4gICAgICAgICpuZ0lmPVwidmFsaWRhdGVBY2Nlc3MocGVybWlzc2lvblR5cGUuTUFOQUdFX1RFTkFOVClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdmlld1RlbmFudHNDb25zdGFudHM/LmFkZFRlbmFudCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAgIFt0YWJsZURhdGFJbmZvXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICAgIFtpc0NlbGxUZXh0T3ZlcmZsb3dFbGxpcHNpc109XCJ0cnVlXCJcclxuICAgICAgW3RhYmxlQWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxyXG4gICAgICBbcGFnaW5hdG9yQ29uZmlnXT1cInBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICAgIFtkZWZhdWx0U29ydGVkQ29sdW1uXT1cImRlZmF1bHRTb3J0ZWRDb2x1bW5cIlxyXG4gICAgICAoc29ydENoYW5nZSk9XCJvblNvcnRUZW5hbnRzKCRldmVudClcIlxyXG4gICAgICAocGFnaW5hdGlvbkNoYW5nZSk9XCJvblRhYmxlUGFnaW5hdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHJvd0xpbmspPVwibmF2aWdhdGVUb1ZpZXdUZW5hbnREZXRhaWxzKCRldmVudClcIlxyXG4gICAgPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUlkLHdCQUF3QixFQUN4QixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLG9DQUFvQyxDQUFDO0FBSzVDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsV0FBVyxHQUVaLE1BQU0seURBQXlELENBQUM7QUFFakUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFHcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlD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QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLGlCQUM3QyxpQkFBaUIsQ0FBQyxJQUFJOzZQQVE1QixlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgUGFnaW5hdG9yQ29uZmlnLFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgVGVuYW50c1JvdXRlc0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtcclxuICBUZW5hbnRTdGF0dXMsXHJcbiAgUGVybWlzc2lvblR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLFxyXG4gIFNvcnRPcmRlckJ5LFxyXG4gIEdldFRlbmFudHNQYXlsb2FkLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXZpZXctdGVuYW50LWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDcmVhdGVUZW5hbnRBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTb3J0Q29uZmlnLCBUZW5hbnRCYXNpY0luZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRGdW5jdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS12aWV3LXRlbmFudHMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBEYXRhVGFibGVDb21wb25lbnRdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3VGVuYW50c0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgdmlld1RlbmFudHNDb25zdGFudHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGVuYW50c1BhZ2VJbmZvOiB7XHJcbiAgICB0ZW5hbnRzVGl0bGU6IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgdGVuYW50c1RpdGxlOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwgPSAnJztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBJbnB1dCgpIHJvdXRlUGF0aHMhOiBUZW5hbnRzUm91dGVzQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgQElucHV0KCkgZGVmYXVsdFNvcnRlZENvbHVtbjogc3RyaW5nID0gVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lEO1xyXG4gIEBPdXRwdXQoKSBjcmVhdGVUZW5hbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHZpZXdUZW5hbnRzRGV0YWlsczogRXZlbnRFbWl0dGVyPFRlbmFudEJhc2ljSW5mbz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxUZW5hbnRCYXNpY0luZm8+KCk7XHJcbiAgdGFibGVEYXRhITogVGVuYW50QmFzaWNJbmZvW107XHJcbiAgY29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIHRhYmxlQ29sdW1ucyA9IHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LnRhYmxlQ29sdW1ucztcclxuICBlbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5ID1cclxuICAgIHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnk7XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8ucGFnZVNpemVPcHRpb25zWzBdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnZpZXdUZW5hbnRzQ29uc3RhbnRzLnBhZ2VTaXplT3B0aW9ucyxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICB9O1xyXG5cclxuICB1c2VyVGVuYW50c1Blcm1pc3Npb25zITogVGVuYW50c1Blcm1pc3Npb25zW107XHJcbiAgcGVybWlzc2lvblR5cGUgPSBQZXJtaXNzaW9uVHlwZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRpYWxvZ1JlZjogYW55O1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlVGVuYW50U2NyZWVuVGV4dHM6IGFueSA9IHRoaXMuY29uc3RhbnRzPy5jcmVhdGVUZW5hbnQ7XHJcbiAgZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPSB0cnVlO1xyXG4gIHBhZ2VFdmVudCE6IFBhZ2VFdmVudDtcclxuICBzb3J0Q29uZmlnITogU29ydENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlOiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogeyBtYXRjaGVzOiBib29sZWFuIH0pID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgcGVybWlzc2lvbnMsIHJvdXRlciBjb25maWcgcGF0aCwgYmFzZSBBUEkgVVJMLCB0YWJsZSBjb2x1bW4gc2NoZW1hIGFuZCBnZXRzIHRoZSB0ZW5hbnRzIGxpc3QuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zID1cclxuICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlPy5maWx0ZXJQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZT8uc2V0QXBwQ29uZmlnKFxyXG4gICAgICB0aGlzLmFwaUJhc2VVUkwsXHJcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy50ZW5hbnRzUGFnZUluZm8gPSB7XHJcbiAgICAgIHRlbmFudHNUaXRsZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8udGVuYW50c1RpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucm91dGVQYXRocyA9IHRoaXMucm91dGVQYXRocyA/PyB0aGlzLmNvbnN0YW50cz8ucm91dGVDb25maWdQYXRoO1xyXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlPy5zZXRSb3V0ZVBhdGhzKHRoaXMucm91dGVQYXRocyk7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZVRhYmxlSW5mbygpO1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMF0uY29sdW1uRGVmO1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh0aGlzLmdldFRlbmFudHNQYXlsb2FkKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZXMgcGVybWlzc2lvbiBiYXNlZCBhY2Nlc3MgZm9yIHByb3ZpZGVkIGZlYXR1cmUuXHJcbiAgICogQHBhcmFtIHtQZXJtaXNzaW9uVHlwZX0gcGVybWlzc2lvblR5cGVcclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICB2YWxpZGF0ZUFjY2VzcyhwZXJtaXNzaW9uVHlwZTogUGVybWlzc2lvblR5cGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3MoXHJcbiAgICAgIHBlcm1pc3Npb25UeXBlLFxyXG4gICAgICB0aGlzLnVzZXJUZW5hbnRzUGVybWlzc2lvbnNcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyZXMgdGFibGUgc2NoZW1hIHRvIGRpc3BsYXkgdGhlIHRlbmFudHMgaW4gdGFibGUgdmlldy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY29uZmlndXJlVGFibGVJbmZvKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5TY2hlbWEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMSxcclxuICAgICAgICBjb2x1bW5EZWY6IFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLkFQUF9JRCxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLnRhYmxlQ29sdW1ucz8uYXBwSWQsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkxJTkssXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5hcHBJZH1gLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMixcclxuICAgICAgICBjb2x1bW5EZWY6IFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLkFQUF9USVRMRSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLnRhYmxlQ29sdW1ucz8uYXBwVGl0bGUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuYXBwVGl0bGUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAzLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0RFU0NSSVBUSU9OLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBEZXNjcmlwdGlvbixcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5hcHBEZXNjcmlwdGlvbiA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNCxcclxuICAgICAgICBjb2x1bW5EZWY6IFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLkZFQVRVUkVTLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5mZWF0dXJlcyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7XHJcbiAgICAgICAgICAgIGVsZW1lbnQ/LmZlYXR1cmVzICYmIGVsZW1lbnQ/LmZlYXR1cmVzPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgPyB0aGlzLmZvcm1hdEZlYXR1cmVzTmFtZShlbGVtZW50Py5mZWF0dXJlcylcclxuICAgICAgICAgICAgICA6IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeVxyXG4gICAgICAgICAgfWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6IFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLlNUQVRVUyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLnRhYmxlQ29sdW1ucz8uc3RhdHVzLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50LnN0YXR1cyA/IFRlbmFudFN0YXR1cy5BQ1RJVkUgOiBUZW5hbnRTdGF0dXMuSU5BQ1RJVkV9YCxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXQgdGhlIGZlYXR1cmVzIG5hbWUgaW4gdG8gc2luZ2xlIHNlbnRlbmNlIHdpdGggY29tbWEgc2VwYXJhdGVkLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBmb3JtYXRGZWF0dXJlc05hbWUoZmVhdHVyZXM6IEZlYXR1cmVzW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzXHJcbiAgICAgIC5tYXAoKGZlYXR1cmU6IEZlYXR1cmVzKSA9PiB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xyXG4gICAgICAgIHJldHVybiBmZWF0dXJlLmZlYXR1cmVOYW1lO1xyXG4gICAgICB9KVxyXG4gICAgICA/LmpvaW4oJywgJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZldGNoaW5nIGRldGFpbHMgb2YgdGVuYW50cyBhbmQgaW5pdGlhbGl6ZSB0YWJsZSB2aWV3XHJcbiAgICogQHBhcmFtIHtHZXRUZW5hbnRzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyhwYXlsb2FkOiBHZXRUZW5hbnRzUGF5bG9hZCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICAgIC5nZXRUZW5hbnRzTGlzdChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSByZXNwb25zZT8uYm9keT8uYXBwRGV0YWlscyBhcyBUZW5hbnRCYXNpY0luZm9bXTtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9IHJlc3BvbnNlPy5ib2R5XHJcbiAgICAgICAgICAgID8udG90YWxSZWNvcmRzIGFzIG51bWJlcjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yLCB0aGlzLmNvbnN0YW50cz8uZXJyb3JzKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGNyZWF0ZSB0ZW5hbnQgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5DcmVhdGVUZW5hbnRGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLnNldFRlbmFudEZ1bmN0aW9uVHlwZShcclxuICAgICAgVGVuYW50RnVuY3Rpb25UeXBlLkNSRUFURVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LmFkZFRlbmFudCxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBDcmVhdGVUZW5hbnRBcHBsaWNhdGlvbkNvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgIH07XHJcbiAgICB0aGlzLm9wZW5Nb2RhbChkaWFsb2dPcHRpb25zLCAnaWVlZXNhLWNyZWF0ZS10ZW5hbnQnKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogT3BlbnMgbW9kYWwgY29tcG9uZW50IHdpdGggcmVjZWl2ZWQgcGFyYW1zIGFuZCBoYW5kbGVzIGZvcm0gc3VibWlzc2lvbiBzdWNjZXNzIGFuZCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHsqfSBkaWFsb2dPcHRpb25zXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjbGFzc05hbWVdXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW5mZXJyYWJsZS10eXBlcywgbm8tdW51c2VkLXZhcnNcclxuICBvcGVuTW9kYWwoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgZGlhbG9nT3B0aW9uczogYW55LFxyXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gJyc7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHdpZHRoOiAnJyxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtbW9kYWwtZGlhbG9nJywgY2xhc3NOYW1lXSxcclxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LnN1Ym1pdEZvcm1SZXNwb25zZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIG5vLXVudXNlZC12YXJzXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgY29uc3QgYXBwVGl0bGUgPVxyXG4gICAgICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLmdldE5ld1RlbmFudEluZm8/LmFwcFRpdGxlO1xyXG4gICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgQWxlcnRUeXBlPy5TVUNDRVNTLFxyXG4gICAgICAgICAgYCR7YXBwVGl0bGV9ICR7dGhpcy5jcmVhdGVUZW5hbnRTY3JlZW5UZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvbn1gXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmdldFRlbmFudHNBbmRJbml0aWFsaXplVGFibGVWaWV3KHRoaXMuZ2V0VGVuYW50c1BheWxvYWQoKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNvbXBvbmVudEluc3RhbmNlPy5mb3JtQ2FuY2VsXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTb3J0cyB0aGUgdGVuYW50cyBieSBhcHBsaWNhdGlvbiBpZCBvciB0aXRsZSBpbiBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZy5cclxuICAgKiBAcGFyYW0ge1NvcnR9IHNvcnRcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Tb3J0VGVuYW50cyhzb3J0OiBTb3J0KTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4gPSBzb3J0LmFjdGl2ZTtcclxuICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPVxyXG4gICAgICBzb3J0LmRpcmVjdGlvbiA9PT0gVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLkFTQ0VORElORztcclxuICAgIHRoaXMuc29ydENvbmZpZyA9IHtcclxuICAgICAgc29ydDogc29ydCxcclxuICAgICAgaXNTb3J0ZWRCeUFzY2VuZGluZzogdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbixcclxuICAgIH07XHJcbiAgICB0aGlzLmdldFRlbmFudHNBbmRJbml0aWFsaXplVGFibGVWaWV3KHRoaXMuZ2V0VGVuYW50c1BheWxvYWQoKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgdGhlIHBheWxvYWQgZm9yIGZldGNoaW5nIHRoZSB0ZW5hbnRzIGxpc3QuXHJcbiAgICogQHJldHVybnMgR2V0VGVuYW50c1BheWxvYWRcclxuICAgKi9cclxuICBnZXRUZW5hbnRzUGF5bG9hZCgpOiBHZXRUZW5hbnRzUGF5bG9hZCB7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBHZXRUZW5hbnRzUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG9mZnNldDogdGhpcy5wYWdlRXZlbnQ/LnBhZ2VJbmRleFxyXG4gICAgICAgICAgPyAodGhpcy5wYWdlRXZlbnQ/LnBhZ2VJbmRleCBhcyBudW1iZXIpXHJcbiAgICAgICAgICA6IDAsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZUV2ZW50Py5wYWdlU2l6ZVxyXG4gICAgICAgICAgPyAodGhpcy5wYWdlRXZlbnQ/LnBhZ2VTaXplIGFzIG51bWJlcilcclxuICAgICAgICAgIDogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNvcnRlZEJ5OiB0aGlzLnNvcnRDb25maWc/LnNvcnQ/LmFjdGl2ZVxyXG4gICAgICAgICAgPyAodGhpcy5zb3J0Q29uZmlnPy5zb3J0Py5hY3RpdmUgYXMgc3RyaW5nKVxyXG4gICAgICAgICAgOiBWaWV3VGVuYW50c0NvbHVtblNjaGVtYURlZi5BUFBfSUQsXHJcbiAgICAgICAgc29ydGVkT3JkZXJCeTogdGhpcy5maWx0ZXJTb3J0ZWRPcmRlckJ5KFxyXG4gICAgICAgICAgdGhpcy5zb3J0Q29uZmlnPy5pc1NvcnRlZEJ5QXNjZW5kaW5nXHJcbiAgICAgICAgICAgID8gKHRoaXMuc29ydENvbmZpZz8uaXNTb3J0ZWRCeUFzY2VuZGluZyBhcyBib29sZWFuKVxyXG4gICAgICAgICAgICA6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5pbmcgc29ydGluZyBvcmRlciBhY2NvcmRpbmcgdG8gY29sdW1uIGRlZmluaXRpb24uXHJcbiAgICogQHBhcmFtIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXHJcbiAgICogQHJldHVybnMgU29ydE9yZGVyQnkuQVNDIHwgU29ydE9yZGVyQnkuREVTQ1xyXG4gICAqL1xyXG4gIGZpbHRlclNvcnRlZE9yZGVyQnkoZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb246IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID8gU29ydE9yZGVyQnkuQVNDIDogU29ydE9yZGVyQnkuREVTQztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSB0aGUgcmVjb3JkcyBhY2NvcmRpbmcgdG8gcGFnaW5hdGlvbi5cclxuICAgKiAgQHBhcmFtIHt7XHJcbiAgICogICAgIHBhZ2VPZmZzZXQ6IG51bWJlcjtcclxuICAgKiAgICAgcGFnZUxpbWl0OiBudW1iZXI7XHJcbiAgICogICB9fSBwYWdlRXZlbnRcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25UYWJsZVBhZ2luYXRpb25DaGFuZ2UocGFnZUV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZUV2ZW50ID0gcGFnZUV2ZW50O1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh0aGlzLmdldFRlbmFudHNQYXlsb2FkKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gdmlldyB0ZW5hbnRzIGRldGFpbCBjb21wb25lbnQuXHJcbiAgICogQHBhcmFtIHt7dGVuYW50SW5mbzogVGVuYW50QmFzaWNJbmZvfX1cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmF2aWdhdGVUb1ZpZXdUZW5hbnREZXRhaWxzKHRlbmFudEluZm86IFRlbmFudEJhc2ljSW5mbyk6IHZvaWQge1xyXG4gICAgaWYgKHRlbmFudEluZm8pIHtcclxuICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLnNldFNlbGVjdGVkVGVuYW50SW5mb3JtYXRpb24odGVuYW50SW5mbyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yb3V0ZVBhdGhzPy52aWV3VGVuYW50RGV0YWlscylcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucm91dGVQYXRocz8udmlld1RlbmFudERldGFpbHNdKTtcclxuICAgIGVsc2UgdGhpcy52aWV3VGVuYW50c0RldGFpbHMuZW1pdCh0ZW5hbnRJbmZvKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50cy1saXN0XCJcclxuICBbbmdDbGFzc109XCJ7ICdpZWVlc2Etdmlldy10ZW5hbnRzLWxpc3RfX21vYmlsZSc6IGlzTW9iaWxlVmlldyB9XCJcclxuPlxyXG4gIDxwIGNsYXNzPVwiaWVlZXNhLWhlYWRsaW5lLWxnLTMyIHB5LTMgbWItMFwiPlxyXG4gICAge3sgdGVuYW50c1BhZ2VJbmZvLnRlbmFudHNUaXRsZSB9fVxyXG4gIDwvcD5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50cy1saXN0X19jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIm1hdC10ZXJ0aWFyeS1idXR0b24gbWUtM1wiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3VGVuYW50c0NvbnN0YW50cz8uYXJpYUxhYmVsPy5hZGRcIlxyXG4gICAgICAgIChjbGljayk9XCJvcGVuQ3JlYXRlVGVuYW50Rm9ybSgpXCJcclxuICAgICAgICAqbmdJZj1cInZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlLk1BTkFHRV9URU5BTlQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHZpZXdUZW5hbnRzQ29uc3RhbnRzPy5hZGRUZW5hbnQgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpZWVlc2EtZGF0YS10YWJsZVxyXG4gICAgICBbdGFibGVEYXRhSW5mb109XCJ0YWJsZURhdGFcIlxyXG4gICAgICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gICAgICBbaXNDZWxsVGV4dE92ZXJmbG93RWxsaXBzaXNdPVwidHJ1ZVwiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgW3BhZ2luYXRvckNvbmZpZ109XCJwYWdpbmF0b3JDb25maWdcIlxyXG4gICAgICBbZGVmYXVsdFNvcnRlZENvbHVtbl09XCJkZWZhdWx0U29ydGVkQ29sdW1uXCJcclxuICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0VGVuYW50cygkZXZlbnQpXCJcclxuICAgICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25UYWJsZVBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChyb3dMaW5rKT1cIm5hdmlnYXRlVG9WaWV3VGVuYW50RGV0YWlscygkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1kYXRhLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy90ZW5hbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVJZCwgRmVhdHVyZXMgfSBmcm9tICcuL2ZlYXR1cmVzLm1vZGVsJztcclxuZXhwb3J0IGludGVyZmFjZSBUZW5hbnRJbmZvIHtcclxuICBhcHBJZDogc3RyaW5nO1xyXG4gIGFwcFRpdGxlOiBzdHJpbmc7XHJcbiAgYXBwTG9nbz86IHN0cmluZztcclxuICBhcHBIZWFkaW5nOiBzdHJpbmc7XHJcbiAgYXBwRGVzY3JpcHRpb246IHN0cmluZztcclxuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgYXBwSGVscExpbms/OiBzdHJpbmc7XHJcbiAgYXBwVHlwZT86IHN0cmluZztcclxuICBhcHBEb21haW5Vcmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmV3VGVuYW50SW5mbyBleHRlbmRzIFRlbmFudEluZm8ge1xyXG4gIGZlYXR1cmVzOiBGZWF0dXJlSWRbXSB8IEZlYXR1cmVzW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGVuYW50QmFzaWNJbmZvIGV4dGVuZHMgVGVuYW50SW5mbyB7XHJcbiAgc3RhdHVzPzogYm9vbGVhbjtcclxuICBmZWF0dXJlczogRmVhdHVyZXNbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVRlbmFudFJlcXVlc3RQYXlsb2FkIHtcclxuICBwYXlsb2FkOiBOZXdUZW5hbnRJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50UmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHN0cmluZyB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHZXRUZW5hbnRzUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHtcclxuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyO1xyXG4gICAgYXBwRGV0YWlsczogVGVuYW50QmFzaWNJbmZvW10gfCBudWxsIHwgeyBlcnJvckNvZGVzOiBzdHJpbmdbXSB9O1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUZW5hbnREZXRhaWxzUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IFRlbmFudEJhc2ljSW5mbyB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy90ZW5hbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgRmVhdHVyZUlkLCBGZWF0dXJlcyB9IGZyb20gJy4vZmVhdHVyZXMubW9kZWwnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudEluZm8ge1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgYXBwVGl0bGU6IHN0cmluZztcclxuICBhcHBMb2dvPzogc3RyaW5nO1xyXG4gIGFwcEhlYWRpbmc6IHN0cmluZztcclxuICBhcHBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICBhcHBIZWxwTGluaz86IHN0cmluZztcclxuICBhcHBUeXBlPzogc3RyaW5nO1xyXG4gIGFwcERvbWFpblVybD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZXdUZW5hbnRJbmZvIGV4dGVuZHMgVGVuYW50SW5mbyB7XHJcbiAgZmVhdHVyZXM6IEZlYXR1cmVJZFtdIHwgRmVhdHVyZXNbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUZW5hbnRCYXNpY0luZm8gZXh0ZW5kcyBUZW5hbnRJbmZvIHtcclxuICBzdGF0dXM/OiBib29sZWFuO1xyXG4gIGZlYXR1cmVzOiBGZWF0dXJlc1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWQge1xyXG4gIHBheWxvYWQ6IE5ld1RlbmFudEluZm87XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUZW5hbnRSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5Pzogc3RyaW5nIHwgbnVsbCB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEdldFRlbmFudHNSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5Pzoge1xyXG4gICAgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcbiAgICBhcHBEZXRhaWxzOiBUZW5hbnRCYXNpY0luZm9bXSB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbiAgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudERldGFpbHNSZXNwb25zZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBib2R5PzogVGVuYW50QmFzaWNJbmZvIHwgeyBlcnJvckNvZGVzOiBzdHJpbmdbXSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU29ydENvbmZpZyB7XHJcbiAgc29ydDogU29ydDtcclxuICBpc1NvcnRlZEJ5QXNjZW5kaW5nOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
@@ -1421,7 +1421,7 @@ class ViewTenantsListComponent {
1421
1421
  this.tableColumns = this.viewTenantsConstants?.tableColumns;
1422
1422
  this.emptyFieldValueReplacedBy = this.viewTenantsConstants?.emptyFieldValueReplacedBy;
1423
1423
  this.paginatorConfig = {
1424
- recordsPerPage: this.viewTenantsConstants?.pageSizeOptions?.[0],
1424
+ recordsPerPage: this.viewTenantsConstants?.pageSizeOptions[0],
1425
1425
  pageSizeOptions: this.viewTenantsConstants.pageSizeOptions,
1426
1426
  totalRecords: 0,
1427
1427
  };
@@ -1451,14 +1451,7 @@ class ViewTenantsListComponent {
1451
1451
  this.sharedService?.setRoutePaths(this.routePaths);
1452
1452
  this.configureTableInfo();
1453
1453
  this.defaultSortedColumn = this.columnSchema[0].columnDef;
1454
- this.getTenantsAndInitializeTableView({
1455
- payload: {
1456
- offset: 0,
1457
- pageSize: this.paginatorConfig?.recordsPerPage,
1458
- sortedBy: ViewTenantsColumnSchemaDef.APP_ID,
1459
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
1460
- },
1461
- });
1454
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1462
1455
  }
1463
1456
  /**
1464
1457
  * Validates permission based access for provided feature.
@@ -1594,14 +1587,7 @@ class ViewTenantsListComponent {
1594
1587
  this.dialogRef?.close();
1595
1588
  const appTitle = this.tenantApplicationsService.getNewTenantInfo?.appTitle;
1596
1589
  this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${appTitle} ${this.createTenantScreenTexts?.message?.success?.submission}`);
1597
- this.getTenantsAndInitializeTableView({
1598
- payload: {
1599
- offset: 0,
1600
- pageSize: this.paginatorConfig?.recordsPerPage,
1601
- sortedBy: ViewTenantsColumnSchemaDef.APP_ID,
1602
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
1603
- },
1604
- });
1590
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1605
1591
  });
1606
1592
  this.dialogRef?.componentInstance?.formCancel
1607
1593
  .pipe(takeUntil(this.destroy$))
@@ -1618,15 +1604,34 @@ class ViewTenantsListComponent {
1618
1604
  this.defaultSortedColumn = sort.active;
1619
1605
  this.defaultColumnSortDirection =
1620
1606
  sort.direction === TableColumnSortDirection.ASCENDING;
1607
+ this.sortConfig = {
1608
+ sort: sort,
1609
+ isSortedByAscending: this.defaultColumnSortDirection,
1610
+ };
1611
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1612
+ }
1613
+ /**
1614
+ * Constructs and returns the payload for fetching the tenants list.
1615
+ * @returns GetTenantsPayload
1616
+ */
1617
+ getTenantsPayload() {
1621
1618
  const payload = {
1622
1619
  payload: {
1623
- offset: 0,
1624
- pageSize: this.paginatorConfig?.recordsPerPage,
1625
- sortedBy: this.defaultSortedColumn,
1626
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
1620
+ offset: this.pageEvent?.pageIndex
1621
+ ? this.pageEvent?.pageIndex
1622
+ : 0,
1623
+ pageSize: this.pageEvent?.pageSize
1624
+ ? this.pageEvent?.pageSize
1625
+ : this.paginatorConfig?.recordsPerPage,
1626
+ sortedBy: this.sortConfig?.sort?.active
1627
+ ? this.sortConfig?.sort?.active
1628
+ : ViewTenantsColumnSchemaDef.APP_ID,
1629
+ sortedOrderBy: this.filterSortedOrderBy(this.sortConfig?.isSortedByAscending
1630
+ ? this.sortConfig?.isSortedByAscending
1631
+ : this.defaultColumnSortDirection),
1627
1632
  },
1628
1633
  };
1629
- this.getTenantsAndInitializeTableView(payload);
1634
+ return payload;
1630
1635
  }
1631
1636
  /**
1632
1637
  * Returning sorting order according to column definition.
@@ -1645,14 +1650,8 @@ class ViewTenantsListComponent {
1645
1650
  * @memberof ViewTenantsListComponent
1646
1651
  */
1647
1652
  onTablePaginationChange(pageEvent) {
1648
- this.getTenantsAndInitializeTableView({
1649
- payload: {
1650
- offset: pageEvent.pageIndex,
1651
- pageSize: pageEvent.pageSize,
1652
- sortedBy: this.defaultSortedColumn,
1653
- sortedOrderBy: this.filterSortedOrderBy(this.defaultColumnSortDirection),
1654
- },
1655
- });
1653
+ this.pageEvent = pageEvent;
1654
+ this.getTenantsAndInitializeTableView(this.getTenantsPayload());
1656
1655
  }
1657
1656
  /**
1658
1657
  * Navigates to view tenants detail component.