@scion/workbench 17.0.0-beta.9 → 18.0.0-beta.1
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/esm2022/lib/activation-instant.provider.mjs +3 -3
- package/esm2022/lib/common/asserts.util.mjs +1 -1
- package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
- package/esm2022/lib/common/dom.util.mjs +1 -1
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +4 -4
- package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
- package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
- package/esm2022/lib/common/null-if-empty.pipe.mjs +4 -4
- package/esm2022/lib/common/observables.mjs +1 -1
- package/esm2022/lib/common/stringify-error.util.mjs +1 -1
- package/esm2022/lib/common/typeof.pipe.mjs +3 -3
- package/esm2022/lib/common//311/265destroy-ref.mjs +1 -1
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +4 -4
- package/esm2022/lib/content-projection/view-container.reference.mjs +1 -1
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +3 -3
- package/esm2022/lib/dialog/movable.directive.mjs +4 -4
- package/esm2022/lib/dialog/resizable.directive.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +2 -2
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +4 -4
- package/esm2022/lib/executor/single-task-executor.mjs +1 -1
- package/esm2022/lib/filter-field/filter-field.component.mjs +4 -4
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +4 -4
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +4 -4
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +3 -3
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +4 -4
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +4 -4
- package/esm2022/lib/layout/workbench-layout.component.mjs +3 -3
- package/esm2022/lib/layout/workbench-layout.factory.mjs +3 -3
- package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
- package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -1
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +4 -6
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +3 -3
- package/esm2022/lib/layout//311/265workbench-layout.mjs +7 -7
- package/esm2022/lib/logging/console-appender.service.mjs +4 -4
- package/esm2022/lib/logging/logger.mjs +3 -3
- package/esm2022/lib/logging/logging.model.mjs +3 -3
- package/esm2022/lib/logging//311/265logger.mjs +4 -4
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +4 -4
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +4 -4
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +3 -3
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +1 -1
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +6 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +1 -1
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +4 -4
- package/esm2022/lib/migration/workbench-migrator.mjs +1 -1
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +3 -3
- package/esm2022/lib/notification/notification.component.mjs +4 -4
- package/esm2022/lib/notification/notification.service.mjs +4 -4
- package/esm2022/lib/notification/text-notification.component.mjs +3 -3
- package/esm2022/lib/notification//311/265notification.mjs +1 -1
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +3 -3
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +4 -4
- package/esm2022/lib/part/part-portal.pipe.mjs +4 -4
- package/esm2022/lib/part/part.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +4 -4
- package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +4 -4
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +3 -3
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +4 -4
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -3
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +3 -3
- package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
- package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
- package/esm2022/lib/part//311/265workbench-part.model.mjs +1 -1
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +4 -4
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +4 -4
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/popup/popup.component.mjs +3 -3
- package/esm2022/lib/popup/popup.service.mjs +4 -4
- package/esm2022/lib/portal/wb-component-portal.mjs +1 -1
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +4 -4
- package/esm2022/lib/registry/workbench-object-registry.mjs +1 -1
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +3 -3
- package/esm2022/lib/routing/router.util.mjs +1 -1
- package/esm2022/lib/routing/url-segment-matcher.mjs +1 -1
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +4 -4
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-layout-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +5 -5
- package/esm2022/lib/routing/workbench-router.service.mjs +3 -3
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +5 -5
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +4 -4
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-initializer.mjs +1 -1
- package/esm2022/lib/startup/workbench-launcher.service.mjs +7 -7
- package/esm2022/lib/storage/workbench-storage.mjs +3 -3
- package/esm2022/lib/testing/workbench-testing.module.mjs +4 -4
- package/esm2022/lib/testing/workbench.provider.mjs +3 -3
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +4 -4
- package/esm2022/lib/view/view-move-handler.service.mjs +4 -4
- package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
- package/esm2022/lib/view/view.component.mjs +4 -4
- package/esm2022/lib/view/workbench-view-route-guards.mjs +1 -1
- package/esm2022/lib/view/workbench-view.registry.mjs +3 -3
- package/esm2022/lib/view//311/265workbench-view.model.mjs +1 -1
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +1 -1
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +4 -4
- package/esm2022/lib/view-dnd/view-drag.service.mjs +4 -4
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +5 -5
- package/esm2022/lib/workbench.component.mjs +4 -4
- package/esm2022/lib/workbench.module.mjs +4 -4
- package/esm2022/lib/workbench.provider.mjs +1 -1
- package/esm2022/lib/workbench.service.mjs +3 -3
- package/esm2022/lib//311/265workbench.service.mjs +3 -3
- package/fesm2022/scion-workbench.mjs +422 -480
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/objects.util.d.ts +2 -2
- package/package.json +9 -9
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +0 -11
- package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +0 -59
- package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +0 -16
- package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +0 -13
|
@@ -59,10 +59,10 @@ export class WorkbenchPartActionDirective {
|
|
|
59
59
|
ngOnDestroy() {
|
|
60
60
|
this._action?.dispose();
|
|
61
61
|
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
63
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartActionDirective, deps: [{ token: i0.TemplateRef }, { token: i1.WorkbenchService }, { token: i2.WorkbenchView, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
63
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: WorkbenchPartActionDirective, isStandalone: true, selector: "ng-template[wbPartAction]", inputs: { align: "align", canMatch: "canMatch", cssClass: "cssClass" }, ngImport: i0 }); }
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartActionDirective, decorators: [{
|
|
66
66
|
type: Directive,
|
|
67
67
|
args: [{ selector: 'ng-template[wbPartAction]', standalone: true }]
|
|
68
68
|
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i1.WorkbenchService }, { type: i2.WorkbenchView, decorators: [{
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
74
74
|
}], cssClass: [{
|
|
75
75
|
type: Input
|
|
76
76
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWFjdGlvbi1iYXIvcGFydC1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUl6RixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFJbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUFvQixTQUE0QixFQUM1QixpQkFBbUMsRUFDdkIsS0FBb0I7UUFGaEMsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBMUJwRDs7V0FFRztRQUVJLFVBQUssR0FBb0IsT0FBTyxDQUFDO0lBdUJ4QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO1lBQ3ZELE1BQU0sRUFBRSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUssQ0FBQztZQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7WUFDeEcsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFtQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs4R0FuRFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQzs7MEJBK0JyRCxRQUFRO3lDQXRCZCxLQUFLO3NCQURYLEtBQUs7Z0JBYUMsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlzcG9zYWJsZX0gZnJvbSAnLi4vLi4vY29tbW9uL2Rpc3Bvc2FibGUnO1xuaW1wb3J0IHtXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi93b3JrYmVuY2guc2VydmljZSc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXd9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnR9IGZyb20gJy4uL3dvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7Q2FuTWF0Y2hQYXJ0Rm59IGZyb20gJy4uLy4uL3dvcmtiZW5jaC5tb2RlbCc7XG5cbi8qKlxuICogVXNlIHRoaXMgZGlyZWN0aXZlIHRvIGNvbnRyaWJ1dGUgYW4gYWN0aW9uIHRvIGEgcGFydCdzIGFjdGlvbiBiYXIuXG4gKlxuICogUGFydCBhY3Rpb25zIGFyZSBkaXNwbGF5ZWQgdG8gdGhlIHJpZ2h0IG9mIHRoZSB2aWV3IHRhYiBiYXIgYW5kIGVuYWJsZSBpbnRlcmFjdGlvbiB3aXRoIHRoZSBwYXJ0IGFuZCBpdHMgY29udGVudC5cbiAqXG4gKiBUaGUgaG9zdCBlbGVtZW50IG9mIHRoaXMgbW9kZWxpbmcgZGlyZWN0aXZlIG11c3QgYmUgYSA8bmctdGVtcGxhdGU+LiBUaGUgYWN0aW9uIHNoYXJlcyB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBob3N0IGVsZW1lbnQuXG4gKlxuICogYGBgaHRtbFxuICogPG5nLXRlbXBsYXRlIHdiUGFydEFjdGlvbj5cbiAqICAgPGJ1dHRvbiB3YlJvdXRlckxpbms9XCIvcGF0aC90by92aWV3XCIgW3diUm91dGVyTGlua0V4dHJhc109XCJ7dGFyZ2V0OiAnYmxhbmsnfVwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cbiAqICAgICBhZGRcbiAqICAgPC9idXR0b24+XG4gKiA8L25nLXRlbXBsYXRlPlxuICogYGBgXG4gKlxuICogSWYgdGhlIGFjdGlvbiBpcyBtb2RlbGVkIGluIGEgdmlldyB0ZW1wbGF0ZSwgaXQgaXMgaW5oZXJlbnRseSBhc3NvY2lhdGVkIHdpdGggdGhhdCB2aWV3LCBpLmUuLCBvbmx5IGRpc3BsYXllZCB3aGVuIGFjdGl2ZS5cbiAqIFRvIG5vdCBhc3NvY2lhdGUgYW4gYWN0aW9uIHdpdGggYSB2aWV3LCBtb2RlbCB0aGUgYWN0aW9uIGluc2lkZSB0aGUgYHdiLXdvcmtiZW5jaGAgSFRNTCBlbGVtZW50IG9yIHJlZ2lzdGVyIGl0IHByb2dyYW1tYXRpY2FsbHkuXG4gKlxuICogU3BlY2lmeSBhIGBjYW5NYXRjaGAgZnVuY3Rpb24gdG8gbWF0Y2ggYSBzcGVjaWZpYyBwYXJ0LCBwYXJ0cyBpbiBhIHNwZWNpZmljIGFyZWEsIG9yIHBhcnRzIGZyb20gYSBzcGVjaWZpYyBwZXJzcGVjdGl2ZS5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVt3YlBhcnRBY3Rpb25dJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoUGFydEFjdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9hY3Rpb246IERpc3Bvc2FibGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGVyZSB0byBwbGFjZSB0aGlzIGFjdGlvbiBpbiB0aGUgcGFydCBiYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWxpZ246ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFByZWRpY2F0ZSB0byBtYXRjaCBhIHNwZWNpZmljIHBhcnQsIHBhcnRzIGluIGEgc3BlY2lmaWMgYXJlYSwgb3IgcGFydHMgZnJvbSBhIHNwZWNpZmljIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBJZiB0aGUgYWN0aW9uIGlzIG1vZGVsZWQgaW4gYSB2aWV3IHRlbXBsYXRlLCBpdCBpcyBpbmhlcmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGF0IHZpZXcsIGkuZS4sIG9ubHkgZGlzcGxheWVkXG4gICAqIHdoZW4gYWN0aXZlLiBUbyBub3QgYXNzb2NpYXRlIGFuIGFjdGlvbiB3aXRoIGEgdmlldywgbW9kZWwgdGhlIGFjdGlvbiBpbnNpZGUgdGhlIGB3Yi13b3JrYmVuY2hgIEhUTUwgZWxlbWVudFxuICAgKiBvciByZWdpc3RlciBpdCBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FuTWF0Y2g/OiBDYW5NYXRjaFBhcnRGbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBhY3Rpb24sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgYWN0aW9uIGluIHRlc3RzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNzc0NsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hTZXJ2aWNlOiBXb3JrYmVuY2hTZXJ2aWNlLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF92aWV3OiBXb3JrYmVuY2hWaWV3KSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aW9uID0gdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclBhcnRBY3Rpb24oe1xuICAgICAgcG9ydGFsOiBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fdGVtcGxhdGUsIG51bGwhKSxcbiAgICAgIGFsaWduOiB0aGlzLmFsaWduLFxuICAgICAgY2FuTWF0Y2g6ICgocGFydDogV29ya2JlbmNoUGFydCkgPT4gdGhpcy5tYXRjaGVzQ29udGV4dHVhbFZpZXcocGFydCkgJiYgKHRoaXMuY2FuTWF0Y2g/LihwYXJ0KSA/PyB0cnVlKSksXG4gICAgICBjc3NDbGFzczogdGhpcy5jc3NDbGFzcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWF0Y2hlc0NvbnRleHR1YWxWaWV3KHBhcnQ6IFdvcmtiZW5jaFBhcnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fdmlldz8uaWQpIHtcbiAgICAgIHJldHVybiBwYXJ0LmFjdGl2ZVZpZXdJZCA9PT0gdGhpcy5fdmlldy5pZDtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aW9uPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -413,10 +413,10 @@ export class PartBarComponent {
|
|
|
413
413
|
setCssVariable(this._host, { '--ɵpart-bar-indent-right': `${this._tabbarIndent.right}px` });
|
|
414
414
|
});
|
|
415
415
|
}
|
|
416
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
417
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartBarComponent, deps: [{ token: i0.ElementRef }, { token: WORKBENCH_ID }, { token: i1.WorkbenchLayoutService }, { token: i2.ɵWorkbenchRouter }, { token: i3.ViewTabDragImageRenderer }, { token: i4.ɵWorkbenchPart }, { token: i5.ViewDragService }, { token: i0.DestroyRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
417
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: PartBarComponent, isStandalone: true, selector: "wb-part-bar", host: { listeners: { "dblclick": "onDoubleClick($event)", "dragstart": "onViewDragStart($event)", "dragend": "onViewDragEnd()" } }, viewQueries: [{ propertyName: "_viewportElement", first: true, predicate: SciViewportComponent, descendants: true, read: ElementRef, static: true }, { propertyName: "_viewportComponent", first: true, predicate: SciViewportComponent, descendants: true, static: true }, { propertyName: "_tabCornerRadiusElement", first: true, predicate: ["tab_corner_radius"], descendants: true, static: true }, { propertyName: "_paddingInlineElement", first: true, predicate: ["padding_inline"], descendants: true, static: true }, { propertyName: "injectViewTabs", predicate: ViewTabComponent, descendants: true }], ngImport: i0, template: "<sci-viewport class=\"tabbar\" scrollbarStyle=\"hidden\"\n [class.dragover]=\"dragover$ | async\"\n sciDimension (sciDimensionChange)=\"onTabbarViewportDimensionChange()\"\n (scroll)=\"onScroll()\">\n <ng-container *ngFor=\"let viewId of viewIds$ | async;\">\n <div class=\"divider\" *ngIf=\"viewtab === dropTargetViewTab\"></div>\n <wb-view-tab #viewtab\n [viewId]=\"viewId\"\n [class.drag-source]=\"viewtab === dragSourceViewTab\"\n [class.drop-target]=\"viewtab === dropTargetViewTab\">\n </wb-view-tab>\n <div class=\"divider\"></div>\n </ng-container>\n\n <!-- Placeholder element to grow the viewport to fit the drag image. -->\n <div class=\"drag-image-placeholder\"></div>\n</sci-viewport>\n<wb-part-action-bar/>\n<wb-view-list-button/>\n\n<!-- Element for injecting the corner radius into the component. -->\n<div class=\"tab-corner-radius\" #tab_corner_radius></div>\n<!-- Element for injecting the tabbar padding into the component. -->\n<div class=\"padding-inline\" #padding_inline></div>\n", styles: ["@charset \"UTF-8\";:host{--\\275part-bar-indent-left: 0;--\\275part-bar-indent-right: 0;--\\275part-bar-drag-source-width: 0;--\\275part-bar-drag-image-placeholder-width: 0;display:flex;color:var(--sci-workbench-tab-text-color);background-color:var(--sci-workbench-part-bar-background-color);border-top:var(--sci-workbench-part-bar-padding-top) solid transparent;background-clip:border-box;height:var(--sci-workbench-tab-height);box-sizing:content-box;position:relative;container-name:viewtab;container-type:size}wb-workbench:has(wb-main-area-layout) wb-part:not(.main-area) :host{background-color:var(--sci-workbench-part-peripheral-bar-background-color)}:host>sci-viewport.tabbar{flex:initial}:host>sci-viewport.tabbar::part(content){display:flex;padding-left:var(--\\275part-bar-indent-left);padding-right:var(--\\275part-bar-indent-right)}:host>sci-viewport.tabbar:not(.dragover):not(:has(wb-view-tab:not(.drag-source)))::part(content){padding-right:0}:host>sci-viewport.tabbar>wb-view-tab{flex:none}:host>sci-viewport.tabbar>wb-view-tab.drag-source{display:none}:host>sci-viewport.tabbar>div.divider{flex:none;display:flex;position:relative;width:0}:host>sci-viewport.tabbar>div.divider:after{flex:none;align-self:center;content:\"\";position:absolute;width:1px;left:-1px;height:65%;background-color:var(--sci-workbench-part-bar-divider-color)}:host>sci-viewport.tabbar>div.drag-image-placeholder{flex:none;width:var(--\\275part-bar-drag-image-placeholder-width)}:host>sci-viewport.tabbar>wb-view-tab.drop-target,:host>sci-viewport.tabbar wb-view-tab.drop-target~:is(wb-view-tab,div.divider),:host>sci-viewport.tabbar>div.divider:has(+wb-view-tab.drop-target){transform:translate(var(--\\275part-bar-drag-source-width))}:host>sci-viewport.tabbar>wb-view-tab:is(.active,.drag-source)+div.divider{display:none}:host>sci-viewport.tabbar>div.divider:has(+wb-view-tab.active:not(.drag-source)){display:none}:host>sci-viewport.tabbar>div.divider:has(+wb-view-tab.drag-source:not(.active)){display:none}:host>wb-part-action-bar{flex:auto}:host>wb-view-list-button{flex:none}:host:before{content:\"\";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--sci-workbench-tab-border-color)}:host>div.tab-corner-radius{position:absolute;visibility:hidden;width:var(--sci-workbench-tab-border-radius)}:host>div.padding-inline{position:absolute;visibility:hidden;width:var(--sci-workbench-part-bar-padding-inline)}:host:not(.calculating-max-viewport-width).drag-enter wb-view-tab,:host:not(.calculating-max-viewport-width).drag-enter div.divider,:host:not(.calculating-max-viewport-width).drag-over wb-view-tab,:host:not(.calculating-max-viewport-width).drag-over div.divider,:host:not(.calculating-max-viewport-width).drag-leave wb-view-tab,:host:not(.calculating-max-viewport-width).drag-leave div.divider{transition:transform 175ms cubic-bezier(0,0,.2,1)}:host:not(.calculating-max-viewport-width).drag-enter div.drag-image-placeholder,:host:not(.calculating-max-viewport-width).drag-leave div.drag-image-placeholder{transition:width 175ms cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "ngmodule", type: SciDimensionModule }, { kind: "directive", type: i6.SciDimensionDirective, selector: "[sciDimension]", inputs: ["emitOutsideAngular"], outputs: ["sciDimensionChange"], exportAs: ["sciDimension"] }, { kind: "component", type: ViewTabComponent, selector: "wb-view-tab", inputs: ["viewId"] }, { kind: "component", type: PartActionBarComponent, selector: "wb-part-action-bar" }, { kind: "component", type: ViewListButtonComponent, selector: "wb-view-list-button" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
418
418
|
}
|
|
419
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartBarComponent, decorators: [{
|
|
420
420
|
type: Component,
|
|
421
421
|
args: [{ selector: 'wb-part-bar', standalone: true, imports: [
|
|
422
422
|
NgFor,
|
|
@@ -456,4 +456,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
456
456
|
type: HostListener,
|
|
457
457
|
args: ['dragend']
|
|
458
458
|
}] } });
|
|
459
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWJhci9wYXJ0LWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQtYmFyL3BhcnQtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBNkIsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xJLE9BQU8sRUFBYyxpQkFBaUIsRUFBMkIsTUFBTSxxREFBcUQsQ0FBQztBQUU3SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0SCxPQUFPLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0YsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FB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SSxFQUFFLFVBQVUsRUFBQztnQkFJekQsa0JBQWtCO3NCQUR6QixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdkMsdUJBQXVCO3NCQUQ5QixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdEMscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJaEMsY0FBYztzQkFEeEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBcUV2QixhQUFhO3NCQURuQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QjdCLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQThDOUIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE5nWm9uZSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Vmlld1RhYkNvbXBvbmVudH0gZnJvbSAnLi4vdmlldy10YWIvdmlldy10YWIuY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHthbmltYXRpb25GcmFtZVNjaGVkdWxlciwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgZnJvbSwgaW50ZXJ2YWwsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb25zdHJhaW5GbiwgVmlld0RyYWdJbWFnZVJlY3QsIFZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcn0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy10YWItZHJhZy1pbWFnZS1yZW5kZXJlci5zZXJ2aWNlJztcbmltcG9ydCB7Vmlld0RyYWdEYXRhLCBWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7Z2V0Q3NzVHJhbnNsYXRpb24sIHNldENzc0NsYXNzLCBzZXRDc3NWYXJpYWJsZSwgdW5zZXRDc3NDbGFzcywgdW5zZXRDc3NWYXJpYWJsZX0gZnJvbSAnLi4vLi4vY29tbW9uL2RvbS51dGlsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hQYXJ0fSBmcm9tICcuLi/JtXdvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIG1hcEFycmF5LCBvYnNlcnZlSW5zaWRlLCBzdWJzY3JpYmVJbnNpZGV9IGZyb20gJ0BzY2lvbi90b29sa2l0L29wZXJhdG9ycyc7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy92aWV3cG9ydCc7XG5pbXBvcnQge8m1V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi8uLi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7U2NpRGltZW5zaW9uTW9kdWxlfSBmcm9tICdAc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24nO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nRm9yLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtQYXJ0QWN0aW9uQmFyQ29tcG9uZW50fSBmcm9tICcuLi9wYXJ0LWFjdGlvbi1iYXIvcGFydC1hY3Rpb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1ZpZXdMaXN0QnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi92aWV3LWxpc3QtYnV0dG9uL3ZpZXctbGlzdC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge2Zyb21EaW1lbnNpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi8uLi93b3JrYmVuY2gtaWQnO1xuaW1wb3J0IHtWaWV3SWR9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuXG4vKipcbiAqIFJlbmRlcnMgdmlldyB0YWJzIGFuZCBhY3Rpb25zIG9mIGEge0BsaW5rIFdvcmtiZW5jaFBhcnR9LlxuICpcbiAqIFRhYnMgYXJlIGFkZGVkIHRvIGEgdmlld3BvcnQsIHdoaWNoIHRoZSB1c2VyIGNhbiBzY3JvbGwgaWYgbm90IGVub3VnaCBzcGFjZS4gVGhlIHZpZXdwb3J0IGdyb3dzIHdpdGggaXRzIHRhYnMsXG4gKiBhbGxvd2luZyBhY3Rpb25zIHRvIGJlIHBsYWNlZCBkaXJlY3RseSBhZnRlciB0aGUgbGFzdCB0YWIgb3Igb24gdGhlIHJpZ2h0IHNpZGUuXG4gKlxuICogIyMgRHJhZyBFdmVudHNcbiAqIFdlIHVzZSBuYXRpdmUgZHJhZyBhbmQgZHJvcCB0byBzdXBwb3J0IGRyYWdnaW5nIHZpZXdzIHRvIG90aGVyIHdpbmRvd3MuXG4gKlxuICogQnkgbGlzdGVuaW5nIHRvIGRyYWcgZXZlbnRzLCB0aGUgdGFiYmFyIHZpc3VhbGl6ZXMgdGFicyBkdXJpbmcgYSBkcmFnIG9wZXJhdGlvbi4gVGhlIGRyYWcgb3BlcmF0aW9uIGlzIGluaXRpYXRlZCBpbiB7QGxpbmsgVmlld1RhYkNvbXBvbmVudH0uXG4gKiAtIGBkcmFnc3RhcnRgIGFuZCBgZHJhZ2VuZGAgZXZlbnRzIGFyZSBmaXJlZCBpbiB0aGUgdGFiYmFyIHdoZXJlIHRoZSBkcmFnIG9wZXJhdGlvbiB3YXMgaW5pdGlhdGVkLlxuICogLSBgZHJhZ2VudGVyYCBldmVudCBpcyBmaXJlZCB3aGVuIGEgdGFiIGVudGVycyB0aGUgdGFiYmFyLlxuICogLSBgZHJhZ292ZXJgIGV2ZW50cyBhcmUgZmlyZWQgd2hlbiBkcmFnZ2luZyBhIHRhYiBvdmVyIHRoZSB0YWJiYXIuXG4gKiAtIGBkcmFnbGVhdmVgIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSB0YWIgbGVhdmVzIHRoZSB0YWJiYXIuXG4gKiAtIGBkcm9wYCBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIGRyb3BzIGEgdGFiIGluIHRoZSB0YWJiYXIuXG4gKiAtIE5vdGUgdGhhdCBgZHJhZ2xlYXZlYCBldmVudCBpcyBub3QgZmlyZWQgb24gZHJvcCBhY3Rpb24uIFRoZXJlZm9yZSwgYWx3YXlzIGhhbmRsZSBib3RoIGV2ZW50cywgYGRyYWdsZWF2ZWAgYW5kIGBkcm9wYCBldmVudHMsIHJlc3BlY3RpdmVseS5cbiAqXG4gKiAjIyBUZXJtaW5vbG9neVxuICogLSBEcmFnIHNvdXJjZTogVGFiIHRoYXQgaXMgYmVpbmcgZHJhZ2dlZC5cbiAqIC0gRHJvcCB0YXJnZXQ6IFRhYiBiZWZvcmUgd2hpY2ggdG8gaW5zZXJ0IHRoZSBkcmFnIHNvdXJjZSBvbiBkcm9wLCBvciBgZW5kYCBpZiBkcm9wcGluZyBpdCBhZnRlciB0aGUgbGFzdCB0YWIuXG4gKiAtIERyYWcgaW1hZ2U6ICBJbWFnZSBmb3IgdGhlIHRhYiB0byBiZSBkcmFnZ2VkLiBXZSBkbyBub3QgdXNlIHRoZSBuYXRpdmUgZHJhZyBpbWFnZSBzdXBwb3J0IHRvIGNvbnRyb2wgZHJhZyBpbWFnZSBwb3NpdGlvbiBhbmQgc2l6ZSxcbiAqICAgICAgICAgICAgICAgIGUuZy4sIHRvIHNuYXAgdGhlIGRyYWcgaW1hZ2UgdG8gdGhlIHRhYmJhciB3aGVuIGRyYWdnaW5nIG5lYXIgaXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLXBhcnQtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcnQtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFydC1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nRm9yLFxuICAgIEFzeW5jUGlwZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgICBTY2lEaW1lbnNpb25Nb2R1bGUsXG4gICAgVmlld1RhYkNvbXBvbmVudCxcbiAgICBQYXJ0QWN0aW9uQmFyQ29tcG9uZW50LFxuICAgIFZpZXdMaXN0QnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3Q6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3cG9ydENoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3VGFicyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZpZXdUYWJDb21wb25lbnRbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnZW50ZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ2xlYXZlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdlbmQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyYWdvdmVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBAVmlld0NoaWxkKFNjaVZpZXdwb3J0Q29tcG9uZW50LCB7c3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmfSlcbiAgcHJpdmF0ZSBfdmlld3BvcnRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChTY2lWaWV3cG9ydENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX3ZpZXdwb3J0Q29tcG9uZW50ITogU2NpVmlld3BvcnRDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgndGFiX2Nvcm5lcl9yYWRpdXMnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHJpdmF0ZSBfdGFiQ29ybmVyUmFkaXVzRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3BhZGRpbmdfaW5saW5lJywge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX3BhZGRpbmdJbmxpbmVFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZHJlbihWaWV3VGFiQ29tcG9uZW50KVxuICBwdWJsaWMgc2V0IGluamVjdFZpZXdUYWJzKHF1ZXJ5TGlzdDogUXVlcnlMaXN0PFZpZXdUYWJDb21wb25lbnQ+KSB7XG4gICAgcXVlcnlMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKHN0YXJ0V2l0aChxdWVyeUxpc3QpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHF1ZXJ5TGlzdCA9PiB0aGlzLl92aWV3VGFicyQubmV4dChxdWVyeUxpc3QudG9BcnJheSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0YWIgYmVmb3JlIHdoaWNoIHRvIGluc2VydCB0aGUgZHJhZyBzb3VyY2Ugb24gZHJvcCwgb3IgYGVuZGAgaWYgZHJvcHBpbmcgaXQgYWZ0ZXIgdGhlIGxhc3QgdGFiLlxuICAgKi9cbiAgcHVibGljIGRyb3BUYXJnZXRWaWV3VGFiOiBWaWV3VGFiQ29tcG9uZW50IHwgJ2VuZCcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0YWIgd2hlcmUgdGhlIGRyYWcgb3BlcmF0aW9uIHdhcyBzdGFydGVkLlxuICAgKiBUaGlzIHJlZmVyZW5jZSBpcyBvbmx5IHNldCBpZiB0aGUgZHJhZyBvcGVyYXRpb24gc3RhcnRlZCBvbiBhIHRhYiBvZiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBkcmFnU291cmNlVmlld1RhYjogVmlld1RhYkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUcmFuc2ZlciBkYXRhIG9mIHRoZSB0YWIgYmVpbmcgZHJhZ2dlZCBvdmVyIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBfZHJhZ0RhdGE6IFZpZXdEcmFnRGF0YSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBmb3Igc25hcHBpbmcgdGhlIGRyYWcgaW1hZ2UgdG8gdGhlIHRhYmJhciB3aGVuIGRyYWdnaW5nIG5lYXIgaXQuXG4gICAqL1xuICBwcml2YXRlIF9jb25zdHJhaW5GbjogQ29uc3RyYWluRm4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGFiYmFyIGluZGVudHMgd2hlcmUgdG8gZGlzcGxheSB0aGUgcm91bmRlZCBib3R0b20gY29ybmVycyBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgdmlldyB0YWIuXG4gICAqL1xuICBwcml2YXRlIF90YWJiYXJJbmRlbnQgPSB7XG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgfTtcblxuICAvKipcbiAgICogTm90aWZpZXMgd2hlbiB0aGUgZHJhZyBhbmltYXRpb24gaGFzIGZpbmlzaGVkLCBpLmUuLCB0YWJzIGhhdmUgdHJhbnNpdGlvbmVkIHRvIHRoZWlyIGZpbmFsIHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfZHJhZ0FuaW1hdGlvblN0YWJsZSQgPSBpbnRlcnZhbCgwLCBhbmltYXRpb25GcmFtZVNjaGVkdWxlcilcbiAgICAucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzRHJhZ0FuaW1hdGlvblN0YWJsZSgpKSxcbiAgICAgIHN1YnNjcmliZUluc2lkZShjb250aW51ZUZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoY29udGludWVGbikpLFxuICAgICAgb2JzZXJ2ZUluc2lkZShjb250aW51ZUZuID0+IHRoaXMuX3pvbmUucnVuKGNvbnRpbnVlRm4pKSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQgYXMgdm9pZCksXG4gICAgKTtcblxuICBjb25zdHJ1Y3Rvcihob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgICAgICAgQEluamVjdChXT1JLQkVOQ0hfSUQpIHByaXZhdGUgX3dvcmtiZW5jaElkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExheW91dFNlcnZpY2U6IFdvcmtiZW5jaExheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogybVXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcjogVmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9wYXJ0OiDJtVdvcmtiZW5jaFBhcnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9ob3N0ID0gaG9zdC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuZHJhZ292ZXIkID0gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnRhYmJhckRyYWdPdmVyJC5waXBlKG1hcChwYXJ0SWQgPT4gcGFydElkID09PSB0aGlzLl9wYXJ0LmlkKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnN0YWxsQWN0aXZlVmlld1Njcm9sbGVyKCk7XG4gICAgdGhpcy5pbnN0YWxsU2Nyb2xsZWRJbnRvVmlld1VwZGF0ZXIoKTtcbiAgICB0aGlzLmluc3RhbGxWaWV3RHJhZ0xpc3RlbmVyKCk7XG4gICAgdGhpcy5pbnN0YWxsVGFiYmFySW5kZW50U2l6ZURldGVjdG9yKCk7XG4gICAgdGhpcy5pbnN0YWxsVmlld3BvcnRDbGllbnRTaXplRGV0ZWN0b3IoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RibGNsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRG91YmxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcGFydC5pc0luTWFpbkFyZWEpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LnRvZ2dsZU1heGltaXplZCgpKS50aGVuKCk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3SWRzJCgpOiBPYnNlcnZhYmxlPFZpZXdJZFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnQudmlld0lkcyQ7XG4gIH1cblxuICBwdWJsaWMgb25UYWJiYXJWaWV3cG9ydERpbWVuc2lvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgYSB0YWIgb2YgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkcmFnc3RhcnQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25WaWV3RHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3ZpZXdEcmFnU2VydmljZS5pc1ZpZXdEcmFnRXZlbnQoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHJhZ0RhdGEgPSB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdEYXRhITtcbiAgICBjb25zdCBkcmFnU291cmNlSW5kZXggPSB0aGlzLl92aWV3VGFicy5maW5kSW5kZXgodmlld1RhYiA9PiB2aWV3VGFiLnZpZXdJZCA9PT0gZHJhZ0RhdGEudmlld0lkKTtcbiAgICBjb25zdCBkcmFnU291cmNlVmlld1RhYiA9IHRoaXMuX3ZpZXdUYWJzW2RyYWdTb3VyY2VJbmRleF07XG4gICAgY29uc3QgZHJvcFRhcmdldFZpZXdUYWIgPSB0aGlzLl92aWV3VGFic1tkcmFnU291cmNlSW5kZXggKyAxXSA/PyAnZW5kJztcblxuICAgIC8vIENvbnN0cmFpbiBmdW5jdGlvbiBmb3Igc25hcHBpbmcgdGhlIGRyYWcgaW1hZ2UgdG8gdGhlIHRhYmJhciB3aGVuIGRyYWdnaW5nIG5lYXIgaXQuXG4gICAgdGhpcy5fY29uc3RyYWluRm4gPSB0aGlzLmNyZWF0ZURyYWdJbWFnZUNvbnN0cmFpbkZuKCk7XG4gICAgdGhpcy5fdmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyLnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5Gbik7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuXG4gICAgLy8gV2hlbiBzdGFydCBkcmFnZ2luZyBhIHZpZXcgdGFiLCB3ZSByZW1vdmUgaXQgZnJvbSB0aGUgdGFiYmFyIGJ5IHNldHRpbmcgaXRzIGBkaXNwbGF5YCB0byBgbm9uZWAgYW5kIHJlbmRlciBpdHMgZHJhZyBpbWFnZSBpbiBgVmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyYCBpbnN0ZWFkLlxuICAgIC8vIEhvd2V2ZXIsIGRvIG5vdCB1bnNldCB0aGUgYGRpc3BsYXlgIG9mIHRoZSBkcmFnIHNvdXJjZSBkdXJpbmcgYGRyYWdzdGFydGAuIE90aGVyd2lzZSwgdGhlIG5hdGl2ZSBkcmFnIG9wZXJhdGlvbiB3b3VsZCBiZSBjb3JydXB0ZWQgaW4gQ2hyb21lIGFuZCBFZGdlIChidXQgbm90IGluIEZpcmVmb3gpLlxuICAgIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgIHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIgPSBkcmFnU291cmNlVmlld1RhYjtcbiAgICAgIHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPSBkcm9wVGFyZ2V0Vmlld1RhYjsgLy8gU2V0IGRyb3AgdGFyZ2V0IHRvIGF2b2lkIHRhYiBhbmltYXRpb24uXG4gICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7XG4gICAgICAgICctLcm1cGFydC1iYXItZHJhZy1zb3VyY2Utd2lkdGgnOiBgJHtkcmFnRGF0YS52aWV3VGFiV2lkdGh9cHhgLFxuICAgICAgICAnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnOiBgJHtkcmFnRGF0YS52aWV3VGFiV2lkdGh9cHhgLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBXaGVuIGRyYWdnaW5nIGEgdGFiIHZlcnkgcXVpY2tseSBvdXQgb2YgdGhpcyB0YWJiYXIsIG9ubHkgdGhlIGBkcmFnc3RhcnRgIGV2ZW50IGdldHMgZmlyZWQsIGJ1dCBub3QgdGhlIGBkcmFnZW50ZXJgIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2Ugc3Vic2NyaWJlIHRvIGdsb2JhbCBgZHJhZ2VudGVyYCBldmVudHMgYW5kIG1hbnVhbGx5IGludm9rZSBgb25UYWJiYXJEcmFnTGVhdmVgIHRvIGNvcnJlY3RseSBkaXNwbGF5IHRoZSB0YWJzIGFuZCB0aGUgYWN0aXZlIHZpZXcuXG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnJCh3aW5kb3csIHtldmVudFR5cGU6IFsnZHJhZ2VudGVyJ119KVxuICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuX2RyYWdlbmQkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB1c2VyIGNvbnRpbnVlcyBkcmFnZ2luZyBvdmVyIHRoaXMgdGFiYmFyLlxuICAgICAgICAvLyBJZiBub3QsIHRoZSB1c2VyIGhhcyBxdWlja2x5IGRyYWdnZWQgdGhlIHRhYiBvdXQgb2YgdGhlIHRhYmJhciBhbmQgd2UgIG1hbnVhbGx5IGNhbGwgYG9uVGFiYmFyRHJhZ0xlYXZlYC5cbiAgICAgICAgaWYgKCh0aGlzLl9ob3N0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMub25UYWJiYXJEcmFnTGVhdmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBlbmRzIGRyYWdnaW5nIGEgdGFiIG9mIHRoaXMgdGFiYmFyLlxuICAgKlxuICAgKiBJbnZva2VkIG9ubHkgaW4gdGhlIHRhYmJhciB3aGVyZSB0aGUgZHJhZyBvcGVyYXRpb24gc3RhcnRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBkcmFnIG9wZXJhdGlvbiB3YXMgY29tcGxldGVkIG9yIGNhbmNlbGVkLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcpXG4gIHB1YmxpYyBvblZpZXdEcmFnRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdlbmQkLm5leHQoKTtcbiAgICB0aGlzLnVuc2V0RHJhZ1N0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcmFncyBhIHRhYiBpbnRvIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBvblRhYmJhckRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ2VudGVyJC5uZXh0KCk7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuICAgIHRoaXMuX2RyYWdEYXRhID0gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRGF0YSE7XG5cbiAgICAvLyBDb25zdHJhaW4gZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgIGlmICghdGhpcy5fY29uc3RyYWluRm4pIHtcbiAgICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gdGhpcy5jcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpO1xuICAgICAgdGhpcy5fdmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyLnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5Gbik7XG4gICAgfVxuXG4gICAgLy8gTG9jYXRlIGRyb3AgdGFyZ2V0IHRvIGhhdmUgYSBuaWNlIGFuaW1hdGlvbiBmb3IgdGhlIGRyYWcgc291cmNlIHBsYWNlaG9sZGVyLlxuICAgIHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPSB0aGlzLmNvbXB1dGVEcm9wVGFyZ2V0KGV2ZW50KTtcblxuICAgIC8vIFNldCB0aGUgQ1NTIGNsYXNzICdkcmFnLWVudGVyJyB0byBpbmRpY2F0ZSBlbnRlcmluZyB0aGUgdGFiYmFyLlxuICAgIHNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWVudGVyJywgJ2RyYWctb3ZlcicpO1xuICAgIHRoaXMuX2RyYWdBbmltYXRpb25TdGFibGUkXG4gICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5fZHJhZ2VudGVyJCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe2NvbXBsZXRlOiAoKSA9PiB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWVudGVyJyl9KTtcblxuICAgIHNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsIHtcbiAgICAgICctLcm1cGFydC1iYXItZHJhZy1zb3VyY2Utd2lkdGgnOiBgJHt0aGlzLl9kcmFnRGF0YS52aWV3VGFiV2lkdGh9cHhgLFxuICAgICAgJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7dGhpcy5fZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCB3aGVuIHRoZSB1c2VyIGRyYWdzIGEgdGFiIG91dCBvZiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcmFnTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ2xlYXZlJC5uZXh0KCk7XG5cbiAgICAvLyBTZXQgdGhlIENTUyBjbGFzcyAnZHJhZy1sZWF2ZScgdG8gaW5kaWNhdGUgbGVhdmluZyB0aGUgdGFiYmFyLlxuICAgIHNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWxlYXZlJyk7XG4gICAgdGhpcy5fZHJhZ0FuaW1hdGlvblN0YWJsZSRcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLl9kcmFnbGVhdmUkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSh7Y29tcGxldGU6ICgpID0+IHVuc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2RyYWctbGVhdmUnKX0pO1xuXG4gICAgdGhpcy51bnNldERyYWdTdGF0ZSh7dW5zZXREcmFnU291cmNlOiBmYWxzZX0pO1xuXG4gICAgLy8gQWN0aXZhdGUgdGhlIHZpZXcgbmV4dCB0byB0aGUgdmlldyBiZWluZyBkcmFnZ2VkIG91dCBvZiB0aGlzIHRhYmJhci4gQnV0LCBkbyBub3QgcHVzaCB0aGUgbmF2aWdhdGlvbiBpbnRvIGJyb3dzaW5nIGhpc3Rvcnkgc3RhY2suXG4gICAgaWYgKHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIgJiYgdGhpcy5kcmFnU291cmNlVmlld1RhYi5hY3RpdmUpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LmFjdGl2YXRlQWRqYWNlbnRWaWV3KHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIhLnZpZXdJZCksIHtza2lwTG9jYXRpb25DaGFuZ2U6IHRydWV9KS50aGVuKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGEgdGFiIG92ZXIgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwcml2YXRlIG9uVGFiYmFyRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIGFsbG93IHZpZXcgZHJvcFxuXG4gICAgLy8gTG9jYXRlIHRoZSB0YWIgb3ZlciB3aGljaCB0aGUgdXNlciBpcyBkcmFnZ2luZyB0aGUgdGFiLCBidXQgb25seSBhZnRlciBwZW5kaW5nIHRyYW5zaXRpb25zIGhhdmUgZW5kZWQgdG8gcHJldmVudCB0YWJzIGZyb20gc2xpZGluZyBiYWNrIGFuZCBmb3J0aC5cbiAgICBpZiAodGhpcy5pc0RyYWdBbmltYXRpb25TdGFibGUoKSkge1xuICAgICAgdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9IHRoaXMuY29tcHV0ZURyb3BUYXJnZXQoZXZlbnQpO1xuICAgICAgLy8gU3luY2hyb25pemUgdGhlIHdpZHRoIG9mIHRoZSBkcmFnIHNvdXJjZSBwbGFjZWhvbGRlciB3aXRoIHRoZSBkcmFnIHBvaW50ZXIgcG9zaXRpb24gdG8gbW92ZSBhY3Rpb25zIGFsb25nIHdpdGggdGhlIHBvaW50ZXIuXG4gICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7dGhpcy5jYWxjdWxhdGVEcmFnSW1hZ2VQbGFjZWhvbGRlcldpZHRoKGV2ZW50KX1weGB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcm9wcyBhIHRhYiBpbiB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcm9wKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe1xuICAgICAgc291cmNlOiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl9kcmFnRGF0YSEud29ya2JlbmNoSWQsXG4gICAgICAgIHBhcnRJZDogdGhpcy5fZHJhZ0RhdGEhLnBhcnRJZCxcbiAgICAgICAgdmlld0lkOiB0aGlzLl9kcmFnRGF0YSEudmlld0lkLFxuICAgICAgICBhbHRlcm5hdGl2ZVZpZXdJZDogdGhpcy5fZHJhZ0RhdGEhLmFsdGVybmF0aXZlVmlld0lkLFxuICAgICAgICB2aWV3VXJsU2VnbWVudHM6IHRoaXMuX2RyYWdEYXRhIS52aWV3VXJsU2VnbWVudHMsXG4gICAgICAgIG5hdmlnYXRpb25IaW50OiB0aGlzLl9kcmFnRGF0YSEubmF2aWdhdGlvbkhpbnQsXG4gICAgICAgIGNsYXNzTGlzdDogdGhpcy5fZHJhZ0RhdGEhLmNsYXNzTGlzdCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IHtcbiAgICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9PT0gJ2VuZCcgPyAnZW5kJyA6IHRoaXMuX3ZpZXdUYWJzLmluZGV4T2YodGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiEpLFxuICAgICAgICBlbGVtZW50SWQ6IHRoaXMuX3BhcnQuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV2FpdCB1bmRvaW5nIHRoZSBkcmFnIHN0YXRlIHVudGlsIGZsdXNoZWQgdGFiIGNoYW5nZXMgdG8gdGhlIERPTSwgaS5lLiwgYWZ0ZXIgdGhlIGxheW91dCByb3V0aW5nIGN5Y2xlIGNvbXBsZXRlcy5cbiAgICAvLyBJZiB3ZSB3ZXJlIHRvIHVuZG8gdGhlIGRyYWcgc3RhdGUgaW1tZWRpYXRlbHkgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlIGRyb3AgZXZlbnQsIHRoZSB0YWIgbGF5b3V0IHdvdWxkIHRlbXBvcmFyaWx5XG4gICAgLy8gcmV2ZXJ0IHRvIHRoZSBzdGF0ZSBiZWZvcmUgdGhlIGRyYWcgb3BlcmF0aW9uLCByZXN1bHRpbmcgaW4gYW4gdWdseSBmbGlja2VyLlxuICAgIGZpcnN0VmFsdWVGcm9tKHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2Uub25MYXlvdXRDaGFuZ2UkKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMudW5zZXREcmFnU3RhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2NhdGVzIHRoZSB0YWIgYmVmb3JlIHdoaWNoIHRoZSBkcmFnZ2VkIHRhYiBpcyB0byBiZSBpbnNlcnRlZCB3aGVuIGl0IGlzIGRyb3BwZWQuIERyYWdnaW5nIGJleW9uZCB0aGUgbGFzdCB0YWIgcmV0dXJucyBgZW5kYC5cbiAgICovXG4gIHB1YmxpYyBjb21wdXRlRHJvcFRhcmdldChldmVudDogRHJhZ0V2ZW50KTogVmlld1RhYkNvbXBvbmVudCB8ICdlbmQnIHtcbiAgICBjb25zdCB2aWV3RHJhZ0ltYWdlUmVjdCA9IHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5jYWxjdWxhdGVEcmFnSW1hZ2VSZWN0KHRoaXMuX2RyYWdEYXRhISwgZXZlbnQpO1xuICAgIGNvbnN0IHZpZXdUYWJzID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYik7XG5cbiAgICBmb3IgKGNvbnN0IHZpZXdUYWIgb2Ygdmlld1RhYnMpIHtcbiAgICAgIGNvbnN0IHZpZXdUYWJSZWN0ID0gdmlld1RhYi5ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgdmlld1RhYk1pZGRsZSA9IHZpZXdUYWJSZWN0LmxlZnQgKyAodmlld1RhYlJlY3Qud2lkdGggLyAyKTtcbiAgICAgIGlmICh2aWV3RHJhZ0ltYWdlUmVjdC5sZWZ0IDwgdmlld1RhYk1pZGRsZSAmJiAodmlld1RhYiAhPT0gdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiB8fCB2aWV3RHJhZ0ltYWdlUmVjdC5yaWdodCA8IHZpZXdUYWJNaWRkbGUpKSB7XG4gICAgICAgIHJldHVybiB2aWV3VGFiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJ2VuZCc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpOiBDb25zdHJhaW5GbiB7XG4gICAgY29uc3QgaG9zdExlZnQgPSB0aGlzLl9ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgY29uc3QgbWF4Vmlld3BvcnRXaWR0aCA9IHRoaXMuY2FsY3VsYXRlTWF4Vmlld3BvcnRXaWR0aCgpO1xuICAgIHJldHVybiAocmVjdDogVmlld0RyYWdJbWFnZVJlY3QpOiBWaWV3RHJhZ0ltYWdlUmVjdCA9PiB7XG4gICAgICBjb25zdCB2aWV3cG9ydEJvdW5kaW5nQm94ID0gdGhpcy5fdmlld3BvcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZXR1cm4gbmV3IFZpZXdEcmFnSW1hZ2VSZWN0KHtcbiAgICAgICAgeDogTWF0aC5taW4oTWF0aC5tYXgoaG9zdExlZnQgKyB0aGlzLl90YWJiYXJJbmRlbnQubGVmdCwgcmVjdC54KSwgaG9zdExlZnQgKyBtYXhWaWV3cG9ydFdpZHRoIC0gcmVjdC53aWR0aCAtIHRoaXMuX3RhYmJhckluZGVudC5yaWdodCksXG4gICAgICAgIHk6IHZpZXdwb3J0Qm91bmRpbmdCb3gudG9wLFxuICAgICAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB2aWV3cG9ydEJvdW5kaW5nQm94LmhlaWdodCwgLy8gZml0IGludG8gdGFiYmFyLCBlLmcuLCB3aGVuIGRyYWdnaW5nIGEgdGFiIGludG8gYSB0YWJiYXIgb2YgYSBkaWZmZXJlbnQgaGVpZ2h0XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIHRhYmJhciB2aWV3cG9ydCBiZWZvcmUgYW4gb3ZlcmZsb3cgd291bGQgb2NjdXIsIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY29uc3RyYWluIHRoZSBkcmFnIGltYWdlLlxuICAgKlxuICAgKiBUbyBjYWxjdWxhdGUgdGhlIGVmZmVjdGl2ZSB3aWR0aCwgd2UgbmVlZCB0byBzaW11bGF0ZSBhbiBvdmVyZmxvdyBpbiB0aGUgRE9NLiBUaGVyZWZvcmUsIGNhbGwgdGhpcyBtZXRob2Qgb25seSBmcm9tIGBkcmFnc3RhcnRgIGFuZCBub3RcbiAgICogZnJvbSBgZHJhZ292ZXJgIGFuZCBkaXNhYmxlIGFuaW1hdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZU1heFZpZXdwb3J0V2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSB0aGlzLl9ob3N0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJyk7XG5cbiAgICAvLyBEaXNhYmxlIGFuaW1hdGlvbnMgZHVyaW5nIGNhbGN1bGF0aW9uIGFuZCBmb3JjZSB0aGUgdmlld3BvcnQgdG8gb3ZlcmZsb3cuXG4gICAgc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2NhbGN1bGF0aW5nLW1heC12aWV3cG9ydC13aWR0aCcpO1xuICAgIHNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsIHsnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnOiBgJHt0aGlzLl9ob3N0LmNsaWVudFdpZHRofXB4YH0pO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld3BvcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgeyctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCc6IGN1cnJlbnRXaWR0aCB8fCBudWxsfSk7XG4gICAgICB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdjYWxjdWxhdGluZy1tYXgtdmlld3BvcnQtd2lkdGgnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggZm9yIHRoZSBkcmFnIGltYWdlIHBsYWNlaG9sZGVyLlxuICAgKlxuICAgKiAtIFdoZW4gZHJhZ2dpbmcgb3ZlciB0YWJzLCB0aGUgd2lkdGggaXMgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBkcmFnIHNvdXJjZS5cbiAgICogLSBXaGVuIGRyYWdnaW5nIHRvIHRoZSByaWdodCBvZiB0aGUgbGFzdCB0YWIsIHRoZSB3aWR0aCBvZiB0aGUgcGxhY2Vob2xkZXIgaXMgY2FsY3VsYXRlZCBhcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGVcbiAgICogICBsYXN0IHRhYiBhbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBkcmFnb3ZlciBldmVudC4gQXBwbHlpbmcgdGhpcyB3aWR0aCB3aWxsIHJlc2l6ZSB0aGUgdmlld3BvcnQsIG1vdmluZyBwYXJ0IGFjdGlvbnMgYWxvbmdcbiAgICogICB3aXRoIHRoZSBkcmFnb3ZlciBldmVudC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlRHJhZ0ltYWdlUGxhY2Vob2xkZXJXaWR0aChldmVudDogRHJhZ0V2ZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCB2aWV3RHJhZ0ltYWdlUmVjdCA9IHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5jYWxjdWxhdGVEcmFnSW1hZ2VSZWN0KHRoaXMuX2RyYWdEYXRhISwgZXZlbnQpO1xuICAgIGNvbnN0IGxhc3RWaWV3VGFiID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYikuYXQoLTEpO1xuICAgIGNvbnN0IGxhc3RWaWV3VGFiUmlnaHQgPSBsYXN0Vmlld1RhYj8uaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA/PyB0aGlzLl9ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyB0aGlzLl90YWJiYXJJbmRlbnQubGVmdDtcbiAgICByZXR1cm4gTWF0aC5tYXgobGFzdFZpZXdUYWJSaWdodCArIHZpZXdEcmFnSW1hZ2VSZWN0LndpZHRoLCB2aWV3RHJhZ0ltYWdlUmVjdC5yaWdodCkgLSBsYXN0Vmlld1RhYlJpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIENTUyBhbmltYXRpb25zIGhhdmUgZmluaXNoZWQgd2hlbiBkcmFnZ2luZyBhIHRhYiBvdmVyIHRoZSB0YWJiYXIuXG4gICAqIFRoZSBhbmltYXRpb24gaXMgY29uc2lkZXJlZCBzdGFibGUgd2hlbiBhbGwgdGFicyBoYXZlIG1vdmVkIHRvIHRoZWlyIGZpbmFsIHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0RyYWdBbmltYXRpb25TdGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmRyb3BUYXJnZXRWaWV3VGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld1RhYnMuZXZlcnkodmlld1RhYiA9PiBnZXRDc3NUcmFuc2xhdGlvbih2aWV3VGFiLmhvc3QpLnRyYW5zbGF0ZVggPT09ICdub25lJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld1RhYnMgPSB0aGlzLl92aWV3VGFicy5maWx0ZXIodmlld1RhYiA9PiB2aWV3VGFiICE9PSB0aGlzLmRyYWdTb3VyY2VWaWV3VGFiKTtcbiAgICBjb25zdCBkcm9wVGFyZ2V0SW5kZXggPSB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID09PSAnZW5kJyA/IHZpZXdUYWJzLmxlbmd0aCA6IHZpZXdUYWJzLmluZGV4T2YodGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiEpO1xuICAgIGNvbnN0IGRyYWdTb3VyY2VXaWR0aCA9IHRoaXMuX2RyYWdEYXRhIS52aWV3VGFiV2lkdGg7XG5cbiAgICByZXR1cm4gdmlld1RhYnMuZXZlcnkoKHZpZXdUYWIsIGkpID0+IHtcbiAgICAgIGNvbnN0IHZpZXdUYWJUcmFuc2xhdGVYID0gZ2V0Q3NzVHJhbnNsYXRpb24odmlld1RhYi5ob3N0KS50cmFuc2xhdGVYO1xuICAgICAgLy8gRXhwZWN0IHRhYnMgcHJlY2VkaW5nIHRoZSBkcm9wIHRhcmdldCBub3QgdG8gYmUgc2hpZnRlZCB0byB0aGUgcmlnaHQuXG4gICAgICBpZiAoaSA8IGRyb3BUYXJnZXRJbmRleCAmJiB2aWV3VGFiVHJhbnNsYXRlWCAhPT0gJ25vbmUnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIEV4cGVjdCBkcm9wIHRhcmdldCBhbmQgdGFicyBmb2xsb3dpbmcgdGhlIGRyb3AgdGFyZ2V0IHRvIGJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LlxuICAgICAgaWYgKGkgPj0gZHJvcFRhcmdldEluZGV4ICYmIE1hdGguZmxvb3IoTnVtYmVyKHZpZXdUYWJUcmFuc2xhdGVYKSkgIT09IE1hdGguZmxvb3IoZHJhZ1NvdXJjZVdpZHRoKSkgeyAvLyBjb21wYXJlIGZsb29yZWQgbnVtYmVycyBiZWNhdXNlIGB0cmFuc2xhdGVYYCBpcyBub3QgcHJlY2lzZVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZXREcmFnU3RhdGUob3B0aW9ucz86IHt1bnNldERyYWdTb3VyY2U/OiBib29sZWFufSk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zPy51bnNldERyYWdTb3VyY2UgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5kcmFnU291cmNlVmlld1RhYiA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9IG51bGw7XG4gICAgdGhpcy5fZHJhZ0RhdGEgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci51bnNldENvbnN0cmFpbkRyYWdJbWFnZVJlY3RGbih0aGlzLl9jb25zdHJhaW5GbiEpO1xuICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gbnVsbDtcblxuICAgIHVuc2V0Q3NzQ2xhc3ModGhpcy5faG9zdCwgJ2RyYWctb3ZlcicpO1xuICAgIHVuc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgJy0tybVwYXJ0LWJhci1kcmFnLXNvdXJjZS13aWR0aCcsICctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCcpO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS51bnNldFRhYmJhckRyYWdvdmVyKHRoaXMuX3BhcnQuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3ZpZXdUYWJzKCk6IFZpZXdUYWJDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdUYWJzJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSB0YWIgb2YgdGhlIGFjdGl2ZSB2aWV3IGludG8gdmlldy5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbEFjdGl2ZVZpZXdTY3JvbGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3VGFicyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAodmlld1RhYnMgPT4gY29tYmluZUxhdGVzdCh2aWV3VGFicy5tYXAodmlld1RhYiA9PiB2aWV3VGFiLnZpZXcuYWN0aXZlJCkpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIFRoZXJlIG1heSBiZSBubyBhY3RpdmUgdmlldyBpbiB0aGUgdGFiYmFyLCBlLmcuLCB3aGVuIGRyYWdnaW5nIHRoZSBsYXN0IHZpZXcgb3V0IG9mIHRoZSB0YWJiYXIuXG4gICAgICAgIGNvbnN0IGFjdGl2ZVZpZXdUYWIgPSB0aGlzLl92aWV3VGFicy5maW5kKHZpZXdUYWIgPT4gdmlld1RhYi5hY3RpdmUpO1xuICAgICAgICBpZiAoYWN0aXZlVmlld1RhYiAmJiAhdGhpcy5fdmlld3BvcnRDb21wb25lbnQuaXNFbGVtZW50SW5WaWV3KGFjdGl2ZVZpZXdUYWIuaG9zdCwgJ2Z1bGwnKSkge1xuICAgICAgICAgIHRoaXMuX3ZpZXdwb3J0Q29tcG9uZW50LnNjcm9sbEludG9WaWV3KGFjdGl2ZVZpZXdUYWIuaG9zdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMge0BsaW5rIMm1V29ya2JlbmNoVmlld30gd2hlbiBpdHMgdGFiIGlzIHNjcm9sbGVkIGludG8gdmlldy5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFNjcm9sbGVkSW50b1ZpZXdVcGRhdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLl92aWV3VGFicyksXG4gICAgICAgIGZpbHRlckFycmF5KHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYiksIC8vIHNraXAgZHJhZyBzb3VyY2UgYXMgYWx3YXlzIHNjcm9sbGVkIG91dCBvZiB2aWV3XG4gICAgICAgIG1lcmdlTWFwKHZpZXdUYWJzID0+IGZyb20odmlld1RhYnMpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh2aWV3VGFiID0+IHtcbiAgICAgICAgdmlld1RhYi52aWV3LnNjcm9sbGVkSW50b1ZpZXcgPSB0aGlzLl92aWV3cG9ydENvbXBvbmVudC5pc0VsZW1lbnRJblZpZXcodmlld1RhYi5ob3N0LCAnZnVsbCcpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3RHJhZ0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZyQodGhpcy5faG9zdClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcmFnRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJhZ292ZXInOlxuICAgICAgICAgICAgdGhpcy5vblRhYmJhckRyYWdPdmVyKGV2ZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2RyYWdsZWF2ZSc6XG4gICAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJhZ0xlYXZlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkcm9wJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcm9wKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3cG9ydENsaWVudFNpemVEZXRlY3RvcigpOiB2b2lkIHtcbiAgICBmcm9tRGltZW5zaW9uJCh0aGlzLl92aWV3cG9ydENvbXBvbmVudC52aWV3cG9ydENsaWVudEVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuKGZuKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdmlld3BvcnRDaGFuZ2UkLm5leHQoKSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxUYWJiYXJJbmRlbnRTaXplRGV0ZWN0b3IoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbZnJvbURpbWVuc2lvbiQodGhpcy5fdGFiQ29ybmVyUmFkaXVzRWxlbWVudC5uYXRpdmVFbGVtZW50KSwgZnJvbURpbWVuc2lvbiQodGhpcy5fcGFkZGluZ0lubGluZUVsZW1lbnQubmF0aXZlRWxlbWVudCldKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgIG1hcEFycmF5KGRpbWVuc2lvbiA9PiBkaW1lbnNpb24uY2xpZW50V2lkdGgpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbdGFiQ29ybmVyUmFkaXVzLCBwYWRkaW5nSW5saW5lXSkgPT4ge1xuICAgICAgICB0aGlzLl90YWJiYXJJbmRlbnQgPSB7bGVmdDogdGFiQ29ybmVyUmFkaXVzICsgcGFkZGluZ0lubGluZSwgcmlnaHQ6IHRhYkNvcm5lclJhZGl1cyArIHBhZGRpbmdJbmxpbmV9O1xuICAgICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1pbmRlbnQtbGVmdCc6IGAke3RoaXMuX3RhYmJhckluZGVudC5sZWZ0fXB4YH0pO1xuICAgICAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1pbmRlbnQtcmlnaHQnOiBgJHt0aGlzLl90YWJiYXJJbmRlbnQucmlnaHR9cHhgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHNjaS12aWV3cG9ydCBjbGFzcz1cInRhYmJhclwiIHNjcm9sbGJhclN0eWxlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRyYWdvdmVyXT1cImRyYWdvdmVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgc2NpRGltZW5zaW9uIChzY2lEaW1lbnNpb25DaGFuZ2UpPVwib25UYWJiYXJWaWV3cG9ydERpbWVuc2lvbkNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZpZXdJZCBvZiB2aWV3SWRzJCB8IGFzeW5jO1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgKm5nSWY9XCJ2aWV3dGFiID09PSBkcm9wVGFyZ2V0Vmlld1RhYlwiPjwvZGl2PlxuICAgIDx3Yi12aWV3LXRhYiAjdmlld3RhYlxuICAgICAgICAgICAgICAgICBbdmlld0lkXT1cInZpZXdJZFwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5kcmFnLXNvdXJjZV09XCJ2aWV3dGFiID09PSBkcmFnU291cmNlVmlld1RhYlwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXRhcmdldF09XCJ2aWV3dGFiID09PSBkcm9wVGFyZ2V0Vmlld1RhYlwiPlxuICAgIDwvd2Itdmlldy10YWI+XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBQbGFjZWhvbGRlciBlbGVtZW50IHRvIGdyb3cgdGhlIHZpZXdwb3J0IHRvIGZpdCB0aGUgZHJhZyBpbWFnZS4gLS0+XG4gIDxkaXYgY2xhc3M9XCJkcmFnLWltYWdlLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG48L3NjaS12aWV3cG9ydD5cbjx3Yi1wYXJ0LWFjdGlvbi1iYXIvPlxuPHdiLXZpZXctbGlzdC1idXR0b24vPlxuXG48IS0tIEVsZW1lbnQgZm9yIGluamVjdGluZyB0aGUgY29ybmVyIHJhZGl1cyBpbnRvIHRoZSBjb21wb25lbnQuIC0tPlxuPGRpdiBjbGFzcz1cInRhYi1jb3JuZXItcmFkaXVzXCIgI3RhYl9jb3JuZXJfcmFkaXVzPjwvZGl2PlxuPCEtLSBFbGVtZW50IGZvciBpbmplY3RpbmcgdGhlIHRhYmJhciBwYWRkaW5nIGludG8gdGhlIGNvbXBvbmVudC4gLS0+XG48ZGl2IGNsYXNzPVwicGFkZGluZy1pbmxpbmVcIiAjcGFkZGluZ19pbmxpbmU+PC9kaXY+XG4iXX0=
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC9wYXJ0LWJhci9wYXJ0LWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQtYmFyL3BhcnQtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBNkIsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xJLE9BQU8sRUFBYyxpQkFBaUIsRUFBMkIsTUFBTSxxREFBcUQsQ0FBQztBQUU3SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV0SCxPQUFPLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0YsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FB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a0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLElBQUk7cUJBQ0w7OzBCQXdFWSxNQUFNOzJCQUFDLFlBQVk7NlBBM0R4QixnQkFBZ0I7c0JBRHZCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBSXpELGtCQUFrQjtzQkFEekIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSXZDLHVCQUF1QjtzQkFEOUIsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSXRDLHFCQUFxQjtzQkFENUIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSWhDLGNBQWM7c0JBRHhCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQXFFdkIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0I3QixlQUFlO3NCQURyQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE4QzlCLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBOZ1pvbmUsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdUYWJDb21wb25lbnR9IGZyb20gJy4uL3ZpZXctdGFiL3ZpZXctdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7YW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlyc3RWYWx1ZUZyb20sIGZyb20sIGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29uc3RyYWluRm4sIFZpZXdEcmFnSW1hZ2VSZWN0LCBWaWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXJ9IGZyb20gJy4uLy4uL3ZpZXctZG5kL3ZpZXctdGFiLWRyYWctaW1hZ2UtcmVuZGVyZXIuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdEcmFnRGF0YSwgVmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi8uLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge2dldENzc1RyYW5zbGF0aW9uLCBzZXRDc3NDbGFzcywgc2V0Q3NzVmFyaWFibGUsIHVuc2V0Q3NzQ2xhc3MsIHVuc2V0Q3NzVmFyaWFibGV9IGZyb20gJy4uLy4uL2NvbW1vbi9kb20udXRpbCc7XG5pbXBvcnQge8m1V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vybV3b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge2ZpbHRlckFycmF5LCBtYXBBcnJheSwgb2JzZXJ2ZUluc2lkZSwgc3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTY2lWaWV3cG9ydENvbXBvbmVudH0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFJvdXRlcn0gZnJvbSAnLi4vLi4vcm91dGluZy/JtXdvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge1NjaURpbWVuc2lvbk1vZHVsZX0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UGFydEFjdGlvbkJhckNvbXBvbmVudH0gZnJvbSAnLi4vcGFydC1hY3Rpb24tYmFyL3BhcnQtYWN0aW9uLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi4vdmlldy1saXN0LWJ1dHRvbi92aWV3LWxpc3QtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtmcm9tRGltZW5zaW9uJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLWlkJztcbmltcG9ydCB7Vmlld0lkfSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcblxuLyoqXG4gKiBSZW5kZXJzIHZpZXcgdGFicyBhbmQgYWN0aW9ucyBvZiBhIHtAbGluayBXb3JrYmVuY2hQYXJ0fS5cbiAqXG4gKiBUYWJzIGFyZSBhZGRlZCB0byBhIHZpZXdwb3J0LCB3aGljaCB0aGUgdXNlciBjYW4gc2Nyb2xsIGlmIG5vdCBlbm91Z2ggc3BhY2UuIFRoZSB2aWV3cG9ydCBncm93cyB3aXRoIGl0cyB0YWJzLFxuICogYWxsb3dpbmcgYWN0aW9ucyB0byBiZSBwbGFjZWQgZGlyZWN0bHkgYWZ0ZXIgdGhlIGxhc3QgdGFiIG9yIG9uIHRoZSByaWdodCBzaWRlLlxuICpcbiAqICMjIERyYWcgRXZlbnRzXG4gKiBXZSB1c2UgbmF0aXZlIGRyYWcgYW5kIGRyb3AgdG8gc3VwcG9ydCBkcmFnZ2luZyB2aWV3cyB0byBvdGhlciB3aW5kb3dzLlxuICpcbiAqIEJ5IGxpc3RlbmluZyB0byBkcmFnIGV2ZW50cywgdGhlIHRhYmJhciB2aXN1YWxpemVzIHRhYnMgZHVyaW5nIGEgZHJhZyBvcGVyYXRpb24uIFRoZSBkcmFnIG9wZXJhdGlvbiBpcyBpbml0aWF0ZWQgaW4ge0BsaW5rIFZpZXdUYWJDb21wb25lbnR9LlxuICogLSBgZHJhZ3N0YXJ0YCBhbmQgYGRyYWdlbmRgIGV2ZW50cyBhcmUgZmlyZWQgaW4gdGhlIHRhYmJhciB3aGVyZSB0aGUgZHJhZyBvcGVyYXRpb24gd2FzIGluaXRpYXRlZC5cbiAqIC0gYGRyYWdlbnRlcmAgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIHRhYiBlbnRlcnMgdGhlIHRhYmJhci5cbiAqIC0gYGRyYWdvdmVyYCBldmVudHMgYXJlIGZpcmVkIHdoZW4gZHJhZ2dpbmcgYSB0YWIgb3ZlciB0aGUgdGFiYmFyLlxuICogLSBgZHJhZ2xlYXZlYCBldmVudCBpcyBmaXJlZCB3aGVuIGEgdGFiIGxlYXZlcyB0aGUgdGFiYmFyLlxuICogLSBgZHJvcGAgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBkcm9wcyBhIHRhYiBpbiB0aGUgdGFiYmFyLlxuICogLSBOb3RlIHRoYXQgYGRyYWdsZWF2ZWAgZXZlbnQgaXMgbm90IGZpcmVkIG9uIGRyb3AgYWN0aW9uLiBUaGVyZWZvcmUsIGFsd2F5cyBoYW5kbGUgYm90aCBldmVudHMsIGBkcmFnbGVhdmVgIGFuZCBgZHJvcGAgZXZlbnRzLCByZXNwZWN0aXZlbHkuXG4gKlxuICogIyMgVGVybWlub2xvZ3lcbiAqIC0gRHJhZyBzb3VyY2U6IFRhYiB0aGF0IGlzIGJlaW5nIGRyYWdnZWQuXG4gKiAtIERyb3AgdGFyZ2V0OiBUYWIgYmVmb3JlIHdoaWNoIHRvIGluc2VydCB0aGUgZHJhZyBzb3VyY2Ugb24gZHJvcCwgb3IgYGVuZGAgaWYgZHJvcHBpbmcgaXQgYWZ0ZXIgdGhlIGxhc3QgdGFiLlxuICogLSBEcmFnIGltYWdlOiAgSW1hZ2UgZm9yIHRoZSB0YWIgdG8gYmUgZHJhZ2dlZC4gV2UgZG8gbm90IHVzZSB0aGUgbmF0aXZlIGRyYWcgaW1hZ2Ugc3VwcG9ydCB0byBjb250cm9sIGRyYWcgaW1hZ2UgcG9zaXRpb24gYW5kIHNpemUsXG4gKiAgICAgICAgICAgICAgICBlLmcuLCB0byBzbmFwIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi1wYXJ0LWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJ0LWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcnQtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0ZvcixcbiAgICBBc3luY1BpcGUsXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gICAgU2NpRGltZW5zaW9uTW9kdWxlLFxuICAgIFZpZXdUYWJDb21wb25lbnQsXG4gICAgUGFydEFjdGlvbkJhckNvbXBvbmVudCxcbiAgICBWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0lmLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0QmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld3BvcnRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld1RhYnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWaWV3VGFiQ29tcG9uZW50W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ2VudGVyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdsZWF2ZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kcmFnZW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBkcmFnb3ZlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQFZpZXdDaGlsZChTY2lWaWV3cG9ydENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZn0pXG4gIHByaXZhdGUgX3ZpZXdwb3J0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoU2NpVmlld3BvcnRDb21wb25lbnQsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIF92aWV3cG9ydENvbXBvbmVudCE6IFNjaVZpZXdwb3J0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYl9jb3JuZXJfcmFkaXVzJywge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX3RhYkNvcm5lclJhZGl1c0VsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdwYWRkaW5nX2lubGluZScsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIF9wYWRkaW5nSW5saW5lRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oVmlld1RhYkNvbXBvbmVudClcbiAgcHVibGljIHNldCBpbmplY3RWaWV3VGFicyhxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxWaWV3VGFiQ29tcG9uZW50Pikge1xuICAgIHF1ZXJ5TGlzdC5jaGFuZ2VzXG4gICAgICAucGlwZShzdGFydFdpdGgocXVlcnlMaXN0KSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZShxdWVyeUxpc3QgPT4gdGhpcy5fdmlld1RhYnMkLm5leHQocXVlcnlMaXN0LnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdGFiIGJlZm9yZSB3aGljaCB0byBpbnNlcnQgdGhlIGRyYWcgc291cmNlIG9uIGRyb3AsIG9yIGBlbmRgIGlmIGRyb3BwaW5nIGl0IGFmdGVyIHRoZSBsYXN0IHRhYi5cbiAgICovXG4gIHB1YmxpYyBkcm9wVGFyZ2V0Vmlld1RhYjogVmlld1RhYkNvbXBvbmVudCB8ICdlbmQnIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdGFiIHdoZXJlIHRoZSBkcmFnIG9wZXJhdGlvbiB3YXMgc3RhcnRlZC5cbiAgICogVGhpcyByZWZlcmVuY2UgaXMgb25seSBzZXQgaWYgdGhlIGRyYWcgb3BlcmF0aW9uIHN0YXJ0ZWQgb24gYSB0YWIgb2YgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwdWJsaWMgZHJhZ1NvdXJjZVZpZXdUYWI6IFZpZXdUYWJDb21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVHJhbnNmZXIgZGF0YSBvZiB0aGUgdGFiIGJlaW5nIGRyYWdnZWQgb3ZlciB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgX2RyYWdEYXRhOiBWaWV3RHJhZ0RhdGEgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBfY29uc3RyYWluRm46IENvbnN0cmFpbkZuIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRhYmJhciBpbmRlbnRzIHdoZXJlIHRvIGRpc3BsYXkgdGhlIHJvdW5kZWQgYm90dG9tIGNvcm5lcnMgb2YgdGhlIGZpcnN0IGFuZCBsYXN0IHZpZXcgdGFiLlxuICAgKi9cbiAgcHJpdmF0ZSBfdGFiYmFySW5kZW50ID0ge1xuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IDAsXG4gIH07XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHdoZW4gdGhlIGRyYWcgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCwgaS5lLiwgdGFicyBoYXZlIHRyYW5zaXRpb25lZCB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgX2RyYWdBbmltYXRpb25TdGFibGUkID0gaW50ZXJ2YWwoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpXG4gICAgLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0RyYWdBbmltYXRpb25TdGFibGUoKSksXG4gICAgICBzdWJzY3JpYmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGNvbnRpbnVlRm4pKSxcbiAgICAgIG9ic2VydmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bihjb250aW51ZUZuKSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICk7XG5cbiAgY29uc3RydWN0b3IoaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlOiBXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IMm1V29ya2JlbmNoUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXI6IFZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcGFydDogybVXb3JrYmVuY2hQYXJ0LFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3RHJhZ1NlcnZpY2U6IFZpZXdEcmFnU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gICAgdGhpcy5faG9zdCA9IGhvc3QubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmRyYWdvdmVyJCA9IHRoaXMuX3ZpZXdEcmFnU2VydmljZS50YWJiYXJEcmFnT3ZlciQucGlwZShtYXAocGFydElkID0+IHBhcnRJZCA9PT0gdGhpcy5fcGFydC5pZCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5zdGFsbEFjdGl2ZVZpZXdTY3JvbGxlcigpO1xuICAgIHRoaXMuaW5zdGFsbFNjcm9sbGVkSW50b1ZpZXdVcGRhdGVyKCk7XG4gICAgdGhpcy5pbnN0YWxsVmlld0RyYWdMaXN0ZW5lcigpO1xuICAgIHRoaXMuaW5zdGFsbFRhYmJhckluZGVudFNpemVEZXRlY3RvcigpO1xuICAgIHRoaXMuaW5zdGFsbFZpZXdwb3J0Q2xpZW50U2l6ZURldGVjdG9yKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRvdWJsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3BhcnQuaXNJbk1haW5BcmVhKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUobGF5b3V0ID0+IGxheW91dC50b2dnbGVNYXhpbWl6ZWQoKSkudGhlbigpO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlld0lkcyQoKTogT2JzZXJ2YWJsZTxWaWV3SWRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJ0LnZpZXdJZHMkO1xuICB9XG5cbiAgcHVibGljIG9uVGFiYmFyVmlld3BvcnREaW1lbnNpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld3BvcnRDaGFuZ2UkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nIGEgdGFiIG9mIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uVmlld0RyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl92aWV3RHJhZ1NlcnZpY2UuaXNWaWV3RHJhZ0V2ZW50KGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYWdEYXRhID0gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRGF0YSE7XG4gICAgY29uc3QgZHJhZ1NvdXJjZUluZGV4ID0gdGhpcy5fdmlld1RhYnMuZmluZEluZGV4KHZpZXdUYWIgPT4gdmlld1RhYi52aWV3SWQgPT09IGRyYWdEYXRhLnZpZXdJZCk7XG4gICAgY29uc3QgZHJhZ1NvdXJjZVZpZXdUYWIgPSB0aGlzLl92aWV3VGFic1tkcmFnU291cmNlSW5kZXhdO1xuICAgIGNvbnN0IGRyb3BUYXJnZXRWaWV3VGFiID0gdGhpcy5fdmlld1RhYnNbZHJhZ1NvdXJjZUluZGV4ICsgMV0gPz8gJ2VuZCc7XG5cbiAgICAvLyBDb25zdHJhaW4gZnVuY3Rpb24gZm9yIHNuYXBwaW5nIHRoZSBkcmFnIGltYWdlIHRvIHRoZSB0YWJiYXIgd2hlbiBkcmFnZ2luZyBuZWFyIGl0LlxuICAgIHRoaXMuX2NvbnN0cmFpbkZuID0gdGhpcy5jcmVhdGVEcmFnSW1hZ2VDb25zdHJhaW5GbigpO1xuICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5zZXRDb25zdHJhaW5EcmFnSW1hZ2VSZWN0Rm4odGhpcy5fY29uc3RyYWluRm4pO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5zZXRUYWJiYXJEcmFnb3Zlcih0aGlzLl9wYXJ0LmlkKTtcblxuICAgIC8vIFdoZW4gc3RhcnQgZHJhZ2dpbmcgYSB2aWV3IHRhYiwgd2UgcmVtb3ZlIGl0IGZyb20gdGhlIHRhYmJhciBieSBzZXR0aW5nIGl0cyBgZGlzcGxheWAgdG8gYG5vbmVgIGFuZCByZW5kZXIgaXRzIGRyYWcgaW1hZ2UgaW4gYFZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlcmAgaW5zdGVhZC5cbiAgICAvLyBIb3dldmVyLCBkbyBub3QgdW5zZXQgdGhlIGBkaXNwbGF5YCBvZiB0aGUgZHJhZyBzb3VyY2UgZHVyaW5nIGBkcmFnc3RhcnRgLiBPdGhlcndpc2UsIHRoZSBuYXRpdmUgZHJhZyBvcGVyYXRpb24gd291bGQgYmUgY29ycnVwdGVkIGluIENocm9tZSBhbmQgRWRnZSAoYnV0IG5vdCBpbiBGaXJlZm94KS5cbiAgICBhbmltYXRpb25GcmFtZVNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB7XG4gICAgICB0aGlzLmRyYWdTb3VyY2VWaWV3VGFiID0gZHJhZ1NvdXJjZVZpZXdUYWI7XG4gICAgICB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID0gZHJvcFRhcmdldFZpZXdUYWI7IC8vIFNldCBkcm9wIHRhcmdldCB0byBhdm9pZCB0YWIgYW5pbWF0aW9uLlxuICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwge1xuICAgICAgICAnLS3JtXBhcnQtYmFyLWRyYWctc291cmNlLXdpZHRoJzogYCR7ZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICAgICAgJy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7ZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gV2hlbiBkcmFnZ2luZyBhIHRhYiB2ZXJ5IHF1aWNrbHkgb3V0IG9mIHRoaXMgdGFiYmFyLCBvbmx5IHRoZSBgZHJhZ3N0YXJ0YCBldmVudCBnZXRzIGZpcmVkLCBidXQgbm90IHRoZSBgZHJhZ2VudGVyYCBldmVudC5cbiAgICAvLyBUaGVyZWZvcmUsIHdlIHN1YnNjcmliZSB0byBnbG9iYWwgYGRyYWdlbnRlcmAgZXZlbnRzIGFuZCBtYW51YWxseSBpbnZva2UgYG9uVGFiYmFyRHJhZ0xlYXZlYCB0byBjb3JyZWN0bHkgZGlzcGxheSB0aGUgdGFicyBhbmQgdGhlIGFjdGl2ZSB2aWV3LlxuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZyQod2luZG93LCB7ZXZlbnRUeXBlOiBbJ2RyYWdlbnRlciddfSlcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLl9kcmFnZW5kJCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdXNlciBjb250aW51ZXMgZHJhZ2dpbmcgb3ZlciB0aGlzIHRhYmJhci5cbiAgICAgICAgLy8gSWYgbm90LCB0aGUgdXNlciBoYXMgcXVpY2tseSBkcmFnZ2VkIHRoZSB0YWIgb3V0IG9mIHRoZSB0YWJiYXIgYW5kIHdlICBtYW51YWxseSBjYWxsIGBvblRhYmJhckRyYWdMZWF2ZWAuXG4gICAgICAgIGlmICgodGhpcy5faG9zdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihldmVudC50YXJnZXQgYXMgRWxlbWVudCkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJhZ0xlYXZlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgZW5kcyBkcmFnZ2luZyBhIHRhYiBvZiB0aGlzIHRhYmJhci5cbiAgICpcbiAgICogSW52b2tlZCBvbmx5IGluIHRoZSB0YWJiYXIgd2hlcmUgdGhlIGRyYWcgb3BlcmF0aW9uIHN0YXJ0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZHJhZyBvcGVyYXRpb24gd2FzIGNvbXBsZXRlZCBvciBjYW5jZWxlZC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnKVxuICBwdWJsaWMgb25WaWV3RHJhZ0VuZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnZW5kJC5uZXh0KCk7XG4gICAgdGhpcy51bnNldERyYWdTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgZHJhZ3MgYSB0YWIgaW50byB0aGlzIHRhYmJhci5cbiAgICovXG4gIHByaXZhdGUgb25UYWJiYXJEcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdlbnRlciQubmV4dCgpO1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5zZXRUYWJiYXJEcmFnb3Zlcih0aGlzLl9wYXJ0LmlkKTtcbiAgICB0aGlzLl9kcmFnRGF0YSA9IHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3RHJhZ0RhdGEhO1xuXG4gICAgLy8gQ29uc3RyYWluIGZ1bmN0aW9uIGZvciBzbmFwcGluZyB0aGUgZHJhZyBpbWFnZSB0byB0aGUgdGFiYmFyIHdoZW4gZHJhZ2dpbmcgbmVhciBpdC5cbiAgICBpZiAoIXRoaXMuX2NvbnN0cmFpbkZuKSB7XG4gICAgICB0aGlzLl9jb25zdHJhaW5GbiA9IHRoaXMuY3JlYXRlRHJhZ0ltYWdlQ29uc3RyYWluRm4oKTtcbiAgICAgIHRoaXMuX3ZpZXdUYWJEcmFnSW1hZ2VSZW5kZXJlci5zZXRDb25zdHJhaW5EcmFnSW1hZ2VSZWN0Rm4odGhpcy5fY29uc3RyYWluRm4pO1xuICAgIH1cblxuICAgIC8vIExvY2F0ZSBkcm9wIHRhcmdldCB0byBoYXZlIGEgbmljZSBhbmltYXRpb24gZm9yIHRoZSBkcmFnIHNvdXJjZSBwbGFjZWhvbGRlci5cbiAgICB0aGlzLmRyb3BUYXJnZXRWaWV3VGFiID0gdGhpcy5jb21wdXRlRHJvcFRhcmdldChldmVudCk7XG5cbiAgICAvLyBTZXQgdGhlIENTUyBjbGFzcyAnZHJhZy1lbnRlcicgdG8gaW5kaWNhdGUgZW50ZXJpbmcgdGhlIHRhYmJhci5cbiAgICBzZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnZHJhZy1lbnRlcicsICdkcmFnLW92ZXInKTtcbiAgICB0aGlzLl9kcmFnQW5pbWF0aW9uU3RhYmxlJFxuICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuX2RyYWdlbnRlciQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHtjb21wbGV0ZTogKCkgPT4gdW5zZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnZHJhZy1lbnRlcicpfSk7XG5cbiAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7XG4gICAgICAnLS3JtXBhcnQtYmFyLWRyYWctc291cmNlLXdpZHRoJzogYCR7dGhpcy5fZHJhZ0RhdGEudmlld1RhYldpZHRofXB4YCxcbiAgICAgICctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCc6IGAke3RoaXMuX2RyYWdEYXRhLnZpZXdUYWJXaWR0aH1weGAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgdXNlciBkcmFncyBhIHRhYiBvdXQgb2YgdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwcml2YXRlIG9uVGFiYmFyRHJhZ0xlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdsZWF2ZSQubmV4dCgpO1xuXG4gICAgLy8gU2V0IHRoZSBDU1MgY2xhc3MgJ2RyYWctbGVhdmUnIHRvIGluZGljYXRlIGxlYXZpbmcgdGhlIHRhYmJhci5cbiAgICBzZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnZHJhZy1sZWF2ZScpO1xuICAgIHRoaXMuX2RyYWdBbmltYXRpb25TdGFibGUkXG4gICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5fZHJhZ2xlYXZlJCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe2NvbXBsZXRlOiAoKSA9PiB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLWxlYXZlJyl9KTtcblxuICAgIHRoaXMudW5zZXREcmFnU3RhdGUoe3Vuc2V0RHJhZ1NvdXJjZTogZmFsc2V9KTtcblxuICAgIC8vIEFjdGl2YXRlIHRoZSB2aWV3IG5leHQgdG8gdGhlIHZpZXcgYmVpbmcgZHJhZ2dlZCBvdXQgb2YgdGhpcyB0YWJiYXIuIEJ1dCwgZG8gbm90IHB1c2ggdGhlIG5hdmlnYXRpb24gaW50byBicm93c2luZyBoaXN0b3J5IHN0YWNrLlxuICAgIGlmICh0aGlzLmRyYWdTb3VyY2VWaWV3VGFiICYmIHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIuYWN0aXZlKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUobGF5b3V0ID0+IGxheW91dC5hY3RpdmF0ZUFkamFjZW50Vmlldyh0aGlzLmRyYWdTb3VyY2VWaWV3VGFiIS52aWV3SWQpLCB7c2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlfSkudGhlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCB3aGlsZSB0aGUgdXNlciBpcyBkcmFnZ2luZyBhIHRhYiBvdmVyIHRoaXMgdGFiYmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBvblRhYmJhckRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBhbGxvdyB2aWV3IGRyb3BcblxuICAgIC8vIExvY2F0ZSB0aGUgdGFiIG92ZXIgd2hpY2ggdGhlIHVzZXIgaXMgZHJhZ2dpbmcgdGhlIHRhYiwgYnV0IG9ubHkgYWZ0ZXIgcGVuZGluZyB0cmFuc2l0aW9ucyBoYXZlIGVuZGVkIHRvIHByZXZlbnQgdGFicyBmcm9tIHNsaWRpbmcgYmFjayBhbmQgZm9ydGguXG4gICAgaWYgKHRoaXMuaXNEcmFnQW5pbWF0aW9uU3RhYmxlKCkpIHtcbiAgICAgIHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPSB0aGlzLmNvbXB1dGVEcm9wVGFyZ2V0KGV2ZW50KTtcbiAgICAgIC8vIFN5bmNocm9uaXplIHRoZSB3aWR0aCBvZiB0aGUgZHJhZyBzb3VyY2UgcGxhY2Vob2xkZXIgd2l0aCB0aGUgZHJhZyBwb2ludGVyIHBvc2l0aW9uIHRvIG1vdmUgYWN0aW9ucyBhbG9uZyB3aXRoIHRoZSBwb2ludGVyLlxuICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgeyctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCc6IGAke3RoaXMuY2FsY3VsYXRlRHJhZ0ltYWdlUGxhY2Vob2xkZXJXaWR0aChldmVudCl9cHhgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHdoZW4gdGhlIHVzZXIgZHJvcHMgYSB0YWIgaW4gdGhpcyB0YWJiYXIuXG4gICAqL1xuICBwcml2YXRlIG9uVGFiYmFyRHJvcCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtcbiAgICAgIHNvdXJjZToge1xuICAgICAgICB3b3JrYmVuY2hJZDogdGhpcy5fZHJhZ0RhdGEhLndvcmtiZW5jaElkLFxuICAgICAgICBwYXJ0SWQ6IHRoaXMuX2RyYWdEYXRhIS5wYXJ0SWQsXG4gICAgICAgIHZpZXdJZDogdGhpcy5fZHJhZ0RhdGEhLnZpZXdJZCxcbiAgICAgICAgYWx0ZXJuYXRpdmVWaWV3SWQ6IHRoaXMuX2RyYWdEYXRhIS5hbHRlcm5hdGl2ZVZpZXdJZCxcbiAgICAgICAgdmlld1VybFNlZ21lbnRzOiB0aGlzLl9kcmFnRGF0YSEudmlld1VybFNlZ21lbnRzLFxuICAgICAgICBuYXZpZ2F0aW9uSGludDogdGhpcy5fZHJhZ0RhdGEhLm5hdmlnYXRpb25IaW50LFxuICAgICAgICBjbGFzc0xpc3Q6IHRoaXMuX2RyYWdEYXRhIS5jbGFzc0xpc3QsXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiB7XG4gICAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgICAgcG9zaXRpb246IHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPT09ICdlbmQnID8gJ2VuZCcgOiB0aGlzLl92aWV3VGFicy5pbmRleE9mKHRoaXMuZHJvcFRhcmdldFZpZXdUYWIhKSxcbiAgICAgICAgZWxlbWVudElkOiB0aGlzLl9wYXJ0LmlkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFdhaXQgdW5kb2luZyB0aGUgZHJhZyBzdGF0ZSB1bnRpbCBmbHVzaGVkIHRhYiBjaGFuZ2VzIHRvIHRoZSBET00sIGkuZS4sIGFmdGVyIHRoZSBsYXlvdXQgcm91dGluZyBjeWNsZSBjb21wbGV0ZXMuXG4gICAgLy8gSWYgd2Ugd2VyZSB0byB1bmRvIHRoZSBkcmFnIHN0YXRlIGltbWVkaWF0ZWx5IGR1cmluZyB0aGUgY291cnNlIG9mIHRoZSBkcm9wIGV2ZW50LCB0aGUgdGFiIGxheW91dCB3b3VsZCB0ZW1wb3JhcmlseVxuICAgIC8vIHJldmVydCB0byB0aGUgc3RhdGUgYmVmb3JlIHRoZSBkcmFnIG9wZXJhdGlvbiwgcmVzdWx0aW5nIGluIGFuIHVnbHkgZmxpY2tlci5cbiAgICBmaXJzdFZhbHVlRnJvbSh0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLm9uTGF5b3V0Q2hhbmdlJCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLnVuc2V0RHJhZ1N0YXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9jYXRlcyB0aGUgdGFiIGJlZm9yZSB3aGljaCB0aGUgZHJhZ2dlZCB0YWIgaXMgdG8gYmUgaW5zZXJ0ZWQgd2hlbiBpdCBpcyBkcm9wcGVkLiBEcmFnZ2luZyBiZXlvbmQgdGhlIGxhc3QgdGFiIHJldHVybnMgYGVuZGAuXG4gICAqL1xuICBwdWJsaWMgY29tcHV0ZURyb3BUYXJnZXQoZXZlbnQ6IERyYWdFdmVudCk6IFZpZXdUYWJDb21wb25lbnQgfCAnZW5kJyB7XG4gICAgY29uc3Qgdmlld0RyYWdJbWFnZVJlY3QgPSB0aGlzLl92aWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXIuY2FsY3VsYXRlRHJhZ0ltYWdlUmVjdCh0aGlzLl9kcmFnRGF0YSEsIGV2ZW50KTtcbiAgICBjb25zdCB2aWV3VGFicyA9IHRoaXMuX3ZpZXdUYWJzLmZpbHRlcih2aWV3VGFiID0+IHZpZXdUYWIgIT09IHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIpO1xuXG4gICAgZm9yIChjb25zdCB2aWV3VGFiIG9mIHZpZXdUYWJzKSB7XG4gICAgICBjb25zdCB2aWV3VGFiUmVjdCA9IHZpZXdUYWIuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHZpZXdUYWJNaWRkbGUgPSB2aWV3VGFiUmVjdC5sZWZ0ICsgKHZpZXdUYWJSZWN0LndpZHRoIC8gMik7XG4gICAgICBpZiAodmlld0RyYWdJbWFnZVJlY3QubGVmdCA8IHZpZXdUYWJNaWRkbGUgJiYgKHZpZXdUYWIgIT09IHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgfHwgdmlld0RyYWdJbWFnZVJlY3QucmlnaHQgPCB2aWV3VGFiTWlkZGxlKSkge1xuICAgICAgICByZXR1cm4gdmlld1RhYjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICdlbmQnO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGZ1bmN0aW9uIGZvciBzbmFwcGluZyB0aGUgZHJhZyBpbWFnZSB0byB0aGUgdGFiYmFyIHdoZW4gZHJhZ2dpbmcgbmVhciBpdC5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHJhZ0ltYWdlQ29uc3RyYWluRm4oKTogQ29uc3RyYWluRm4ge1xuICAgIGNvbnN0IGhvc3RMZWZ0ID0gdGhpcy5faG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuICAgIGNvbnN0IG1heFZpZXdwb3J0V2lkdGggPSB0aGlzLmNhbGN1bGF0ZU1heFZpZXdwb3J0V2lkdGgoKTtcbiAgICByZXR1cm4gKHJlY3Q6IFZpZXdEcmFnSW1hZ2VSZWN0KTogVmlld0RyYWdJbWFnZVJlY3QgPT4ge1xuICAgICAgY29uc3Qgdmlld3BvcnRCb3VuZGluZ0JveCA9IHRoaXMuX3ZpZXdwb3J0RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgcmV0dXJuIG5ldyBWaWV3RHJhZ0ltYWdlUmVjdCh7XG4gICAgICAgIHg6IE1hdGgubWluKE1hdGgubWF4KGhvc3RMZWZ0ICsgdGhpcy5fdGFiYmFySW5kZW50LmxlZnQsIHJlY3QueCksIGhvc3RMZWZ0ICsgbWF4Vmlld3BvcnRXaWR0aCAtIHJlY3Qud2lkdGggLSB0aGlzLl90YWJiYXJJbmRlbnQucmlnaHQpLFxuICAgICAgICB5OiB2aWV3cG9ydEJvdW5kaW5nQm94LnRvcCxcbiAgICAgICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgICAgIGhlaWdodDogdmlld3BvcnRCb3VuZGluZ0JveC5oZWlnaHQsIC8vIGZpdCBpbnRvIHRhYmJhciwgZS5nLiwgd2hlbiBkcmFnZ2luZyBhIHRhYiBpbnRvIGEgdGFiYmFyIG9mIGEgZGlmZmVyZW50IGhlaWdodFxuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSB0YWJiYXIgdmlld3BvcnQgYmVmb3JlIGFuIG92ZXJmbG93IHdvdWxkIG9jY3VyLCB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNvbnN0cmFpbiB0aGUgZHJhZyBpbWFnZS5cbiAgICpcbiAgICogVG8gY2FsY3VsYXRlIHRoZSBlZmZlY3RpdmUgd2lkdGgsIHdlIG5lZWQgdG8gc2ltdWxhdGUgYW4gb3ZlcmZsb3cgaW4gdGhlIERPTS4gVGhlcmVmb3JlLCBjYWxsIHRoaXMgbWV0aG9kIG9ubHkgZnJvbSBgZHJhZ3N0YXJ0YCBhbmQgbm90XG4gICAqIGZyb20gYGRyYWdvdmVyYCBhbmQgZGlzYWJsZSBhbmltYXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVNYXhWaWV3cG9ydFdpZHRoKCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFdpZHRoID0gdGhpcy5faG9zdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctLcm1cGFydC1iYXItZHJhZy1pbWFnZS1wbGFjZWhvbGRlci13aWR0aCcpO1xuXG4gICAgLy8gRGlzYWJsZSBhbmltYXRpb25zIGR1cmluZyBjYWxjdWxhdGlvbiBhbmQgZm9yY2UgdGhlIHZpZXdwb3J0IHRvIG92ZXJmbG93LlxuICAgIHNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdjYWxjdWxhdGluZy1tYXgtdmlld3BvcnQtd2lkdGgnKTtcbiAgICBzZXRDc3NWYXJpYWJsZSh0aGlzLl9ob3N0LCB7Jy0tybVwYXJ0LWJhci1kcmFnLWltYWdlLXBsYWNlaG9sZGVyLXdpZHRoJzogYCR7dGhpcy5faG9zdC5jbGllbnRXaWR0aH1weGB9KTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsIHsnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnOiBjdXJyZW50V2lkdGggfHwgbnVsbH0pO1xuICAgICAgdW5zZXRDc3NDbGFzcyh0aGlzLl9ob3N0LCAnY2FsY3VsYXRpbmctbWF4LXZpZXdwb3J0LXdpZHRoJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIGZvciB0aGUgZHJhZyBpbWFnZSBwbGFjZWhvbGRlci5cbiAgICpcbiAgICogLSBXaGVuIGRyYWdnaW5nIG92ZXIgdGFicywgdGhlIHdpZHRoIGlzIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgZHJhZyBzb3VyY2UuXG4gICAqIC0gV2hlbiBkcmFnZ2luZyB0byB0aGUgcmlnaHQgb2YgdGhlIGxhc3QgdGFiLCB0aGUgd2lkdGggb2YgdGhlIHBsYWNlaG9sZGVyIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlXG4gICAqICAgbGFzdCB0YWIgYW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJhZ292ZXIgZXZlbnQuIEFwcGx5aW5nIHRoaXMgd2lkdGggd2lsbCByZXNpemUgdGhlIHZpZXdwb3J0LCBtb3ZpbmcgcGFydCBhY3Rpb25zIGFsb25nXG4gICAqICAgd2l0aCB0aGUgZHJhZ292ZXIgZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZURyYWdJbWFnZVBsYWNlaG9sZGVyV2lkdGgoZXZlbnQ6IERyYWdFdmVudCk6IG51bWJlciB7XG4gICAgY29uc3Qgdmlld0RyYWdJbWFnZVJlY3QgPSB0aGlzLl92aWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXIuY2FsY3VsYXRlRHJhZ0ltYWdlUmVjdCh0aGlzLl9kcmFnRGF0YSEsIGV2ZW50KTtcbiAgICBjb25zdCBsYXN0Vmlld1RhYiA9IHRoaXMuX3ZpZXdUYWJzLmZpbHRlcih2aWV3VGFiID0+IHZpZXdUYWIgIT09IHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIpLmF0KC0xKTtcbiAgICBjb25zdCBsYXN0Vmlld1RhYlJpZ2h0ID0gbGFzdFZpZXdUYWI/Lmhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgPz8gdGhpcy5faG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgdGhpcy5fdGFiYmFySW5kZW50LmxlZnQ7XG4gICAgcmV0dXJuIE1hdGgubWF4KGxhc3RWaWV3VGFiUmlnaHQgKyB2aWV3RHJhZ0ltYWdlUmVjdC53aWR0aCwgdmlld0RyYWdJbWFnZVJlY3QucmlnaHQpIC0gbGFzdFZpZXdUYWJSaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBDU1MgYW5pbWF0aW9ucyBoYXZlIGZpbmlzaGVkIHdoZW4gZHJhZ2dpbmcgYSB0YWIgb3ZlciB0aGUgdGFiYmFyLlxuICAgKiBUaGUgYW5pbWF0aW9uIGlzIGNvbnNpZGVyZWQgc3RhYmxlIHdoZW4gYWxsIHRhYnMgaGF2ZSBtb3ZlZCB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgaXNEcmFnQW5pbWF0aW9uU3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYikge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdUYWJzLmV2ZXJ5KHZpZXdUYWIgPT4gZ2V0Q3NzVHJhbnNsYXRpb24odmlld1RhYi5ob3N0KS50cmFuc2xhdGVYID09PSAnbm9uZScpO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdUYWJzID0gdGhpcy5fdmlld1RhYnMuZmlsdGVyKHZpZXdUYWIgPT4gdmlld1RhYiAhPT0gdGhpcy5kcmFnU291cmNlVmlld1RhYik7XG4gICAgY29uc3QgZHJvcFRhcmdldEluZGV4ID0gdGhpcy5kcm9wVGFyZ2V0Vmlld1RhYiA9PT0gJ2VuZCcgPyB2aWV3VGFicy5sZW5ndGggOiB2aWV3VGFicy5pbmRleE9mKHRoaXMuZHJvcFRhcmdldFZpZXdUYWIhKTtcbiAgICBjb25zdCBkcmFnU291cmNlV2lkdGggPSB0aGlzLl9kcmFnRGF0YSEudmlld1RhYldpZHRoO1xuXG4gICAgcmV0dXJuIHZpZXdUYWJzLmV2ZXJ5KCh2aWV3VGFiLCBpKSA9PiB7XG4gICAgICBjb25zdCB2aWV3VGFiVHJhbnNsYXRlWCA9IGdldENzc1RyYW5zbGF0aW9uKHZpZXdUYWIuaG9zdCkudHJhbnNsYXRlWDtcbiAgICAgIC8vIEV4cGVjdCB0YWJzIHByZWNlZGluZyB0aGUgZHJvcCB0YXJnZXQgbm90IHRvIGJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LlxuICAgICAgaWYgKGkgPCBkcm9wVGFyZ2V0SW5kZXggJiYgdmlld1RhYlRyYW5zbGF0ZVggIT09ICdub25lJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBFeHBlY3QgZHJvcCB0YXJnZXQgYW5kIHRhYnMgZm9sbG93aW5nIHRoZSBkcm9wIHRhcmdldCB0byBiZSBzaGlmdGVkIHRvIHRoZSByaWdodC5cbiAgICAgIGlmIChpID49IGRyb3BUYXJnZXRJbmRleCAmJiBNYXRoLmZsb29yKE51bWJlcih2aWV3VGFiVHJhbnNsYXRlWCkpICE9PSBNYXRoLmZsb29yKGRyYWdTb3VyY2VXaWR0aCkpIHsgLy8gY29tcGFyZSBmbG9vcmVkIG51bWJlcnMgYmVjYXVzZSBgdHJhbnNsYXRlWGAgaXMgbm90IHByZWNpc2VcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuc2V0RHJhZ1N0YXRlKG9wdGlvbnM/OiB7dW5zZXREcmFnU291cmNlPzogYm9vbGVhbn0pOiB2b2lkIHtcbiAgICBpZiAob3B0aW9ucz8udW5zZXREcmFnU291cmNlID8/IHRydWUpIHtcbiAgICAgIHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZHJvcFRhcmdldFZpZXdUYWIgPSBudWxsO1xuICAgIHRoaXMuX2RyYWdEYXRhID0gbnVsbDtcbiAgICB0aGlzLl92aWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXIudW5zZXRDb25zdHJhaW5EcmFnSW1hZ2VSZWN0Rm4odGhpcy5fY29uc3RyYWluRm4hKTtcbiAgICB0aGlzLl9jb25zdHJhaW5GbiA9IG51bGw7XG5cbiAgICB1bnNldENzc0NsYXNzKHRoaXMuX2hvc3QsICdkcmFnLW92ZXInKTtcbiAgICB1bnNldENzc1ZhcmlhYmxlKHRoaXMuX2hvc3QsICctLcm1cGFydC1iYXItZHJhZy1zb3VyY2Utd2lkdGgnLCAnLS3JtXBhcnQtYmFyLWRyYWctaW1hZ2UtcGxhY2Vob2xkZXItd2lkdGgnKTtcbiAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UudW5zZXRUYWJiYXJEcmFnb3Zlcih0aGlzLl9wYXJ0LmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF92aWV3VGFicygpOiBWaWV3VGFiQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLl92aWV3VGFicyQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgdGFiIG9mIHRoZSBhY3RpdmUgdmlldyBpbnRvIHZpZXcuXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxBY3RpdmVWaWV3U2Nyb2xsZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld1RhYnMkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHZpZXdUYWJzID0+IGNvbWJpbmVMYXRlc3Qodmlld1RhYnMubWFwKHZpZXdUYWIgPT4gdmlld1RhYi52aWV3LmFjdGl2ZSQpKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBUaGVyZSBtYXkgYmUgbm8gYWN0aXZlIHZpZXcgaW4gdGhlIHRhYmJhciwgZS5nLiwgd2hlbiBkcmFnZ2luZyB0aGUgbGFzdCB2aWV3IG91dCBvZiB0aGUgdGFiYmFyLlxuICAgICAgICBjb25zdCBhY3RpdmVWaWV3VGFiID0gdGhpcy5fdmlld1RhYnMuZmluZCh2aWV3VGFiID0+IHZpZXdUYWIuYWN0aXZlKTtcbiAgICAgICAgaWYgKGFjdGl2ZVZpZXdUYWIgJiYgIXRoaXMuX3ZpZXdwb3J0Q29tcG9uZW50LmlzRWxlbWVudEluVmlldyhhY3RpdmVWaWV3VGFiLmhvc3QsICdmdWxsJykpIHtcbiAgICAgICAgICB0aGlzLl92aWV3cG9ydENvbXBvbmVudC5zY3JvbGxJbnRvVmlldyhhY3RpdmVWaWV3VGFiLmhvc3QpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHtAbGluayDJtVdvcmtiZW5jaFZpZXd9IHdoZW4gaXRzIHRhYiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxTY3JvbGxlZEludG9WaWV3VXBkYXRlcigpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5fdmlld1RhYnMpLFxuICAgICAgICBmaWx0ZXJBcnJheSh2aWV3VGFiID0+IHZpZXdUYWIgIT09IHRoaXMuZHJhZ1NvdXJjZVZpZXdUYWIpLCAvLyBza2lwIGRyYWcgc291cmNlIGFzIGFsd2F5cyBzY3JvbGxlZCBvdXQgb2Ygdmlld1xuICAgICAgICBtZXJnZU1hcCh2aWV3VGFicyA9PiBmcm9tKHZpZXdUYWJzKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodmlld1RhYiA9PiB7XG4gICAgICAgIHZpZXdUYWIudmlldy5zY3JvbGxlZEludG9WaWV3ID0gdGhpcy5fdmlld3BvcnRDb21wb25lbnQuaXNFbGVtZW50SW5WaWV3KHZpZXdUYWIuaG9zdCwgJ2Z1bGwnKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsVmlld0RyYWdMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWckKHRoaXMuX2hvc3QpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2RyYWdlbnRlcic6XG4gICAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJhZ0VudGVyKGV2ZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2RyYWdvdmVyJzpcbiAgICAgICAgICAgIHRoaXMub25UYWJiYXJEcmFnT3ZlcihldmVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkcmFnbGVhdmUnOlxuICAgICAgICAgICAgdGhpcy5vblRhYmJhckRyYWdMZWF2ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZHJvcCc6XG4gICAgICAgICAgICB0aGlzLm9uVGFiYmFyRHJvcCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsVmlld3BvcnRDbGllbnRTaXplRGV0ZWN0b3IoKTogdm9pZCB7XG4gICAgZnJvbURpbWVuc2lvbiQodGhpcy5fdmlld3BvcnRDb21wb25lbnQudmlld3BvcnRDbGllbnRFbGVtZW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bihmbikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJC5uZXh0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsVGFiYmFySW5kZW50U2l6ZURldGVjdG9yKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW2Zyb21EaW1lbnNpb24kKHRoaXMuX3RhYkNvcm5lclJhZGl1c0VsZW1lbnQubmF0aXZlRWxlbWVudCksIGZyb21EaW1lbnNpb24kKHRoaXMuX3BhZGRpbmdJbmxpbmVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoZm4gPT4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICBtYXBBcnJheShkaW1lbnNpb24gPT4gZGltZW5zaW9uLmNsaWVudFdpZHRoKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3RhYkNvcm5lclJhZGl1cywgcGFkZGluZ0lubGluZV0pID0+IHtcbiAgICAgICAgdGhpcy5fdGFiYmFySW5kZW50ID0ge2xlZnQ6IHRhYkNvcm5lclJhZGl1cyArIHBhZGRpbmdJbmxpbmUsIHJpZ2h0OiB0YWJDb3JuZXJSYWRpdXMgKyBwYWRkaW5nSW5saW5lfTtcbiAgICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgeyctLcm1cGFydC1iYXItaW5kZW50LWxlZnQnOiBgJHt0aGlzLl90YWJiYXJJbmRlbnQubGVmdH1weGB9KTtcbiAgICAgICAgc2V0Q3NzVmFyaWFibGUodGhpcy5faG9zdCwgeyctLcm1cGFydC1iYXItaW5kZW50LXJpZ2h0JzogYCR7dGhpcy5fdGFiYmFySW5kZW50LnJpZ2h0fXB4YH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxzY2ktdmlld3BvcnQgY2xhc3M9XCJ0YWJiYXJcIiBzY3JvbGxiYXJTdHlsZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgIFtjbGFzcy5kcmFnb3Zlcl09XCJkcmFnb3ZlciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIHNjaURpbWVuc2lvbiAoc2NpRGltZW5zaW9uQ2hhbmdlKT1cIm9uVGFiYmFyVmlld3BvcnREaW1lbnNpb25DaGFuZ2UoKVwiXG4gICAgICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoKVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2aWV3SWQgb2Ygdmlld0lkcyQgfCBhc3luYztcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiICpuZ0lmPVwidmlld3RhYiA9PT0gZHJvcFRhcmdldFZpZXdUYWJcIj48L2Rpdj5cbiAgICA8d2Itdmlldy10YWIgI3ZpZXd0YWJcbiAgICAgICAgICAgICAgICAgW3ZpZXdJZF09XCJ2aWV3SWRcIlxuICAgICAgICAgICAgICAgICBbY2xhc3MuZHJhZy1zb3VyY2VdPVwidmlld3RhYiA9PT0gZHJhZ1NvdXJjZVZpZXdUYWJcIlxuICAgICAgICAgICAgICAgICBbY2xhc3MuZHJvcC10YXJnZXRdPVwidmlld3RhYiA9PT0gZHJvcFRhcmdldFZpZXdUYWJcIj5cbiAgICA8L3diLXZpZXctdGFiPlxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gUGxhY2Vob2xkZXIgZWxlbWVudCB0byBncm93IHRoZSB2aWV3cG9ydCB0byBmaXQgdGhlIGRyYWcgaW1hZ2UuIC0tPlxuICA8ZGl2IGNsYXNzPVwiZHJhZy1pbWFnZS1wbGFjZWhvbGRlclwiPjwvZGl2PlxuPC9zY2ktdmlld3BvcnQ+XG48d2ItcGFydC1hY3Rpb24tYmFyLz5cbjx3Yi12aWV3LWxpc3QtYnV0dG9uLz5cblxuPCEtLSBFbGVtZW50IGZvciBpbmplY3RpbmcgdGhlIGNvcm5lciByYWRpdXMgaW50byB0aGUgY29tcG9uZW50LiAtLT5cbjxkaXYgY2xhc3M9XCJ0YWItY29ybmVyLXJhZGl1c1wiICN0YWJfY29ybmVyX3JhZGl1cz48L2Rpdj5cbjwhLS0gRWxlbWVudCBmb3IgaW5qZWN0aW5nIHRoZSB0YWJiYXIgcGFkZGluZyBpbnRvIHRoZSBjb21wb25lbnQuIC0tPlxuPGRpdiBjbGFzcz1cInBhZGRpbmctaW5saW5lXCIgI3BhZGRpbmdfaW5saW5lPjwvZGl2PlxuIl19
|
|
@@ -25,11 +25,11 @@ export class PartPortalPipe {
|
|
|
25
25
|
}
|
|
26
26
|
return this._partRegistry.get(partId).createPortalFromInjectionContext(this._injector);
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
29
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartPortalPipe, deps: [{ token: i1.WorkbenchPartRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
29
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: PartPortalPipe, isStandalone: true, name: "wbPartPortal" }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartPortalPipe, decorators: [{
|
|
32
32
|
type: Pipe,
|
|
33
33
|
args: [{ name: 'wbPartPortal', standalone: true }]
|
|
34
34
|
}], ctorParameters: () => [{ type: i1.WorkbenchPartRegistry }, { type: i0.Injector }] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1wb3J0YWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3BhcnQvcGFydC1wb3J0YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBVyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7QUFNNUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsYUFBb0MsRUFBVSxTQUFtQjtRQUFqRSxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQ3JGLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBcUI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekYsQ0FBQzs4R0FYVSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7SW5qZWN0b3IsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0UmVnaXN0cnl9IGZyb20gJy4vd29ya2JlbmNoLXBhcnQucmVnaXN0cnknO1xuaW1wb3J0IHR5cGUge1BhcnRDb21wb25lbnR9IGZyb20gJy4vcGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUge01haW5BcmVhTGF5b3V0Q29tcG9uZW50fSBmcm9tICcuLi9sYXlvdXQvbWFpbi1hcmVhLWxheW91dC9tYWluLWFyZWEtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbXBvbmVudFBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbi8qKlxuICogQ29uc3RydWN0cyB0aGUgcG9ydGFsIGZvciB0aGUgZ2l2ZW4gcGFydCBpbiB0aGUgY2FsbGluZyBpbmplY3Rpb24gY29udGV4dCxcbiAqIG9yIHRocm93cyBhbiBlcnJvciBpZiB0aGUgcGFydCBpcyBub3QgcmVnaXN0ZXJlZC5cbiAqL1xuQFBpcGUoe25hbWU6ICd3YlBhcnRQb3J0YWwnLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYXJ0UG9ydGFsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BhcnRSZWdpc3RyeTogV29ya2JlbmNoUGFydFJlZ2lzdHJ5LCBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0ocGFydElkOiBzdHJpbmcgfCBudWxsKTogQ29tcG9uZW50UG9ydGFsPFBhcnRDb21wb25lbnQgfCBNYWluQXJlYUxheW91dENvbXBvbmVudD4gfCBudWxsIHtcbiAgICBpZiAoIXBhcnRJZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BhcnRSZWdpc3RyeS5nZXQocGFydElkKS5jcmVhdGVQb3J0YWxGcm9tSW5qZWN0aW9uQ29udGV4dCh0aGlzLl9pbmplY3Rvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -110,10 +110,10 @@ export class PartComponent {
|
|
|
110
110
|
ngOnDestroy() {
|
|
111
111
|
this._logger.debug(() => `Destroying PartComponent [partId=${this.partId}]'`, LoggerNames.LIFECYCLE);
|
|
112
112
|
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartComponent, deps: [{ token: WORKBENCH_ID }, { token: i1.WorkbenchViewRegistry }, { token: i2.ViewDragService }, { token: i0.Injector }, { token: i3.Logger }, { token: i0.ChangeDetectorRef }, { token: i4.ɵWorkbenchPart }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: PartComponent, isStandalone: true, selector: "wb-part", host: { properties: { "attr.tabindex": "this.tabIndex", "attr.data-partid": "this.partId", "class.e2e-main-area": "this.isInMainArea", "class.main-area": "this.isMainArea", "class.active": "this.isActive" } }, ngImport: i0, template: "<wb-part-bar></wb-part-bar>\n\n<div wbViewDropZone\n [wbViewDropZoneSize]=\".3\"\n [wbViewDropZonePlaceholderSize]=\".5\"\n [wbViewDropZoneCssClass]=\"'e2e-part'\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\"\n class=\"active-view e2e-active-view\">\n <ng-container *wbPortalOutlet=\"part.activeViewId$ | async | wbViewPortal\"></ng-container>\n</div>\n", styles: [":host{display:flex;flex-direction:column;outline:none}:host>wb-part-bar{flex:none}:host>div.active-view{flex:auto;display:grid;position:relative}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: PartBarComponent, selector: "wb-part-bar" }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneCssClass", "wbViewDropZoneSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet"] }, { kind: "pipe", type: ViewPortalPipe, name: "wbViewPortal" }] }); }
|
|
115
115
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{ selector: 'wb-part', standalone: true, imports: [
|
|
119
119
|
AsyncPipe,
|
|
@@ -21,11 +21,11 @@ export class WbFormatAcceleratorPipe {
|
|
|
21
21
|
.map(key => key[0].toUpperCase() + key.substring(1).toLowerCase())
|
|
22
22
|
.join('+');
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WbFormatAcceleratorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
25
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: WbFormatAcceleratorPipe, isStandalone: true, name: "wbFormatAccelerator" }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WbFormatAcceleratorPipe, decorators: [{
|
|
28
28
|
type: Pipe,
|
|
29
29
|
args: [{ name: 'wbFormatAccelerator', standalone: true }]
|
|
30
30
|
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZWxlcmF0b3ItZm9ybWF0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctY29udGV4dC1tZW51L2FjY2VsZXJhdG9yLWZvcm1hdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBRWxEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUUzQixTQUFTLENBQUMsV0FBd0M7UUFDdkQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU8sV0FBVzthQUNmLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7OEdBVlUsdUJBQXVCOzRHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBGb3JtYXRzIGdpdmVuIGtleWJvYXJkIGFjY2VsZXJhdG9yIHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlci5cbiAqL1xuQFBpcGUoe25hbWU6ICd3YkZvcm1hdEFjY2VsZXJhdG9yJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgV2JGb3JtYXRBY2NlbGVyYXRvclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwdWJsaWMgdHJhbnNmb3JtKGFjY2VsZXJhdG9yOiBzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghYWNjZWxlcmF0b3IgfHwgYWNjZWxlcmF0b3IubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY2VsZXJhdG9yXG4gICAgICAubWFwKGtleSA9PiBrZXlbMF0udG9VcHBlckNhc2UoKSArIGtleS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSlcbiAgICAgIC5qb2luKCcrJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -17,10 +17,10 @@ export class TextComponent {
|
|
|
17
17
|
constructor(text) {
|
|
18
18
|
this.text = text;
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TextComponent, deps: [{ token: TEXT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: TextComponent, isStandalone: true, selector: "wb-text", ngImport: i0, template: '{{text}}', isInline: true }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TextComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: 'wb-text',
|
|
@@ -46,10 +46,10 @@ export class ViewMenuComponent {
|
|
|
46
46
|
onDocumentCloseEvent() {
|
|
47
47
|
this._overlayRef.dispose();
|
|
48
48
|
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewMenuComponent, deps: [{ token: i1.OverlayRef }, { token: i2.ɵWorkbenchView }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewMenuComponent, isStandalone: true, selector: "wb-view-menu", host: { listeners: { "document:keydown.escape": "onEscape()", "mousedown": "onHostCloseEvent($event)", "sci-microfrontend-focusin": "onHostCloseEvent($event)", "document:mousedown": "onDocumentCloseEvent()", "document:sci-microfrontend-focusin": "onDocumentCloseEvent()" }, properties: { "attr.data-viewid": "this.viewId" } }, ngImport: i0, template: "<ng-container *ngFor=\"let menuItemGroup of menuItemGroups$ | async | wbCoerceMap | keyvalue; last as isLast\">\n <button *ngFor=\"let menuItem of menuItemGroup.value\"\n class=\"menu-item\"\n [ngClass]=\"menuItem.cssClass\"\n [disabled]=\"menuItem.isDisabled?.()\"\n (click)=\"onMenuItemClick(menuItem)\">\n <div class=\"text\">\n <ng-container *cdkPortalOutlet=\"menuItem.portal\"></ng-container>\n </div>\n <div class=\"accelerator\">{{menuItem.accelerator | wbFormatAccelerator}}</div>\n </button>\n <hr *ngIf=\"!isLast\">\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;gap:1px;width:var(--sci-workbench-contextmenu-width);border:1px solid var(--sci-color-border);color:var(--sci-color-text);background-color:var(--sci-color-background-elevation);border-radius:var(--sci-corner);overflow:hidden}:host>button.menu-item{all:unset;display:flex;flex-flow:row nowrap;padding:.6em 1.5em;font-size:smaller;position:relative;-webkit-user-select:none;user-select:none}:host>button.menu-item>div.text{flex:auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host>button.menu-item>div.accelerator{flex:none;margin-left:1em}:host>button.menu-item:hover{background-color:var(--sci-color-background-elevation-hover);box-shadow:0 0 0 1px var(--sci-color-border)}:host>button.menu-item:disabled{opacity:.5;pointer-events:none}:host>button.menu-item:has(+hr):after{position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:var(--sci-color-border);content:\"\"}:host>hr{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: WbFormatAcceleratorPipe, name: "wbFormatAccelerator" }, { kind: "pipe", type: MapCoercePipe, name: "wbCoerceMap" }] }); }
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewMenuComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
54
54
|
args: [{ selector: 'wb-view-menu', standalone: true, imports: [
|
|
55
55
|
NgIf,
|
|
@@ -88,4 +88,4 @@ function groupMenuItems() {
|
|
|
88
88
|
}, new Map());
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3BhcnQvdmlldy1jb250ZXh0LW1lbnUvdmlldy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3BhcnQvdmlldy1jb250ZXh0LW1lbnUvdmlldy1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFZLHFCQUFxQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3BHLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBSTNEOztHQUVHO0FBaUJILE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBb0IsV0FBdUIsRUFDdkIsS0FBcUIsRUFDckIsU0FBbUI7UUFGbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxlQUFlLENBQUMsUUFBMkI7UUFDaEQsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDVCxDQUFDO1FBQ0QscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUNXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSU0sZ0JBQWdCLENBQUMsS0FBWTtRQUNsQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyx3RUFBd0U7SUFDbkcsQ0FBQztJQUlNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBdENVLGlCQUFpQjtrR0FBakIsaUJBQWlCLCtZQzFDOUIsd2xCQWFBLCsvQkRtQkksSUFBSSw2RkFDSixLQUFLLG1IQUNMLE9BQU8sK0VBQ1AsU0FBUyx5Q0FDVCxZQUFZLGdEQUNaLFlBQVksNkxBQ1osdUJBQXVCLHVEQUN2QixhQUFhOzsyRkFHSixpQkFBaUI7a0JBaEI3QixTQUFTOytCQUNFLGNBQWMsY0FHWixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixLQUFLO3dCQUNMLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixhQUFhO3FCQUNkO21JQXFCVSxNQUFNO3NCQURoQixXQUFXO3VCQUFDLGtCQUFrQjtnQkFNeEIsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLHlCQUF5QjtnQkFPaEMsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTzlDLG9CQUFvQjtzQkFGMUIsWUFBWTt1QkFBQyxvQkFBb0I7O3NCQUNqQyxZQUFZO3VCQUFDLG9DQUFvQzs7QUFNcEQsU0FBUyxjQUFjO0lBQ3JCLE9BQU8sR0FBRyxDQUFDLENBQUMsU0FBOEIsRUFBa0IsRUFBRTtRQUM1RCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFzQixFQUFFLFFBQTJCLEVBQUUsRUFBRTtZQUM5RSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQStCLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T3ZlcmxheVJlZn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1dvcmtiZW5jaE1lbnVJdGVtfSBmcm9tICcuLi8uLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4uLy4uL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge0FzeW5jUGlwZSwgS2V5VmFsdWVQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UG9ydGFsTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7V2JGb3JtYXRBY2NlbGVyYXRvclBpcGV9IGZyb20gJy4vYWNjZWxlcmF0b3ItZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHtNYXBDb2VyY2VQaXBlfSBmcm9tICcuLi8uLi9jb21tb24vbWFwLWNvZXJjZS5waXBlJztcblxudHlwZSBNZW51SXRlbUdyb3VwcyA9IE1hcDxzdHJpbmcsIFdvcmtiZW5jaE1lbnVJdGVtW10+O1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIG1lbnUgaXRlbXMgb2YgYSB7QGxpbmsgV29ya2JlbmNoVmlld30gZ3JvdXBlZCBieSB0aGVpciBtZW51IGl0ZW0gZ3JvdXAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLXZpZXctbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgTmdDbGFzcyxcbiAgICBBc3luY1BpcGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBXYkZvcm1hdEFjY2VsZXJhdG9yUGlwZSxcbiAgICBNYXBDb2VyY2VQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3TWVudUNvbXBvbmVudCB7XG5cbiAgcHVibGljIG1lbnVJdGVtR3JvdXBzJDogT2JzZXJ2YWJsZTxNZW51SXRlbUdyb3Vwcz47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlldzogybVXb3JrYmVuY2hWaWV3LFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLm1lbnVJdGVtR3JvdXBzJCA9IHRoaXMuX3ZpZXcubWVudUl0ZW1zJC5waXBlKGdyb3VwTWVudUl0ZW1zKCkpO1xuICB9XG5cbiAgcHVibGljIG9uTWVudUl0ZW1DbGljayhtZW51SXRlbTogV29ya2JlbmNoTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAobWVudUl0ZW0uaXNEaXNhYmxlZD8uKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuX2luamVjdG9yLCAoKSA9PiBtZW51SXRlbS5vbkFjdGlvbigpKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXZpZXdpZCcpXG4gIHB1YmxpYyBnZXQgdmlld0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXcuaWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpXG4gIHB1YmxpYyBvbkVzY2FwZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ3NjaS1taWNyb2Zyb250ZW5kLWZvY3VzaW4nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Ib3N0Q2xvc2VFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gUHJldmVudCBjbG9zaW5nIHRoaXMgb3ZlcmxheSBpZiBlbWl0dGVkIGZyb20gYSBjaGlsZCBvZiB0aGlzIG92ZXJsYXkuXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZWRvd24nKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpzY2ktbWljcm9mcm9udGVuZC1mb2N1c2luJylcbiAgcHVibGljIG9uRG9jdW1lbnRDbG9zZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdyb3VwTWVudUl0ZW1zKCk6IE9wZXJhdG9yRnVuY3Rpb248V29ya2JlbmNoTWVudUl0ZW1bXSwgTWVudUl0ZW1Hcm91cHM+IHtcbiAgcmV0dXJuIG1hcCgobWVudUl0ZW1zOiBXb3JrYmVuY2hNZW51SXRlbVtdKTogTWVudUl0ZW1Hcm91cHMgPT4ge1xuICAgIHJldHVybiBtZW51SXRlbXMucmVkdWNlKChncm91cHM6IE1lbnVJdGVtR3JvdXBzLCBtZW51SXRlbTogV29ya2JlbmNoTWVudUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwTmFtZSA9IG1lbnVJdGVtLmdyb3VwIHx8ICdkZWZhdWx0JztcbiAgICAgIHJldHVybiBncm91cHMuc2V0KGdyb3VwTmFtZSwgKGdyb3Vwcy5nZXQoZ3JvdXBOYW1lKSB8fCBbXSkuY29uY2F0KG1lbnVJdGVtKSk7XG4gICAgfSwgbmV3IE1hcDxzdHJpbmcsIFdvcmtiZW5jaE1lbnVJdGVtW10+KCkpO1xuICB9KTtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnVJdGVtR3JvdXAgb2YgbWVudUl0ZW1Hcm91cHMkIHwgYXN5bmMgfCB3YkNvZXJjZU1hcCB8IGtleXZhbHVlOyBsYXN0IGFzIGlzTGFzdFwiPlxuICA8YnV0dG9uICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBtZW51SXRlbUdyb3VwLnZhbHVlXCJcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwibWVudUl0ZW0uY3NzQ2xhc3NcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJtZW51SXRlbS5pc0Rpc2FibGVkPy4oKVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljayhtZW51SXRlbSlcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqY2RrUG9ydGFsT3V0bGV0PVwibWVudUl0ZW0ucG9ydGFsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImFjY2VsZXJhdG9yXCI+e3ttZW51SXRlbS5hY2NlbGVyYXRvciB8IHdiRm9ybWF0QWNjZWxlcmF0b3J9fTwvZGl2PlxuICA8L2J1dHRvbj5cbiAgPGhyICpuZ0lmPVwiIWlzTGFzdFwiPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -54,10 +54,10 @@ export class WorkbenchViewMenuItemDirective {
|
|
|
54
54
|
ngOnDestroy() {
|
|
55
55
|
this._menuItemHandle.dispose();
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchViewMenuItemDirective, deps: [{ token: i0.TemplateRef }, { token: i1.WorkbenchService }, { token: i2.WorkbenchView, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: WorkbenchViewMenuItemDirective, isStandalone: true, selector: "ng-template[wbViewMenuItem]", inputs: { accelerator: "accelerator", group: "group", disabled: "disabled", cssClass: "cssClass" }, outputs: { action: "action" }, ngImport: i0 }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchViewMenuItemDirective, decorators: [{
|
|
61
61
|
type: Directive,
|
|
62
62
|
args: [{ selector: 'ng-template[wbViewMenuItem]', standalone: true }]
|
|
63
63
|
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i1.WorkbenchService }, { type: i2.WorkbenchView, decorators: [{
|
|
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
73
73
|
}], action: [{
|
|
74
74
|
type: Output
|
|
75
75
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3BhcnQvdmlldy1jb250ZXh0LW1lbnUvdmlldy1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUl2RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFHbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsTUFBTSxPQUFPLDhCQUE4QjtJQW9DekMsWUFBb0IsU0FBNEIsRUFDNUIsaUJBQW1DLEVBQ3ZCLEtBQW9CO1FBRmhDLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQXBCcEQ7O1dBRUc7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBUXhCOztXQUVHO1FBRUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBS2hELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQW1CLEVBQXFCLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUksQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsSUFBbUI7UUFDeEMsT0FBTyxDQUFDO1lBQ04sTUFBTSxFQUFFLElBQUksY0FBYyxDQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDO1lBQ3pFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUN4QyxRQUFRLEVBQUUsR0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0E1RFUsOEJBQThCO2tHQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBRDFDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsNkJBQTZCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQzs7MEJBdUN2RCxRQUFRO3lDQTVCZCxXQUFXO3NCQURqQixLQUFLO2dCQU9DLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxRQUFRO3NCQURkLEtBQUs7Z0JBT0MsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLE1BQU07c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlzcG9zYWJsZX0gZnJvbSAnLi4vLi4vY29tbW9uL2Rpc3Bvc2FibGUnO1xuaW1wb3J0IHtXb3JrYmVuY2hNZW51SXRlbX0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoU2VydmljZX0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXd9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGRpcmVjdGl2ZSB0byBtb2RlbCBhIG1lbnUgaXRlbSBhZGRlZCB0byB0aGUgY29udGV4dCBtZW51IG9mIGEgdmlldy5cbiAqXG4gKiBUaGUgaG9zdCBlbGVtZW50IG9mIHRoaXMgbW9kZWxpbmcgZGlyZWN0aXZlIG11c3QgYmUgYSA8bmctdGVtcGxhdGU+LlxuICogQSBtZW51IGl0ZW0gc2hhcmVzIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyBzY29wZSBhd2FyZSwgdGhhdCBpcywgaWYgaW4gdGhlIGNvbnRleHQgb2YgYSB2aWV3LCB0aGUgbWVudSBpdGVtIGlzIGFkZGVkIHRvIHRoZSBjb250YWluaW5nIHZpZXcuXG4gKiBUbyBhZGQgYSBtZW51IGl0ZW0gdG8gZXZlcnkgdmlldywgbW9kZWwgaXQgaW4gYGFwcC5jb21wb25lbnQuaHRtbGAgb3IgcmVnaXN0ZXJlZCBpdCB2aWEge0BsaW5rIFdvcmtiZW5jaFNlcnZpY2UjcmVnaXN0ZXJWaWV3TWVudUl0ZW19LlxuICpcbiAqIFRoZSB7QGxpbmsgV29ya2JlbmNoVmlld30gd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG1lbnUgaXRlbSB0ZW1wbGF0ZSBhcyBkZWZhdWx0IHRlbXBsYXRlLWxvY2FsIHZhcmlhYmxlLlxuICpcbiAqIC0tLVxuICogVXNhZ2U6XG4gKlxuICogPG5nLXRlbXBsYXRlIHdiVmlld01lbnVJdGVtIFthY2NlbGVyYXRvcl09XCJbJ2N0cmwnLCAnYiddXCIgKGFjdGlvbik9XCIuLi5cIiBsZXQtdmlldz5cbiAqICAgLi4uXG4gKiA8L25nLXRlbXBsYXRlPlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3diVmlld01lbnVJdGVtXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaFZpZXdNZW51SXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfbWVudUl0ZW1IYW5kbGU6IERpc3Bvc2FibGU7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBpbnRlcmFjdCB3aXRoIHRoZSBtZW51IGl0ZW0gdXNpbmcga2V5cyBvbiB0aGUga2V5Ym9hcmQsIGUuZy4sIFsnY3RybCcsICdhbHQnLCAxXS5cbiAgICpcbiAgICogU3VwcG9ydGVkIG1vZGlmaWVycyBhcmUgJ2N0cmwnLCAnc2hpZnQnLCAnYWx0JyBhbmQgJ21ldGEnLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VsZXJhdG9yPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFsbG93cyBncm91cGluZyBtZW51IGl0ZW1zIG9mIHRoZSBzYW1lIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdyb3VwPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgZGlzYWJsaW5nIHRoZSBtZW51IGl0ZW0gYmFzZWQgb24gYSBjb25kaXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBtZW51IGl0ZW0sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgbWVudSBpdGVtIGluIHRlc3RzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNzc0NsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHVzZXIgcGVyZm9ybXMgdGhlIG1lbnUgYWN0aW9uLCBlaXRoZXIgYnkgY2xpY2tpbmcgdGhlIG1lbnUgb3IgdmlhIGtleWJvYXJkIGFjY2VsZXJhdG9yLCBpZiBhbnkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8V29ya2JlbmNoVmlldz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaFNlcnZpY2U6IFdvcmtiZW5jaFNlcnZpY2UsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3ZpZXc6IFdvcmtiZW5jaFZpZXcpIHtcbiAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgdGhpcy5fbWVudUl0ZW1IYW5kbGUgPSB0aGlzLl92aWV3LnJlZ2lzdGVyTWVudUl0ZW0odGhpcy5jcmVhdGVNZW51SXRlbSh0aGlzLl92aWV3KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fbWVudUl0ZW1IYW5kbGUgPSB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4gdGhpcy5jcmVhdGVNZW51SXRlbSh2aWV3KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNZW51SXRlbSh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0ge1xuICAgIHJldHVybiAoe1xuICAgICAgcG9ydGFsOiBuZXcgVGVtcGxhdGVQb3J0YWw8YW55Pih0aGlzLl90ZW1wbGF0ZSwgbnVsbCEsIHskaW1wbGljaXQ6IHZpZXd9KSxcbiAgICAgIGFjY2VsZXJhdG9yOiB0aGlzLmFjY2VsZXJhdG9yLFxuICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICBjc3NDbGFzczogdGhpcy5jc3NDbGFzcyxcbiAgICAgIGlzRGlzYWJsZWQ6ICgpOiBib29sZWFuID0+IHRoaXMuZGlzYWJsZWQsXG4gICAgICBvbkFjdGlvbjogKCk6IHZvaWQgPT4gdGhpcy5hY3Rpb24uZW1pdCh2aWV3KSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZW51SXRlbUhhbmRsZS5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==
|