@energycap/components 0.32.28 → 0.32.29-ECAP-17287-Add-Save-Without-Validate.20230407-0819

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.
@@ -187,18 +187,7 @@ export class PageBaseComponent {
187
187
  async onSave(event) {
188
188
  this.formGroup.markAllAsTouched();
189
189
  if (this.formGroup.valid) {
190
- this.showStatus(PageStatus.Saving);
191
- try {
192
- await this.applyModelUpdates();
193
- let entityId = await this.saveToApi() || -1;
194
- this._errors = '';
195
- this.onSaveComplete(entityId);
196
- }
197
- catch (error) {
198
- //clear the "saving" overlay and show the message at the top of the view through the errors property
199
- this.showErrorBanner(error, this.defaultUnknownSaveError);
200
- this.splashService.hideSplash();
201
- }
190
+ await this.save();
202
191
  }
203
192
  else {
204
193
  // Only show the banner with the generic message if the parent component hasn't already set one
@@ -213,6 +202,15 @@ export class PageBaseComponent {
213
202
  }
214
203
  }
215
204
  }
205
+ /**
206
+ * Function available to trigger a save and bypass the form validation checks.
207
+ * This is useful if the user chooses a remove action from within an edit dialog. If the dialog form is invalid
208
+ * that is no concern to the user if they wish to remove the item they are editing.
209
+ * @param event
210
+ */
211
+ async onSaveWithoutValidate(event) {
212
+ await this.save();
213
+ }
216
214
  /**
217
215
  * Function called when the component is destroyed
218
216
  */
@@ -313,6 +311,23 @@ export class PageBaseComponent {
313
311
  this.breadcrumbs = result.breadcrumbs;
314
312
  this.help = result.help;
315
313
  }
314
+ /**
315
+ * Controls the page status and triggers the save action. If there is an error banner will be shown.
316
+ */
317
+ async save() {
318
+ this.showStatus(PageStatus.Saving);
319
+ try {
320
+ await this.applyModelUpdates();
321
+ let entityId = await this.saveToApi() || -1;
322
+ this._errors = '';
323
+ this.onSaveComplete(entityId);
324
+ }
325
+ catch (error) {
326
+ //clear the "saving" overlay and show the message at the top of the view through the errors property
327
+ this.showErrorBanner(error, this.defaultUnknownSaveError);
328
+ this.splashService.hideSplash();
329
+ }
330
+ }
316
331
  /**
317
332
  * Sets up the router event subscriptions
318
333
  */
@@ -338,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
338
353
  type: HostBinding,
339
354
  args: ['class']
340
355
  }] } });
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvcGFnZS9wYWdlLWJhc2UvcGFnZS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxXQUFXLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRW5FLE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ0UsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQUNwQixhQUFRLEdBQVksRUFBRSxDQUFDO1FBQ3ZCLGdC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R0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUM3RCw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdEQsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxDQUN4QyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJO29CQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztpQkFDeEI7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7OEdBelltQixpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUR0QyxTQUFTOytGQUd3QixTQUFTO3NCQUF4QyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtaXRlbSc7XHJcbmltcG9ydCB7IEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZXJyb3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IFNjcm9sbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Njcm9sbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3BsYXNoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGVscCB9IGZyb20gJy4uLy4uLy4uL2Rpc3BsYXkvaGVscC9oZWxwLXR5cGVzJztcclxuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uLy4uLy4uL2Rpc3BsYXkvdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlU3RhdHVzLCBQYWdlU3RhdHVzZXMgfSBmcm9tICcuLi9wYWdlLXN0YXR1c2VzJztcclxuaW1wb3J0IHsgUm91dGVySGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9yb3V0ZXItaGVscGVyLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VJbml0UmVzdWx0IHtcclxuICB0aXRsZT86IHN0cmluZyA9ICcnO1xyXG4gIHN1YlRpdGxlPzogc3RyaW5nID0gJyc7XHJcbiAgc3ViVGl0bGVVcmw/OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgYnJlYWRjcnVtYnM/OiBOYXZJdGVtW107XHJcbiAgaGVscD86IEhlbHA7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFnZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqIERlZmF1bHQgY3NzIGNsYXNzZXMgYXBwbGllZCB0byBob3N0IGVsZW1lbnQgKi9cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHJvdGVjdGVkIGNsYXNzTGlzdCA9ICdkLWZsZXggZmxleC1ncm93JztcclxuXHJcbiAgLyoqXHJcbiAgICogVGl0bGUgZm9yIHRoZSBwYWdlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyXHJcbiAgICovXHJcbiAgcHVibGljIHRpdGxlPzogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YiB0aXRsZSBmb3IgdGhlIHBhZ2UgZGlzcGxheWVkIGluIHRoZSBoZWFkZXJcclxuICAgKi9cclxuICBwdWJsaWMgc3ViVGl0bGU/OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViIHRpdGxlIHVybCBmb3IgdGhlIHBhZ2UgZGlzcGxheWVkIGluIHRoZSBoZWFkZXJcclxuICAgKi9cclxuICBwdWJsaWMgc3ViVGl0bGVVcmw/OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogU3RhdHVzIG92ZXJsYXkgZm9yIHRoZSBwYWdlXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXR1czogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdwZW5kaW5nJywgJ0xvYWRpbmcnKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQnJlYWRjcnVtYnMgZGlzcGxheWVkIGluIHRoZSBoZWFkZXJcclxuICAgKi9cclxuICBwdWJsaWMgYnJlYWRjcnVtYnM/OiBOYXZJdGVtW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc3VsdCByZXR1cm5lZCBmcm9tIHRoZSBvbkluaXQgZnVuY3Rpb25cclxuICAgKi9cclxuICBwdWJsaWMgaW5pdFJlc3VsdCE6IFBhZ2VJbml0UmVzdWx0O1xyXG5cclxuICAvKipcclxuICAgKiBIZWxwIGluZm9ybWF0aW9uIGZvciB0aGUgY29tcG9uZW50LCB3aGljaCBjYW4gb25seSBiZSBzZXQgdGhyb3VnaCBvbkluaXRcclxuICAgKi9cclxuICBwdWJsaWMgaGVscDogSGVscCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybSBncm91cCB0byBiZSB1c2VkIGlmIG5lZWRlZCBieSB0aGUgcGFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmF1bHQgaW52YWxpZCBmb3JtIG1lc3NhZ2UsIG92ZXJyaWRlIGlmIGEgbW9yZSBzcGVjaWZpYyBtZXNzYWdlIGlzIG5lZWRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWZhdWx0SW52YWxpZEZvcm1NZXNzYWdlOiBzdHJpbmcgPSAnUGxlYXNlQ29ycmVjdEZvcm1fU0MnO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZhdWx0IHVua25vd24gc2F2ZSBlcnJvciBtZXNzYWdlLCBvdmVycmlkZSBpZiBhIG1vcmUgc3BlY2lmaWMgbWVzc2FnZSBpcyBuZWVkZWRcclxuICAgKi9cclxuICBwdWJsaWMgZGVmYXVsdFVua25vd25TYXZlRXJyb3I6IHN0cmluZyA9ICdQYWdlQmFzZVVua25vd25TYXZlRXJyb3JfU0MnO1xyXG5cclxuICAvKipcclxuICAgKiBVc2VkIHRvIG9wdCBvdXQgb2YgaGlkaW5nIHRoZSBzcGxhc2ggc2NyZWVuIHdoZW4gdGhlIHBhZ2UgaXMgbG9hZGVkXHJcbiAgICovXHJcbiAgcHVibGljIHNraXBIaWRlU3BsYXNoT25Db21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBVc2VkIHRvIHVuc3Vic2NyaWJlIGZyb20gb2JzZXJ2YWJsZXNcclxuICAgKi9cclxuICBwdWJsaWMgZGVzdHJveWVkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgdG8ga25vdyB3aGVuIHRoZSBwYWdlIGhhcyBiZWVuIGxvYWRlZCwgdGhpcyB3aWxsIGJlIGNvbXBsZXRlZFxyXG4gICAqIGFmdGVyIG9uQWZ0ZXJWaWV3SW5pdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2FmdGVyVmlld0luaXRDb21wbGV0ZTogUmVwbGF5U3ViamVjdDx2b2lkPiA9IG5ldyBSZXBsYXlTdWJqZWN0KCk7XHJcbiAgcHVibGljIGFmdGVyVmlld0luaXRDb21wbGV0ZTogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuX2FmdGVyVmlld0luaXRDb21wbGV0ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgZGVmaW5lZCB0aGUgZm9ybSB3aWxsIGF1dG9tYXRpY2FsbHkgc2Nyb2xsIHRvIHRoZSBmaXJzdCBpbnZhbGlkIGZvcm0gY29udHJvbFxyXG4gICAqIGlmIGl0J3Mgb3V0c2lkZSBvZiB0aGUgdmlld1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzY3JvbGxDb250YWluZXJTZWxlY3Rvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHJvdXRlciBldmVudHMgTmF2aWdhdGlvbkVuZFxyXG4gICAqIFVzZWQgdG8ga25vdyBpZiBhbHJlYWR5IHN1YnNjcmliZWQgdG9cclxuICAgKi9cclxuICBwcml2YXRlIG5hdmlnYXRpb25FbmRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbW1vbiBzZXJ2aWNlcyB1c2VkIGJ5IHBhZ2UtYmFzZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBlcnJvclNlcnZpY2U6IEVycm9yU2VydmljZTtcclxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZTtcclxuICBwcm90ZWN0ZWQgc2Nyb2xsU2VydmljZTogU2Nyb2xsU2VydmljZTtcclxuICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXI7XHJcbiAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcclxuICBwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZTtcclxuICBwcm90ZWN0ZWQgc3BsYXNoU2VydmljZTogU3BsYXNoU2VydmljZTtcclxuICBwcm90ZWN0ZWQgcm91dGVySGVscGVyOiBSb3V0ZXJIZWxwZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgdGhpcy5lcnJvclNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRXJyb3JTZXJ2aWNlKTtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZSA9IGluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuICAgIHRoaXMuc2Nyb2xsU2VydmljZSA9IGluamVjdG9yLmdldChTY3JvbGxTZXJ2aWNlKTtcclxuICAgIHRoaXMucm91dGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlcik7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlID0gaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZSA9IGluamVjdG9yLmdldChEaWFsb2dTZXJ2aWNlKTtcclxuICAgIHRoaXMuc3BsYXNoU2VydmljZSA9IGluamVjdG9yLmdldChTcGxhc2hTZXJ2aWNlKTtcclxuICAgIHRoaXMucm91dGVySGVscGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlckhlbHBlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFcnJvcnMgdG8gYmUgc2hvd24gZm9yIHRoZSBjb21wb25lbnQuXHJcbiAgICogQXV0b21hdGljYWxseSBwb3B1bGF0ZWQgb24gcHJvbWlzZSByZWplY3Rpb24gZnJvbSBzYXZlIGFuZCBzaGFyZWQgd2l0aCB0aGUgVUkuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZXJyb3JzOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgZ2V0IGVycm9ycygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Vycm9ycztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGxpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIEFuZ3VsYXIgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2suXHJcbiAgICogQ2FsbGVkIGJlZm9yZSBvbkluaXQgaXMgY2FsbGVkIGZvciB0aGUgZmlyc3QgdGltZS4gQWRkIHNldHVwIGxvZ2ljIGhlcmUgdGhhdCBkb2VzXHJcbiAgICogbm90IG5lZWQgdG8gYmUgcnVuIG9uIGV2ZXJ5IHJlbG9hZC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb25GaXJzdEluaXQoKTogdm9pZCB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGluIHRoZSBkZXJpdmVkIGNsYXNzIGFzIHBhcnQgb2YgdGhlIEFuZ3VsYXIgbmdPbkluaXRcclxuICAgKiBsaWZlY3ljbGUgaG9vay4gSXQgbXVzdCBwcm92aWRlIGEgUGFnZUluaXRSZXN1bHQgYmFjayB0byB0aGUgYmFzZSBjbGFzcyB0byBwcm9wZXJseVxyXG4gICAqIHNldCB1cCB0aGUgcGFnZS5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb25Jbml0KCk6IFByb21pc2U8UGFnZUluaXRSZXN1bHQ+O1xyXG4gIHByb3RlY3RlZCBpbml0UHJvbWlzZSE6IFByb21pc2U8UGFnZUluaXRSZXN1bHQ+O1xyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnNob3dTdGF0dXMoUGFnZVN0YXR1cy5Mb2FkaW5nKTtcclxuICAgICAgdGhpcy5zZXRVcFJvdXRlclN1YnNjcmlwdGlvbnMoKTtcclxuICAgICAgdGhpcy5vbkZpcnN0SW5pdCgpO1xyXG4gICAgICB0aGlzLmluaXRQcm9taXNlID0gdGhpcy5vbkluaXQoKTtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0UHJvbWlzZTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuc3BsYXNoU2VydmljZS5oaWRlU3BsYXNoKCk7XHJcbiAgICAgIHRoaXMub25FcnJvcihlcnJvcik7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGp1c3QgYWZ0ZXIgdGhlIEFuZ3VsYXIgTGlmZWN5Y2xlIGV2ZW50IG5nT25BZnRlclZpZXdJbml0LlxyXG4gICAqIEl0IGZpcmVzIGFmdGVyIGFsbCBzdWItY29tcG9uZW50cyBoYXZlIGdvbmUgdGhyb3VnaCB0aGVpciBpbml0aWFsaXphdGlvbiBwaGFzZS5cclxuICAgKiBJdCBpcyBpbiB0aGlzIHBoYXNlIHRoYXQgdGhlIHZpZXcgY29tcG9uZW50cyBzaG91bGQgYWxyZWFkeSBleGlzdCwgc28gYSBkZXJpdmVkIGNsYXNzIHNob3VsZFxyXG4gICAqIGxvYWQgZGF0YSBmcm9tIHRoZSBBUEkgdG8gcG9wdWxhdGUgYW55IHZpZXcgY29tcG9uZW50cy4gVGhlIHByb21pc2UgdGhhdFxyXG4gICAqIGlzIHJldHVybmVkIG11c3Qgbm90IHJlc29sdmUgdW50aWwgYWxsIHJlcXVpcmVkIGRhdGEgaGFzIGNvbXBsZXRlbHkgbG9hZGVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFzeW5jIG9uQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHsgfTtcclxuICBwdWJsaWMgYXN5bmMgbmdBZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgaW5pdFJlc3VsdCA9IGF3YWl0IHRoaXMuaW5pdFByb21pc2U7XHJcbiAgICAgIHRoaXMucGFyc2VJbml0UmVzdWx0KGluaXRSZXN1bHQpO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5vbkFmdGVyVmlld0luaXQoKTtcclxuXHJcbiAgICAgIHRoaXMuX2FmdGVyVmlld0luaXRDb21wbGV0ZS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuX2FmdGVyVmlld0luaXRDb21wbGV0ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5vbkZvcm1Mb2FkQ29tcGxldGUoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnN0YXR1cy5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xyXG4gICAgICAgIHRoaXMuc2hvd1N0YXR1cyhQYWdlU3RhdHVzLkxvYWRlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5za2lwSGlkZVNwbGFzaE9uQ29tcGxldGUpIHtcclxuICAgICAgICB0aGlzLnNwbGFzaFNlcnZpY2UuaGlkZVNwbGFzaCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5zcGxhc2hTZXJ2aWNlLmhpZGVTcGxhc2goKTtcclxuICAgICAgdGhpcy5vbkVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgbGlmZWN5Y2xlIG1ldGhvZCB0aGF0IGV4ZWN1dGVzIG9uY2UgYWxsIGRhdGEgaGFzIGJlZW4gbG9hZGVkXHJcbiAgICogdGhyb3VnaCBuZ0FmdGVyVmlld0luaXQgYW5kIGZyb20gbG9jYWwgc3RvcmFnZSBpZiByZXF1aXJlZC5cclxuICAgKiBJdCBpcyBhdCB0aGlzIHBvaW50IHRoYXQgeW91IGNhbiBzdWJzY3JpYmUgdG8gY2hhbmdlcyBvbiB0aGUgZm9ybVxyXG4gICAqIHJlbGlhYmx5XHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICogQG1lbWJlcm9mIFBhZ2VCYXNlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFzeW5jIG9uRm9ybUxvYWRDb21wbGV0ZSgpOiBQcm9taXNlPGFueT4geyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgbGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgZXZlcnkgTmF2aWdhdGlvbkVuZCBldmVudC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb25OYXZpZ2F0aW9uRW5kKCk6IHZvaWQgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbG9hZCB0aGUgY29tcG9uZW50IGtpY2tpbmcgb2ZmIHRoZSBuZ09uSW5pdCBhbmQgbmdBZnRlclZpZXdJbml0IGxpZmVjeWNsZSBob29rcy5cclxuICAgKiBBbnkgc3RhdGUgdGhhdCBuZWVkcyB0byBiZSByZXNldCBzaG91bGQgYmUgZG9uZSBzbyBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC5cclxuICAgKi9cclxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYWZ0ZXJWaWV3SW5pdENvbXBsZXRlID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuXHJcbiAgICB0aGlzLnNob3dTdGF0dXMoUGFnZVN0YXR1cy5Mb2FkaW5nKTtcclxuICAgIHRoaXMuaW5pdFByb21pc2UgPSB0aGlzLm9uSW5pdCgpO1xyXG4gICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gb3ZlcnJpZGRlbiBpbiBhIGRlcml2ZWQgY2xhc3MgdGhpcyBtZXRob2Qgd2lsbCBzeW5jIHRoZSBmb3JtIHN0YXRlXHJcbiAgICogaW50byB0aGUgb2JqZWN0IHRoYXQgd2lsbCBiZSBwZXJzaXN0ZWQgdG8gdGhlIEFQSS4gVGhlIHZhbHVlIHNob3VsZCBub3RcclxuICAgKiBhY3R1YWxseSBiZSBzZW50IHRvIHRoZSBBUEkgeWV0LlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3luYyBhcHBseU1vZGVsVXBkYXRlcygpOiBQcm9taXNlPHZvaWQ+IHsgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2F2ZSB0aGUgbW9kZWwgc3RhdGUgdG8gdGhlIEFQSSBhbmQgcmV0dXJuIGEgcHJvbWlzZSB0aGF0XHJcbiAgICogY29udGFpbnMgdGhlIHVwZGF0ZWQgZW50aXR5SUQuIFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZFxyXG4gICAqIGlmIHRoZSBzYXZlIGZhaWxzIGFuZCBlcnJvcnMgYW5kIHRoZSBvdmVybGF5IHN0YXR1cyB3aWxsIGJlIHVwZGF0ZWRcclxuICAgKiBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3luYyBzYXZlVG9BcGkoKTogUHJvbWlzZTxudW1iZXIgfCB2b2lkPiB7IH07XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCBhZnRlciB0aGUgc2F2ZSBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5cclxuICAgKiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGRlcml2ZWQgY2xhc3MgdG8gbmF2aWdhdGVcclxuICAgKiB0byBhIHByb3BlcnRpZXMvc3RhdHVzIHBhZ2Ugb3IgZW1pdCBhcHByb3ByaWF0ZWx5IGlmIHdpdGhpbiBhIGRpYWxvZ1xyXG4gICAqIEBwYXJhbSBlbnRpdHlJZCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb25TYXZlQ29tcGxldGUoZW50aXR5SWQ/OiBudW1iZXIpOiB2b2lkIHsgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHNhdmUuICBXZSB3aWxsIGZpcnN0IHRvdWNoIGFsbCBjb250cm9scyB0byBzaG93IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgKiBpZiB0aGUgZm9ybSBpcyBpbnZhbGlkLiAgSWYgdGhlIGZvcm0gaXMgdmFsaWQgd2Ugd2lsbCBhdHRlbXB0IHRvIHNhdmUgYW5kIGFueSBlcnJvcnMgd2lsbCBiZSByZXBvcnRlZFxyXG4gICAqIGJhY2sgdG8gdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gZXZlbnQgXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIG9uU2F2ZShldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93U3RhdHVzKFBhZ2VTdGF0dXMuU2F2aW5nKTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5hcHBseU1vZGVsVXBkYXRlcygpO1xyXG4gICAgICAgIGxldCBlbnRpdHlJZCA9IGF3YWl0IHRoaXMuc2F2ZVRvQXBpKCkgfHwgLTE7XHJcblxyXG4gICAgICAgIHRoaXMuX2Vycm9ycyA9ICcnO1xyXG5cclxuICAgICAgICB0aGlzLm9uU2F2ZUNvbXBsZXRlKGVudGl0eUlkKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAvL2NsZWFyIHRoZSBcInNhdmluZ1wiIG92ZXJsYXkgYW5kIHNob3cgdGhlIG1lc3NhZ2UgYXQgdGhlIHRvcCBvZiB0aGUgdmlldyB0aHJvdWdoIHRoZSBlcnJvcnMgcHJvcGVydHlcclxuICAgICAgICB0aGlzLnNob3dFcnJvckJhbm5lcihlcnJvciwgdGhpcy5kZWZhdWx0VW5rbm93blNhdmVFcnJvcik7XHJcbiAgICAgICAgdGhpcy5zcGxhc2hTZXJ2aWNlLmhpZGVTcGxhc2goKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT25seSBzaG93IHRoZSBiYW5uZXIgd2l0aCB0aGUgZ2VuZXJpYyBtZXNzYWdlIGlmIHRoZSBwYXJlbnQgY29tcG9uZW50IGhhc24ndCBhbHJlYWR5IHNldCBvbmVcclxuICAgICAgLy8gYnkgaW1wbGVtZW50aW5nIG9uU2F2ZSBmb3IgYWRkaXRpb25hbCB2YWxpZGF0aW9uXHJcbiAgICAgIGlmICh0aGlzLmVycm9ycyA9PT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3dFcnJvckJhbm5lcih0aGlzLmRlZmF1bHRJbnZhbGlkRm9ybU1lc3NhZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5zY3JvbGxDb250YWluZXJTZWxlY3Rvcikge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbFRvSXRlbSh0aGlzLnNjcm9sbENvbnRhaW5lclNlbGVjdG9yISwgXCIubmctaW52YWxpZFwiKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCB3aWxsIGxvZyBhbiBlcnJvciB0aGF0IGlzIHBhc3NlZCBpbiB0byB0aGUgY29uc29sZVxyXG4gICAqIEBwYXJhbSBlIFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvbkVycm9yKGVycm9yOiBFcnJvcik6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvclNlcnZpY2UubG9nQ29uc29sZUVycm9yKGVycm9yKTtcclxuICAgIHRoaXMuc2hvd0Vycm9yT3ZlcmxheShlcnJvcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGFuIGVycm9yIG1lc3NhZ2UgaW4gYSB3aG9sZS1wYWdlIG92ZXJsYXkuIFRoaXMgd2lsbCBwcmV2ZW50IGFueSBtb3JlXHJcbiAgICogaW50ZXJhY3Rpb25zIHdpdGggdGhlIHBhZ2UuIEl0IGNhbiB0YWtlIGEgc3RyaW5nIGVycm9yIG1lc3NhZ2Ugb3IgYSByYXcgQVBJXHJcbiAgICogZXJyb3IgdGhhdCBuZWVkcyB0byBiZSBwYXJzZWQuIElmIHRoZSBBUEkgZXJyb3IgaXNuJ3Qgc29tZXRoaW5nIHdlIGNhbiBoYW5kbGVcclxuICAgKiBhIGdlbmVyaWMgbWVzc2FnZSBpcyBzaG93biBpbnN0ZWFkXHJcbiAgICogQHBhcmFtIHsoRXJyb3IgfCBzdHJpbmcpfSBlcnJvclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzaG93RXJyb3JPdmVybGF5KGVycm9yOiBFcnJvciB8IHN0cmluZykge1xyXG4gICAgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpLnN1YnNjcmliZSgodHJhbnNsYXRlZE1lc3NhZ2U6IHN0cmluZykgPT4ge1xyXG4gICAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ2Vycm9yJywgdHJhbnNsYXRlZE1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGFuIGVycm9yIGluIHRoZSBiYW5uZXIgYXQgdGhlIHRvcCBvZiB0aGUgc2NyZWVuLiAgVGhpcyB3aWxsIG5vdCBwcm9kdWNlIGFcclxuICAgKiB3aG9sZS1wYWdlIG92ZXJsYXkgbGlrZSB0aGUgZnVuY3Rpb24gc2hvd0Vycm9yIHdpbGwuICBJdCBjYW4gdGFrZSBhIHN0cmluZyBlcnJvciBtZXNzYWdlXHJcbiAgICogb3IgcmF3IEFQSSBlcnJvciB0aGF0IG5lZWRzIHRvIGJlIHBhcnNlZC4gIElmIHRoZSBBUEkgZXJyb3IgaXNuJ3Qgc29tZXRoaW5nIHdlIGNhbiBoYW5kbGUsXHJcbiAgICogYSBnZW5lcmljIG1lc3NhZ2UgKGN1c3RvbWl6YWJsZSB2aWEgdW5rbm93bkVycm9yRGVmYXVsdCkgaXMgc2hvd24gaW5zdGVhZC5cclxuICAgKiBAcGFyYW0gZXJyb3IgXHJcbiAgICogQHBhcmFtIHVua25vd25FcnJvckRlZmF1bHQgXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNob3dFcnJvckJhbm5lcihlcnJvcjogRXJyb3IgfCBzdHJpbmcsIHVua25vd25FcnJvckRlZmF1bHQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yLCB1bmtub3duRXJyb3JEZWZhdWx0KS5zdWJzY3JpYmUoKHRyYW5zbGF0ZWRNZXNzYWdlOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5fZXJyb3JzID0gdHJhbnNsYXRlZE1lc3NhZ2U7XHJcbiAgICAgIHRoaXMuc2hvd1N0YXR1cyhQYWdlU3RhdHVzLkxvYWRlZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyBhbmQgdHJhbnNsYXRlcyBhbiBBUEkgZXJyb3Igb3IgZXJyb3Igc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBlIFxyXG4gICAqIEBwYXJhbSB1bmtub3duRXJyb3JEZWZhdWx0IFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRFcnJvck1lc3NhZ2UoZTogRXJyb3IgfCBzdHJpbmcsIHVua25vd25FcnJvckRlZmF1bHQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgbGV0IGV4dHJhY3RlZE1lc3NhZ2UgPSB0aGlzLmVycm9yU2VydmljZS5wYXJzZUFwaUVycm9yKGUsIHVua25vd25FcnJvckRlZmF1bHQpO1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoZXh0cmFjdGVkTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgZXJyb3JzIHRvIGhpZGUgdGhlIGVycm9ycyBiYW5uZXIuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGhpZGVFcnJvckJhbm5lcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Vycm9ycyA9ICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSBkaXNwbGF5IHN0YXR1cyB0byBvdmVybGF5IHRoZSB3aG9sZSBwYWdlIHdoaWxlIGxvYWRpbmcgb3Igc2F2aW5nXHJcbiAgICogYW5kIGNsZWFyIGl0IHdoZW4gdGhlIGZvcm0gaXMgcmVhZHlcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICogQHBhcmFtIHtQYWdlU3RhdHVzfSBzdGF0dXNcclxuICAgKiBAbWVtYmVyb2YgRm9ybUJhc2VDb21wb25lbnRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2hvd1N0YXR1cyhzdGF0dXM6IFBhZ2VTdGF0dXMpIHtcclxuICAgIGxldCBrbm93blN0YXR1cyA9IFBhZ2VTdGF0dXNlc1tzdGF0dXNdO1xyXG4gICAgaWYgKGtub3duU3RhdHVzKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cyhrbm93blN0YXR1cy5zdGF0dXMsIGtub3duU3RhdHVzLm1lc3NhZ2UsIHVuZGVmaW5lZCwga25vd25TdGF0dXMubm9EYXRhVGVtcGxhdGUsIGtub3duU3RhdHVzLm92ZXJsYXlDbGFzc0xpc3QpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3dzIHRoZSBjb21wb25lbnQgdG8gZW50ZXIgYSBwZW5kaW5nIHN0YXR1cyBhbmQgZXhlY3V0ZSBhIGZ1bmN0aW9uIHRoYXQgb24gY29tcGxldGlvbiB3aWxsIHJldHVybiB0aGUgc3RhdHVzXHJcbiAgICogdG8gaGFzRGF0YS4gSWYgYW4gZXJyb3Igb2NjdXJzIHdpdGhpbiB0aGUgY2FsbGJhY2sgYW4gZXJyb3IgYmFubmVyIGNhbiBiZSBzaG93bi5cclxuICAgKiBAcGFyYW0gY2FsbGJhY2tcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3luYyBydW5CbG9ja2luZ0FjdGlvbihjYWxsYmFjazogKCkgPT4gUHJvbWlzZTxhbnk+LCBwZW5kaW5nTWVzc2FnZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICB0aGlzLmhpZGVFcnJvckJhbm5lcigpO1xyXG4gICAgdGhpcy5zdGF0dXMuc2V0U3RhdHVzKCdwZW5kaW5nJywgcGVuZGluZ01lc3NhZ2UpO1xyXG5cclxuICAgIHJldHVybiBjYWxsYmFjaygpLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgdGhpcy5zaG93RXJyb3JCYW5uZXIoZXJyb3IpO1xyXG4gICAgICAvLyBUaHJvdyB0aGUgZXJyb3IgZm9yIGFueSBkb3duc3RyZWFtIGNvbXBvbmVudHMgdGhhdCBtYXkgYmUgbGlzdGVuaW5nIGFuZCBuZWVkIHRvIHJlYWN0XHJcbiAgICAgIC8vIHRvIGFueSBlcnJvcnMgaGFwcGVuaW5nIHdpdGhpbiB0aGlzIGNhbGxiYWNrXHJcbiAgICAgIHRocm93IChlcnJvcik7XHJcbiAgICB9KS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93U3RhdHVzKFBhZ2VTdGF0dXMuTG9hZGVkKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB0aGUgcGFnZSBpbml0IHJlc3VsdCBhbmQgc2V0cyB0aGUgbmVjZXNzYXJ5IHByb3BlcnRpZXMgb24gdGhlIHBhZ2VcclxuICAgKiBAcGFyYW0gcmVzdWx0IFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGFyc2VJbml0UmVzdWx0KHJlc3VsdDogUGFnZUluaXRSZXN1bHQpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFJlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMudGl0bGUgPSByZXN1bHQudGl0bGU7XHJcbiAgICB0aGlzLnN1YlRpdGxlID0gcmVzdWx0LnN1YlRpdGxlO1xyXG4gICAgdGhpcy5zdWJUaXRsZVVybCA9IHJlc3VsdC5zdWJUaXRsZVVybDtcclxuICAgIHRoaXMuYnJlYWRjcnVtYnMgPSByZXN1bHQuYnJlYWRjcnVtYnM7XHJcbiAgICB0aGlzLmhlbHAgPSByZXN1bHQuaGVscDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdXAgdGhlIHJvdXRlciBldmVudCBzdWJzY3JpcHRpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRVcFJvdXRlclN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubmF2aWdhdGlvbkVuZFN1YnNjcmlwdGlvbiAmJiAhdGhpcy5kZXN0cm95ZWQuY2xvc2VkKSB7XHJcbiAgICAgIC8vIFJlYWN0IHRvIG5hdmlnYXRpb24gZXZlbnRzXHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkVuZFN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXHJcbiAgICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxyXG4gICAgICApLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy5vbk5hdmlnYXRpb25FbmQoKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvcGFnZS9wYWdlLWJhc2UvcGFnZS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxXQUFXLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRW5FLE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ0UsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQUNwQixhQUFRLEdBQVksRUFBRSxDQUFDO1FBQ3ZCLGdC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bmcsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE5hdkl0ZW0gfSBmcm9tICcuLi8uLi8uLi9jb250cm9scy9uYXZpZ2F0aW9uL25hdi1pdGVtJztcclxuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lcnJvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Nyb2xsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2Nyb2xsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlzcGxheS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGxhc2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlzcGxheS9zcGxhc2gvc3BsYXNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIZWxwIH0gZnJvbSAnLi4vLi4vLi4vZGlzcGxheS9oZWxwL2hlbHAtdHlwZXMnO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vLi4vLi4vZGlzcGxheS92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VTdGF0dXMsIFBhZ2VTdGF0dXNlcyB9IGZyb20gJy4uL3BhZ2Utc3RhdHVzZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3JvdXRlci1oZWxwZXIuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnZUluaXRSZXN1bHQge1xyXG4gIHRpdGxlPzogc3RyaW5nID0gJyc7XHJcbiAgc3ViVGl0bGU/OiBzdHJpbmcgPSAnJztcclxuICBzdWJUaXRsZVVybD86IHN0cmluZyA9ICcnO1xyXG5cclxuICBicmVhZGNydW1icz86IE5hdkl0ZW1bXTtcclxuICBoZWxwPzogSGVscDtcclxufVxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYWdlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAvKiogRGVmYXVsdCBjc3MgY2xhc3NlcyBhcHBsaWVkIHRvIGhvc3QgZWxlbWVudCAqL1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwcm90ZWN0ZWQgY2xhc3NMaXN0ID0gJ2QtZmxleCBmbGV4LWdyb3cnO1xyXG5cclxuICAvKipcclxuICAgKiBUaXRsZSBmb3IgdGhlIHBhZ2UgZGlzcGxheWVkIGluIHRoZSBoZWFkZXJcclxuICAgKi9cclxuICBwdWJsaWMgdGl0bGU/OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViIHRpdGxlIGZvciB0aGUgcGFnZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdWJUaXRsZT86IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBTdWIgdGl0bGUgdXJsIGZvciB0aGUgcGFnZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdWJUaXRsZVVybD86IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBTdGF0dXMgb3ZlcmxheSBmb3IgdGhlIHBhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdHVzOiBPdmVybGF5ID0gbmV3IE92ZXJsYXkoJ3BlbmRpbmcnLCAnTG9hZGluZycpO1xyXG5cclxuICAvKipcclxuICAgKiBCcmVhZGNydW1icyBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBicmVhZGNydW1icz86IE5hdkl0ZW1bXTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVzdWx0IHJldHVybmVkIGZyb20gdGhlIG9uSW5pdCBmdW5jdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0UmVzdWx0ITogUGFnZUluaXRSZXN1bHQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHAgaW5mb3JtYXRpb24gZm9yIHRoZSBjb21wb25lbnQsIHdoaWNoIGNhbiBvbmx5IGJlIHNldCB0aHJvdWdoIG9uSW5pdFxyXG4gICAqL1xyXG4gIHB1YmxpYyBoZWxwOiBIZWxwIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBGb3JtIGdyb3VwIHRvIGJlIHVzZWQgaWYgbmVlZGVkIGJ5IHRoZSBwYWdlXHJcbiAgICovXHJcbiAgcHVibGljIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmYXVsdCBpbnZhbGlkIGZvcm0gbWVzc2FnZSwgb3ZlcnJpZGUgaWYgYSBtb3JlIHNwZWNpZmljIG1lc3NhZ2UgaXMgbmVlZGVkXHJcbiAgICovXHJcbiAgcHVibGljIGRlZmF1bHRJbnZhbGlkRm9ybU1lc3NhZ2U6IHN0cmluZyA9ICdQbGVhc2VDb3JyZWN0Rm9ybV9TQyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmF1bHQgdW5rbm93biBzYXZlIGVycm9yIG1lc3NhZ2UsIG92ZXJyaWRlIGlmIGEgbW9yZSBzcGVjaWZpYyBtZXNzYWdlIGlzIG5lZWRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWZhdWx0VW5rbm93blNhdmVFcnJvcjogc3RyaW5nID0gJ1BhZ2VCYXNlVW5rbm93blNhdmVFcnJvcl9TQyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgdG8gb3B0IG91dCBvZiBoaWRpbmcgdGhlIHNwbGFzaCBzY3JlZW4gd2hlbiB0aGUgcGFnZSBpcyBsb2FkZWRcclxuICAgKi9cclxuICBwdWJsaWMgc2tpcEhpZGVTcGxhc2hPbkNvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgdG8gdW5zdWJzY3JpYmUgZnJvbSBvYnNlcnZhYmxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBkZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlZCB0byBrbm93IHdoZW4gdGhlIHBhZ2UgaGFzIGJlZW4gbG9hZGVkLCB0aGlzIHdpbGwgYmUgY29tcGxldGVkXHJcbiAgICogYWZ0ZXIgb25BZnRlclZpZXdJbml0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYWZ0ZXJWaWV3SW5pdENvbXBsZXRlOiBSZXBsYXlTdWJqZWN0PHZvaWQ+ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuICBwdWJsaWMgYWZ0ZXJWaWV3SW5pdENvbXBsZXRlOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5fYWZ0ZXJWaWV3SW5pdENvbXBsZXRlO1xyXG5cclxuICAvKipcclxuICAgKiBJZiBkZWZpbmVkIHRoZSBmb3JtIHdpbGwgYXV0b21hdGljYWxseSBzY3JvbGwgdG8gdGhlIGZpcnN0IGludmFsaWQgZm9ybSBjb250cm9sXHJcbiAgICogaWYgaXQncyBvdXRzaWRlIG9mIHRoZSB2aWV3XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNjcm9sbENvbnRhaW5lclNlbGVjdG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgcm91dGVyIGV2ZW50cyBOYXZpZ2F0aW9uRW5kXHJcbiAgICogVXNlZCB0byBrbm93IGlmIGFscmVhZHkgc3Vic2NyaWJlZCB0b1xyXG4gICAqL1xyXG4gIHByaXZhdGUgbmF2aWdhdGlvbkVuZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29tbW9uIHNlcnZpY2VzIHVzZWQgYnkgcGFnZS1iYXNlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGVycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCBzY3JvbGxTZXJ2aWNlOiBTY3JvbGxTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcjtcclxuICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCBzcGxhc2hTZXJ2aWNlOiBTcGxhc2hTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCByb3V0ZXJIZWxwZXI6IFJvdXRlckhlbHBlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLmVycm9yU2VydmljZSA9IGluamVjdG9yLmdldChFcnJvclNlcnZpY2UpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5zY3JvbGxTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNjcm9sbFNlcnZpY2UpO1xyXG4gICAgdGhpcy5yb3V0ZXIgPSBpbmplY3Rvci5nZXQoUm91dGVyKTtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUgPSBpbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KERpYWxvZ1NlcnZpY2UpO1xyXG4gICAgdGhpcy5zcGxhc2hTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNwbGFzaFNlcnZpY2UpO1xyXG4gICAgdGhpcy5yb3V0ZXJIZWxwZXIgPSBpbmplY3Rvci5nZXQoUm91dGVySGVscGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVycm9ycyB0byBiZSBzaG93biBmb3IgdGhlIGNvbXBvbmVudC5cclxuICAgKiBBdXRvbWF0aWNhbGx5IHBvcHVsYXRlZCBvbiBwcm9taXNlIHJlamVjdGlvbiBmcm9tIHNhdmUgYW5kIHNoYXJlZCB3aXRoIHRoZSBVSS5cclxuICAgKi9cclxuICBwcml2YXRlIF9lcnJvcnM6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBnZXQgZXJyb3JzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgbGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYXMgcGFydCBvZiB0aGUgQW5ndWxhciBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vay5cclxuICAgKiBDYWxsZWQgYmVmb3JlIG9uSW5pdCBpcyBjYWxsZWQgZm9yIHRoZSBmaXJzdCB0aW1lLiBBZGQgc2V0dXAgbG9naWMgaGVyZSB0aGF0IGRvZXNcclxuICAgKiBub3QgbmVlZCB0byBiZSBydW4gb24gZXZlcnkgcmVsb2FkLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvbkZpcnN0SW5pdCgpOiB2b2lkIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhlIGRlcml2ZWQgY2xhc3MgYXMgcGFydCBvZiB0aGUgQW5ndWxhciBuZ09uSW5pdFxyXG4gICAqIGxpZmVjeWNsZSBob29rLiBJdCBtdXN0IHByb3ZpZGUgYSBQYWdlSW5pdFJlc3VsdCBiYWNrIHRvIHRoZSBiYXNlIGNsYXNzIHRvIHByb3Blcmx5XHJcbiAgICogc2V0IHVwIHRoZSBwYWdlLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvbkluaXQoKTogUHJvbWlzZTxQYWdlSW5pdFJlc3VsdD47XHJcbiAgcHJvdGVjdGVkIGluaXRQcm9taXNlITogUHJvbWlzZTxQYWdlSW5pdFJlc3VsdD47XHJcblxyXG4gIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuc2hvd1N0YXR1cyhQYWdlU3RhdHVzLkxvYWRpbmcpO1xyXG4gICAgICB0aGlzLnNldFVwUm91dGVyU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICB0aGlzLm9uRmlyc3RJbml0KCk7XHJcbiAgICAgIHRoaXMuaW5pdFByb21pc2UgPSB0aGlzLm9uSW5pdCgpO1xyXG4gICAgICBhd2FpdCB0aGlzLmluaXRQcm9taXNlO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5zcGxhc2hTZXJ2aWNlLmhpZGVTcGxhc2goKTtcclxuICAgICAgdGhpcy5vbkVycm9yKGVycm9yKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQganVzdCBhZnRlciB0aGUgQW5ndWxhciBMaWZlY3ljbGUgZXZlbnQgbmdPbkFmdGVyVmlld0luaXQuXHJcbiAgICogSXQgZmlyZXMgYWZ0ZXIgYWxsIHN1Yi1jb21wb25lbnRzIGhhdmUgZ29uZSB0aHJvdWdoIHRoZWlyIGluaXRpYWxpemF0aW9uIHBoYXNlLlxyXG4gICAqIEl0IGlzIGluIHRoaXMgcGhhc2UgdGhhdCB0aGUgdmlldyBjb21wb25lbnRzIHNob3VsZCBhbHJlYWR5IGV4aXN0LCBzbyBhIGRlcml2ZWQgY2xhc3Mgc2hvdWxkXHJcbiAgICogbG9hZCBkYXRhIGZyb20gdGhlIEFQSSB0byBwb3B1bGF0ZSBhbnkgdmlldyBjb21wb25lbnRzLiBUaGUgcHJvbWlzZSB0aGF0XHJcbiAgICogaXMgcmV0dXJuZWQgbXVzdCBub3QgcmVzb2x2ZSB1bnRpbCBhbGwgcmVxdWlyZWQgZGF0YSBoYXMgY29tcGxldGVseSBsb2FkZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYXN5bmMgb25BZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4geyB9O1xyXG4gIHB1YmxpYyBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBpbml0UmVzdWx0ID0gYXdhaXQgdGhpcy5pbml0UHJvbWlzZTtcclxuICAgICAgdGhpcy5wYXJzZUluaXRSZXN1bHQoaW5pdFJlc3VsdCk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJWaWV3SW5pdCgpO1xyXG5cclxuICAgICAgdGhpcy5fYWZ0ZXJWaWV3SW5pdENvbXBsZXRlLm5leHQoKTtcclxuICAgICAgdGhpcy5fYWZ0ZXJWaWV3SW5pdENvbXBsZXRlLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLm9uRm9ybUxvYWRDb21wbGV0ZSgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc3RhdHVzLnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U3RhdHVzKFBhZ2VTdGF0dXMuTG9hZGVkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLnNraXBIaWRlU3BsYXNoT25Db21wbGV0ZSkge1xyXG4gICAgICAgIHRoaXMuc3BsYXNoU2VydmljZS5oaWRlU3BsYXNoKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aGlzLnNwbGFzaFNlcnZpY2UuaGlkZVNwbGFzaCgpO1xyXG4gICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgbWV0aG9kIHRoYXQgZXhlY3V0ZXMgb25jZSBhbGwgZGF0YSBoYXMgYmVlbiBsb2FkZWRcclxuICAgKiB0aHJvdWdoIG5nQWZ0ZXJWaWV3SW5pdCBhbmQgZnJvbSBsb2NhbCBzdG9yYWdlIGlmIHJlcXVpcmVkLlxyXG4gICAqIEl0IGlzIGF0IHRoaXMgcG9pbnQgdGhhdCB5b3UgY2FuIHN1YnNjcmliZSB0byBjaGFuZ2VzIG9uIHRoZSBmb3JtXHJcbiAgICogcmVsaWFibHlcclxuICAgKlxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKiBAbWVtYmVyb2YgUGFnZUJhc2VDb21wb25lbnRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYXN5bmMgb25Gb3JtTG9hZENvbXBsZXRlKCk6IFByb21pc2U8YW55PiB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBldmVyeSBOYXZpZ2F0aW9uRW5kIGV2ZW50LlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvbk5hdmlnYXRpb25FbmQoKTogdm9pZCB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVsb2FkIHRoZSBjb21wb25lbnQga2lja2luZyBvZmYgdGhlIG5nT25Jbml0IGFuZCBuZ0FmdGVyVmlld0luaXQgbGlmZWN5Y2xlIGhvb2tzLlxyXG4gICAqIEFueSBzdGF0ZSB0aGF0IG5lZWRzIHRvIGJlIHJlc2V0IHNob3VsZCBiZSBkb25lIHNvIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWxvYWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hZnRlclZpZXdJbml0Q29tcGxldGUgPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xyXG5cclxuICAgIHRoaXMuc2hvd1N0YXR1cyhQYWdlU3RhdHVzLkxvYWRpbmcpO1xyXG4gICAgdGhpcy5pbml0UHJvbWlzZSA9IHRoaXMub25Jbml0KCk7XHJcbiAgICB0aGlzLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBvdmVycmlkZGVuIGluIGEgZGVyaXZlZCBjbGFzcyB0aGlzIG1ldGhvZCB3aWxsIHN5bmMgdGhlIGZvcm0gc3RhdGVcclxuICAgKiBpbnRvIHRoZSBvYmplY3QgdGhhdCB3aWxsIGJlIHBlcnNpc3RlZCB0byB0aGUgQVBJLiBUaGUgdmFsdWUgc2hvdWxkIG5vdFxyXG4gICAqIGFjdHVhbGx5IGJlIHNlbnQgdG8gdGhlIEFQSSB5ZXQuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGFwcGx5TW9kZWxVcGRhdGVzKCk6IFByb21pc2U8dm9pZD4geyB9O1xyXG5cclxuICAvKipcclxuICAgKiBTYXZlIHRoZSBtb2RlbCBzdGF0ZSB0byB0aGUgQVBJIGFuZCByZXR1cm4gYSBwcm9taXNlIHRoYXRcclxuICAgKiBjb250YWlucyB0aGUgdXBkYXRlZCBlbnRpdHlJRC4gVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkXHJcbiAgICogaWYgdGhlIHNhdmUgZmFpbHMgYW5kIGVycm9ycyBhbmQgdGhlIG92ZXJsYXkgc3RhdHVzIHdpbGwgYmUgdXBkYXRlZFxyXG4gICAqIGFjY29yZGluZ2x5XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFzeW5jIHNhdmVUb0FwaSgpOiBQcm9taXNlPG51bWJlciB8IHZvaWQ+IHsgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIGFmdGVyIHRoZSBzYXZlIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LlxyXG4gICAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgZGVyaXZlZCBjbGFzcyB0byBuYXZpZ2F0ZVxyXG4gICAqIHRvIGEgcHJvcGVydGllcy9zdGF0dXMgcGFnZSBvciBlbWl0IGFwcHJvcHJpYXRlbHkgaWYgd2l0aGluIGEgZGlhbG9nXHJcbiAgICogQHBhcmFtIGVudGl0eUlkIFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvblNhdmVDb21wbGV0ZShlbnRpdHlJZD86IG51bWJlcik6IHZvaWQgeyB9O1xyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgc2F2ZS4gIFdlIHdpbGwgZmlyc3QgdG91Y2ggYWxsIGNvbnRyb2xzIHRvIHNob3cgdmFsaWRhdGlvbiBtZXNzYWdlc1xyXG4gICAqIGlmIHRoZSBmb3JtIGlzIGludmFsaWQuICBJZiB0aGUgZm9ybSBpcyB2YWxpZCB3ZSB3aWxsIGF0dGVtcHQgdG8gc2F2ZSBhbmQgYW55IGVycm9ycyB3aWxsIGJlIHJlcG9ydGVkXHJcbiAgICogYmFjayB0byB0aGUgdXNlclxyXG4gICAqIEBwYXJhbSBldmVudCBcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgb25TYXZlKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xyXG4gICAgICBhd2FpdCB0aGlzLnNhdmUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIE9ubHkgc2hvdyB0aGUgYmFubmVyIHdpdGggdGhlIGdlbmVyaWMgbWVzc2FnZSBpZiB0aGUgcGFyZW50IGNvbXBvbmVudCBoYXNuJ3QgYWxyZWFkeSBzZXQgb25lXHJcbiAgICAgIC8vIGJ5IGltcGxlbWVudGluZyBvblNhdmUgZm9yIGFkZGl0aW9uYWwgdmFsaWRhdGlvblxyXG4gICAgICBpZiAodGhpcy5lcnJvcnMgPT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5zaG93RXJyb3JCYW5uZXIodGhpcy5kZWZhdWx0SW52YWxpZEZvcm1NZXNzYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsU2VydmljZS5zY3JvbGxUb0l0ZW0odGhpcy5zY3JvbGxDb250YWluZXJTZWxlY3RvciEsIFwiLm5nLWludmFsaWRcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIGF2YWlsYWJsZSB0byB0cmlnZ2VyIGEgc2F2ZSBhbmQgYnlwYXNzIHRoZSBmb3JtIHZhbGlkYXRpb24gY2hlY2tzLlxyXG4gICAqIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSB1c2VyIGNob29zZXMgYSByZW1vdmUgYWN0aW9uIGZyb20gd2l0aGluIGFuIGVkaXQgZGlhbG9nLiBJZiB0aGUgZGlhbG9nIGZvcm0gaXMgaW52YWxpZCBcclxuICAgKiB0aGF0IGlzIG5vIGNvbmNlcm4gdG8gdGhlIHVzZXIgaWYgdGhleSB3aXNoIHRvIHJlbW92ZSB0aGUgaXRlbSB0aGV5IGFyZSBlZGl0aW5nLlxyXG4gICAqIEBwYXJhbSBldmVudCBcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgb25TYXZlV2l0aG91dFZhbGlkYXRlKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5zYXZlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiB0aGF0IHdpbGwgbG9nIGFuIGVycm9yIHRoYXQgaXMgcGFzc2VkIGluIHRvIHRoZSBjb25zb2xlXHJcbiAgICogQHBhcmFtIGUgXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG9uRXJyb3IoZXJyb3I6IEVycm9yKTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9yU2VydmljZS5sb2dDb25zb2xlRXJyb3IoZXJyb3IpO1xyXG4gICAgdGhpcy5zaG93RXJyb3JPdmVybGF5KGVycm9yKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgYW4gZXJyb3IgbWVzc2FnZSBpbiBhIHdob2xlLXBhZ2Ugb3ZlcmxheS4gVGhpcyB3aWxsIHByZXZlbnQgYW55IG1vcmVcclxuICAgKiBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgcGFnZS4gSXQgY2FuIHRha2UgYSBzdHJpbmcgZXJyb3IgbWVzc2FnZSBvciBhIHJhdyBBUElcclxuICAgKiBlcnJvciB0aGF0IG5lZWRzIHRvIGJlIHBhcnNlZC4gSWYgdGhlIEFQSSBlcnJvciBpc24ndCBzb21ldGhpbmcgd2UgY2FuIGhhbmRsZVxyXG4gICAqIGEgZ2VuZXJpYyBtZXNzYWdlIGlzIHNob3duIGluc3RlYWRcclxuICAgKiBAcGFyYW0geyhFcnJvciB8IHN0cmluZyl9IGVycm9yXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNob3dFcnJvck92ZXJsYXkoZXJyb3I6IEVycm9yIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcikuc3Vic2NyaWJlKCh0cmFuc2xhdGVkTWVzc2FnZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygnZXJyb3InLCB0cmFuc2xhdGVkTWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgYW4gZXJyb3IgaW4gdGhlIGJhbm5lciBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4uICBUaGlzIHdpbGwgbm90IHByb2R1Y2UgYVxyXG4gICAqIHdob2xlLXBhZ2Ugb3ZlcmxheSBsaWtlIHRoZSBmdW5jdGlvbiBzaG93RXJyb3Igd2lsbC4gIEl0IGNhbiB0YWtlIGEgc3RyaW5nIGVycm9yIG1lc3NhZ2VcclxuICAgKiBvciByYXcgQVBJIGVycm9yIHRoYXQgbmVlZHMgdG8gYmUgcGFyc2VkLiAgSWYgdGhlIEFQSSBlcnJvciBpc24ndCBzb21ldGhpbmcgd2UgY2FuIGhhbmRsZSxcclxuICAgKiBhIGdlbmVyaWMgbWVzc2FnZSAoY3VzdG9taXphYmxlIHZpYSB1bmtub3duRXJyb3JEZWZhdWx0KSBpcyBzaG93biBpbnN0ZWFkLlxyXG4gICAqIEBwYXJhbSBlcnJvciBcclxuICAgKiBAcGFyYW0gdW5rbm93bkVycm9yRGVmYXVsdCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2hvd0Vycm9yQmFubmVyKGVycm9yOiBFcnJvciB8IHN0cmluZywgdW5rbm93bkVycm9yRGVmYXVsdD86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IsIHVua25vd25FcnJvckRlZmF1bHQpLnN1YnNjcmliZSgodHJhbnNsYXRlZE1lc3NhZ2U6IHN0cmluZykgPT4ge1xyXG4gICAgICB0aGlzLl9lcnJvcnMgPSB0cmFuc2xhdGVkTWVzc2FnZTtcclxuICAgICAgdGhpcy5zaG93U3RhdHVzKFBhZ2VTdGF0dXMuTG9hZGVkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIGFuZCB0cmFuc2xhdGVzIGFuIEFQSSBlcnJvciBvciBlcnJvciBzdHJpbmcuXHJcbiAgICogQHBhcmFtIGUgXHJcbiAgICogQHBhcmFtIHVua25vd25FcnJvckRlZmF1bHQgXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldEVycm9yTWVzc2FnZShlOiBFcnJvciB8IHN0cmluZywgdW5rbm93bkVycm9yRGVmYXVsdD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBsZXQgZXh0cmFjdGVkTWVzc2FnZSA9IHRoaXMuZXJyb3JTZXJ2aWNlLnBhcnNlQXBpRXJyb3IoZSwgdW5rbm93bkVycm9yRGVmYXVsdCk7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChleHRyYWN0ZWRNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBlcnJvcnMgdG8gaGlkZSB0aGUgZXJyb3JzIGJhbm5lci5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaGlkZUVycm9yQmFubmVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZXJyb3JzID0gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIGRpc3BsYXkgc3RhdHVzIHRvIG92ZXJsYXkgdGhlIHdob2xlIHBhZ2Ugd2hpbGUgbG9hZGluZyBvciBzYXZpbmdcclxuICAgKiBhbmQgY2xlYXIgaXQgd2hlbiB0aGUgZm9ybSBpcyByZWFkeVxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKiBAcGFyYW0ge1BhZ2VTdGF0dXN9IHN0YXR1c1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQmFzZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzaG93U3RhdHVzKHN0YXR1czogUGFnZVN0YXR1cykge1xyXG4gICAgbGV0IGtub3duU3RhdHVzID0gUGFnZVN0YXR1c2VzW3N0YXR1c107XHJcbiAgICBpZiAoa25vd25TdGF0dXMpIHtcclxuICAgICAgdGhpcy5zdGF0dXMuc2V0U3RhdHVzKGtub3duU3RhdHVzLnN0YXR1cywga25vd25TdGF0dXMubWVzc2FnZSwgdW5kZWZpbmVkLCBrbm93blN0YXR1cy5ub0RhdGFUZW1wbGF0ZSwga25vd25TdGF0dXMub3ZlcmxheUNsYXNzTGlzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgdGhlIGNvbXBvbmVudCB0byBlbnRlciBhIHBlbmRpbmcgc3RhdHVzIGFuZCBleGVjdXRlIGEgZnVuY3Rpb24gdGhhdCBvbiBjb21wbGV0aW9uIHdpbGwgcmV0dXJuIHRoZSBzdGF0dXNcclxuICAgKiB0byBoYXNEYXRhLiBJZiBhbiBlcnJvciBvY2N1cnMgd2l0aGluIHRoZSBjYWxsYmFjayBhbiBlcnJvciBiYW5uZXIgY2FuIGJlIHNob3duLlxyXG4gICAqIEBwYXJhbSBjYWxsYmFja1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bkJsb2NraW5nQWN0aW9uKGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPGFueT4sIHBlbmRpbmdNZXNzYWdlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHRoaXMuaGlkZUVycm9yQmFubmVyKCk7XHJcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ3BlbmRpbmcnLCBwZW5kaW5nTWVzc2FnZSk7XHJcblxyXG4gICAgcmV0dXJuIGNhbGxiYWNrKCkuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICB0aGlzLnNob3dFcnJvckJhbm5lcihlcnJvcik7XHJcbiAgICAgIC8vIFRocm93IHRoZSBlcnJvciBmb3IgYW55IGRvd25zdHJlYW0gY29tcG9uZW50cyB0aGF0IG1heSBiZSBsaXN0ZW5pbmcgYW5kIG5lZWQgdG8gcmVhY3RcclxuICAgICAgLy8gdG8gYW55IGVycm9ycyBoYXBwZW5pbmcgd2l0aGluIHRoaXMgY2FsbGJhY2tcclxuICAgICAgdGhyb3cgKGVycm9yKTtcclxuICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNob3dTdGF0dXMoUGFnZVN0YXR1cy5Mb2FkZWQpO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSBwYWdlIGluaXQgcmVzdWx0IGFuZCBzZXRzIHRoZSBuZWNlc3NhcnkgcHJvcGVydGllcyBvbiB0aGUgcGFnZVxyXG4gICAqIEBwYXJhbSByZXN1bHQgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBwYXJzZUluaXRSZXN1bHQocmVzdWx0OiBQYWdlSW5pdFJlc3VsdCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0UmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy50aXRsZSA9IHJlc3VsdC50aXRsZTtcclxuICAgIHRoaXMuc3ViVGl0bGUgPSByZXN1bHQuc3ViVGl0bGU7XHJcbiAgICB0aGlzLnN1YlRpdGxlVXJsID0gcmVzdWx0LnN1YlRpdGxlVXJsO1xyXG4gICAgdGhpcy5icmVhZGNydW1icyA9IHJlc3VsdC5icmVhZGNydW1icztcclxuICAgIHRoaXMuaGVscCA9IHJlc3VsdC5oZWxwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbHMgdGhlIHBhZ2Ugc3RhdHVzIGFuZCB0cmlnZ2VycyB0aGUgc2F2ZSBhY3Rpb24uIElmIHRoZXJlIGlzIGFuIGVycm9yIGJhbm5lciB3aWxsIGJlIHNob3duLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hvd1N0YXR1cyhQYWdlU3RhdHVzLlNhdmluZyk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgYXdhaXQgdGhpcy5hcHBseU1vZGVsVXBkYXRlcygpO1xyXG4gICAgICBsZXQgZW50aXR5SWQgPSBhd2FpdCB0aGlzLnNhdmVUb0FwaSgpIHx8IC0xO1xyXG5cclxuICAgICAgdGhpcy5fZXJyb3JzID0gJyc7XHJcblxyXG4gICAgICB0aGlzLm9uU2F2ZUNvbXBsZXRlKGVudGl0eUlkKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIC8vY2xlYXIgdGhlIFwic2F2aW5nXCIgb3ZlcmxheSBhbmQgc2hvdyB0aGUgbWVzc2FnZSBhdCB0aGUgdG9wIG9mIHRoZSB2aWV3IHRocm91Z2ggdGhlIGVycm9ycyBwcm9wZXJ0eVxyXG4gICAgICB0aGlzLnNob3dFcnJvckJhbm5lcihlcnJvciwgdGhpcy5kZWZhdWx0VW5rbm93blNhdmVFcnJvcik7XHJcbiAgICAgIHRoaXMuc3BsYXNoU2VydmljZS5oaWRlU3BsYXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHVwIHRoZSByb3V0ZXIgZXZlbnQgc3Vic2NyaXB0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VXBSb3V0ZXJTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm5hdmlnYXRpb25FbmRTdWJzY3JpcHRpb24gJiYgIXRoaXMuZGVzdHJveWVkLmNsb3NlZCkge1xyXG4gICAgICAvLyBSZWFjdCB0byBuYXZpZ2F0aW9uIGV2ZW50c1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25FbmRTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLFxyXG4gICAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHRoaXMub25OYXZpZ2F0aW9uRW5kKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -26,5 +26,13 @@ export class PageBaseComponentTestHelper {
26
26
  async clickSave() {
27
27
  await this._component.onSave(clickEvent);
28
28
  }
29
+ /**
30
+ * Simulate saving without validate
31
+ *
32
+ * @returns {Promise<void>}
33
+ */
34
+ async clickSaveWithoutValidate() {
35
+ await this._component.onSaveWithoutValidate(clickEvent);
36
+ }
29
37
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLWNvbXBvbmVudC10ZXN0LWhlbHBlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC90ZXN0aW5nL3BhZ2UtYmFzZS1jb21wb25lbnQtdGVzdC1oZWxwZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUFZLFNBQVk7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQVREOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFNRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFBhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL3BhZ2UvcGFnZS1iYXNlL3BhZ2UtYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgY2xpY2tFdmVudCB9IGZyb20gXCIuL3RyYW5zbGF0aW9uLW1vY2tzLnNwZWNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQYWdlQmFzZUNvbXBvbmVudFRlc3RIZWxwZXI8VCBleHRlbmRzIFBhZ2VCYXNlQ29tcG9uZW50PiB7XHJcbiAgcHJpdmF0ZSBfY29tcG9uZW50OiBUO1xyXG5cclxuICAvKipcclxuICAgKiBTaG9ydGN1dCB0byBhY2Nlc3MgdGhlIGNvbXBvbmVudCdzIGNvbnRyb2xzXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBjb250cm9scygpOiB7IFtrZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbCB9IHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnQuZm9ybUdyb3VwLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoY29tcG9uZW50OiBUKSB7XHJcbiAgICB0aGlzLl9jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsIGFuZCBhd2FpdCBuZ09uSW5pdCBhbmQgbmdBZnRlclZpZXdJbml0XHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuX2NvbXBvbmVudC5uZ09uSW5pdCgpO1xyXG4gICAgYXdhaXQgdGhpcy5fY29tcG9uZW50Lm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2ltdWxhdGUgY2xpY2tpbmcgb2YgXCJTYXZlXCIgYnV0dG9uXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgY2xpY2tTYXZlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5fY29tcG9uZW50Lm9uU2F2ZShjbGlja0V2ZW50KTtcclxuICB9XHJcbn1cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLWNvbXBvbmVudC10ZXN0LWhlbHBlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC90ZXN0aW5nL3BhZ2UtYmFzZS1jb21wb25lbnQtdGVzdC1oZWxwZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUFZLFNBQVk7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQVREOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFNRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVDOzs7O0tBSUM7SUFDTyxLQUFLLENBQUMsd0JBQXdCO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUGFnZUJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vcGFnZS9wYWdlLWJhc2UvcGFnZS1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBjbGlja0V2ZW50IH0gZnJvbSBcIi4vdHJhbnNsYXRpb24tbW9ja3Muc3BlY1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VCYXNlQ29tcG9uZW50VGVzdEhlbHBlcjxUIGV4dGVuZHMgUGFnZUJhc2VDb21wb25lbnQ+IHtcclxuICBwcml2YXRlIF9jb21wb25lbnQ6IFQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3J0Y3V0IHRvIGFjY2VzcyB0aGUgY29tcG9uZW50J3MgY29udHJvbHNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGNvbnRyb2xzKCk6IHsgW2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sIH0ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudC5mb3JtR3JvdXAuY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihjb21wb25lbnQ6IFQpIHtcclxuICAgIHRoaXMuX2NvbXBvbmVudCA9IGNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGwgYW5kIGF3YWl0IG5nT25Jbml0IGFuZCBuZ0FmdGVyVmlld0luaXRcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5fY29tcG9uZW50Lm5nT25Jbml0KCk7XHJcbiAgICBhd2FpdCB0aGlzLl9jb21wb25lbnQubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaW11bGF0ZSBjbGlja2luZyBvZiBcIlNhdmVcIiBidXR0b25cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBjbGlja1NhdmUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLl9jb21wb25lbnQub25TYXZlKGNsaWNrRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBTaW11bGF0ZSBzYXZpbmcgd2l0aG91dCB2YWxpZGF0ZVxyXG4gICAqXHJcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XHJcbiAgICovXHJcbiAgICAgcHVibGljIGFzeW5jIGNsaWNrU2F2ZVdpdGhvdXRWYWxpZGF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgYXdhaXQgdGhpcy5fY29tcG9uZW50Lm9uU2F2ZVdpdGhvdXRWYWxpZGF0ZShjbGlja0V2ZW50KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -10434,18 +10434,7 @@ class PageBaseComponent {
10434
10434
  return __awaiter(this, void 0, void 0, function* () {
10435
10435
  this.formGroup.markAllAsTouched();
10436
10436
  if (this.formGroup.valid) {
10437
- this.showStatus(PageStatus.Saving);
10438
- try {
10439
- yield this.applyModelUpdates();
10440
- let entityId = (yield this.saveToApi()) || -1;
10441
- this._errors = '';
10442
- this.onSaveComplete(entityId);
10443
- }
10444
- catch (error) {
10445
- //clear the "saving" overlay and show the message at the top of the view through the errors property
10446
- this.showErrorBanner(error, this.defaultUnknownSaveError);
10447
- this.splashService.hideSplash();
10448
- }
10437
+ yield this.save();
10449
10438
  }
10450
10439
  else {
10451
10440
  // Only show the banner with the generic message if the parent component hasn't already set one
@@ -10461,6 +10450,17 @@ class PageBaseComponent {
10461
10450
  }
10462
10451
  });
10463
10452
  }
10453
+ /**
10454
+ * Function available to trigger a save and bypass the form validation checks.
10455
+ * This is useful if the user chooses a remove action from within an edit dialog. If the dialog form is invalid
10456
+ * that is no concern to the user if they wish to remove the item they are editing.
10457
+ * @param event
10458
+ */
10459
+ onSaveWithoutValidate(event) {
10460
+ return __awaiter(this, void 0, void 0, function* () {
10461
+ yield this.save();
10462
+ });
10463
+ }
10464
10464
  /**
10465
10465
  * Function called when the component is destroyed
10466
10466
  */
@@ -10563,6 +10563,25 @@ class PageBaseComponent {
10563
10563
  this.breadcrumbs = result.breadcrumbs;
10564
10564
  this.help = result.help;
10565
10565
  }
10566
+ /**
10567
+ * Controls the page status and triggers the save action. If there is an error banner will be shown.
10568
+ */
10569
+ save() {
10570
+ return __awaiter(this, void 0, void 0, function* () {
10571
+ this.showStatus(PageStatus.Saving);
10572
+ try {
10573
+ yield this.applyModelUpdates();
10574
+ let entityId = (yield this.saveToApi()) || -1;
10575
+ this._errors = '';
10576
+ this.onSaveComplete(entityId);
10577
+ }
10578
+ catch (error) {
10579
+ //clear the "saving" overlay and show the message at the top of the view through the errors property
10580
+ this.showErrorBanner(error, this.defaultUnknownSaveError);
10581
+ this.splashService.hideSplash();
10582
+ }
10583
+ });
10584
+ }
10566
10585
  /**
10567
10586
  * Sets up the router event subscriptions
10568
10587
  */
@@ -10676,6 +10695,16 @@ class PageBaseComponentTestHelper {
10676
10695
  yield this._component.onSave(clickEvent);
10677
10696
  });
10678
10697
  }
10698
+ /**
10699
+ * Simulate saving without validate
10700
+ *
10701
+ * @returns {Promise<void>}
10702
+ */
10703
+ clickSaveWithoutValidate() {
10704
+ return __awaiter(this, void 0, void 0, function* () {
10705
+ yield this._component.onSaveWithoutValidate(clickEvent);
10706
+ });
10707
+ }
10679
10708
  }
10680
10709
 
10681
10710
  /**