@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
|
@@ -312,10 +312,10 @@ export class ViewMenuService {
|
|
|
312
312
|
};
|
|
313
313
|
});
|
|
314
314
|
}
|
|
315
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
316
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
315
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewMenuService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i0.NgZone }, { token: i2.WorkbenchViewRegistry }, { token: i3.WorkbenchService }, { token: i4.WorkbenchConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
316
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewMenuService, providedIn: 'root' }); }
|
|
317
317
|
}
|
|
318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
318
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewMenuService, decorators: [{
|
|
319
319
|
type: Injectable,
|
|
320
320
|
args: [{ providedIn: 'root' }]
|
|
321
321
|
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i0.NgZone }, { type: i2.WorkbenchViewRegistry }, { type: i3.WorkbenchService }, { type: i4.WorkbenchConfig }] });
|
|
@@ -338,4 +338,4 @@ function getModifierState(event) {
|
|
|
338
338
|
}
|
|
339
339
|
return modifierState;
|
|
340
340
|
}
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctY29udGV4dC1tZW51L3ZpZXctbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFhLFVBQVUsRUFBRSxRQUFRLEVBQVUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUE2QixhQUFhLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUd4RSxPQUFPLEVBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUUzQzs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFlO2FBRUYsYUFBUSxHQUFzQixFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUss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QUFhLEdBQWEsRUFBRSxDQUFDO0lBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ2xCLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDN0I7SUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDaEIsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMzQjtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lLCBydW5JbkluamVjdGlvbkNvbnRleHR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtWaWV3TWVudUNvbXBvbmVudH0gZnJvbSAnLi92aWV3LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoTWVudUl0ZW19IGZyb20gJy4uLy4uL3dvcmtiZW5jaC5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXdSZWdpc3RyeX0gZnJvbSAnLi4vLi4vdmlldy93b3JrYmVuY2gtdmlldy5yZWdpc3RyeSc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtmaXJzdFZhbHVlRnJvbSwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBUZWFyZG93bkxvZ2ljfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y29lcmNlRWxlbWVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7VEVYVCwgVGV4dENvbXBvbmVudH0gZnJvbSAnLi4vdmlldy1jb250ZXh0LW1lbnUvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHtNZW51SXRlbUNvbmZpZywgV29ya2JlbmNoQ29uZmlnfSBmcm9tICcuLi8uLi93b3JrYmVuY2gtY29uZmlnJztcbmltcG9ydCB7V29ya2JlbmNoU2VydmljZX0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtmaWx0ZXJBcnJheSwgb2JzZXJ2ZUluc2lkZSwgc3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4uLy4uL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1ZpZXdJZCwgV29ya2JlbmNoVmlld30gZnJvbSAnLi4vLi4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge3Byb3ZpZGVWaWV3Q29udGV4dH0gZnJvbSAnLi4vLi4vdmlldy92aWV3LWNvbnRleHQtcHJvdmlkZXInO1xuaW1wb3J0IHtBcnJheXN9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuXG4vKipcbiAqIFNob3dzIG1lbnUgaXRlbXMgb2YgYSB7QGxpbmsgV29ya2JlbmNoVmlld30gaW4gYSBtZW51LlxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaWV3TWVudVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRPUF9MRUZUOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJ307XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRPUF9SSUdIVDogQ29ubmVjdGVkUG9zaXRpb24gPSB7b3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnfTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQk9UVE9NX0xFRlQ6IENvbm5lY3RlZFBvc2l0aW9uID0ge29yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nfTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQk9UVE9NX1JJR0hUOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbSd9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9uZTogTmdab25lLFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoU2VydmljZTogV29ya2JlbmNoU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoQ29uZmlnOiBXb3JrYmVuY2hDb25maWcpIHtcbiAgICAvLyBSZWdpc3RlcnMgYnVpbHQtaW4gbWVudSBpdGVtcyBhZGRlZCB0byB0aGUgY29udGV4dCBtZW51IG9mIGV2ZXJ5IHZpZXcgdGFiLlxuICAgIHRoaXMucmVnaXN0ZXJDbG9zZVZpZXdNZW51SXRlbSgpO1xuICAgIHRoaXMucmVnaXN0ZXJDbG9zZU90aGVyVmlld3NNZW51SXRlbSgpO1xuICAgIHRoaXMucmVnaXN0ZXJDbG9zZUFsbFZpZXdzTWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyQ2xvc2VWaWV3c1RvVGhlUmlnaHRNZW51SXRlbSgpO1xuICAgIHRoaXMucmVnaXN0ZXJDbG9zZVZpZXdzVG9UaGVMZWZ0TWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyTW92ZVJpZ2h0TWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyTW92ZUxlZnRNZW51SXRlbSgpO1xuICAgIHRoaXMucmVnaXN0ZXJNb3ZlVXBNZW51SXRlbSgpO1xuICAgIHRoaXMucmVnaXN0ZXJNb3ZlRG93bk1lbnVJdGVtKCk7XG4gICAgdGhpcy5yZWdpc3Rlck1vdmVUb05ld1dpbmRvd01lbnVJdGVtKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgYSBtZW51IHdpdGggbWVudSBpdGVtcyByZWdpc3RlcmVkIGluIGdpdmVuIHtAbGluayBXb3JrYmVuY2hWaWV3fS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgV29ya2JlbmNoVmlldy5yZWdpc3RlclZpZXdNZW51SXRlbX1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaG93TWVudShsb2NhdGlvbjogUG9pbnQsIHZpZXdJZDogVmlld0lkKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX3ZpZXdSZWdpc3RyeS5nZXQodmlld0lkKTtcbiAgICBjb25zdCBtZW51SXRlbXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh2aWV3Lm1lbnVJdGVtcyQpO1xuXG4gICAgLy8gRG8gbm90IHNob3cgdGhlIG1lbnUgaWYgdGhlcmUgYXJlIG5vIG1lbnUgaXRlbXMgcmVnaXN0ZXJlZC5cbiAgICBpZiAobWVudUl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFByZXBhcmUgYW5kIGRpc3BsYXkgdGhlIG1lbnUgb3ZlcmxheS5cbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8obG9jYXRpb24pXG4gICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbVmlld01lbnVTZXJ2aWNlLlRPUF9MRUZULCBWaWV3TWVudVNlcnZpY2UuVE9QX1JJR0hULCBWaWV3TWVudVNlcnZpY2UuQk9UVE9NX0xFRlQsIFZpZXdNZW51U2VydmljZS5CT1RUT01fUklHSFRdKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiBvdmVybGF5UmVmfSxcbiAgICAgICAgcHJvdmlkZVZpZXdDb250ZXh0KHZpZXcpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBvdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKFZpZXdNZW51Q29tcG9uZW50LCBudWxsLCBpbmplY3RvcikpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwb24gc3Vic2NyaXB0aW9uLCBpbnN0YWxscyBrZXlib2FyZCBhY2NlbGVyYXRvcnMgb2YgdGhlIG1lbnUgaXRlbXMgcmVnaXN0ZXJlZCBpbiB7QGxpbmsgV29ya2JlbmNoVmlld30uXG4gICAqL1xuICBwdWJsaWMgaW5zdGFsbE1lbnVJdGVtQWNjZWxlcmF0b3JzJCh0YXJnZXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgSFRNTEVsZW1lbnQsIHZpZXc6IMm1V29ya2JlbmNoVmlldyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoKTogVGVhcmRvd25Mb2dpYyA9PiB7XG4gICAgICBjb25zdCB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgICB2aWV3Lm1lbnVJdGVtcyRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgLy8gU2tpcCBtZW51IGl0ZW1zIHdoaWNoIGhhdmUgbm8gYWNjZWxlcmF0b3IgY29uZmlndXJlZC5cbiAgICAgICAgICBmaWx0ZXJBcnJheSgobWVudUl0ZW06IFdvcmtiZW5jaE1lbnVJdGVtKSA9PiAhIW1lbnVJdGVtLmFjY2VsZXJhdG9yPy5sZW5ndGgpLFxuICAgICAgICAgIGZpbHRlcihtZW51SXRlbXMgPT4gbWVudUl0ZW1zLmxlbmd0aCA+IDApLFxuICAgICAgICAgIC8vIFN1YnNjcmliZSBmb3Iga2V5Ym9hcmQgZXZlbnRzLlxuICAgICAgICAgIHN3aXRjaE1hcCgobWVudUl0ZW1zOiBXb3JrYmVuY2hNZW51SXRlbVtdKTogT2JzZXJ2YWJsZTx7ZXZlbnQ6IEtleWJvYXJkRXZlbnQ7IG1lbnVJdGVtczogV29ya2JlbmNoTWVudUl0ZW1bXX0+ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oY29lcmNlRWxlbWVudCh0YXJnZXQpLCAna2V5ZG93bicpLnBpcGUobWFwKGV2ZW50ID0+ICh7ZXZlbnQsIG1lbnVJdGVtc30pKSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKCh7ZXZlbnQsIG1lbnVJdGVtc30pID0+ICh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIG1lbnVJdGVtczogbWVudUl0ZW1zXG4gICAgICAgICAgICAgIC5maWx0ZXIobWVudUl0ZW0gPT4gIW1lbnVJdGVtLmlzRGlzYWJsZWQ/LigpKVxuICAgICAgICAgICAgICAuZmlsdGVyKG1lbnVJdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY2NlbGVyYXRvciA9IG1lbnVJdGVtLmFjY2VsZXJhdG9yITtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhY2NlbGVyYXRvci5hdCgtMSkhO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGlmaWVyS2V5cyA9IGFjY2VsZXJhdG9yLnNsaWNlKDAsIC0xKTtcblxuICAgICAgICAgICAgICAgIC8vIENvbXBhcmUga2V5LlxuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXk/LnRvTG93ZXJDYXNlKCkgIT09IGtleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIENvbXBhcmUgbW9kaWZpZXJzLlxuICAgICAgICAgICAgICAgIGlmICghQXJyYXlzLmlzRXF1YWwobW9kaWZpZXJLZXlzLCBnZXRNb2RpZmllclN0YXRlKGV2ZW50KSwge2V4YWN0T3JkZXI6IGZhbHNlfSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBmaWx0ZXIoKHttZW51SXRlbXN9KSA9PiBtZW51SXRlbXMubGVuZ3RoID4gMCksXG4gICAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgICBvYnNlcnZlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuKGZuKSksXG4gICAgICAgICAgdGFrZVVudGlsKHVuc3Vic2NyaWJlJCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoe2V2ZW50LCBtZW51SXRlbXN9KSA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKG1lbnVJdGVtID0+IG1lbnVJdGVtLm9uQWN0aW9uKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuICgpOiB2b2lkID0+IHVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQ2xvc2VWaWV3TWVudUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdHM6IE1lbnVJdGVtQ29uZmlnID0ge3Zpc2libGU6IHRydWUsIHRleHQ6ICdDbG9zZSB0YWInLCBncm91cDogJ2Nsb3NlJywgYWNjZWxlcmF0b3I6IFsnY3RybCcsICdrJ10sIGNzc0NsYXNzOiAnZTJlLWNsb3NlLXRhYid9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8uY2xvc2U7XG4gICAgY29uc3QgY29uZmlnID0gey4uLmRlZmF1bHRzLCAuLi5hcHBDb25maWd9O1xuXG4gICAgY29uZmlnLnZpc2libGUgJiYgdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclZpZXdNZW51SXRlbSgodmlldzogV29ya2JlbmNoVmlldyk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiBJbmplY3Rvci5OVUxMLFxuICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVEVYVCwgdXNlVmFsdWU6IGNvbmZpZy50ZXh0fV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoe1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBpc0Rpc2FibGVkOiAoKTogYm9vbGVhbiA9PiAhdmlldy5jbG9zYWJsZSxcbiAgICAgICAgb25BY3Rpb246ICgpOiB2b2lkID0+IHZvaWQgdmlldy5jbG9zZSgpLnRoZW4oKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckNsb3NlT3RoZXJWaWV3c01lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnQ2xvc2Ugb3RoZXIgdGFicycsIGdyb3VwOiAnY2xvc2UnLCBhY2NlbGVyYXRvcjogWydjdHJsJywgJ3NoaWZ0JywgJ2snXX07XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5jbG9zZU90aGVycztcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICh7XG4gICAgICAgIHBvcnRhbDogbmV3IENvbXBvbmVudFBvcnRhbChUZXh0Q29tcG9uZW50LCBudWxsLCBpbmplY3RvciksXG4gICAgICAgIGFjY2VsZXJhdG9yOiBjb25maWcuYWNjZWxlcmF0b3IsXG4gICAgICAgIGdyb3VwOiBjb25maWcuZ3JvdXAsXG4gICAgICAgIGNzc0NsYXNzOiBjb25maWcuY3NzQ2xhc3MsXG4gICAgICAgIGlzRGlzYWJsZWQ6ICgpOiBib29sZWFuID0+IHZpZXcuZmlyc3QgJiYgdmlldy5sYXN0LFxuICAgICAgICBvbkFjdGlvbjogKCk6IHZvaWQgPT4gdm9pZCB2aWV3LmNsb3NlKCdvdGhlci12aWV3cycpLnRoZW4oKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckNsb3NlQWxsVmlld3NNZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ0Nsb3NlIGFsbCB0YWJzJywgZ3JvdXA6ICdjbG9zZScsIGFjY2VsZXJhdG9yOiBbJ2N0cmwnLCAnc2hpZnQnLCAnYWx0JywgJ2snXSwgY3NzQ2xhc3M6ICdlMmUtY2xvc2UtYWxsLXRhYnMnfTtcbiAgICBjb25zdCBhcHBDb25maWc6IE1lbnVJdGVtQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5fd29ya2JlbmNoQ29uZmlnLnZpZXdNZW51SXRlbXM/LmNsb3NlQWxsO1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gKHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgb25BY3Rpb246ICgpOiB2b2lkID0+IHZvaWQgdmlldy5jbG9zZSgnYWxsLXZpZXdzJykudGhlbigpLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQ2xvc2VWaWV3c1RvVGhlUmlnaHRNZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ0Nsb3NlIHRhYnMgdG8gdGhlIHJpZ2h0JywgZ3JvdXA6ICdjbG9zZSd9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8uY2xvc2VUb1RoZVJpZ2h0O1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBpc0Rpc2FibGVkOiAoKTogYm9vbGVhbiA9PiB2aWV3Lmxhc3QsXG4gICAgICAgIG9uQWN0aW9uOiAoKTogdm9pZCA9PiB2b2lkIHZpZXcuY2xvc2UoJ3ZpZXdzLXRvLXRoZS1yaWdodCcpLnRoZW4oKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQ2xvc2VWaWV3c1RvVGhlTGVmdE1lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnQ2xvc2UgdGFicyB0byB0aGUgbGVmdCcsIGdyb3VwOiAnY2xvc2UnfTtcbiAgICBjb25zdCBhcHBDb25maWc6IE1lbnVJdGVtQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5fd29ya2JlbmNoQ29uZmlnLnZpZXdNZW51SXRlbXM/LmNsb3NlVG9UaGVMZWZ0O1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBpc0Rpc2FibGVkOiAoKTogYm9vbGVhbiA9PiB2aWV3LmZpcnN0LFxuICAgICAgICBvbkFjdGlvbjogKCk6IHZvaWQgPT4gdm9pZCB2aWV3LmNsb3NlKCd2aWV3cy10by10aGUtbGVmdCcpLnRoZW4oKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyTW92ZVJpZ2h0TWVudUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdHM6IE1lbnVJdGVtQ29uZmlnID0ge3Zpc2libGU6IHRydWUsIHRleHQ6ICdNb3ZlIHJpZ2h0JywgZ3JvdXA6ICdtb3ZlJywgYWNjZWxlcmF0b3I6IFsnY3RybCcsICdhbHQnLCAnZW5kJ119O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8ubW92ZVJpZ2h0O1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBpc0Rpc2FibGVkOiAoKSA9PiB2aWV3LmZpcnN0ICYmIHZpZXcubGFzdCxcbiAgICAgICAgb25BY3Rpb246ICgpID0+IHZpZXcubW92ZSh2aWV3LnBhcnQuaWQsIHtyZWdpb246ICdlYXN0J30pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJNb3ZlTGVmdE1lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnTW92ZSBsZWZ0JywgZ3JvdXA6ICdtb3ZlJ307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5tb3ZlTGVmdDtcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgaXNEaXNhYmxlZDogKCkgPT4gdmlldy5maXJzdCAmJiB2aWV3Lmxhc3QsXG4gICAgICAgIG9uQWN0aW9uOiAoKSA9PiB2aWV3Lm1vdmUodmlldy5wYXJ0LmlkLCB7cmVnaW9uOiAnd2VzdCd9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyTW92ZVVwTWVudUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdHM6IE1lbnVJdGVtQ29uZmlnID0ge3Zpc2libGU6IHRydWUsIHRleHQ6ICdNb3ZlIHVwJywgZ3JvdXA6ICdtb3ZlJ307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5tb3ZlVXA7XG4gICAgY29uc3QgY29uZmlnID0gey4uLmRlZmF1bHRzLCAuLi5hcHBDb25maWd9O1xuXG4gICAgY29uZmlnLnZpc2libGUgJiYgdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclZpZXdNZW51SXRlbSgodmlldzogV29ya2JlbmNoVmlldyk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiBJbmplY3Rvci5OVUxMLFxuICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVEVYVCwgdXNlVmFsdWU6IGNvbmZpZy50ZXh0fV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvcnRhbDogbmV3IENvbXBvbmVudFBvcnRhbChUZXh0Q29tcG9uZW50LCBudWxsLCBpbmplY3RvciksXG4gICAgICAgIGFjY2VsZXJhdG9yOiBjb25maWcuYWNjZWxlcmF0b3IsXG4gICAgICAgIGdyb3VwOiBjb25maWcuZ3JvdXAsXG4gICAgICAgIGNzc0NsYXNzOiBjb25maWcuY3NzQ2xhc3MsXG4gICAgICAgIGlzRGlzYWJsZWQ6ICgpID0+IHZpZXcuZmlyc3QgJiYgdmlldy5sYXN0LFxuICAgICAgICBvbkFjdGlvbjogKCkgPT4gdmlldy5tb3ZlKHZpZXcucGFydC5pZCwge3JlZ2lvbjogJ25vcnRoJ30pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJNb3ZlRG93bk1lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnTW92ZSBkb3duJywgZ3JvdXA6ICdtb3ZlJ307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5tb3ZlRG93bjtcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgaXNEaXNhYmxlZDogKCkgPT4gdmlldy5maXJzdCAmJiB2aWV3Lmxhc3QsXG4gICAgICAgIG9uQWN0aW9uOiAoKSA9PiB2aWV3Lm1vdmUodmlldy5wYXJ0LmlkLCB7cmVnaW9uOiAnc291dGgnfSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlck1vdmVUb05ld1dpbmRvd01lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnTW92ZSB0byBuZXcgd2luZG93JywgZ3JvdXA6ICdvcGVuJywgY3NzQ2xhc3M6ICdlMmUtbW92ZS10by1uZXctd2luZG93J307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5tb3ZlVG9OZXdXaW5kb3c7XG4gICAgY29uc3QgY29uZmlnID0gey4uLmRlZmF1bHRzLCAuLi5hcHBDb25maWd9O1xuXG4gICAgY29uZmlnLnZpc2libGUgJiYgdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclZpZXdNZW51SXRlbSgodmlldzogV29ya2JlbmNoVmlldyk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiBJbmplY3Rvci5OVUxMLFxuICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVEVYVCwgdXNlVmFsdWU6IGNvbmZpZy50ZXh0fV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvcnRhbDogbmV3IENvbXBvbmVudFBvcnRhbChUZXh0Q29tcG9uZW50LCBudWxsLCBpbmplY3RvciksXG4gICAgICAgIGFjY2VsZXJhdG9yOiBjb25maWcuYWNjZWxlcmF0b3IsXG4gICAgICAgIGdyb3VwOiBjb25maWcuZ3JvdXAsXG4gICAgICAgIGNzc0NsYXNzOiBjb25maWcuY3NzQ2xhc3MsXG4gICAgICAgIG9uQWN0aW9uOiAoKSA9PiB2aWV3Lm1vdmUoJ25ldy13aW5kb3cnKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwcmVzc2VkIG1vZGlmaWVyIGtleXMgKGN0cmwsIHNoaWZ0LCBhbHQsIG1ldGEpIGFzIGFycmF5IGl0ZW1zLlxuICovXG5mdW5jdGlvbiBnZXRNb2RpZmllclN0YXRlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogc3RyaW5nW10ge1xuICBjb25zdCBtb2RpZmllclN0YXRlOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgIG1vZGlmaWVyU3RhdGUucHVzaCgnY3RybCcpO1xuICB9XG4gIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgIG1vZGlmaWVyU3RhdGUucHVzaCgnc2hpZnQnKTtcbiAgfVxuICBpZiAoZXZlbnQuYWx0S2V5KSB7XG4gICAgbW9kaWZpZXJTdGF0ZS5wdXNoKCdhbHQnKTtcbiAgfVxuICBpZiAoZXZlbnQubWV0YUtleSkge1xuICAgIG1vZGlmaWVyU3RhdGUucHVzaCgnbWV0YScpO1xuICB9XG4gIHJldHVybiBtb2RpZmllclN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG59XG4iXX0=
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctY29udGV4dC1tZW51L3ZpZXctbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFhLFVBQVUsRUFBRSxRQUFRLEVBQVUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUE2QixhQUFhLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUd4RSxPQUFPLEVBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUUzQzs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFlO2FBRUYsYUFBUSxHQUFzQixFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUss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Z0JBQWdCLENBQUMsS0FBb0I7SUFDNUMsTUFBTSxhQUFhLEdBQWEsRUFBRSxDQUFDO0lBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7Q29tcG9uZW50UG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7Vmlld01lbnVDb21wb25lbnR9IGZyb20gJy4vdmlldy1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQge1dvcmtiZW5jaE1lbnVJdGVtfSBmcm9tICcuLi8uLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgVGVhcmRvd25Mb2dpY30gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NvZXJjZUVsZW1lbnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1RFWFQsIFRleHRDb21wb25lbnR9IGZyb20gJy4uL3ZpZXctY29udGV4dC1tZW51L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7TWVudUl0ZW1Db25maWcsIFdvcmtiZW5jaENvbmZpZ30gZnJvbSAnLi4vLi4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge1dvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4uLy4uL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIG9ic2VydmVJbnNpZGUsIHN1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7ybVXb3JrYmVuY2hWaWV3fSBmcm9tICcuLi8uLi92aWV3L8m1d29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtWaWV3SWQsIFdvcmtiZW5jaFZpZXd9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtwcm92aWRlVmlld0NvbnRleHR9IGZyb20gJy4uLy4uL3ZpZXcvdmlldy1jb250ZXh0LXByb3ZpZGVyJztcbmltcG9ydCB7QXJyYXlzfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcblxuLyoqXG4gKiBTaG93cyBtZW51IGl0ZW1zIG9mIGEge0BsaW5rIFdvcmtiZW5jaFZpZXd9IGluIGEgbWVudS5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVmlld01lbnVTZXJ2aWNlIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBUT1BfTEVGVDogQ29ubmVjdGVkUG9zaXRpb24gPSB7b3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCd9O1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBUT1BfUklHSFQ6IENvbm5lY3RlZFBvc2l0aW9uID0ge29yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJ307XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEJPVFRPTV9MRUZUOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJ307XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEJPVFRPTV9SSUdIVDogQ29ubmVjdGVkUG9zaXRpb24gPSB7b3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdib3R0b20nfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld1JlZ2lzdHJ5OiBXb3JrYmVuY2hWaWV3UmVnaXN0cnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaFNlcnZpY2U6IFdvcmtiZW5jaFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaENvbmZpZzogV29ya2JlbmNoQ29uZmlnKSB7XG4gICAgLy8gUmVnaXN0ZXJzIGJ1aWx0LWluIG1lbnUgaXRlbXMgYWRkZWQgdG8gdGhlIGNvbnRleHQgbWVudSBvZiBldmVyeSB2aWV3IHRhYi5cbiAgICB0aGlzLnJlZ2lzdGVyQ2xvc2VWaWV3TWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyQ2xvc2VPdGhlclZpZXdzTWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyQ2xvc2VBbGxWaWV3c01lbnVJdGVtKCk7XG4gICAgdGhpcy5yZWdpc3RlckNsb3NlVmlld3NUb1RoZVJpZ2h0TWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyQ2xvc2VWaWV3c1RvVGhlTGVmdE1lbnVJdGVtKCk7XG4gICAgdGhpcy5yZWdpc3Rlck1vdmVSaWdodE1lbnVJdGVtKCk7XG4gICAgdGhpcy5yZWdpc3Rlck1vdmVMZWZ0TWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyTW92ZVVwTWVudUl0ZW0oKTtcbiAgICB0aGlzLnJlZ2lzdGVyTW92ZURvd25NZW51SXRlbSgpO1xuICAgIHRoaXMucmVnaXN0ZXJNb3ZlVG9OZXdXaW5kb3dNZW51SXRlbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIGEgbWVudSB3aXRoIG1lbnUgaXRlbXMgcmVnaXN0ZXJlZCBpbiBnaXZlbiB7QGxpbmsgV29ya2JlbmNoVmlld30uXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIFdvcmtiZW5jaFZpZXcucmVnaXN0ZXJWaWV3TWVudUl0ZW19XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2hvd01lbnUobG9jYXRpb246IFBvaW50LCB2aWV3SWQ6IFZpZXdJZCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3UmVnaXN0cnkuZ2V0KHZpZXdJZCk7XG4gICAgY29uc3QgbWVudUl0ZW1zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odmlldy5tZW51SXRlbXMkKTtcblxuICAgIC8vIERvIG5vdCBzaG93IHRoZSBtZW51IGlmIHRoZXJlIGFyZSBubyBtZW51IGl0ZW1zIHJlZ2lzdGVyZWQuXG4gICAgaWYgKG1lbnVJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGFuZCBkaXNwbGF5IHRoZSBtZW51IG92ZXJsYXkuXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGxvY2F0aW9uKVxuICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoW1ZpZXdNZW51U2VydmljZS5UT1BfTEVGVCwgVmlld01lbnVTZXJ2aWNlLlRPUF9SSUdIVCwgVmlld01lbnVTZXJ2aWNlLkJPVFRPTV9MRUZULCBWaWV3TWVudVNlcnZpY2UuQk9UVE9NX1JJR0hUXSksXG4gICAgfSk7XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZn0sXG4gICAgICAgIHByb3ZpZGVWaWV3Q29udGV4dCh2aWV3KSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChWaWV3TWVudUNvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgaW5zdGFsbHMga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIG9mIHRoZSBtZW51IGl0ZW1zIHJlZ2lzdGVyZWQgaW4ge0BsaW5rIFdvcmtiZW5jaFZpZXd9LlxuICAgKi9cbiAgcHVibGljIGluc3RhbGxNZW51SXRlbUFjY2VsZXJhdG9ycyQodGFyZ2V0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IEhUTUxFbGVtZW50LCB2aWV3OiDJtVdvcmtiZW5jaFZpZXcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKCk6IFRlYXJkb3duTG9naWMgPT4ge1xuICAgICAgY29uc3QgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgdmlldy5tZW51SXRlbXMkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIFNraXAgbWVudSBpdGVtcyB3aGljaCBoYXZlIG5vIGFjY2VsZXJhdG9yIGNvbmZpZ3VyZWQuXG4gICAgICAgICAgZmlsdGVyQXJyYXkoKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSkgPT4gISFtZW51SXRlbS5hY2NlbGVyYXRvcj8ubGVuZ3RoKSxcbiAgICAgICAgICBmaWx0ZXIobWVudUl0ZW1zID0+IG1lbnVJdGVtcy5sZW5ndGggPiAwKSxcbiAgICAgICAgICAvLyBTdWJzY3JpYmUgZm9yIGtleWJvYXJkIGV2ZW50cy5cbiAgICAgICAgICBzd2l0Y2hNYXAoKG1lbnVJdGVtczogV29ya2JlbmNoTWVudUl0ZW1bXSk6IE9ic2VydmFibGU8e2V2ZW50OiBLZXlib2FyZEV2ZW50OyBtZW51SXRlbXM6IFdvcmtiZW5jaE1lbnVJdGVtW119PiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGNvZXJjZUVsZW1lbnQodGFyZ2V0KSwgJ2tleWRvd24nKS5waXBlKG1hcChldmVudCA9PiAoe2V2ZW50LCBtZW51SXRlbXN9KSkpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgoe2V2ZW50LCBtZW51SXRlbXN9KSA9PiAoe1xuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBtZW51SXRlbXM6IG1lbnVJdGVtc1xuICAgICAgICAgICAgICAuZmlsdGVyKG1lbnVJdGVtID0+ICFtZW51SXRlbS5pc0Rpc2FibGVkPy4oKSlcbiAgICAgICAgICAgICAgLmZpbHRlcihtZW51SXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWNjZWxlcmF0b3IgPSBtZW51SXRlbS5hY2NlbGVyYXRvciE7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gYWNjZWxlcmF0b3IuYXQoLTEpITtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RpZmllcktleXMgPSBhY2NlbGVyYXRvci5zbGljZSgwLCAtMSk7XG5cbiAgICAgICAgICAgICAgICAvLyBDb21wYXJlIGtleS5cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Py50b0xvd2VyQ2FzZSgpICE9PSBrZXkudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBDb21wYXJlIG1vZGlmaWVycy5cbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5cy5pc0VxdWFsKG1vZGlmaWVyS2V5cywgZ2V0TW9kaWZpZXJTdGF0ZShldmVudCksIHtleGFjdE9yZGVyOiBmYWxzZX0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgZmlsdGVyKCh7bWVudUl0ZW1zfSkgPT4gbWVudUl0ZW1zLmxlbmd0aCA+IDApLFxuICAgICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgICAgb2JzZXJ2ZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bihmbikpLFxuICAgICAgICAgIHRha2VVbnRpbCh1bnN1YnNjcmliZSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHtldmVudCwgbWVudUl0ZW1zfSkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuX2luamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBtZW51SXRlbXMuZm9yRWFjaChtZW51SXRlbSA9PiBtZW51SXRlbS5vbkFjdGlvbigpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHJldHVybiAoKTogdm9pZCA9PiB1bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckNsb3NlVmlld01lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnQ2xvc2UgdGFiJywgZ3JvdXA6ICdjbG9zZScsIGFjY2VsZXJhdG9yOiBbJ2N0cmwnLCAnayddLCBjc3NDbGFzczogJ2UyZS1jbG9zZS10YWInfTtcbiAgICBjb25zdCBhcHBDb25maWc6IE1lbnVJdGVtQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5fd29ya2JlbmNoQ29uZmlnLnZpZXdNZW51SXRlbXM/LmNsb3NlO1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gKHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgaXNEaXNhYmxlZDogKCk6IGJvb2xlYW4gPT4gIXZpZXcuY2xvc2FibGUsXG4gICAgICAgIG9uQWN0aW9uOiAoKTogdm9pZCA9PiB2b2lkIHZpZXcuY2xvc2UoKS50aGVuKCksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJDbG9zZU90aGVyVmlld3NNZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ0Nsb3NlIG90aGVyIHRhYnMnLCBncm91cDogJ2Nsb3NlJywgYWNjZWxlcmF0b3I6IFsnY3RybCcsICdzaGlmdCcsICdrJ119O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8uY2xvc2VPdGhlcnM7XG4gICAgY29uc3QgY29uZmlnID0gey4uLmRlZmF1bHRzLCAuLi5hcHBDb25maWd9O1xuXG4gICAgY29uZmlnLnZpc2libGUgJiYgdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclZpZXdNZW51SXRlbSgodmlldzogV29ya2JlbmNoVmlldyk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiBJbmplY3Rvci5OVUxMLFxuICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVEVYVCwgdXNlVmFsdWU6IGNvbmZpZy50ZXh0fV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoe1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBpc0Rpc2FibGVkOiAoKTogYm9vbGVhbiA9PiB2aWV3LmZpcnN0ICYmIHZpZXcubGFzdCxcbiAgICAgICAgb25BY3Rpb246ICgpOiB2b2lkID0+IHZvaWQgdmlldy5jbG9zZSgnb3RoZXItdmlld3MnKS50aGVuKCksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJDbG9zZUFsbFZpZXdzTWVudUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdHM6IE1lbnVJdGVtQ29uZmlnID0ge3Zpc2libGU6IHRydWUsIHRleHQ6ICdDbG9zZSBhbGwgdGFicycsIGdyb3VwOiAnY2xvc2UnLCBhY2NlbGVyYXRvcjogWydjdHJsJywgJ3NoaWZ0JywgJ2FsdCcsICdrJ10sIGNzc0NsYXNzOiAnZTJlLWNsb3NlLWFsbC10YWJzJ307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5jbG9zZUFsbDtcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICh7XG4gICAgICAgIHBvcnRhbDogbmV3IENvbXBvbmVudFBvcnRhbChUZXh0Q29tcG9uZW50LCBudWxsLCBpbmplY3RvciksXG4gICAgICAgIGFjY2VsZXJhdG9yOiBjb25maWcuYWNjZWxlcmF0b3IsXG4gICAgICAgIGdyb3VwOiBjb25maWcuZ3JvdXAsXG4gICAgICAgIGNzc0NsYXNzOiBjb25maWcuY3NzQ2xhc3MsXG4gICAgICAgIG9uQWN0aW9uOiAoKTogdm9pZCA9PiB2b2lkIHZpZXcuY2xvc2UoJ2FsbC12aWV3cycpLnRoZW4oKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckNsb3NlVmlld3NUb1RoZVJpZ2h0TWVudUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdHM6IE1lbnVJdGVtQ29uZmlnID0ge3Zpc2libGU6IHRydWUsIHRleHQ6ICdDbG9zZSB0YWJzIHRvIHRoZSByaWdodCcsIGdyb3VwOiAnY2xvc2UnfTtcbiAgICBjb25zdCBhcHBDb25maWc6IE1lbnVJdGVtQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5fd29ya2JlbmNoQ29uZmlnLnZpZXdNZW51SXRlbXM/LmNsb3NlVG9UaGVSaWdodDtcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgaXNEaXNhYmxlZDogKCk6IGJvb2xlYW4gPT4gdmlldy5sYXN0LFxuICAgICAgICBvbkFjdGlvbjogKCk6IHZvaWQgPT4gdm9pZCB2aWV3LmNsb3NlKCd2aWV3cy10by10aGUtcmlnaHQnKS50aGVuKCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckNsb3NlVmlld3NUb1RoZUxlZnRNZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ0Nsb3NlIHRhYnMgdG8gdGhlIGxlZnQnLCBncm91cDogJ2Nsb3NlJ307XG4gICAgY29uc3QgYXBwQ29uZmlnOiBNZW51SXRlbUNvbmZpZyB8IHVuZGVmaW5lZCA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3TWVudUl0ZW1zPy5jbG9zZVRvVGhlTGVmdDtcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgaXNEaXNhYmxlZDogKCk6IGJvb2xlYW4gPT4gdmlldy5maXJzdCxcbiAgICAgICAgb25BY3Rpb246ICgpOiB2b2lkID0+IHZvaWQgdmlldy5jbG9zZSgndmlld3MtdG8tdGhlLWxlZnQnKS50aGVuKCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlck1vdmVSaWdodE1lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnTW92ZSByaWdodCcsIGdyb3VwOiAnbW92ZScsIGFjY2VsZXJhdG9yOiBbJ2N0cmwnLCAnYWx0JywgJ2VuZCddfTtcbiAgICBjb25zdCBhcHBDb25maWc6IE1lbnVJdGVtQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5fd29ya2JlbmNoQ29uZmlnLnZpZXdNZW51SXRlbXM/Lm1vdmVSaWdodDtcbiAgICBjb25zdCBjb25maWcgPSB7Li4uZGVmYXVsdHMsIC4uLmFwcENvbmZpZ307XG5cbiAgICBjb25maWcudmlzaWJsZSAmJiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnJlZ2lzdGVyVmlld01lbnVJdGVtKCh2aWV3OiBXb3JrYmVuY2hWaWV3KTogV29ya2JlbmNoTWVudUl0ZW0gPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IEluamVjdG9yLk5VTEwsXG4gICAgICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBURVhULCB1c2VWYWx1ZTogY29uZmlnLnRleHR9XSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9ydGFsOiBuZXcgQ29tcG9uZW50UG9ydGFsKFRleHRDb21wb25lbnQsIG51bGwsIGluamVjdG9yKSxcbiAgICAgICAgYWNjZWxlcmF0b3I6IGNvbmZpZy5hY2NlbGVyYXRvcixcbiAgICAgICAgZ3JvdXA6IGNvbmZpZy5ncm91cCxcbiAgICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5jc3NDbGFzcyxcbiAgICAgICAgaXNEaXNhYmxlZDogKCkgPT4gdmlldy5maXJzdCAmJiB2aWV3Lmxhc3QsXG4gICAgICAgIG9uQWN0aW9uOiAoKSA9PiB2aWV3Lm1vdmUodmlldy5wYXJ0LmlkLCB7cmVnaW9uOiAnZWFzdCd9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyTW92ZUxlZnRNZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ01vdmUgbGVmdCcsIGdyb3VwOiAnbW92ZSd9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8ubW92ZUxlZnQ7XG4gICAgY29uc3QgY29uZmlnID0gey4uLmRlZmF1bHRzLCAuLi5hcHBDb25maWd9O1xuXG4gICAgY29uZmlnLnZpc2libGUgJiYgdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclZpZXdNZW51SXRlbSgodmlldzogV29ya2JlbmNoVmlldyk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiBJbmplY3Rvci5OVUxMLFxuICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVEVYVCwgdXNlVmFsdWU6IGNvbmZpZy50ZXh0fV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvcnRhbDogbmV3IENvbXBvbmVudFBvcnRhbChUZXh0Q29tcG9uZW50LCBudWxsLCBpbmplY3RvciksXG4gICAgICAgIGFjY2VsZXJhdG9yOiBjb25maWcuYWNjZWxlcmF0b3IsXG4gICAgICAgIGdyb3VwOiBjb25maWcuZ3JvdXAsXG4gICAgICAgIGNzc0NsYXNzOiBjb25maWcuY3NzQ2xhc3MsXG4gICAgICAgIGlzRGlzYWJsZWQ6ICgpID0+IHZpZXcuZmlyc3QgJiYgdmlldy5sYXN0LFxuICAgICAgICBvbkFjdGlvbjogKCkgPT4gdmlldy5tb3ZlKHZpZXcucGFydC5pZCwge3JlZ2lvbjogJ3dlc3QnfSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlck1vdmVVcE1lbnVJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBNZW51SXRlbUNvbmZpZyA9IHt2aXNpYmxlOiB0cnVlLCB0ZXh0OiAnTW92ZSB1cCcsIGdyb3VwOiAnbW92ZSd9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8ubW92ZVVwO1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBpc0Rpc2FibGVkOiAoKSA9PiB2aWV3LmZpcnN0ICYmIHZpZXcubGFzdCxcbiAgICAgICAgb25BY3Rpb246ICgpID0+IHZpZXcubW92ZSh2aWV3LnBhcnQuaWQsIHtyZWdpb246ICdub3J0aCd9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyTW92ZURvd25NZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ01vdmUgZG93bicsIGdyb3VwOiAnbW92ZSd9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8ubW92ZURvd247XG4gICAgY29uc3QgY29uZmlnID0gey4uLmRlZmF1bHRzLCAuLi5hcHBDb25maWd9O1xuXG4gICAgY29uZmlnLnZpc2libGUgJiYgdGhpcy5fd29ya2JlbmNoU2VydmljZS5yZWdpc3RlclZpZXdNZW51SXRlbSgodmlldzogV29ya2JlbmNoVmlldyk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiBJbmplY3Rvci5OVUxMLFxuICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVEVYVCwgdXNlVmFsdWU6IGNvbmZpZy50ZXh0fV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvcnRhbDogbmV3IENvbXBvbmVudFBvcnRhbChUZXh0Q29tcG9uZW50LCBudWxsLCBpbmplY3RvciksXG4gICAgICAgIGFjY2VsZXJhdG9yOiBjb25maWcuYWNjZWxlcmF0b3IsXG4gICAgICAgIGdyb3VwOiBjb25maWcuZ3JvdXAsXG4gICAgICAgIGNzc0NsYXNzOiBjb25maWcuY3NzQ2xhc3MsXG4gICAgICAgIGlzRGlzYWJsZWQ6ICgpID0+IHZpZXcuZmlyc3QgJiYgdmlldy5sYXN0LFxuICAgICAgICBvbkFjdGlvbjogKCkgPT4gdmlldy5tb3ZlKHZpZXcucGFydC5pZCwge3JlZ2lvbjogJ3NvdXRoJ30pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJNb3ZlVG9OZXdXaW5kb3dNZW51SXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0czogTWVudUl0ZW1Db25maWcgPSB7dmlzaWJsZTogdHJ1ZSwgdGV4dDogJ01vdmUgdG8gbmV3IHdpbmRvdycsIGdyb3VwOiAnb3BlbicsIGNzc0NsYXNzOiAnZTJlLW1vdmUtdG8tbmV3LXdpbmRvdyd9O1xuICAgIGNvbnN0IGFwcENvbmZpZzogTWVudUl0ZW1Db25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld01lbnVJdGVtcz8ubW92ZVRvTmV3V2luZG93O1xuICAgIGNvbnN0IGNvbmZpZyA9IHsuLi5kZWZhdWx0cywgLi4uYXBwQ29uZmlnfTtcblxuICAgIGNvbmZpZy52aXNpYmxlICYmIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJWaWV3TWVudUl0ZW0oKHZpZXc6IFdvcmtiZW5jaFZpZXcpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogSW5qZWN0b3IuTlVMTCxcbiAgICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRFWFQsIHVzZVZhbHVlOiBjb25maWcudGV4dH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3J0YWw6IG5ldyBDb21wb25lbnRQb3J0YWwoVGV4dENvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpLFxuICAgICAgICBhY2NlbGVyYXRvcjogY29uZmlnLmFjY2VsZXJhdG9yLFxuICAgICAgICBncm91cDogY29uZmlnLmdyb3VwLFxuICAgICAgICBjc3NDbGFzczogY29uZmlnLmNzc0NsYXNzLFxuICAgICAgICBvbkFjdGlvbjogKCkgPT4gdmlldy5tb3ZlKCduZXctd2luZG93JyksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcHJlc3NlZCBtb2RpZmllciBrZXlzIChjdHJsLCBzaGlmdCwgYWx0LCBtZXRhKSBhcyBhcnJheSBpdGVtcy5cbiAqL1xuZnVuY3Rpb24gZ2V0TW9kaWZpZXJTdGF0ZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbW9kaWZpZXJTdGF0ZTogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICBtb2RpZmllclN0YXRlLnB1c2goJ2N0cmwnKTtcbiAgfVxuICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICBtb2RpZmllclN0YXRlLnB1c2goJ3NoaWZ0Jyk7XG4gIH1cbiAgaWYgKGV2ZW50LmFsdEtleSkge1xuICAgIG1vZGlmaWVyU3RhdGUucHVzaCgnYWx0Jyk7XG4gIH1cbiAgaWYgKGV2ZW50Lm1ldGFLZXkpIHtcbiAgICBtb2RpZmllclN0YXRlLnB1c2goJ21ldGEnKTtcbiAgfVxuICByZXR1cm4gbW9kaWZpZXJTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xufVxuIl19
|
|
@@ -77,10 +77,10 @@ export class ViewListComponent {
|
|
|
77
77
|
onDocumentCloseEvent() {
|
|
78
78
|
this._overlayRef.dispose();
|
|
79
79
|
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewListComponent, deps: [{ token: i1.WorkbenchPart }, { token: i2.WorkbenchViewRegistry }, { token: i3.OverlayRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewListComponent, isStandalone: true, selector: "wb-view-list", inputs: { position: "position" }, host: { listeners: { "document:keydown.escape": "onEscape()", "mousedown": "onHostCloseEvent($event)", "sci-microfrontend-focusin": "onHostCloseEvent($event)", "document:mousedown": "onDocumentCloseEvent()", "document:sci-microfrontend-focusin": "onDocumentCloseEvent()" }, properties: { "class.south": "this.isSouthPosition", "attr.data-partid": "this.partId" } }, viewQueries: [{ propertyName: "_filterFieldComponent", first: true, predicate: FilterFieldComponent, descendants: true, static: true }], ngImport: i0, template: "<wb-filter-field [formControl]=\"filterFormControl\"/>\n<ng-container *ngIf=\"{\n scrolledOutOfView: views$ | async |\n wbFilterByPredicate:scrolledOutOfViewFilterFn |\n wbFilterByText$:filterFormControl:viewTextFn | async,\n scrolledIntoView: views$ | async |\n wbFilterByPredicate:scrolledIntoViewFilterFn |\n wbFilterByText$:filterFormControl:viewTextFn | async\n } as views\">\n <sci-viewport *ngIf=\"views.scrolledOutOfView?.length || views.scrolledIntoView?.length\">\n <wb-view-list-item *ngFor=\"let view of views.scrolledOutOfView\"\n [viewId]=\"view.id\"\n (click)=\"onActivateView(view)\">\n </wb-view-list-item>\n <hr *ngIf=\"views.scrolledOutOfView?.length && views.scrolledIntoView?.length\">\n <wb-view-list-item *ngFor=\"let view of views.scrolledIntoView\"\n [viewId]=\"view.id\"\n (click)=\"onActivateView(view)\">\n </wb-view-list-item>\n </sci-viewport>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;gap:.75em;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.south{border-top:none}:host>wb-filter-field{flex:none;margin:.5em .25em}:host>sci-viewport{flex:auto;max-height:350px}:host>sci-viewport::part(content){display:flex;flex-direction:column;gap:1px;padding-top:1px}:host>sci-viewport>wb-view-list-item{position:relative}:host>sci-viewport>wb-view-list-item:hover{background-color:var(--sci-color-background-elevation-hover);box-shadow:0 0 0 1px var(--sci-color-border)}:host>sci-viewport>wb-view-list-item:has(+hr):after{position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:var(--sci-color-border);content:\"\"}:host>sci-viewport>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: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FilterFieldComponent, selector: "wb-filter-field", inputs: ["tabindex", "placeholder", "disabled"], outputs: ["filter"] }, { kind: "pipe", type: FilterByPredicatePipe, name: "wbFilterByPredicate" }, { kind: "pipe", type: FilterByTextPipe, name: "wbFilterByText$" }, { kind: "component", type: ViewListItemComponent, selector: "wb-view-list-item", inputs: ["viewId"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewListComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{ selector: 'wb-view-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
86
86
|
NgIf,
|
|
@@ -70,10 +70,10 @@ export class ViewListButtonComponent {
|
|
|
70
70
|
ngOnDestroy() {
|
|
71
71
|
this._overlayRef?.dispose();
|
|
72
72
|
}
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewListButtonComponent, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.Injector }, { token: i0.NgZone }, { token: i2.WorkbenchPart }, { token: i3.WorkbenchViewRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewListButtonComponent, isStandalone: true, selector: "wb-view-list-button", host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<span class=\"chevron scion-workbench-icons\">\n chevron_down\n</span>\n<span class=\"count\" *ngIf=\"scrolledOutOfViewTabCount$ | async as count\">{{count}}</span>\n", styles: [":host{display:flex;flex-direction:column;cursor:pointer;padding:.5em;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}:host>span.chevron{flex:none}:host>span.count{flex:none;font-size:var(--sci-workbench-part-hidden-tab-count-size)}@container style(--sci-workbench-part-hidden-tab-count-size: 0){:host>span.count{display:none}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
75
75
|
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewListButtonComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{ selector: 'wb-view-list-button', standalone: true, imports: [
|
|
79
79
|
NgIf,
|
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
83
83
|
type: HostListener,
|
|
84
84
|
args: ['click']
|
|
85
85
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctbGlzdC1idXR0b24vdmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctbGlzdC1idXR0b24vdmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWdCLFVBQVUsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQWdFLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5SCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFNUYsT0FBTyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsYUFBYSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBWTlELE1BQU0sT0FBTyx1QkFBdUI7YUFFVixVQUFLLEdBQXNCLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFB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QUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDMUQ7YUFDQSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDMUIsUUFBUSxjQUFjLENBQUMsY0FBYyxFQUFFO2dCQUNyQyxLQUFLLHVCQUF1QixDQUFDLEtBQUs7b0JBQ2hDLFlBQVksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNqRSxNQUFNO2dCQUNSLEtBQUssdUJBQXVCLENBQUMsS0FBSztvQkFDaEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ2pFLE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXRFVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw4SENoQ3BDLHlLQUlBLHNhRHdCSSxJQUFJLHdGQUNKLFNBQVM7OzJGQUdBLHVCQUF1QjtrQkFWbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osU0FBUztxQkFDVjtpTkEyQk0sT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBDb21wb25lbnRSZWYsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIE5nWm9uZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29ubmVjdGVkUG9zaXRpb24sIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtWaWV3TGlzdENvbXBvbmVudCwgVmlld0xpc3RDb21wb25lbnRJbnB1dHN9IGZyb20gJy4uL3ZpZXctbGlzdC92aWV3LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHttYXBBcnJheSwgc3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi12aWV3LWxpc3QtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbGlzdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LWxpc3QtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0xpc3RCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNPVVRIOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnfTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTk9SVEg6IENvbm5lY3RlZFBvc2l0aW9uID0ge29yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbSd9O1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNjcm9sbGVkT3V0T2ZWaWV3VGFiQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHBhcnQ6IFdvcmtiZW5jaFBhcnQsXG4gICAgICAgICAgICAgIHZpZXdSZWdpc3RyeTogV29ya2JlbmNoVmlld1JlZ2lzdHJ5KSB7XG4gICAgdGhpcy5zY3JvbGxlZE91dE9mVmlld1RhYkNvdW50JCA9IHBhcnQudmlld0lkcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXBBcnJheSh2aWV3SWQgPT4gdmlld1JlZ2lzdHJ5LmdldCh2aWV3SWQpKSxcbiAgICAgICAgc3dpdGNoTWFwKHZpZXdzID0+IGNvbWJpbmVMYXRlc3Qodmlld3MubWFwKHZpZXcgPT4gdmlldy5zY3JvbGxlZEludG9WaWV3JC5waXBlKG1hcCgoKSA9PiB2aWV3KSkpKSksXG4gICAgICAgIG1hcCh2aWV3cyA9PiB2aWV3cy5yZWR1Y2UoKGNvdW50LCB2aWV3KSA9PiB2aWV3LnNjcm9sbGVkSW50b1ZpZXcgPyBjb3VudCA6IGNvdW50ICsgMSwgMCkpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjUpLFxuICAgICAgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5faG9zdClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1ZpZXdMaXN0QnV0dG9uQ29tcG9uZW50LlNPVVRILCBWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudC5OT1JUSF0pO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxuICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgfSkpO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChWaWV3TGlzdENvbXBvbmVudCwgbnVsbCwgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IHRoaXMuX292ZXJsYXlSZWZ9XSxcbiAgICB9KSkpO1xuXG4gICAgdGhpcy51cGRhdGVQb3NpdGlvbklucHV0T25Qb3NpdGlvbkNoYW5nZShjb21wb25lbnRSZWYsIHBvc2l0aW9uU3RyYXRlZ3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgJ3Bvc2l0aW9uJyBpbnB1dCBvZiB7QGxpbmsgVmlld0xpc3RDb21wb25lbnR9IHdoZW4gdGhlIG92ZXJsYXkgcG9zaXRpb24gY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25JbnB1dE9uUG9zaXRpb25DaGFuZ2UoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Vmlld0xpc3RDb21wb25lbnQ+LCBwb3NpdGlvblN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpOiB2b2lkIHtcbiAgICBwb3NpdGlvblN0cmF0ZWd5LnBvc2l0aW9uQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIFJ1biBpbnNpZGUgQW5ndWxhciBhcyBBbmd1bGFyIENESyBlbWl0cyBwb3NpdGlvbiBjaGFuZ2VzIG91dHNpZGUgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBBbmd1bGFyIHdvdWxkIG5vdCBpbnZva2UgdGhlIGBuZ09uQ2hhbmdlc2AgbGlmZWN5Y2xlIGhvb2sgd2hlbiB1cGRhdGluZyBjb21wb25lbnQgaW5wdXQuXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bihmbikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoY29tcG9uZW50UmVmLmluamVjdG9yLmdldChEZXN0cm95UmVmKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHBvc2l0aW9uQ2hhbmdlID0+IHtcbiAgICAgICAgc3dpdGNoIChwb3NpdGlvbkNoYW5nZS5jb25uZWN0aW9uUGFpcikge1xuICAgICAgICAgIGNhc2UgVmlld0xpc3RCdXR0b25Db21wb25lbnQuTk9SVEg6XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoVmlld0xpc3RDb21wb25lbnRJbnB1dHMuUE9TSVRJT04sICdub3J0aCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudC5TT1VUSDpcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChWaWV3TGlzdENvbXBvbmVudElucHV0cy5QT1NJVElPTiwgJ3NvdXRoJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cImNoZXZyb24gc2Npb24td29ya2JlbmNoLWljb25zXCI+XG4gIGNoZXZyb25fZG93blxuPC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwic2Nyb2xsZWRPdXRPZlZpZXdUYWJDb3VudCQgfCBhc3luYyBhcyBjb3VudFwiPnt7Y291bnR9fTwvc3Bhbj5cbiJdfQ==
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctbGlzdC1idXR0b24vdmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctbGlzdC1idXR0b24vdmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWdCLFVBQVUsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQWdFLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5SCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFNUYsT0FBTyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsYUFBYSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBWTlELE1BQU0sT0FBTyx1QkFBdUI7YUFFVixVQUFLLEdBQXNCLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFB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QUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDMUQ7YUFDQSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDMUIsUUFBUSxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RDLEtBQUssdUJBQXVCLENBQUMsS0FBSztvQkFDaEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ2pFLE1BQU07Z0JBQ1IsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLO29CQUNoQyxZQUFZLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDakUsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F0RVUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsOEhDaENwQyx5S0FJQSxzYUR3QkksSUFBSSx3RkFDSixTQUFTOzsyRkFHQSx1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBR25CLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLFNBQVM7cUJBQ1Y7aU5BMkJNLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Nvbm5lY3RlZFBvc2l0aW9uLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7Q29tcG9uZW50UG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7Vmlld0xpc3RDb21wb25lbnQsIFZpZXdMaXN0Q29tcG9uZW50SW5wdXRzfSBmcm9tICcuLi92aWV3LWxpc3Qvdmlldy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnR9IGZyb20gJy4uL3dvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7bWFwQXJyYXksIHN1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2Itdmlldy1saXN0LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LWxpc3QtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1saXN0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdMaXN0QnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTT1VUSDogQ29ubmVjdGVkUG9zaXRpb24gPSB7b3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJ307XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE5PUlRIOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdib3R0b20nfTtcblxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzY3JvbGxlZE91dE9mVmlld1RhYkNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9uZTogTmdab25lLFxuICAgICAgICAgICAgICBwYXJ0OiBXb3JrYmVuY2hQYXJ0LFxuICAgICAgICAgICAgICB2aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSkge1xuICAgIHRoaXMuc2Nyb2xsZWRPdXRPZlZpZXdUYWJDb3VudCQgPSBwYXJ0LnZpZXdJZHMkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwQXJyYXkodmlld0lkID0+IHZpZXdSZWdpc3RyeS5nZXQodmlld0lkKSksXG4gICAgICAgIHN3aXRjaE1hcCh2aWV3cyA9PiBjb21iaW5lTGF0ZXN0KHZpZXdzLm1hcCh2aWV3ID0+IHZpZXcuc2Nyb2xsZWRJbnRvVmlldyQucGlwZShtYXAoKCkgPT4gdmlldykpKSkpLFxuICAgICAgICBtYXAodmlld3MgPT4gdmlld3MucmVkdWNlKChjb3VudCwgdmlldykgPT4gdmlldy5zY3JvbGxlZEludG9WaWV3ID8gY291bnQgOiBjb3VudCArIDEsIDApKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2hvc3QpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtWaWV3TGlzdEJ1dHRvbkNvbXBvbmVudC5TT1VUSCwgVmlld0xpc3RCdXR0b25Db21wb25lbnQuTk9SVEhdKTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZShuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoVmlld0xpc3RDb21wb25lbnQsIG51bGwsIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiB0aGlzLl9vdmVybGF5UmVmfV0sXG4gICAgfSkpKTtcblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb25JbnB1dE9uUG9zaXRpb25DaGFuZ2UoY29tcG9uZW50UmVmLCBwb3NpdGlvblN0cmF0ZWd5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzICdwb3NpdGlvbicgaW5wdXQgb2Yge0BsaW5rIFZpZXdMaXN0Q29tcG9uZW50fSB3aGVuIHRoZSBvdmVybGF5IHBvc2l0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uSW5wdXRPblBvc2l0aW9uQ2hhbmdlKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFZpZXdMaXN0Q29tcG9uZW50PiwgcG9zaXRpb25TdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KTogdm9pZCB7XG4gICAgcG9zaXRpb25TdHJhdGVneS5wb3NpdGlvbkNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBSdW4gaW5zaWRlIEFuZ3VsYXIgYXMgQW5ndWxhciBDREsgZW1pdHMgcG9zaXRpb24gY2hhbmdlcyBvdXRzaWRlIHRoZSBBbmd1bGFyIHpvbmUuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgQW5ndWxhciB3b3VsZCBub3QgaW52b2tlIHRoZSBgbmdPbkNoYW5nZXNgIGxpZmVjeWNsZSBob29rIHdoZW4gdXBkYXRpbmcgY29tcG9uZW50IGlucHV0LlxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoZm4gPT4gdGhpcy5fem9uZS5ydW4oZm4pKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKGNvbXBvbmVudFJlZi5pbmplY3Rvci5nZXQoRGVzdHJveVJlZikpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwb3NpdGlvbkNoYW5nZSA9PiB7XG4gICAgICAgIHN3aXRjaCAocG9zaXRpb25DaGFuZ2UuY29ubmVjdGlvblBhaXIpIHtcbiAgICAgICAgICBjYXNlIFZpZXdMaXN0QnV0dG9uQ29tcG9uZW50Lk5PUlRIOlxuICAgICAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KFZpZXdMaXN0Q29tcG9uZW50SW5wdXRzLlBPU0lUSU9OLCAnbm9ydGgnKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgVmlld0xpc3RCdXR0b25Db21wb25lbnQuU09VVEg6XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoVmlld0xpc3RDb21wb25lbnRJbnB1dHMuUE9TSVRJT04sICdzb3V0aCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJjaGV2cm9uIHNjaW9uLXdvcmtiZW5jaC1pY29uc1wiPlxuICBjaGV2cm9uX2Rvd25cbjwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cInNjcm9sbGVkT3V0T2ZWaWV3VGFiQ291bnQkIHwgYXN5bmMgYXMgY291bnRcIj57e2NvdW50fX08L3NwYW4+XG4iXX0=
|
|
@@ -43,10 +43,10 @@ export class ViewListItemComponent {
|
|
|
43
43
|
],
|
|
44
44
|
}));
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewListItemComponent, deps: [{ token: i1.WorkbenchViewRegistry }, { token: i2.WorkbenchConfig }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewListItemComponent, isStandalone: true, selector: "wb-view-list-item", inputs: { viewId: "viewId" }, host: { properties: { "class.active": "this.active" } }, ngImport: i0, template: "<div class=\"content\">\n <ng-container *cdkPortalOutlet=\"viewTabContentPortal\"></ng-container>\n</div>\n\n<button *ngIf=\"view.closable\"\n class=\"close e2e-close scion-workbench-icons\"\n (click)=\"onClose()\">\n close\n</button>\n", styles: [":host{display:flex;align-items:center;padding:.6em 1em;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;gap:1em}:host.active{color:var(--sci-color-accent)}:host.active:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background-color:var(--sci-color-accent)}:host>div.content{flex:auto;display:grid;position:relative}:host>button.close{all:unset;flex:none;cursor:pointer;visibility:hidden;padding:.125em;border-radius:var(--sci-corner-small);opacity:.75}:host>button.close:hover{opacity:1;background-color:var(--sci-color-background-elevation-hover)}:host:hover>button.close{visibility:visible}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewListItemComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
51
|
args: [{ selector: 'wb-view-list-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
52
52
|
PortalModule,
|
|
@@ -171,10 +171,10 @@ export class ViewTabComponent {
|
|
|
171
171
|
],
|
|
172
172
|
}));
|
|
173
173
|
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewTabComponent, deps: [{ token: i0.ElementRef }, { token: WORKBENCH_ID }, { token: i1.WorkbenchConfig }, { token: i2.WorkbenchViewRegistry }, { token: i3.ɵWorkbenchRouter }, { token: i4.ViewDragService }, { token: i0.IterableDiffers }, { token: i5.ViewMenuService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewTabComponent, isStandalone: true, selector: "wb-view-tab", inputs: { viewId: "viewId" }, host: { listeners: { "click": "onClick()", "mousedown": "onMousedown($event)", "contextmenu": "onContextmenu($event)", "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.data-viewid": "this.viewId", "attr.draggable": "this.draggable", "attr.tabindex": "this.tabindex", "class.drag-over-tabbar": "this.isDragOverTabbar", "class.active": "this.active", "class.part-active": "this.partActive", "class.e2e-dirty": "this.dirty" } }, usesOnChanges: true, ngImport: i0, template: "<!-- IMPORTANT: THIS HTML FILE IS ALSO USED BY `ViewTabDragImageComponent` -->\n\n<div class=\"corner-radius start\" *ngIf=\"view.active\">\n <div class=\"circle\"></div>\n</div>\n\n<div class=\"content\">\n <ng-container *cdkPortalOutlet=\"viewTabContentPortal\"></ng-container>\n</div>\n\n<div class=\"corner-radius end\" *ngIf=\"view.active\">\n <div class=\"circle\"></div>\n</div>\n\n<button *ngIf=\"view.closable\"\n class=\"close e2e-close scion-workbench-icons\"\n (click)=\"onClose($event)\">\n close\n</button>\n", styles: [":host{display:grid;align-items:center;padding-left:var(--sci-workbench-tab-padding-inline);padding-right:var(--sci-workbench-tab-padding-inline);position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;box-sizing:border-box;outline:none;border-top:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent;border-top-left-radius:var(--sci-workbench-tab-border-radius);border-top-right-radius:var(--sci-workbench-tab-border-radius)}:host.active{cursor:default;color:var(--sci-workbench-tab-active-text-color);border-left-color:var(--sci-workbench-tab-border-color);border-right-color:var(--sci-workbench-tab-border-color);border-top-color:var(--sci-workbench-tab-border-color);background-color:var(--sci-workbench-view-background-color)}wb-workbench:has(wb-main-area-layout) wb-part:not(.main-area) :host.active{background-color:var(--sci-workbench-view-peripheral-background-color)}:host.active.part-active>div.content{color:var(--sci-workbench-part-active-tab-active-text-color)}:host>div.content{min-width:var(--sci-workbench-tab-min-width);max-width:var(--sci-workbench-tab-max-width);isolation:isolate}:host>button.close{all:unset;position:absolute;cursor:pointer;visibility:hidden;padding:.125em;border-radius:var(--sci-corner-small);right:.2em}:host>button.close:not(:hover){opacity:.75}:host.active>button.close,:host:hover:not(.drag-over-tabbar)>button.close{visibility:visible}:host.active>button.close:hover{background-color:var(--sci-workbench-tab-hover-background-color)}:host:hover:not(.active):not(.drag-over-tabbar):before{content:\"\";background-color:var(--sci-workbench-tab-hover-background-color);position:absolute;inset:0 0 .125em .125em;border-radius:var(--sci-workbench-tab-border-radius);pointer-events:none}:host>div.corner-radius{height:var(--sci-workbench-tab-border-radius);width:var(--sci-workbench-tab-border-radius);overflow:hidden;position:absolute;bottom:0}:host>div.corner-radius>div.circle{position:absolute;top:calc(-2 * var(--sci-workbench-tab-border-radius));width:calc(2 * var(--sci-workbench-tab-border-radius));height:calc(2 * var(--sci-workbench-tab-border-radius));border:var(--sci-workbench-tab-border-radius) solid var(--sci-workbench-view-background-color);border-radius:50%;box-shadow:inset 0 0 0 1px var(--sci-workbench-tab-border-color);box-sizing:content-box}wb-workbench:has(wb-main-area-layout) wb-part:not(.main-area) :host>div.corner-radius>div.circle{border-color:var(--sci-workbench-view-peripheral-background-color)}:host>div.corner-radius.start{left:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.start>div.circle{left:calc(-2 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end{right:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end>div.circle{right:calc(-2 * var(--sci-workbench-tab-border-radius))}@container viewtab (height >= 3.5rem){:host>button.close{align-self:start;top:.125em;right:.125em}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
|
|
176
176
|
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewTabComponent, decorators: [{
|
|
178
178
|
type: Component,
|
|
179
179
|
args: [{ selector: 'wb-view-tab', standalone: true, imports: [
|
|
180
180
|
NgIf,
|
|
@@ -227,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
227
227
|
* Indicates that the auxilary mouse button is pressed (usually the mouse wheel button or middle button).
|
|
228
228
|
*/
|
|
229
229
|
const AUXILARY_MOUSE_BUTTON = 4;
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC92aWV3LXRhYi92aWV3LXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctdGFiL3ZpZXctdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBb0MsTUFBTSxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBQyx1QkFBdUIsRUFBa0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsMEJBQTBCLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFFOUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFHdkYsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQUVoRDs7OztHQUlHO0FBV0gsTUFBTSxPQUFPLGdCQUFnQjtJQWtCM0I7O09BRUc7SUFDSCxJQUNXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELFlBQVksSUFBNkIsRUFDQyxZQUFvQixFQUMxQyxnQkFBaUMsRUFDakMsYUFBb0MsRUFDcEMsT0FBeUIsRUFDekIsZ0JBQWlDLEVBQ2pDLFFBQXlCLEVBQ3pCLHVCQUF3QyxFQUN4QyxTQUFtQjtRQVBHLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQjtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBaEMvQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFXckMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUdqQixhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0REFBNEQ7UUFtQmhGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUdNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBWTtRQUN6QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7UUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR00sV0FBVyxDQUFDLEtBQWlCO1FBQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxxQkFBcUIsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBR00sYUFBYSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakcsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBR00sV0FBVyxDQUFDLEtBQWdCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDdkIsT0FBTzthQUNSO1lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEUsOEhBQThIO1lBQzlILEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV4RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO2dCQUNwQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDaEMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUU7Z0JBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQzFCLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7Z0JBQ3RDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtnQkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztnQkFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUNwQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDcEMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLO2dCQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU07Z0JBQ3ZELFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDOUIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTthQUN2QyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHTSxTQUFTLENBQUMsS0FBZ0I7UUFDL0Isd0lBQXdJO1FBQ3hJLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxVQUFVLEtBQUssTUFBTSxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN2RDtRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLHVCQUF1QjtRQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQzlILElBQUksQ0FDSCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxFQUFFLDBDQUEwQztRQUNwRixlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDbEUsQ0FBQztRQUVKLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQzthQUM3QixJQUFJLENBQ0gsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUN4QixrQkFBa0IsRUFBRSxDQUNyQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDOUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsb0dBQW9HO1lBQzdILElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNsRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssMkJBQTJCO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBVSxDQUFDO1FBRXZELElBQUksQ0FBQyxhQUFhO2FBQ2YsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFDM0MsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUMxQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQW1DLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ2hFLGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBNkIsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLCtCQUErQjtRQUNyQyxJQUFJLENBQUMsYUFBYTthQUNmLElBQUksQ0FDSCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ2hHLGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLElBQUksdUJBQXVCLENBQUM7UUFDeEYsT0FBTyxJQUFJLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDOUQsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUM7Z0JBQzdDLEVBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxLQUF1QyxFQUFDO2FBQ3pGO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzhHQWpNVSxnQkFBZ0IsNENBMkJQLFlBQVk7a0dBM0JyQixnQkFBZ0IsNmtCQzVDN0IsOGhCQW1CQSxrK0ZEcUJJLElBQUksNEZBQ0osWUFBWTs7MkZBR0gsZ0JBQWdCO2tCQVY1QixTQUFTOytCQUNFLGFBQWEsY0FHWCxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixZQUFZO3FCQUNiOzswQkE2QlksTUFBTTsyQkFBQyxZQUFZOzJQQWpCekIsTUFBTTtzQkFGWixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQzs7c0JBQ3RCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUl4QixTQUFTO3NCQURmLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUl0QixRQUFRO3NCQURkLFdBQVc7dUJBQUMsZUFBZTtnQkFPakIsZ0JBQWdCO3NCQUQxQixXQUFXO3VCQUFDLHdCQUF3QjtnQkEyQjFCLE1BQU07c0JBRGhCLFdBQVc7dUJBQUMsY0FBYztnQkFNaEIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBTXJCLEtBQUs7c0JBRGYsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTXZCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQVdkLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVU5QixhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRaEMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUM5QixTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDOztBQTRFckM7O0dBRUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIEl0ZXJhYmxlQ2hhbmdlcywgSXRlcmFibGVEaWZmZXJzLCBOZ1pvbmUsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtWSUVXX0RSQUdfVFJBTlNGRVJfVFlQRSwgVmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi8uLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge2NyZWF0ZUVsZW1lbnR9IGZyb20gJy4uLy4uL2NvbW1vbi9kb20udXRpbCc7XG5pbXBvcnQge0NvbXBvbmVudFBvcnRhbCwgUG9ydGFsTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7VklFV19UQUJfUkVOREVSSU5HX0NPTlRFWFQsIFZpZXdUYWJSZW5kZXJpbmdDb250ZXh0fSBmcm9tICcuLi8uLi93b3JrYmVuY2guY29uc3RhbnRzJztcbmltcG9ydCB7V29ya2JlbmNoQ29uZmlnfSBmcm9tICcuLi8uLi93b3JrYmVuY2gtY29uZmlnJztcbmltcG9ydCB7Vmlld1RhYkNvbnRlbnRDb21wb25lbnR9IGZyb20gJy4uL3ZpZXctdGFiLWNvbnRlbnQvdmlldy10YWItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtWaWV3TWVudVNlcnZpY2V9IGZyb20gJy4uL3ZpZXctY29udGV4dC1tZW51L3ZpZXctbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hWaWV3fSBmcm9tICcuLi8uLi92aWV3L8m1d29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtWaWV3SWQsIFdvcmtiZW5jaFZpZXd9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFJvdXRlcn0gZnJvbSAnLi4vLi4vcm91dGluZy/JtXdvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge3N1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLWlkJztcblxuLyoqXG4gKiBJTVBPUlRBTlQ6IEhUTUwgYW5kIENTUyBhbHNvIHVzZWQgYnkge0BsaW5rIFZpZXdUYWJEcmFnSW1hZ2VDb21wb25lbnR9LlxuICpcbiAqIEBzZWUgVmlld1RhYkRyYWdJbWFnZUNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi12aWV3LXRhYicsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LXRhYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXctdGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld1RhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgcHJpdmF0ZSBfbmdPbkNoYW5nZXMkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgaG9zdDogSFRNTEVsZW1lbnQ7XG4gIHB1YmxpYyB2aWV3ITogybVXb3JrYmVuY2hWaWV3O1xuICBwdWJsaWMgdmlld1RhYkNvbnRlbnRQb3J0YWwhOiBDb21wb25lbnRQb3J0YWw8dW5rbm93bj47XG5cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXZpZXdpZCcpXG4gIHB1YmxpYyB2aWV3SWQhOiBWaWV3SWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRyYWdnYWJsZScpXG4gIHB1YmxpYyBkcmFnZ2FibGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHB1YmxpYyB0YWJpbmRleCA9IC0xOyAvLyBtYWtlIHRoZSB2aWV3IGZvY3VzYWJsZSB0byBpbnN0YWxsIHZpZXcgbWVudSBhY2NlbGVyYXRvcnNcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGRyYWdnaW5nIGEgdmlldyB0YWIgb3ZlciB0aGlzIHZpZXcgdGFiJ3MgdGFiYmFyLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kcmFnLW92ZXItdGFiYmFyJylcbiAgcHVibGljIGdldCBpc0RyYWdPdmVyVGFiYmFyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuaXNEcmFnT3ZlclRhYmJhciA9PT0gdGhpcy52aWV3LnBhcnQuaWQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgICAgICAgQEluamVjdChXT1JLQkVOQ0hfSUQpIHByaXZhdGUgX3dvcmtiZW5jaElkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaENvbmZpZzogV29ya2JlbmNoQ29uZmlnLFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiDJtVdvcmtiZW5jaFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2RpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0NvbnRleHRNZW51U2VydmljZTogVmlld01lbnVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmhvc3QgPSBob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5pbnN0YWxsTWF4aW1pemVMaXN0ZW5lcigpO1xuICAgIHRoaXMuaW5zdGFsbFZpZXdDc3NDbGFzc0xpc3RlbmVyKCk7XG4gICAgdGhpcy5pbnN0YWxsVmlld01lbnVJdGVtQWNjZWxlcmF0b3JzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMudmlldyA9IHRoaXMuX3ZpZXdSZWdpc3RyeS5nZXQodGhpcy52aWV3SWQpO1xuICAgIHRoaXMudmlld1RhYkNvbnRlbnRQb3J0YWwgPSB0aGlzLmNyZWF0ZVZpZXdUYWJDb250ZW50UG9ydGFsKCk7XG4gICAgdGhpcy5fbmdPbkNoYW5nZXMkLm5leHQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgcHVibGljIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlldy5hY3RpdmU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBhcnQtYWN0aXZlJylcbiAgcHVibGljIGdldCBwYXJ0QWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpZXcucGFydC5hY3RpdmU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmUyZS1kaXJ0eScpXG4gIHB1YmxpYyBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlldy5kaXJ0eTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy52aWV3LmFjdGl2YXRlKCkudGhlbigpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIHByZXZlbnQgdGhlIHZpZXcgZnJvbSBiZWluZyBhY3RpdmF0ZWRcbiAgICB0aGlzLnZpZXcuY2xvc2UoKS50aGVuKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Nb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYnV0dG9ucyA9PT0gQVVYSUxBUllfTU9VU0VfQlVUVE9OKSB7XG4gICAgICB0aGlzLnZpZXcuY2xvc2UoKS50aGVuKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY29udGV4dG1lbnUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Db250ZXh0bWVudShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0TWVudVNlcnZpY2Uuc2hvd01lbnUoe3g6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFl9LCB0aGlzLnZpZXcuaWQpLnRoZW4oKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXcuYWN0aXZhdGUoKS50aGVuKCgpID0+IHtcbiAgICAgIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnbW92ZSc7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShWSUVXX0RSQUdfVFJBTlNGRVJfVFlQRSwgdGhpcy52aWV3LmlkKTtcbiAgICAgIC8vIFVzZSBhbiBpbnZpc2libGUgPGRpdj4gYXMgdGhlIG5hdGl2ZSBkcmFnIGltYWdlIGJlY2F1c2UgdGhlIGVmZmVjdGl2ZSBkcmFnIGltYWdlIGlzIHJlbmRlcmVkIGJ5IHtWaWV3VGFiRHJhZ0ltYWdlUmVuZGVyZXJ9LlxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShjcmVhdGVFbGVtZW50KCdkaXYnLCB7c3R5bGU6IHtkaXNwbGF5OiAnbm9uZSd9fSksIDAsIDApO1xuXG4gICAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uuc2V0Vmlld0RyYWdEYXRhKHtcbiAgICAgICAgdmlld0lkOiB0aGlzLnZpZXcuaWQsXG4gICAgICAgIHZpZXdUaXRsZTogdGhpcy52aWV3LnRpdGxlID8/ICcnLFxuICAgICAgICB2aWV3SGVhZGluZzogdGhpcy52aWV3LmhlYWRpbmcgPz8gJycsXG4gICAgICAgIHZpZXdDbG9zYWJsZTogdGhpcy52aWV3LmNsb3NhYmxlLFxuICAgICAgICB2aWV3RGlydHk6IHRoaXMudmlldy5kaXJ0eSxcbiAgICAgICAgdmlld1VybFNlZ21lbnRzOiB0aGlzLnZpZXcudXJsU2VnbWVudHMsXG4gICAgICAgIGFsdGVybmF0aXZlVmlld0lkOiB0aGlzLnZpZXcuYWx0ZXJuYXRpdmVJZCxcbiAgICAgICAgbmF2aWdhdGlvbkhpbnQ6IHRoaXMudmlldy5uYXZpZ2F0aW9uSGludCxcbiAgICAgICAgcGFydElkOiB0aGlzLnZpZXcucGFydC5pZCxcbiAgICAgICAgdmlld1RhYlBvaW50ZXJPZmZzZXRYOiBldmVudC5vZmZzZXRYLFxuICAgICAgICB2aWV3VGFiUG9pbnRlck9mZnNldFk6IGV2ZW50Lm9mZnNldFksXG4gICAgICAgIHZpZXdUYWJXaWR0aDogdGhpcy5ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLFxuICAgICAgICB2aWV3VGFiSGVpZ2h0OiB0aGlzLmhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LFxuICAgICAgICB3b3JrYmVuY2hJZDogdGhpcy5fd29ya2JlbmNoSWQsXG4gICAgICAgIGNsYXNzTGlzdDogdGhpcy52aWV3LmNsYXNzTGlzdC50b01hcCgpLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ0VuZChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIHRoaXMgdmlldyBzdGF5cyBhY3RpdmF0ZWQgaWYgdGhlIHVzZXIgY2FuY2VscyB0aGUgZHJhZyBvcGVyYXRpb24uIEJ1dCwgZG8gbm90IHB1c2ggdGhlIG5hdmlnYXRpb24gaW50byBicm93c2luZyBoaXN0b3J5IHN0YWNrLlxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXI/LmRyb3BFZmZlY3QgPT09ICdub25lJykge1xuICAgICAgdGhpcy52aWV3LmFjdGl2YXRlKHtza2lwTG9jYXRpb25DaGFuZ2U6IHRydWV9KS50aGVuKCk7XG4gICAgfVxuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS51bnNldFZpZXdEcmFnRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgZm9yICdkYmxjbGljaycgZXZlbnRzIHRvIG1heGltaXplIG9yIG1pbmltaXplIHRoZSBtYWluIGFyZWEuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgbGlzdGVuZXIgaXMgbm90IGFjdGl2YXRlZCB1bnRpbCB0aGUgbW91c2UgaXMgbW92ZWQuIE90aGVyd2lzZSwgY2xvc2luZyBzdWNjZXNzaXZlXG4gICAqIHZpZXdzIChpZiB0aGV5IGhhdmUgZGlmZmVyZW50IHRhYiB3aWR0aHMpIGNvdWxkIHJlc3VsdCBpbiB1bmludGVuZGVkIG1heGltaXphdGlvbiBvciBtaW5pbWl6YXRpb24uXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxNYXhpbWl6ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgICBjb25zdCBlbmFibGVkJCA9IG1lcmdlKGZyb21FdmVudCh0aGlzLmhvc3QsICdtb3VzZWVudGVyJyksIGZyb21FdmVudCh0aGlzLmhvc3QsICdtb3VzZW1vdmUnKSwgZnJvbUV2ZW50KHRoaXMuaG9zdCwgJ21vdXNlbGVhdmUnKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoZXZlbnQgPT4gZXZlbnQudHlwZSA9PT0gJ21vdXNlbW92ZScpLCAvLyB0aGUgJ21vdXNlbW92ZScgZXZlbnQgYXJtcyB0aGUgbGlzdGVuZXJcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGNvbnRpbnVlRm4gPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcihjb250aW51ZUZuKSksXG4gICAgICApO1xuXG4gICAgZnJvbUV2ZW50KHRoaXMuaG9zdCwgJ2RibGNsaWNrJylcbiAgICAgIC5waXBlKFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbShlbmFibGVkJCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW2V2ZW50LCBlbmFibGVkXSkgPT4ge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gcHJldmVudCBgUGFydEJhckNvbXBvbmVudGAgaGFuZGxpbmcgdGhlIGRibGNsaWNrIGV2ZW50IHdoaWNoIHdvdWxkIHVuZG8gbWF4aW1pemF0aW9uL21pbmltaXphdGlvblxuICAgICAgICBpZiAoZW5hYmxlZCAmJiB0aGlzLnZpZXcucGFydC5pc0luTWFpbkFyZWEpIHtcbiAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUobGF5b3V0ID0+IGxheW91dC50b2dnbGVNYXhpbWl6ZWQoKSkudGhlbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHZpZXcgc3BlY2lmaWMgQ1NTIGNsYXNzZXMgdG8gdGhlIHZpZXctdGFiLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsVmlld0Nzc0NsYXNzTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgY29uc3QgZGlmZmVyID0gdGhpcy5fZGlmZmVycy5maW5kKFtdKS5jcmVhdGU8c3RyaW5nPigpO1xuXG4gICAgdGhpcy5fbmdPbkNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudmlldy5jbGFzc0xpc3QudmFsdWUkKSxcbiAgICAgICAgbWFwKGNzc0NsYXNzZXMgPT4gZGlmZmVyLmRpZmYoY3NzQ2xhc3NlcykpLFxuICAgICAgICBmaWx0ZXIoKGRpZmYpOiBkaWZmIGlzIEl0ZXJhYmxlQ2hhbmdlczxzdHJpbmc+ID0+IGRpZmYgIT09IG51bGwpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGRpZmY6IEl0ZXJhYmxlQ2hhbmdlczxzdHJpbmc+KSA9PiB7XG4gICAgICAgIGRpZmYuZm9yRWFjaEFkZGVkSXRlbSgoe2l0ZW19KSA9PiB0aGlzLmhvc3QuY2xhc3NMaXN0LmFkZChpdGVtKSk7XG4gICAgICAgIGRpZmYuZm9yRWFjaFJlbW92ZWRJdGVtKCh7aXRlbX0pID0+IHRoaXMuaG9zdC5jbGFzc0xpc3QucmVtb3ZlKGl0ZW0pKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsVmlld01lbnVJdGVtQWNjZWxlcmF0b3JzKCk6IHZvaWQge1xuICAgIHRoaXMuX25nT25DaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl92aWV3Q29udGV4dE1lbnVTZXJ2aWNlLmluc3RhbGxNZW51SXRlbUFjY2VsZXJhdG9ycyQodGhpcy5ob3N0LCB0aGlzLnZpZXcpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZpZXdUYWJDb250ZW50UG9ydGFsKCk6IENvbXBvbmVudFBvcnRhbDx1bmtub3duPiB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuX3dvcmtiZW5jaENvbmZpZy52aWV3VGFiQ29tcG9uZW50IHx8IFZpZXdUYWJDb250ZW50Q29tcG9uZW50O1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudFR5cGUsIG51bGwsIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBXb3JrYmVuY2hWaWV3LCB1c2VWYWx1ZTogdGhpcy52aWV3fSxcbiAgICAgICAge3Byb3ZpZGU6IFZJRVdfVEFCX1JFTkRFUklOR19DT05URVhULCB1c2VWYWx1ZTogJ3RhYicgc2F0aXNmaWVzIFZpZXdUYWJSZW5kZXJpbmdDb250ZXh0fSxcbiAgICAgIF0sXG4gICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIGF1eGlsYXJ5IG1vdXNlIGJ1dHRvbiBpcyBwcmVzc2VkICh1c3VhbGx5IHRoZSBtb3VzZSB3aGVlbCBidXR0b24gb3IgbWlkZGxlIGJ1dHRvbikuXG4gKi9cbmNvbnN0IEFVWElMQVJZX01PVVNFX0JVVFRPTiA9IDQ7XG4iLCI8IS0tIElNUE9SVEFOVDogVEhJUyBIVE1MIEZJTEUgSVMgQUxTTyBVU0VEIEJZIGBWaWV3VGFiRHJhZ0ltYWdlQ29tcG9uZW50YCAtLT5cblxuPGRpdiBjbGFzcz1cImNvcm5lci1yYWRpdXMgc3RhcnRcIiAqbmdJZj1cInZpZXcuYWN0aXZlXCI+XG4gIDxkaXYgY2xhc3M9XCJjaXJjbGVcIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICA8bmctY29udGFpbmVyICpjZGtQb3J0YWxPdXRsZXQ9XCJ2aWV3VGFiQ29udGVudFBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb3JuZXItcmFkaXVzIGVuZFwiICpuZ0lmPVwidmlldy5hY3RpdmVcIj5cbiAgPGRpdiBjbGFzcz1cImNpcmNsZVwiPjwvZGl2PlxuPC9kaXY+XG5cbjxidXR0b24gKm5nSWY9XCJ2aWV3LmNsb3NhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJjbG9zZSBlMmUtY2xvc2Ugc2Npb24td29ya2JlbmNoLWljb25zXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoJGV2ZW50KVwiPlxuICBjbG9zZVxuPC9idXR0b24+XG4iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFydC92aWV3LXRhYi92aWV3LXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3ZpZXctdGFiL3ZpZXctdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBb0MsTUFBTSxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBQyx1QkFBdUIsRUFBa0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsMEJBQTBCLEVBQTBCLE1BQU0sMkJBQTJCLENBQUM7QUFFOUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFHdkYsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFB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QzthQUN6RjtTQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs4R0FqTVUsZ0JBQWdCLDRDQTJCUCxZQUFZO2tHQTNCckIsZ0JBQWdCLDZrQkM1QzdCLDhoQkFtQkEsaytGRHFCSSxJQUFJLDRGQUNKLFlBQVk7OzJGQUdILGdCQUFnQjtrQkFWNUIsU0FBUzsrQkFDRSxhQUFhLGNBR1gsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osWUFBWTtxQkFDYjs7MEJBNkJZLE1BQU07MkJBQUMsWUFBWTsyUEFqQnpCLE1BQU07c0JBRlosS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7O3NCQUN0QixXQUFXO3VCQUFDLGtCQUFrQjtnQkFJeEIsU0FBUztzQkFEZixXQUFXO3VCQUFDLGdCQUFnQjtnQkFJdEIsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLGVBQWU7Z0JBT2pCLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBMkIxQixNQUFNO3NCQURoQixXQUFXO3VCQUFDLGNBQWM7Z0JBTWhCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsbUJBQW1CO2dCQU1yQixLQUFLO3NCQURmLFdBQVc7dUJBQUMsaUJBQWlCO2dCQU12QixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFXZCxXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVOUIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUWhDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlDOUIsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUE0RXJDOztHQUVHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBJdGVyYWJsZUNoYW5nZXMsIEl0ZXJhYmxlRGlmZmVycywgTmdab25lLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0LCB3aXRoTGF0ZXN0RnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXdSZWdpc3RyeX0gZnJvbSAnLi4vLi4vdmlldy93b3JrYmVuY2gtdmlldy5yZWdpc3RyeSc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VklFV19EUkFHX1RSQU5TRkVSX1RZUEUsIFZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtjcmVhdGVFbGVtZW50fSBmcm9tICcuLi8uLi9jb21tb24vZG9tLnV0aWwnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFBvcnRhbE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1ZJRVdfVEFCX1JFTkRFUklOR19DT05URVhULCBWaWV3VGFiUmVuZGVyaW5nQ29udGV4dH0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLmNvbnN0YW50cyc7XG5pbXBvcnQge1dvcmtiZW5jaENvbmZpZ30gZnJvbSAnLi4vLi4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge1ZpZXdUYWJDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi92aWV3LXRhYi1jb250ZW50L3ZpZXctdGFiLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7Vmlld01lbnVTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWNvbnRleHQtbWVudS92aWV3LW1lbnUuc2VydmljZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoVmlld30gZnJvbSAnLi4vLi4vdmlldy/JtXdvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7Vmlld0lkLCBXb3JrYmVuY2hWaWV3fSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hSb3V0ZXJ9IGZyb20gJy4uLy4uL3JvdXRpbmcvybV3b3JrYmVuY2gtcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtzdWJzY3JpYmVJbnNpZGV9IGZyb20gJ0BzY2lvbi90b29sa2l0L29wZXJhdG9ycyc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXT1JLQkVOQ0hfSUR9IGZyb20gJy4uLy4uL3dvcmtiZW5jaC1pZCc7XG5cbi8qKlxuICogSU1QT1JUQU5UOiBIVE1MIGFuZCBDU1MgYWxzbyB1c2VkIGJ5IHtAbGluayBWaWV3VGFiRHJhZ0ltYWdlQ29tcG9uZW50fS5cbiAqXG4gKiBAc2VlIFZpZXdUYWJEcmFnSW1hZ2VDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2Itdmlldy10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LXRhYi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBQb3J0YWxNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIHByaXZhdGUgX25nT25DaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGhvc3Q6IEhUTUxFbGVtZW50O1xuICBwdWJsaWMgdmlldyE6IMm1V29ya2JlbmNoVmlldztcbiAgcHVibGljIHZpZXdUYWJDb250ZW50UG9ydGFsITogQ29tcG9uZW50UG9ydGFsPHVua25vd24+O1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS12aWV3aWQnKVxuICBwdWJsaWMgdmlld0lkITogVmlld0lkO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kcmFnZ2FibGUnKVxuICBwdWJsaWMgZHJhZ2dhYmxlID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBwdWJsaWMgdGFiaW5kZXggPSAtMTsgLy8gbWFrZSB0aGUgdmlldyBmb2N1c2FibGUgdG8gaW5zdGFsbCB2aWV3IG1lbnUgYWNjZWxlcmF0b3JzXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBkcmFnZ2luZyBhIHZpZXcgdGFiIG92ZXIgdGhpcyB2aWV3IHRhYidzIHRhYmJhci5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZHJhZy1vdmVyLXRhYmJhcicpXG4gIHB1YmxpYyBnZXQgaXNEcmFnT3ZlclRhYmJhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLmlzRHJhZ092ZXJUYWJiYXIgPT09IHRoaXMudmlldy5wYXJ0LmlkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hDb25maWc6IFdvcmtiZW5jaENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld1JlZ2lzdHJ5OiBXb3JrYmVuY2hWaWV3UmVnaXN0cnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogybVXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdDb250ZXh0TWVudVNlcnZpY2U6IFZpZXdNZW51U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5ob3N0ID0gaG9zdC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuaW5zdGFsbE1heGltaXplTGlzdGVuZXIoKTtcbiAgICB0aGlzLmluc3RhbGxWaWV3Q3NzQ2xhc3NMaXN0ZW5lcigpO1xuICAgIHRoaXMuaW5zdGFsbFZpZXdNZW51SXRlbUFjY2VsZXJhdG9ycygpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXcgPSB0aGlzLl92aWV3UmVnaXN0cnkuZ2V0KHRoaXMudmlld0lkKTtcbiAgICB0aGlzLnZpZXdUYWJDb250ZW50UG9ydGFsID0gdGhpcy5jcmVhdGVWaWV3VGFiQ29udGVudFBvcnRhbCgpO1xuICAgIHRoaXMuX25nT25DaGFuZ2VzJC5uZXh0KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gIHB1YmxpYyBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpZXcuYWN0aXZlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wYXJ0LWFjdGl2ZScpXG4gIHB1YmxpYyBnZXQgcGFydEFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aWV3LnBhcnQuYWN0aXZlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lMmUtZGlydHknKVxuICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpZXcuZGlydHk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMudmlldy5hY3RpdmF0ZSgpLnRoZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBwcmV2ZW50IHRoZSB2aWV3IGZyb20gYmVpbmcgYWN0aXZhdGVkXG4gICAgdGhpcy52aWV3LmNsb3NlKCkudGhlbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uTW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmJ1dHRvbnMgPT09IEFVWElMQVJZX01PVVNFX0JVVFRPTikge1xuICAgICAgdGhpcy52aWV3LmNsb3NlKCkudGhlbigpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQ29udGV4dG1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3Q29udGV4dE1lbnVTZXJ2aWNlLnNob3dNZW51KHt4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZfSwgdGhpcy52aWV3LmlkKS50aGVuKCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdTdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy52aWV3LmFjdGl2YXRlKCkudGhlbigoKSA9PiB7XG4gICAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnO1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoVklFV19EUkFHX1RSQU5TRkVSX1RZUEUsIHRoaXMudmlldy5pZCk7XG4gICAgICAvLyBVc2UgYW4gaW52aXNpYmxlIDxkaXY+IGFzIHRoZSBuYXRpdmUgZHJhZyBpbWFnZSBiZWNhdXNlIHRoZSBlZmZlY3RpdmUgZHJhZyBpbWFnZSBpcyByZW5kZXJlZCBieSB7Vmlld1RhYkRyYWdJbWFnZVJlbmRlcmVyfS5cbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoY3JlYXRlRWxlbWVudCgnZGl2Jywge3N0eWxlOiB7ZGlzcGxheTogJ25vbmUnfX0pLCAwLCAwKTtcblxuICAgICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnNldFZpZXdEcmFnRGF0YSh7XG4gICAgICAgIHZpZXdJZDogdGhpcy52aWV3LmlkLFxuICAgICAgICB2aWV3VGl0bGU6IHRoaXMudmlldy50aXRsZSA/PyAnJyxcbiAgICAgICAgdmlld0hlYWRpbmc6IHRoaXMudmlldy5oZWFkaW5nID8/ICcnLFxuICAgICAgICB2aWV3Q2xvc2FibGU6IHRoaXMudmlldy5jbG9zYWJsZSxcbiAgICAgICAgdmlld0RpcnR5OiB0aGlzLnZpZXcuZGlydHksXG4gICAgICAgIHZpZXdVcmxTZWdtZW50czogdGhpcy52aWV3LnVybFNlZ21lbnRzLFxuICAgICAgICBhbHRlcm5hdGl2ZVZpZXdJZDogdGhpcy52aWV3LmFsdGVybmF0aXZlSWQsXG4gICAgICAgIG5hdmlnYXRpb25IaW50OiB0aGlzLnZpZXcubmF2aWdhdGlvbkhpbnQsXG4gICAgICAgIHBhcnRJZDogdGhpcy52aWV3LnBhcnQuaWQsXG4gICAgICAgIHZpZXdUYWJQb2ludGVyT2Zmc2V0WDogZXZlbnQub2Zmc2V0WCxcbiAgICAgICAgdmlld1RhYlBvaW50ZXJPZmZzZXRZOiBldmVudC5vZmZzZXRZLFxuICAgICAgICB2aWV3VGFiV2lkdGg6IHRoaXMuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxcbiAgICAgICAgdmlld1RhYkhlaWdodDogdGhpcy5ob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCxcbiAgICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICBjbGFzc0xpc3Q6IHRoaXMudmlldy5jbGFzc0xpc3QudG9NYXAoKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRyYWdFbmQoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIC8vIEVuc3VyZSB0aGlzIHZpZXcgc3RheXMgYWN0aXZhdGVkIGlmIHRoZSB1c2VyIGNhbmNlbHMgdGhlIGRyYWcgb3BlcmF0aW9uLiBCdXQsIGRvIG5vdCBwdXNoIHRoZSBuYXZpZ2F0aW9uIGludG8gYnJvd3NpbmcgaGlzdG9yeSBzdGFjay5cbiAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyPy5kcm9wRWZmZWN0ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMudmlldy5hY3RpdmF0ZSh7c2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlfSkudGhlbigpO1xuICAgIH1cbiAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UudW5zZXRWaWV3RHJhZ0RhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIGZvciAnZGJsY2xpY2snIGV2ZW50cyB0byBtYXhpbWl6ZSBvciBtaW5pbWl6ZSB0aGUgbWFpbiBhcmVhLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIGxpc3RlbmVyIGlzIG5vdCBhY3RpdmF0ZWQgdW50aWwgdGhlIG1vdXNlIGlzIG1vdmVkLiBPdGhlcndpc2UsIGNsb3Npbmcgc3VjY2Vzc2l2ZVxuICAgKiB2aWV3cyAoaWYgdGhleSBoYXZlIGRpZmZlcmVudCB0YWIgd2lkdGhzKSBjb3VsZCByZXN1bHQgaW4gdW5pbnRlbmRlZCBtYXhpbWl6YXRpb24gb3IgbWluaW1pemF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsTWF4aW1pemVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgY29uc3QgZW5hYmxlZCQgPSBtZXJnZShmcm9tRXZlbnQodGhpcy5ob3N0LCAnbW91c2VlbnRlcicpLCBmcm9tRXZlbnQodGhpcy5ob3N0LCAnbW91c2Vtb3ZlJyksIGZyb21FdmVudCh0aGlzLmhvc3QsICdtb3VzZWxlYXZlJykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGV2ZW50ID0+IGV2ZW50LnR5cGUgPT09ICdtb3VzZW1vdmUnKSwgLy8gdGhlICdtb3VzZW1vdmUnIGV2ZW50IGFybXMgdGhlIGxpc3RlbmVyXG4gICAgICAgIHN1YnNjcmliZUluc2lkZShjb250aW51ZUZuID0+IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoY29udGludWVGbikpLFxuICAgICAgKTtcblxuICAgIGZyb21FdmVudCh0aGlzLmhvc3QsICdkYmxjbGljaycpXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20oZW5hYmxlZCQpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtldmVudCwgZW5hYmxlZF0pID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIHByZXZlbnQgYFBhcnRCYXJDb21wb25lbnRgIGhhbmRsaW5nIHRoZSBkYmxjbGljayBldmVudCB3aGljaCB3b3VsZCB1bmRvIG1heGltaXphdGlvbi9taW5pbWl6YXRpb25cbiAgICAgICAgaWYgKGVuYWJsZWQgJiYgdGhpcy52aWV3LnBhcnQuaXNJbk1haW5BcmVhKSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGxheW91dCA9PiBsYXlvdXQudG9nZ2xlTWF4aW1pemVkKCkpLnRoZW4oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB2aWV3IHNwZWNpZmljIENTUyBjbGFzc2VzIHRvIHRoZSB2aWV3LXRhYi5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFZpZXdDc3NDbGFzc0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGRpZmZlciA9IHRoaXMuX2RpZmZlcnMuZmluZChbXSkuY3JlYXRlPHN0cmluZz4oKTtcblxuICAgIHRoaXMuX25nT25DaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnZpZXcuY2xhc3NMaXN0LnZhbHVlJCksXG4gICAgICAgIG1hcChjc3NDbGFzc2VzID0+IGRpZmZlci5kaWZmKGNzc0NsYXNzZXMpKSxcbiAgICAgICAgZmlsdGVyKChkaWZmKTogZGlmZiBpcyBJdGVyYWJsZUNoYW5nZXM8c3RyaW5nPiA9PiBkaWZmICE9PSBudWxsKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChkaWZmOiBJdGVyYWJsZUNoYW5nZXM8c3RyaW5nPikgPT4ge1xuICAgICAgICBkaWZmLmZvckVhY2hBZGRlZEl0ZW0oKHtpdGVtfSkgPT4gdGhpcy5ob3N0LmNsYXNzTGlzdC5hZGQoaXRlbSkpO1xuICAgICAgICBkaWZmLmZvckVhY2hSZW1vdmVkSXRlbSgoe2l0ZW19KSA9PiB0aGlzLmhvc3QuY2xhc3NMaXN0LnJlbW92ZShpdGVtKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbFZpZXdNZW51SXRlbUFjY2VsZXJhdG9ycygpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ09uQ2hhbmdlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fdmlld0NvbnRleHRNZW51U2VydmljZS5pbnN0YWxsTWVudUl0ZW1BY2NlbGVyYXRvcnMkKHRoaXMuaG9zdCwgdGhpcy52aWV3KSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVWaWV3VGFiQ29udGVudFBvcnRhbCgpOiBDb21wb25lbnRQb3J0YWw8dW5rbm93bj4ge1xuICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLl93b3JrYmVuY2hDb25maWcudmlld1RhYkNvbXBvbmVudCB8fCBWaWV3VGFiQ29udGVudENvbXBvbmVudDtcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnRUeXBlLCBudWxsLCBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogV29ya2JlbmNoVmlldywgdXNlVmFsdWU6IHRoaXMudmlld30sXG4gICAgICAgIHtwcm92aWRlOiBWSUVXX1RBQl9SRU5ERVJJTkdfQ09OVEVYVCwgdXNlVmFsdWU6ICd0YWInIHNhdGlzZmllcyBWaWV3VGFiUmVuZGVyaW5nQ29udGV4dH0sXG4gICAgICBdLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSBhdXhpbGFyeSBtb3VzZSBidXR0b24gaXMgcHJlc3NlZCAodXN1YWxseSB0aGUgbW91c2Ugd2hlZWwgYnV0dG9uIG9yIG1pZGRsZSBidXR0b24pLlxuICovXG5jb25zdCBBVVhJTEFSWV9NT1VTRV9CVVRUT04gPSA0O1xuIiwiPCEtLSBJTVBPUlRBTlQ6IFRISVMgSFRNTCBGSUxFIElTIEFMU08gVVNFRCBCWSBgVmlld1RhYkRyYWdJbWFnZUNvbXBvbmVudGAgLS0+XG5cbjxkaXYgY2xhc3M9XCJjb3JuZXItcmFkaXVzIHN0YXJ0XCIgKm5nSWY9XCJ2aWV3LmFjdGl2ZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2lyY2xlXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqY2RrUG9ydGFsT3V0bGV0PVwidmlld1RhYkNvbnRlbnRQb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29ybmVyLXJhZGl1cyBlbmRcIiAqbmdJZj1cInZpZXcuYWN0aXZlXCI+XG4gIDxkaXYgY2xhc3M9XCJjaXJjbGVcIj48L2Rpdj5cbjwvZGl2PlxuXG48YnV0dG9uICpuZ0lmPVwidmlldy5jbG9zYWJsZVwiXG4gICAgICAgIGNsYXNzPVwiY2xvc2UgZTJlLWNsb3NlIHNjaW9uLXdvcmtiZW5jaC1pY29uc1wiXG4gICAgICAgIChjbGljayk9XCJvbkNsb3NlKCRldmVudClcIj5cbiAgY2xvc2VcbjwvYnV0dG9uPlxuIl19
|
|
@@ -17,10 +17,10 @@ export class ViewTabContentComponent {
|
|
|
17
17
|
this.view = view;
|
|
18
18
|
this.context = inject(VIEW_TAB_RENDERING_CONTEXT);
|
|
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: ViewTabContentComponent, deps: [{ token: i1.WorkbenchView }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewTabContentComponent, isStandalone: true, selector: "wb-view-tab-content", host: { properties: { "attr.context": "this.context" } }, ngImport: i0, template: "<span class=\"title e2e-title\">\n <span *ngIf=\"view.dirty\" class=\"scion-workbench-icons dirty e2e-dirty\">dirty</span>\n {{view.title}}\n</span>\n\n<span class=\"heading e2e-heading\" *ngIf=\"view.heading\">\n {{view.heading}}\n</span>\n", styles: [":host{display:flex;flex-direction:column;gap:.25em;overflow:hidden}:host>span.title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-weight:400;font-size:1em}:host>span.title>span.dirty{padding-right:.2em}:host>span.heading{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:.9em;font-weight:300}:host[context=tab] span.title,:host[context=drag-image] span.title{margin-right:1em}@container viewtab (height < 3.5rem){:host>span.heading{display:none}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewTabContentComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{ selector: 'wb-view-tab-content', standalone: true, imports: [NgIf], template: "<span class=\"title e2e-title\">\n <span *ngIf=\"view.dirty\" class=\"scion-workbench-icons dirty e2e-dirty\">dirty</span>\n {{view.title}}\n</span>\n\n<span class=\"heading e2e-heading\" *ngIf=\"view.heading\">\n {{view.heading}}\n</span>\n", styles: [":host{display:flex;flex-direction:column;gap:.25em;overflow:hidden}:host>span.title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-weight:400;font-size:1em}:host>span.title>span.dirty{padding-right:.2em}:host>span.heading{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:.9em;font-weight:300}:host[context=tab] span.title,:host[context=drag-image] span.title{margin-right:1em}@container viewtab (height < 3.5rem){:host>span.heading{display:none}}\n"] }]
|
|
26
26
|
}], ctorParameters: () => [{ type: i1.WorkbenchView }], propDecorators: { context: [{
|
|
@@ -57,10 +57,10 @@ export class ViewTabDragImageComponent {
|
|
|
57
57
|
this.isDragOverPeripheralTabbar = partId !== null && documentRoot.querySelector(`wb-workbench:has(wb-main-area-layout) wb-part[data-partid="${partId}"]:not(.main-area)`) !== null;
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewTabDragImageComponent, deps: [{ token: i1.WorkbenchView }, { token: i2.WorkbenchConfig }, { token: i3.ViewDragService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ViewTabDragImageComponent, isStandalone: true, selector: "wb-view-tab-drag-image", host: { properties: { "class.active": "this.active", "class.part-active": "this.partActive", "class.drag-over-tabbar": "this.isDragOverTabbar", "class.drag-over-peripheral-tabbar": "this.isDragOverPeripheralTabbar" } }, ngImport: i0, template: "<!-- IMPORTANT: THIS HTML FILE IS ALSO USED BY `ViewTabDragImageComponent` -->\n\n<div class=\"corner-radius start\" *ngIf=\"view.active\">\n <div class=\"circle\"></div>\n</div>\n\n<div class=\"content\">\n <ng-container *cdkPortalOutlet=\"viewTabContentPortal\"></ng-container>\n</div>\n\n<div class=\"corner-radius end\" *ngIf=\"view.active\">\n <div class=\"circle\"></div>\n</div>\n\n<button *ngIf=\"view.closable\"\n class=\"close e2e-close scion-workbench-icons\"\n (click)=\"onClose($event)\">\n close\n</button>\n", styles: [":host{display:grid;align-items:center;padding-left:var(--sci-workbench-tab-padding-inline);padding-right:var(--sci-workbench-tab-padding-inline);position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;box-sizing:border-box;outline:none;border-top:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent;border-top-left-radius:var(--sci-workbench-tab-border-radius);border-top-right-radius:var(--sci-workbench-tab-border-radius)}:host.active{cursor:default;color:var(--sci-workbench-tab-active-text-color);border-left-color:var(--sci-workbench-tab-border-color);border-right-color:var(--sci-workbench-tab-border-color);border-top-color:var(--sci-workbench-tab-border-color);background-color:var(--sci-workbench-view-background-color)}wb-workbench:has(wb-main-area-layout) wb-part:not(.main-area) :host.active{background-color:var(--sci-workbench-view-peripheral-background-color)}:host.active.part-active>div.content{color:var(--sci-workbench-part-active-tab-active-text-color)}:host>div.content{min-width:var(--sci-workbench-tab-min-width);max-width:var(--sci-workbench-tab-max-width);isolation:isolate}:host>button.close{all:unset;position:absolute;cursor:pointer;visibility:hidden;padding:.125em;border-radius:var(--sci-corner-small);right:.2em}:host>button.close:not(:hover){opacity:.75}:host.active>button.close,:host:hover:not(.drag-over-tabbar)>button.close{visibility:visible}:host.active>button.close:hover{background-color:var(--sci-workbench-tab-hover-background-color)}:host:hover:not(.active):not(.drag-over-tabbar):before{content:\"\";background-color:var(--sci-workbench-tab-hover-background-color);position:absolute;inset:0 0 .125em .125em;border-radius:var(--sci-workbench-tab-border-radius);pointer-events:none}:host>div.corner-radius{height:var(--sci-workbench-tab-border-radius);width:var(--sci-workbench-tab-border-radius);overflow:hidden;position:absolute;bottom:0}:host>div.corner-radius>div.circle{position:absolute;top:calc(-2 * var(--sci-workbench-tab-border-radius));width:calc(2 * var(--sci-workbench-tab-border-radius));height:calc(2 * var(--sci-workbench-tab-border-radius));border:var(--sci-workbench-tab-border-radius) solid var(--sci-workbench-view-background-color);border-radius:50%;box-shadow:inset 0 0 0 1px var(--sci-workbench-tab-border-color);box-sizing:content-box}wb-workbench:has(wb-main-area-layout) wb-part:not(.main-area) :host>div.corner-radius>div.circle{border-color:var(--sci-workbench-view-peripheral-background-color)}:host>div.corner-radius.start{left:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.start>div.circle{left:calc(-2 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end{right:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end>div.circle{right:calc(-2 * var(--sci-workbench-tab-border-radius))}@container viewtab (height >= 3.5rem){:host>button.close{align-self:start;top:.125em;right:.125em}}\n", ":host.drag-over-peripheral-tabbar{background-color:var(--sci-workbench-view-peripheral-background-color)}:host:not(.drag-over-tabbar){border-radius:var(--sci-workbench-tab-border-radius);border:1px solid var(--sci-workbench-tab-drag-border-color)}:host:not(.drag-over-tabbar)>div.corner-radius{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ViewTabDragImageComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{ selector: 'wb-view-tab-drag-image', standalone: true, imports: [
|
|
66
66
|
NgIf,
|
|
@@ -37,10 +37,10 @@ export class WorkbenchPartActionRegistry {
|
|
|
37
37
|
ngOnDestroy() {
|
|
38
38
|
this._registry.clear();
|
|
39
39
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
41
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartActionRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartActionRegistry, providedIn: 'root' }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartActionRegistry, decorators: [{
|
|
44
44
|
type: Injectable,
|
|
45
45
|
args: [{ providedIn: 'root' }]
|
|
46
46
|
}] });
|
|
@@ -47,10 +47,10 @@ export class WorkbenchPartRegistry {
|
|
|
47
47
|
this._registry.objects.forEach(part => part.destroy());
|
|
48
48
|
this._registry.clear();
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
51
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartRegistry, providedIn: 'root' }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchPartRegistry, decorators: [{
|
|
54
54
|
type: Injectable,
|
|
55
55
|
args: [{ providedIn: 'root' }]
|
|
56
56
|
}] });
|