@smartbit4all/ng-client 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/view-context/smart-view-context.service.mjs +2 -1
- package/fesm2015/smartbit4all-ng-client.mjs +1 -0
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +1 -0
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/package.json +4 -2
- package/schematics/collection.json +11 -0
- package/schematics/smart-component/schema.json +20 -0
- package/schematics/smart-component/templates/__name@dasherize__.component.css.template +0 -0
- package/schematics/smart-component/templates/__name@dasherize__.component.html.template +3 -0
- package/schematics/smart-component/templates/__name@dasherize__.component.ts.template +26 -0
- package/smartbit4all-ng-client-1.0.5.tgz +0 -0
- package/smartbit4all-ng-client-1.0.3.tgz +0 -0
|
@@ -308,6 +308,7 @@ export class SmartViewContextService {
|
|
|
308
308
|
async performAction(uuid, uiActionRequest) {
|
|
309
309
|
let viewContextChange = await this.view.performAction(uuid, uiActionRequest).toPromise();
|
|
310
310
|
this.viewContext = viewContextChange?.viewContext;
|
|
311
|
+
this.syncView();
|
|
311
312
|
if (viewContextChange?.changes) {
|
|
312
313
|
this.handleChanges(viewContextChange.changes);
|
|
313
314
|
}
|
|
@@ -332,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
332
333
|
providedIn: "root",
|
|
333
334
|
}]
|
|
334
335
|
}], ctorParameters: function () { return [{ type: i1.ViewService }, { type: i2.SmartSessionService }, { type: i3.SmartNavigationService }, { type: i4.SmartdialogService }]; } });
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFZSCxTQUFTLEVBQ1QsUUFBUSxHQUNYLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQWNuRixNQUFNLE9BQU8sdUJBQXVCO0lBeUNoQyxZQUNZLElBQWlCLEVBQ2pCLE9BQTRCLEVBQzVCLFVBQWtDLEVBQ2xDLE1BQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUE1QzlCLGNBQVMsR0FBVyxpQkFBaUIsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBVyxpQkFBaUIsQ0FBQztRQUloRCxpQkFBWSxHQUFpQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pELG9CQUFlLEdBQWtCLElBQUksS0FBSyxFQUFFLENBQUM7UUFFOUMsNkJBQXdCLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUQsNkJBQXdCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJeEQsa0JBQWEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFbkMsZUFBVSxHQUF5QixFQUFFLENBQUM7UUFNdkMsb0JBQWUsR0FBbUMsSUFBSSxHQUFHLEVBQUUs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QUFFLFdBQVcsQ0FBQztRQUNsRCxJQUFJLGlCQUFpQixFQUFFLE9BQU8sRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUFvQztRQUN0RCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQTBDLEVBQUUsRUFBRTtZQUMzRCxJQUFJLFlBQVksR0FBa0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQ3RFLG9CQUFvQixDQUFDLElBQUksQ0FDNUIsQ0FBQztZQUNGLElBQUksWUFBWSxFQUFFO2dCQUNkLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQVk7UUFDMUIsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0QsQ0FBQzs7cUhBN1lRLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU21hcnRkaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIkBzbWFydGJpdDRhbGwvZGlhbG9nXCI7XG5pbXBvcnQgeyBTbWFydE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBzbWFydGJpdDRhbGwvbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudE1vZGVsLFxuICAgIENvbXBvbmVudE1vZGVsQ2hhbmdlLFxuICAgIE1lc3NhZ2VEYXRhLFxuICAgIE1lc3NhZ2VSZXN1bHQsXG4gICAgVWlBY3Rpb25EZXNjcmlwdG9yLFxuICAgIFVpQWN0aW9uUmVxdWVzdCxcbiAgICBWaWV3Q29uc3RyYWludCxcbiAgICBWaWV3Q29udGV4dERhdGEsXG4gICAgVmlld0NvbnRleHRVcGRhdGUsXG4gICAgVmlld0RhdGEsXG4gICAgVmlld1NlcnZpY2UsXG4gICAgVmlld1N0YXRlLFxuICAgIFZpZXdUeXBlLFxufSBmcm9tIFwiLi9hcGlcIjtcbmltcG9ydCB7IE1lc3NhZ2VEaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi9tZXNzYWdlLWRpYWxvZy9tZXNzYWdlLWRpYWxvZy5jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gICAgU21hcnRUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcixcbiAgICBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzLFxuICAgIFNtYXJ0Vmlld0RpYWxvZ1JlZixcbiAgICBTbWFydFZpZXdIYW5kbGVyTW9kZWwsXG59IGZyb20gXCIuL3NtYXJ0LXZpZXctY29udGV4dC5tb2RlbFwiO1xuaW1wb3J0IHsgU21hcnRTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXNzaW9uL3NtYXJ0LXNlc3Npb24uc2VydmljZVwiO1xuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSBcIi4uL3NtYXJ0LWNsaWVudC9zbWFydC5zdWJqZWN0XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRWaWV3Q29udGV4dFNlcnZpY2Uge1xuICAgIHByaXZhdGUgdGFiSWROYW1lOiBzdHJpbmcgPSBcInZpZXdDb250ZXh0VXVpZFwiO1xuICAgIHByaXZhdGUgdGFiSWRodHRwSGVhZGVyTmFtZTogc3RyaW5nID0gXCJ2aWV3Q29udGV4dFV1aWRcIjtcbiAgICBwdWJsaWMgbWVzc2FnZURpYWxvZ25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIHVybD86IHN0cmluZztcbiAgICBwcml2YXRlIHZpZXdDb250ZXh0PzogVmlld0NvbnRleHREYXRhO1xuICAgIHByaXZhdGUgdmlld0hhbmRsZXJzOiBBcnJheTxTbWFydFZpZXdIYW5kbGVyTW9kZWw+ID0gbmV3IEFycmF5KCk7XG4gICAgcHJpdmF0ZSBvcGVuZWRWaWV3VXVpZHM6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXkoKTtcblxuICAgIHB1YmxpYyB1dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIHZpZXdDb250ZXh0SGFzQmVlblN5bmNlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwdWJsaWMgc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycz86IFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnM7XG5cbiAgICBwdWJsaWMgb3BlblNtYXJ0TGluazogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGlzT3BlbmluZ1NtYXJ0TGluazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWZzOiBTbWFydFZpZXdEaWFsb2dSZWZbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBhY3Rpb25EZXNjcmlwdG9ycz86IE1hcDxzdHJpbmcsIFVpQWN0aW9uRGVzY3JpcHRvcj47XG5cbiAgICBwdWJsaWMgY29tbW9uRmVlZGJhY2tUZXh0Pzogc3RyaW5nO1xuXG4gICAgcHVibGljIHNtYXJ0QXBpQ2xpZW50czogTWFwPHN0cmluZywgU21hcnRTdWJqZWN0PGFueT4+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIHNldCB0cmFuc2xhdGVTZXJ2aWNlKHRyYW5zbGF0ZVNlcnZpY2U6IFNtYXJ0VHJhbnNsYXRlU2VydmljZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlID0gdHJhbnNsYXRlU2VydmljZTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlQ2hhbmdlZC5uZXh0KCk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZUNoYW5nZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRyYW5zbGF0ZVNlcnZpY2UoKTogU21hcnRUcmFuc2xhdGVTZXJ2aWNlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZT86IFNtYXJ0VHJhbnNsYXRlU2VydmljZTtcbiAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlldzogVmlld1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbjogU21hcnRTZXNzaW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uOiBTbWFydE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogU21hcnRkaWFsb2dTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGZvbGxvdyh1dWlkOiBzdHJpbmcsIGRldGVjdENoYW5nZTogU21hcnRTdWJqZWN0PGFueT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbWFydEFwaUNsaWVudHMuc2V0KHV1aWQsIGRldGVjdENoYW5nZSk7XG4gICAgfVxuICAgIHB1YmxpYyB1bmZvbGxvdyh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbWFydEFwaUNsaWVudHMuZGVsZXRlKHV1aWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25EZXNjcmlwdG9ycyhhY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGlvbkRlc2NyaXB0b3JzID0gYWN0aW9uRGVzY3JpcHRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjdGlvbkRlc2NyaXB0b3JzKCk6IE1hcDxzdHJpbmcsIFVpQWN0aW9uRGVzY3JpcHRvcj4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aW9uRGVzY3JpcHRvcnMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJObyBhY3Rpb24gZGVzY3JpcHRvcnMgaGFzIGJlZW4gc2V0IHRvIFZpZXdDb250ZXh0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25EZXNjcmlwdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Vmlld0hhbmRsZXJzKHZpZXdIYW5kbGVyczogQXJyYXk8U21hcnRWaWV3SGFuZGxlck1vZGVsPik6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdIYW5kbGVycyA9IHZpZXdIYW5kbGVycztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Vmlld0FwaUVycm9ycyh2aWV3QXBpRXJyb3JzOiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycyA9IHZpZXdBcGlFcnJvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1lc3NhZ2VEaWFsb2dOYW1lKG1lc3NhZ2VEaWFsb2dOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSA9IG1lc3NhZ2VEaWFsb2dOYW1lO1xuICAgICAgICB0aGlzLnZpZXdIYW5kbGVycy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IG1lc3NhZ2VEaWFsb2dOYW1lLFxuICAgICAgICAgICAgY29tcG9uZW50OiBNZXNzYWdlRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVwVXJsRm9yVmlld1NlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlldy5jb25maWd1cmF0aW9uLmJhc2VQYXRoID0gdGhpcy51cmw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVybCA9IHVybCArIFwiL3ZpZXdcIjtcbiAgICAgICAgdGhpcy5zZXRVcFVybEZvclZpZXdTZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFuZFN5bmNWaWV3Q29udGV4dCh1dWlkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdXVpZCkge1xuICAgICAgICAgICAgdXVpZCA9IHRoaXMuZ2V0VXVpZE9mUGFnZSh0aGlzLnRhYklkTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh1dWlkKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3luY1ZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFZpZXdDb250ZXh0KHV1aWQ6IHN0cmluZyk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhPiB7XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQgPSBhd2FpdCB0aGlzLnZpZXcuZ2V0Vmlld0NvbnRleHQodXVpZCkudG9Qcm9taXNlKCk7XG4gICAgICAgIGlmICghdGhpcy52aWV3Q29udGV4dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVmlld0NvbnRleHQgZG9lcyBub3QgZXhpc3Qgd2l0aCB0aGUgZ2l2ZW4gdXVpZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFZpZXdDb250ZXh0RGF0YUJ5UGFnZU5hbWUocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8Vmlld0RhdGE+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0KSB7XG4gICAgICAgICAgICBsZXQgdmlld0NvbnRleHRVdWlkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnRhYklkTmFtZSk7XG4gICAgICAgICAgICBpZiAoIXZpZXdDb250ZXh0VXVpZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlZpZXcgY29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQhXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh2aWV3Q29udGV4dFV1aWQhKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFnZVV1aWQgPSB0aGlzLmdldFV1aWRPZlBhZ2UocGFnZU5hbWUpO1xuXG4gICAgICAgIGxldCB2aWV3Q29udGV4dEJ5UGFnZU5hbWUgPSB0aGlzLnZpZXdDb250ZXh0Py52aWV3cy5maW5kKCh2aWV3KSA9PiB2aWV3LnV1aWQgPT09IHBhZ2VVdWlkKTtcbiAgICAgICAgaWYgKCF2aWV3Q29udGV4dEJ5UGFnZU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIFZpZXdEYXRhIG9mICR7cGFnZU5hbWV9IGlzIG5vdCBmb3VuZCFgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmlld0NvbnRleHRCeVBhZ2VOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVWaWV3Q29udGV4dChcbiAgICAgICAgdmlld0NvbnRleHRVcGRhdGU6IFZpZXdDb250ZXh0VXBkYXRlXG4gICAgKTogUHJvbWlzZTxWaWV3Q29udGV4dERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhpcy52aWV3Q29udGV4dCA9IGF3YWl0IHRoaXMudmlldy51cGRhdGVWaWV3Q29udGV4dCh2aWV3Q29udGV4dFVwZGF0ZSkudG9Qcm9taXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclNlc3Npb25TdG9yYWdlKCk6IHZvaWQge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGFiSWQodGFiSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMudGFiSWROYW1lLCB0YWJJZCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5hZGRIZWFkZXJQYXJhbSh7IGhlYWRlck5hbWU6IHRoaXMudGFiSWRodHRwSGVhZGVyTmFtZSwgdmFsdWU6IHRhYklkIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdGFydFZpZXdDb250ZXh0KCk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhPiB7XG4gICAgICAgIHRoaXMuY2xlYXJTZXNzaW9uU3RvcmFnZSgpO1xuXG4gICAgICAgIGxldCBuZXdWaWV3Q29udGV4dDogVmlld0NvbnRleHREYXRhIHwgdW5kZWZpbmVkID0gYXdhaXQgdGhpcy52aWV3XG4gICAgICAgICAgICAuY3JlYXRlVmlld0NvbnRleHQoKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBpZiAoIW5ld1ZpZXdDb250ZXh0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBWaWV3Q29udGV4dCB3YXMgY3JlYXRlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZpZXdDb250ZXh0ID0gbmV3Vmlld0NvbnRleHQ7XG5cbiAgICAgICAgdGhpcy5zZXRUYWJJZChuZXdWaWV3Q29udGV4dC51dWlkISk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRpYWxpemUodXVpZD86IHN0cmluZyk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhPiB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdIYW5kbGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIlRoZXJlIGFyZW4ndCBhbnkgdmlld0hhbmRsZXJzIGluIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlISBQcm92aWRlIHNvbWUgdG8gdXNlIGl0cyBmdW5jdGlvbnMuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VEaWFsb2duYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgbWVzc2FnZURpYWxvZ05hbWUgcHJvdmlkZWQgYnkgdGhlIGJhY2tlbmQgaGFzIG5vdCBiZWVuIHNldC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV1aWQpIHtcbiAgICAgICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSB0aGlzLnNlc3Npb24uaGVhZGVyc1VwZGF0ZWQuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRhYklkKHV1aWQhKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydFZpZXdDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNldFRhYklkKHV1aWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydFZpZXdDb250ZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCE7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5WaWV3KHZpZXc6IFZpZXdEYXRhKTogdm9pZCB7XG4gICAgICAgIGxldCB2aWV3SGFuZGxlcjogU21hcnRWaWV3SGFuZGxlck1vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy52aWV3SGFuZGxlcnMuZmluZChcbiAgICAgICAgICAgIChoYW5kbGVyKSA9PiBoYW5kbGVyLm5hbWUgPT09IHZpZXcudmlld05hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXZpZXdIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB3YXMgbm90IGZvdW5kIGJ5IHZpZXcgbmFtZTogJHt2aWV3LnZpZXdOYW1lfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZpZXcudHlwZSA9PT0gVmlld1R5cGUuRGlhbG9nKSB7XG4gICAgICAgICAgICBpZiAoIXZpZXdIYW5kbGVyLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENvbXBvbmVudCBpcyB1bmRlZmluZWQgaW4gU21hcnRWaWV3SGFuZGxlck1vZGVsIHdpdGggbmFtZTogJHt2aWV3LnZpZXdOYW1lfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW5Db21wb25lbnRBc0RpYWxvZyhcbiAgICAgICAgICAgICAgICB2aWV3SGFuZGxlci5jb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmlld0hhbmRsZXIubmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICh2aWV3LnZpZXdOYW1lID09PSB0aGlzLm1lc3NhZ2VEaWFsb2duYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXcubWVzc2FnZT8ub3B0aW9ucyAmJiB2aWV3Lm1lc3NhZ2Uub3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWZzLnB1c2goe1xuICAgICAgICAgICAgICAgIHV1aWQ6IHZpZXcudXVpZCxcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLk5vcm1hbCkge1xuICAgICAgICAgICAgaWYgKHZpZXdIYW5kbGVyLnJvdXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBSb3V0ZSBpcyB1bmRlZmluZWQgaW4gU21hcnRWaWV3SGFuZGxlck1vZGVsIHdpdGggbmFtZTogJHt2aWV3LnZpZXdOYW1lfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLm5hdmlnYXRlVG8odmlld0hhbmRsZXIucm91dGUuc3BsaXQoXCIvXCIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSB0eXBlIG9mIHRoZSB2aWV3IGFuZCBpdHMgdmlld0hhbmRsZXIgaXMgbm90IHRoZSBzYW1lIVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZpZXcuc3RhdGUgPSBWaWV3U3RhdGUuT3BlbmVkO1xuXG4gICAgICAgIHRoaXMub3BlbmVkVmlld1V1aWRzLnB1c2godmlldy51dWlkKTtcblxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHZpZXcudmlld05hbWUsIHZpZXcudXVpZCk7XG4gICAgICAgIHRoaXMudXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkLm5leHQodmlldy52aWV3TmFtZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaWV3Q29udGV4dCh7XG4gICAgICAgICAgICB1cGRhdGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogVmlld1N0YXRlLk9wZW5lZCxcbiAgICAgICAgICAgICAgICAgICAgdXVpZDogdmlldy51dWlkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdXVpZDogdGhpcy52aWV3Q29udGV4dD8udXVpZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlVmlldyh2aWV3OiBWaWV3RGF0YSk6IHZvaWQge1xuICAgICAgICBsZXQgdmlld0hhbmRsZXI6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB8IHVuZGVmaW5lZCA9IHRoaXMudmlld0hhbmRsZXJzLmZpbmQoXG4gICAgICAgICAgICAoaGFuZGxlcikgPT4gaGFuZGxlci5uYW1lID09PSB2aWV3LnZpZXdOYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF2aWV3SGFuZGxlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTbWFydFZpZXdIYW5kbGVyTW9kZWwgd2FzIG5vdCBmb3VuZCBieSB2aWV3IG5hbWU6ICR7dmlldy52aWV3TmFtZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLkRpYWxvZykge1xuICAgICAgICAgICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nUmVmcy5maW5kKFxuICAgICAgICAgICAgICAgIChkaWFsb2dSZWY6IFNtYXJ0Vmlld0RpYWxvZ1JlZikgPT4gZGlhbG9nUmVmLnV1aWQgPT09IHZpZXcudXVpZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWYpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5kaWFsb2dSZWZzLmluZGV4T2YoZGlhbG9nUmVmKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRGlhbG9nUmVmIGlzIG5vdCBmb3VuZCBieSB1dWlkLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLk5vcm1hbCkge1xuICAgICAgICAgICAgLy8gVE9ETzogY2xvc2Ugbm9ybWFsIHBhZ2U/Pz9cbiAgICAgICAgICAgIC8vIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZVRvKHZpZXdIYW5kbGVyLnJvdXRlLnNwbGl0KFwiL1wiKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgdHlwZSBvZiB0aGUgdmlldyBhbmQgaXRzIHZpZXdIYW5kbGVyIGlzIG5vdCB0aGUgc2FtZSFcIik7XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3LnN0YXRlID0gVmlld1N0YXRlLkNsb3NlZDtcblxuICAgICAgICB0aGlzLm9wZW5lZFZpZXdVdWlkcy5zbGljZSh0aGlzLm9wZW5lZFZpZXdVdWlkcy5pbmRleE9mKHZpZXcudXVpZCksIDEpO1xuXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odmlldy52aWV3TmFtZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaWV3Q29udGV4dCh7XG4gICAgICAgICAgICB1cGRhdGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogVmlld1N0YXRlLkNsb3NlZCxcbiAgICAgICAgICAgICAgICAgICAgdXVpZDogdmlldy51dWlkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdXVpZDogdGhpcy52aWV3Q29udGV4dD8udXVpZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlc3RvcmVWaWV3cyh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQhLnZpZXdzLm1hcCgodmlldzogVmlld0RhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlblZpZXcodmlldyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzeW5jVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGV4dD8udmlld3MubWFwKCh2aWV3OiBWaWV3RGF0YSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh2aWV3LnN0YXRlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBWaWV3U3RhdGUuVG9PcGVuOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5WaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFZpZXdTdGF0ZS5Ub0Nsb3NlOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlVmlldyh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpZXdDb250ZXh0SGFzQmVlblN5bmNlZC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFV1aWRPZlBhZ2UocGFnZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCB1dWlkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShwYWdlTmFtZSk7XG4gICAgICAgIGlmICghdXVpZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdXVpZCBvZiAke3BhZ2VOYW1lfSBpcyBub3QgYXZhaWxhYmxlLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1dWlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBtZXNzYWdlKG1lc3NhZ2VEYXRhOiBNZXNzYWdlRGF0YSwgbWVzc2FnZVJlc3VsdDogTWVzc2FnZVJlc3VsdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnZpZXdcbiAgICAgICAgICAgIC5tZXNzYWdlKG1lc3NhZ2VEYXRhLnZpZXdVdWlkID8/IFwiXCIsIG1lc3NhZ2VEYXRhLnV1aWQsIG1lc3NhZ2VSZXN1bHQpXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvckJ5Q29kZShjb2RlOiBzdHJpbmcpOiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3Ige1xuICAgICAgICBpZiAoIXRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQW4gZXJyb3IgaGFzIG9jY3VyZWQuXCIsXG4gICAgICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFwiT2tcIixcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZTogXCJIaWJhXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGxldCBhcGlFcnJvcnNXaXRoQ29kZSA9IHRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycy52aWV3Q29udGV4dEFwaUVycm9ycy5maWx0ZXIoXG4gICAgICAgICAgICAoYXBpRXJyb3I6IFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcGlFcnJvci5jb2RlID09PSBjb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBpZiAoIWFwaUVycm9yc1dpdGhDb2RlIHx8IChhcGlFcnJvcnNXaXRoQ29kZSAmJiAhYXBpRXJyb3JzV2l0aENvZGUubGVuZ3RoKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgU21hcnRWaWV3Q29udGV4dEFwaUVycm9yIHdpdGggY29kZSAke2NvZGV9IGNvdWxkIG5vdCBiZSBmb3VuZC5gKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQW4gZXJyb3IgaGFzIG9jY3VyZWQuXCIsXG4gICAgICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFwiT2tcIixcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZTogXCJIaWJhXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcGlFcnJvcnNXaXRoQ29kZVswXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Vmlld0NvbnN0cmFpbnQodXVpZDogc3RyaW5nKTogUHJvbWlzZTxWaWV3Q29uc3RyYWludD4ge1xuICAgICAgICBsZXQgdmlld0NvbnN0cmFpbnRSZXNwb25zZSA9IGF3YWl0IHRoaXMudmlldy5nZXRWaWV3Q29uc3RyYWludCh1dWlkKS50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKCF2aWV3Q29uc3RyYWludFJlc3BvbnNlKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCBWaWV3Q29uc3RyYWludCB3aXRoIHRoZSBnaXZlbiB1dWlkLlwiKTtcbiAgICAgICAgcmV0dXJuIHZpZXdDb25zdHJhaW50UmVzcG9uc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNob3dQdWJsaXNoZWRWaWV3KGNoYW5uZWw6IHN0cmluZywgdXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0aWFsaXplKCk7XG4gICAgICAgIC8vIFRPRE8gaW5pdCB2aWV3IGNvbnRleHQgYXV0b21hdGljYWxseVxuICAgICAgICAvLyBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgICAgICB0aGlzLmlzT3BlbmluZ1NtYXJ0TGluayA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlblNtYXJ0TGluay5uZXh0KCk7XG4gICAgICAgIGF3YWl0IHRoaXMub3BlblNtYXJ0TGluay50b1Byb21pc2UoKTtcblxuICAgICAgICBhd2FpdCB0aGlzLnZpZXcuc2hvd1B1Ymxpc2hlZFZpZXcoY2hhbm5lbCwgdXVpZCkudG9Qcm9taXNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XG4gICAgICAgIHRoaXMuaXNPcGVuaW5nU21hcnRMaW5rID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGRvd25sb2FkUmVzb3VyY2UodXVpZDogc3RyaW5nLCBpdGVtOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy52aWV3LmRvd25sb2FkSXRlbSh1dWlkLCBpdGVtKS50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcGVyZm9ybUFjdGlvbih1dWlkOiBzdHJpbmcsIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCB2aWV3Q29udGV4dENoYW5nZSA9IGF3YWl0IHRoaXMudmlldy5wZXJmb3JtQWN0aW9uKHV1aWQsIHVpQWN0aW9uUmVxdWVzdCkudG9Qcm9taXNlKCk7XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQgPSB2aWV3Q29udGV4dENoYW5nZT8udmlld0NvbnRleHQ7XG4gICAgICAgIGlmICh2aWV3Q29udGV4dENoYW5nZT8uY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VzKHZpZXdDb250ZXh0Q2hhbmdlLmNoYW5nZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVDaGFuZ2VzKGNoYW5nZXM6IEFycmF5PENvbXBvbmVudE1vZGVsQ2hhbmdlPik6IHZvaWQge1xuICAgICAgICBjaGFuZ2VzLmZvckVhY2goKGNvbXBvbmVudE1vZGVsQ2hhbmdlOiBDb21wb25lbnRNb2RlbENoYW5nZSkgPT4ge1xuICAgICAgICAgICAgbGV0IGRldGVjdENoYW5nZTogU21hcnRTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQgPSB0aGlzLnNtYXJ0QXBpQ2xpZW50cy5nZXQoXG4gICAgICAgICAgICAgICAgY29tcG9uZW50TW9kZWxDaGFuZ2UudXVpZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChkZXRlY3RDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBkZXRlY3RDaGFuZ2UubmV4dChjb21wb25lbnRNb2RlbENoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8Q29tcG9uZW50TW9kZWwgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmlldy5nZXRDb21wb25lbnRNb2RlbCh1dWlkKS50b1Byb21pc2UoKTtcbiAgICB9XG59XG4iXX0=
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFZSCxTQUFTLEVBQ1QsUUFBUSxHQUNYLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQWNuRixNQUFNLE9BQU8sdUJBQXVCO0lBeUNoQyxZQUNZLElBQWlCLEVBQ2pCLE9BQTRCLEVBQzVCLFVBQWtDLEVBQ2xDLE1BQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUE1QzlCLGNBQVMsR0FBVyxpQkFBaUIsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBVyxpQkFBaUIsQ0FBQztRQUloRCxpQkFBWSxHQUFpQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pELG9CQUFlLEdBQWtCLElBQUksS0FBSyxFQUFFLENBQUM7UUFFOUMsNkJBQXdCLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUQsNkJBQXdCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJeEQsa0JBQWEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFbkMsZUFBVSxHQUF5QixFQUFFLENBQUM7UUFNdkMsb0JBQWUsR0FBbUMsSUFBSSxHQUFHLEVBQUUs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QUFFLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxpQkFBaUIsRUFBRSxPQUFPLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBb0M7UUFDdEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUEwQyxFQUFFLEVBQUU7WUFDM0QsSUFBSSxZQUFZLEdBQWtDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUN0RSxvQkFBb0IsQ0FBQyxJQUFJLENBQzVCLENBQUM7WUFDRixJQUFJLFlBQVksRUFBRTtnQkFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFZO1FBQzFCLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9ELENBQUM7O3FIQWhaUSx1QkFBdUI7eUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzRGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNtYXJ0ZGlhbG9nU2VydmljZSB9IGZyb20gXCJAc21hcnRiaXQ0YWxsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgU21hcnROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCJAc21hcnRiaXQ0YWxsL25hdmlnYXRpb25cIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnRNb2RlbCxcbiAgICBDb21wb25lbnRNb2RlbENoYW5nZSxcbiAgICBNZXNzYWdlRGF0YSxcbiAgICBNZXNzYWdlUmVzdWx0LFxuICAgIFVpQWN0aW9uRGVzY3JpcHRvcixcbiAgICBVaUFjdGlvblJlcXVlc3QsXG4gICAgVmlld0NvbnN0cmFpbnQsXG4gICAgVmlld0NvbnRleHREYXRhLFxuICAgIFZpZXdDb250ZXh0VXBkYXRlLFxuICAgIFZpZXdEYXRhLFxuICAgIFZpZXdTZXJ2aWNlLFxuICAgIFZpZXdTdGF0ZSxcbiAgICBWaWV3VHlwZSxcbn0gZnJvbSBcIi4vYXBpXCI7XG5pbXBvcnQgeyBNZXNzYWdlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSBcIi4vbWVzc2FnZS1kaWFsb2cvbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50XCI7XG5pbXBvcnQge1xuICAgIFNtYXJ0VHJhbnNsYXRlU2VydmljZSxcbiAgICBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3IsXG4gICAgU21hcnRWaWV3Q29udGV4dEFwaUVycm9ycyxcbiAgICBTbWFydFZpZXdEaWFsb2dSZWYsXG4gICAgU21hcnRWaWV3SGFuZGxlck1vZGVsLFxufSBmcm9tIFwiLi9zbWFydC12aWV3LWNvbnRleHQubW9kZWxcIjtcbmltcG9ydCB7IFNtYXJ0U2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gXCIuLi9zbWFydC1jbGllbnQvc21hcnQuc3ViamVjdFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRhYklkTmFtZTogc3RyaW5nID0gXCJ2aWV3Q29udGV4dFV1aWRcIjtcbiAgICBwcml2YXRlIHRhYklkaHR0cEhlYWRlck5hbWU6IHN0cmluZyA9IFwidmlld0NvbnRleHRVdWlkXCI7XG4gICAgcHVibGljIG1lc3NhZ2VEaWFsb2duYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSB1cmw/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB2aWV3Q29udGV4dD86IFZpZXdDb250ZXh0RGF0YTtcbiAgICBwcml2YXRlIHZpZXdIYW5kbGVyczogQXJyYXk8U21hcnRWaWV3SGFuZGxlck1vZGVsPiA9IG5ldyBBcnJheSgpO1xuICAgIHByaXZhdGUgb3BlbmVkVmlld1V1aWRzOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KCk7XG5cbiAgICBwdWJsaWMgdXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyB2aWV3Q29udGV4dEhhc0JlZW5TeW5jZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIHNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnM/OiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzO1xuXG4gICAgcHVibGljIG9wZW5TbWFydExpbms6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBpc09wZW5pbmdTbWFydExpbms6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGlhbG9nUmVmczogU21hcnRWaWV3RGlhbG9nUmVmW10gPSBbXTtcblxuICAgIHByaXZhdGUgYWN0aW9uRGVzY3JpcHRvcnM/OiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+O1xuXG4gICAgcHVibGljIGNvbW1vbkZlZWRiYWNrVGV4dD86IHN0cmluZztcblxuICAgIHB1YmxpYyBzbWFydEFwaUNsaWVudHM6IE1hcDxzdHJpbmcsIFNtYXJ0U3ViamVjdDxhbnk+PiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBzZXQgdHJhbnNsYXRlU2VydmljZSh0cmFuc2xhdGVTZXJ2aWNlOiBTbWFydFRyYW5zbGF0ZVNlcnZpY2UgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZSA9IHRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZUNoYW5nZWQubmV4dCgpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0cmFuc2xhdGVTZXJ2aWNlKCk6IFNtYXJ0VHJhbnNsYXRlU2VydmljZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLl90cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U/OiBTbWFydFRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXc6IFZpZXdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvbjogU21hcnROYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IFNtYXJ0ZGlhbG9nU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBmb2xsb3codXVpZDogc3RyaW5nLCBkZXRlY3RDaGFuZ2U6IFNtYXJ0U3ViamVjdDxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc21hcnRBcGlDbGllbnRzLnNldCh1dWlkLCBkZXRlY3RDaGFuZ2UpO1xuICAgIH1cbiAgICBwdWJsaWMgdW5mb2xsb3codXVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc21hcnRBcGlDbGllbnRzLmRlbGV0ZSh1dWlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QWN0aW9uRGVzY3JpcHRvcnMoYWN0aW9uRGVzY3JpcHRvcnM6IE1hcDxzdHJpbmcsIFVpQWN0aW9uRGVzY3JpcHRvcj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpb25EZXNjcmlwdG9ycyA9IGFjdGlvbkRlc2NyaXB0b3JzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25EZXNjcmlwdG9ycygpOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGlvbkRlc2NyaXB0b3JzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiTm8gYWN0aW9uIGRlc2NyaXB0b3JzIGhhcyBiZWVuIHNldCB0byBWaWV3Q29udGV4dC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uRGVzY3JpcHRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZpZXdIYW5kbGVycyh2aWV3SGFuZGxlcnM6IEFycmF5PFNtYXJ0Vmlld0hhbmRsZXJNb2RlbD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3SGFuZGxlcnMgPSB2aWV3SGFuZGxlcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZpZXdBcGlFcnJvcnModmlld0FwaUVycm9yczogU21hcnRWaWV3Q29udGV4dEFwaUVycm9ycyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnMgPSB2aWV3QXBpRXJyb3JzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRNZXNzYWdlRGlhbG9nTmFtZShtZXNzYWdlRGlhbG9nTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVzc2FnZURpYWxvZ25hbWUgPSBtZXNzYWdlRGlhbG9nTmFtZTtcbiAgICAgICAgdGhpcy52aWV3SGFuZGxlcnMucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBtZXNzYWdlRGlhbG9nTmFtZSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogTWVzc2FnZURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcFVybEZvclZpZXdTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXcuY29uZmlndXJhdGlvbi5iYXNlUGF0aCA9IHRoaXMudXJsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRVcmwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cmwgPSB1cmwgKyBcIi92aWV3XCI7XG4gICAgICAgIHRoaXMuc2V0VXBVcmxGb3JWaWV3U2VydmljZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbmRTeW5jVmlld0NvbnRleHQodXVpZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXV1aWQpIHtcbiAgICAgICAgICAgIHV1aWQgPSB0aGlzLmdldFV1aWRPZlBhZ2UodGhpcy50YWJJZE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0Vmlld0NvbnRleHQodXVpZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN5bmNWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRWaWV3Q29udGV4dCh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPFZpZXdDb250ZXh0RGF0YT4ge1xuICAgICAgICB0aGlzLnZpZXdDb250ZXh0ID0gYXdhaXQgdGhpcy52aWV3LmdldFZpZXdDb250ZXh0KHV1aWQpLnRvUHJvbWlzZSgpO1xuICAgICAgICBpZiAoIXRoaXMudmlld0NvbnRleHQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlZpZXdDb250ZXh0IGRvZXMgbm90IGV4aXN0IHdpdGggdGhlIGdpdmVuIHV1aWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRWaWV3Q29udGV4dERhdGFCeVBhZ2VOYW1lKHBhZ2VOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFZpZXdEYXRhPiB7XG4gICAgICAgIGlmICghdGhpcy52aWV3Q29udGV4dCkge1xuICAgICAgICAgICAgbGV0IHZpZXdDb250ZXh0VXVpZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy50YWJJZE5hbWUpO1xuICAgICAgICAgICAgaWYgKCF2aWV3Q29udGV4dFV1aWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJWaWV3IGNvbnRleHQgaXMgbm90IGluaXRpYWxpemVkIVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0Vmlld0NvbnRleHQodmlld0NvbnRleHRVdWlkISk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhZ2VVdWlkID0gdGhpcy5nZXRVdWlkT2ZQYWdlKHBhZ2VOYW1lKTtcblxuICAgICAgICBsZXQgdmlld0NvbnRleHRCeVBhZ2VOYW1lID0gdGhpcy52aWV3Q29udGV4dD8udmlld3MuZmluZCgodmlldykgPT4gdmlldy51dWlkID09PSBwYWdlVXVpZCk7XG4gICAgICAgIGlmICghdmlld0NvbnRleHRCeVBhZ2VOYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBWaWV3RGF0YSBvZiAke3BhZ2VOYW1lfSBpcyBub3QgZm91bmQhYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZpZXdDb250ZXh0QnlQYWdlTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlVmlld0NvbnRleHQoXG4gICAgICAgIHZpZXdDb250ZXh0VXBkYXRlOiBWaWV3Q29udGV4dFVwZGF0ZVxuICAgICk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQgPSBhd2FpdCB0aGlzLnZpZXcudXBkYXRlVmlld0NvbnRleHQodmlld0NvbnRleHRVcGRhdGUpLnRvUHJvbWlzZSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJTZXNzaW9uU3RvcmFnZSgpOiB2b2lkIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRhYklkKHRhYklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnRhYklkTmFtZSwgdGFiSWQpO1xuICAgICAgICB0aGlzLnNlc3Npb24uYWRkSGVhZGVyUGFyYW0oeyBoZWFkZXJOYW1lOiB0aGlzLnRhYklkaHR0cEhlYWRlck5hbWUsIHZhbHVlOiB0YWJJZCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRWaWV3Q29udGV4dCgpOiBQcm9taXNlPFZpZXdDb250ZXh0RGF0YT4ge1xuICAgICAgICB0aGlzLmNsZWFyU2Vzc2lvblN0b3JhZ2UoKTtcblxuICAgICAgICBsZXQgbmV3Vmlld0NvbnRleHQ6IFZpZXdDb250ZXh0RGF0YSB8IHVuZGVmaW5lZCA9IGF3YWl0IHRoaXMudmlld1xuICAgICAgICAgICAgLmNyZWF0ZVZpZXdDb250ZXh0KClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKCFuZXdWaWV3Q29udGV4dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gVmlld0NvbnRleHQgd2FzIGNyZWF0ZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52aWV3Q29udGV4dCA9IG5ld1ZpZXdDb250ZXh0O1xuXG4gICAgICAgIHRoaXMuc2V0VGFiSWQobmV3Vmlld0NvbnRleHQudXVpZCEpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbml0aWFsaXplKHV1aWQ/OiBzdHJpbmcpOiBQcm9taXNlPFZpZXdDb250ZXh0RGF0YT4ge1xuICAgICAgICBpZiAodGhpcy52aWV3SGFuZGxlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJUaGVyZSBhcmVuJ3QgYW55IHZpZXdIYW5kbGVycyBpbiBTbWFydFZpZXdDb250ZXh0U2VydmljZSEgUHJvdmlkZSBzb21lIHRvIHVzZSBpdHMgZnVuY3Rpb25zLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIG1lc3NhZ2VEaWFsb2dOYW1lIHByb3ZpZGVkIGJ5IHRoZSBiYWNrZW5kIGhhcyBub3QgYmVlbiBzZXQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dWlkKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0gdGhpcy5zZXNzaW9uLmhlYWRlcnNVcGRhdGVkLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh1dWlkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUYWJJZCh1dWlkISk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRWaWV3Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRUYWJJZCh1dWlkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRWaWV3Q29udGV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQhO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVmlldyh2aWV3OiBWaWV3RGF0YSk6IHZvaWQge1xuICAgICAgICBsZXQgdmlld0hhbmRsZXI6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB8IHVuZGVmaW5lZCA9IHRoaXMudmlld0hhbmRsZXJzLmZpbmQoXG4gICAgICAgICAgICAoaGFuZGxlcikgPT4gaGFuZGxlci5uYW1lID09PSB2aWV3LnZpZXdOYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF2aWV3SGFuZGxlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTbWFydFZpZXdIYW5kbGVyTW9kZWwgd2FzIG5vdCBmb3VuZCBieSB2aWV3IG5hbWU6ICR7dmlldy52aWV3TmFtZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLkRpYWxvZykge1xuICAgICAgICAgICAgaWYgKCF2aWV3SGFuZGxlci5jb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBDb21wb25lbnQgaXMgdW5kZWZpbmVkIGluIFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB3aXRoIG5hbWU6ICR7dmlldy52aWV3TmFtZX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuQ29tcG9uZW50QXNEaWFsb2coXG4gICAgICAgICAgICAgICAgdmlld0hhbmRsZXIuY29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZpZXdIYW5kbGVyLm5hbWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAodmlldy52aWV3TmFtZSA9PT0gdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSkge1xuICAgICAgICAgICAgICAgIGlmICh2aWV3Lm1lc3NhZ2U/Lm9wdGlvbnMgJiYgdmlldy5tZXNzYWdlLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB1dWlkOiB2aWV3LnV1aWQsXG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5Ob3JtYWwpIHtcbiAgICAgICAgICAgIGlmICh2aWV3SGFuZGxlci5yb3V0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgUm91dGUgaXMgdW5kZWZpbmVkIGluIFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB3aXRoIG5hbWU6ICR7dmlldy52aWV3TmFtZX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZVRvKHZpZXdIYW5kbGVyLnJvdXRlLnNwbGl0KFwiL1wiKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgdHlwZSBvZiB0aGUgdmlldyBhbmQgaXRzIHZpZXdIYW5kbGVyIGlzIG5vdCB0aGUgc2FtZSFcIik7XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3LnN0YXRlID0gVmlld1N0YXRlLk9wZW5lZDtcblxuICAgICAgICB0aGlzLm9wZW5lZFZpZXdVdWlkcy5wdXNoKHZpZXcudXVpZCk7XG5cbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2aWV3LnZpZXdOYW1lLCB2aWV3LnV1aWQpO1xuICAgICAgICB0aGlzLnV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZC5uZXh0KHZpZXcudmlld05hbWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmlld0NvbnRleHQoe1xuICAgICAgICAgICAgdXBkYXRlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IFZpZXdTdGF0ZS5PcGVuZWQsXG4gICAgICAgICAgICAgICAgICAgIHV1aWQ6IHZpZXcudXVpZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHV1aWQ6IHRoaXMudmlld0NvbnRleHQ/LnV1aWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZVZpZXcodmlldzogVmlld0RhdGEpOiB2b2lkIHtcbiAgICAgICAgbGV0IHZpZXdIYW5kbGVyOiBTbWFydFZpZXdIYW5kbGVyTW9kZWwgfCB1bmRlZmluZWQgPSB0aGlzLnZpZXdIYW5kbGVycy5maW5kKFxuICAgICAgICAgICAgKGhhbmRsZXIpID0+IGhhbmRsZXIubmFtZSA9PT0gdmlldy52aWV3TmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghdmlld0hhbmRsZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU21hcnRWaWV3SGFuZGxlck1vZGVsIHdhcyBub3QgZm91bmQgYnkgdmlldyBuYW1lOiAke3ZpZXcudmlld05hbWV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5EaWFsb2cpIHtcbiAgICAgICAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1JlZnMuZmluZChcbiAgICAgICAgICAgICAgICAoZGlhbG9nUmVmOiBTbWFydFZpZXdEaWFsb2dSZWYpID0+IGRpYWxvZ1JlZi51dWlkID09PSB2aWV3LnV1aWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZGlhbG9nUmVmKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuZGlhbG9nUmVmcy5pbmRleE9mKGRpYWxvZ1JlZik7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWZzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkRpYWxvZ1JlZiBpcyBub3QgZm91bmQgYnkgdXVpZC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5Ob3JtYWwpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IGNsb3NlIG5vcm1hbCBwYWdlPz8/XG4gICAgICAgICAgICAvLyB0aGlzLm5hdmlnYXRpb24ubmF2aWdhdGVUbyh2aWV3SGFuZGxlci5yb3V0ZS5zcGxpdChcIi9cIikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHR5cGUgb2YgdGhlIHZpZXcgYW5kIGl0cyB2aWV3SGFuZGxlciBpcyBub3QgdGhlIHNhbWUhXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmlldy5zdGF0ZSA9IFZpZXdTdGF0ZS5DbG9zZWQ7XG5cbiAgICAgICAgdGhpcy5vcGVuZWRWaWV3VXVpZHMuc2xpY2UodGhpcy5vcGVuZWRWaWV3VXVpZHMuaW5kZXhPZih2aWV3LnV1aWQpLCAxKTtcblxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHZpZXcudmlld05hbWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmlld0NvbnRleHQoe1xuICAgICAgICAgICAgdXBkYXRlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IFZpZXdTdGF0ZS5DbG9zZWQsXG4gICAgICAgICAgICAgICAgICAgIHV1aWQ6IHZpZXcudXVpZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHV1aWQ6IHRoaXMudmlld0NvbnRleHQ/LnV1aWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZXN0b3JlVmlld3ModXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy52aWV3Q29udGV4dCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh1dWlkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZpZXdDb250ZXh0IS52aWV3cy5tYXAoKHZpZXc6IFZpZXdEYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wZW5WaWV3KHZpZXcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3luY1ZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQ/LnZpZXdzLm1hcCgodmlldzogVmlld0RhdGEpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAodmlldy5zdGF0ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVmlld1N0YXRlLlRvT3BlbjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVmlldyh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBWaWV3U3RhdGUuVG9DbG9zZTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVZpZXcodmlldyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy52aWV3Q29udGV4dEhhc0JlZW5TeW5jZWQubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRVdWlkT2ZQYWdlKHBhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgdXVpZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0ocGFnZU5hbWUpO1xuICAgICAgICBpZiAoIXV1aWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHV1aWQgb2YgJHtwYWdlTmFtZX0gaXMgbm90IGF2YWlsYWJsZS5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXVpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbWVzc2FnZShtZXNzYWdlRGF0YTogTWVzc2FnZURhdGEsIG1lc3NhZ2VSZXN1bHQ6IE1lc3NhZ2VSZXN1bHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy52aWV3XG4gICAgICAgICAgICAubWVzc2FnZShtZXNzYWdlRGF0YS52aWV3VXVpZCA/PyBcIlwiLCBtZXNzYWdlRGF0YS51dWlkLCBtZXNzYWdlUmVzdWx0KVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmdldEFuZFN5bmNWaWV3Q29udGV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JCeUNvZGUoY29kZTogc3RyaW5nKTogU21hcnRWaWV3Q29udGV4dEFwaUVycm9yIHtcbiAgICAgICAgaWYgKCF0aGlzLnNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnMpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFuIGVycm9yIGhhcyBvY2N1cmVkLlwiLFxuICAgICAgICAgICAgICAgIGJ1dHRvbkxhYmVsOiBcIk9rXCIsXG4gICAgICAgICAgICAgICAgZGlhbG9nVGl0bGU6IFwiSGliYVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYXBpRXJyb3JzV2l0aENvZGUgPSB0aGlzLnNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnMudmlld0NvbnRleHRBcGlFcnJvcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGFwaUVycm9yOiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBpRXJyb3IuY29kZSA9PT0gY29kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFhcGlFcnJvcnNXaXRoQ29kZSB8fCAoYXBpRXJyb3JzV2l0aENvZGUgJiYgIWFwaUVycm9yc1dpdGhDb2RlLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvciB3aXRoIGNvZGUgJHtjb2RlfSBjb3VsZCBub3QgYmUgZm91bmQuYCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFuIGVycm9yIGhhcyBvY2N1cmVkLlwiLFxuICAgICAgICAgICAgICAgIGJ1dHRvbkxhYmVsOiBcIk9rXCIsXG4gICAgICAgICAgICAgICAgZGlhbG9nVGl0bGU6IFwiSGliYVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBpRXJyb3JzV2l0aENvZGVbMF07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFZpZXdDb25zdHJhaW50KHV1aWQ6IHN0cmluZyk6IFByb21pc2U8Vmlld0NvbnN0cmFpbnQ+IHtcbiAgICAgICAgbGV0IHZpZXdDb25zdHJhaW50UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnZpZXcuZ2V0Vmlld0NvbnN0cmFpbnQodXVpZCkudG9Qcm9taXNlKCk7XG4gICAgICAgIGlmICghdmlld0NvbnN0cmFpbnRSZXNwb25zZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgVmlld0NvbnN0cmFpbnQgd2l0aCB0aGUgZ2l2ZW4gdXVpZC5cIik7XG4gICAgICAgIHJldHVybiB2aWV3Q29uc3RyYWludFJlc3BvbnNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzaG93UHVibGlzaGVkVmlldyhjaGFubmVsOiBzdHJpbmcsIHV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnNlc3Npb24uaW5pdGlhbGl6ZSgpO1xuICAgICAgICAvLyBUT0RPIGluaXQgdmlldyBjb250ZXh0IGF1dG9tYXRpY2FsbHlcbiAgICAgICAgLy8gYXdhaXQgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICAgICAgdGhpcy5pc09wZW5pbmdTbWFydExpbmsgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5TbWFydExpbmsubmV4dCgpO1xuICAgICAgICBhd2FpdCB0aGlzLm9wZW5TbWFydExpbmsudG9Qcm9taXNlKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy52aWV3LnNob3dQdWJsaXNoZWRWaWV3KGNoYW5uZWwsIHV1aWQpLnRvUHJvbWlzZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmdldEFuZFN5bmNWaWV3Q29udGV4dCgpO1xuICAgICAgICB0aGlzLmlzT3BlbmluZ1NtYXJ0TGluayA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBkb3dubG9hZFJlc291cmNlKHV1aWQ6IHN0cmluZywgaXRlbTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmlldy5kb3dubG9hZEl0ZW0odXVpZCwgaXRlbSkudG9Qcm9taXNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHBlcmZvcm1BY3Rpb24odXVpZDogc3RyaW5nLCB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgdmlld0NvbnRleHRDaGFuZ2UgPSBhd2FpdCB0aGlzLnZpZXcucGVyZm9ybUFjdGlvbih1dWlkLCB1aUFjdGlvblJlcXVlc3QpLnRvUHJvbWlzZSgpO1xuXG4gICAgICAgIHRoaXMudmlld0NvbnRleHQgPSB2aWV3Q29udGV4dENoYW5nZT8udmlld0NvbnRleHQ7XG4gICAgICAgIHRoaXMuc3luY1ZpZXcoKTtcblxuICAgICAgICBpZiAodmlld0NvbnRleHRDaGFuZ2U/LmNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlcyh2aWV3Q29udGV4dENoYW5nZS5jaGFuZ2VzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2hhbmdlcyhjaGFuZ2VzOiBBcnJheTxDb21wb25lbnRNb2RlbENoYW5nZT4pOiB2b2lkIHtcbiAgICAgICAgY2hhbmdlcy5mb3JFYWNoKChjb21wb25lbnRNb2RlbENoYW5nZTogQ29tcG9uZW50TW9kZWxDaGFuZ2UpID0+IHtcbiAgICAgICAgICAgIGxldCBkZXRlY3RDaGFuZ2U6IFNtYXJ0U3ViamVjdDxhbnk+IHwgdW5kZWZpbmVkID0gdGhpcy5zbWFydEFwaUNsaWVudHMuZ2V0KFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudE1vZGVsQ2hhbmdlLnV1aWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZGV0ZWN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgZGV0ZWN0Q2hhbmdlLm5leHQoY29tcG9uZW50TW9kZWxDaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZCh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPENvbXBvbmVudE1vZGVsIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZpZXcuZ2V0Q29tcG9uZW50TW9kZWwodXVpZCkudG9Qcm9taXNlKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -2114,6 +2114,7 @@ class SmartViewContextService {
|
|
|
2114
2114
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2115
2115
|
let viewContextChange = yield this.view.performAction(uuid, uiActionRequest).toPromise();
|
|
2116
2116
|
this.viewContext = viewContextChange === null || viewContextChange === void 0 ? void 0 : viewContextChange.viewContext;
|
|
2117
|
+
this.syncView();
|
|
2117
2118
|
if (viewContextChange === null || viewContextChange === void 0 ? void 0 : viewContextChange.changes) {
|
|
2118
2119
|
this.handleChanges(viewContextChange.changes);
|
|
2119
2120
|
}
|