@scion/workbench 17.0.0-beta.5 → 17.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/common/class-list.mjs +61 -0
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +32 -0
- package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +2 -20
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +13 -16
- package/esm2022/lib/layout/workbench-layout.component.mjs +12 -12
- package/esm2022/lib/layout/workbench-layouts.util.mjs +30 -0
- package/esm2022/lib/logging/logger-names.mjs +8 -9
- package/esm2022/lib/logging/logger.mjs +1 -1
- package/esm2022/lib/logging//311/265logger.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +55 -0
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +32 -20
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +53 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +85 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +140 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +122 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +30 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +130 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +16 -28
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +7 -29
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +70 -124
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.mjs +23 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +41 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +30 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +123 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +98 -0
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +31 -35
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +2 -1
- package/esm2022/lib/part/part.component.mjs +2 -1
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +37 -25
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +4 -3
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +1 -1
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/routing/public_api.mjs +1 -1
- package/esm2022/lib/routing/router.util.mjs +20 -43
- package/esm2022/lib/routing/routing.model.mjs +11 -0
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +1 -2
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-navigational-states.mjs +28 -18
- package/esm2022/lib/routing/workbench-route-data.mjs +6 -15
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +2 -3
- package/esm2022/lib/routing/workbench-router.service.mjs +5 -5
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +37 -12
- package/esm2022/lib/view/view.component.mjs +6 -9
- package/esm2022/lib/view/workbench-view.model.mjs +1 -1
- package/esm2022/lib/view//311/265workbench-view.model.mjs +34 -6
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +49 -0
- package/esm2022/lib/view-dnd/view-drag.service.mjs +1 -1
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -6
- package/esm2022/lib/workbench.constants.mjs +6 -2
- package/fesm2022/scion-workbench.mjs +1065 -544
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/class-list.d.ts +51 -0
- package/lib/common/grid-element-if-visible.pipe.d.ts +13 -0
- package/lib/dialog/workbench-dialog.d.ts +2 -6
- package/lib/dialog/workbench-dialog.options.d.ts +1 -1
- package/lib/dialog//311/265workbench-dialog.d.ts +2 -4
- package/lib/layout/main-area-layout/main-area-layout.component.d.ts +4 -7
- package/lib/layout/workbench-layout.component.d.ts +3 -3
- package/lib/layout/workbench-layouts.util.d.ts +10 -0
- package/lib/logging/logger-names.d.ts +7 -7
- package/lib/logging/logger.d.ts +5 -1
- package/lib/logging//311/265logger.d.ts +1 -1
- package/lib/microfrontend-platform/common/microfrontend.util.d.ts +22 -0
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +15 -9
- package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.d.ts +52 -0
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +37 -0
- package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-capability-interceptor.service.d.ts → microfrontend-popup-capability-validator.interceptor.d.ts} +3 -3
- package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-intent-interceptor.service.d.ts → microfrontend-popup-intent-handler.interceptor.d.ts} +9 -6
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +7 -10
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +2 -9
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +8 -14
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.d.ts +14 -0
- package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/routing/{microfrontend-view-capability-interceptor.service.d.ts → microfrontend-view-capability-validator.interceptor.d.ts} +3 -3
- package/lib/microfrontend-platform/routing/{microfrontend-view-intent-interceptor.service.d.ts → microfrontend-view-intent-handler.interceptor.d.ts} +6 -5
- package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +49 -0
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +1 -0
- package/lib/part/view-context-menu/view-menu.service.d.ts +3 -2
- package/lib/perspective/workbench-perspective-storage.service.d.ts +1 -1
- package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +1 -1
- package/lib/routing/public_api.d.ts +2 -1
- package/lib/routing/router.util.d.ts +12 -20
- package/lib/routing/routing.model.d.ts +30 -0
- package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +2 -3
- package/lib/routing/workbench-dialog-differ.d.ts +25 -0
- package/lib/routing/workbench-navigational-states.d.ts +16 -13
- package/lib/routing/workbench-route-data.d.ts +5 -13
- package/lib/routing/workbench-router.service.d.ts +7 -22
- package/lib/routing/workbench-url-observer.service.d.ts +13 -1
- package/lib/view/workbench-view.model.d.ts +9 -8
- package/lib/view//311/265workbench-view.model.d.ts +21 -2
- package/lib/view-dnd/grid-drop-targets.util.d.ts +22 -0
- package/lib/view-dnd/view-drag.service.d.ts +58 -47
- package/lib/workbench.constants.d.ts +4 -0
- package/package.json +2 -2
- package/esm2022/lib/common/grid-element-visible.pipe.mjs +0 -29
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-interceptor.service.mjs +0 -30
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-interceptor.service.mjs +0 -130
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-navigational-states.mjs +0 -22
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-routes.mjs +0 -71
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-interceptor.service.mjs +0 -54
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-interceptor.service.mjs +0 -123
- package/esm2022/lib/routing/navigation-state.resolver.mjs +0 -54
- package/lib/common/grid-element-visible.pipe.d.ts +0 -13
- package/lib/microfrontend-platform/routing/microfrontend-navigational-states.d.ts +0 -11
- package/lib/microfrontend-platform/routing/microfrontend-routes.d.ts +0 -38
- package/lib/routing/navigation-state.resolver.d.ts +0 -12
|
@@ -13,9 +13,7 @@ import { RouterOutlet } from '@angular/router';
|
|
|
13
13
|
import { SciViewportComponent } from '@scion/components/viewport';
|
|
14
14
|
import { ɵWorkbenchView } from './ɵworkbench-view.model';
|
|
15
15
|
import { LoggerNames } from '../logging';
|
|
16
|
-
import { Arrays } from '@scion/toolkit/util';
|
|
17
16
|
import { WorkbenchRouteData } from '../routing/workbench-route-data';
|
|
18
|
-
import { WorkbenchNavigationalViewStates } from '../routing/workbench-navigational-states';
|
|
19
17
|
import { RouterUtils } from '../routing/router.util';
|
|
20
18
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
21
19
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -48,7 +46,7 @@ export class ViewComponent {
|
|
|
48
46
|
return this._view.id;
|
|
49
47
|
}
|
|
50
48
|
get cssClasses() {
|
|
51
|
-
return this._view.
|
|
49
|
+
return this._view.classList.value.join(' ');
|
|
52
50
|
}
|
|
53
51
|
get isViewDragActive() {
|
|
54
52
|
return this._viewDragService.viewDragData !== null;
|
|
@@ -80,16 +78,15 @@ export class ViewComponent {
|
|
|
80
78
|
const actualRouteSnapshot = RouterUtils.resolveActualRouteSnapshot(route.snapshot);
|
|
81
79
|
this._view.title ??= RouterUtils.lookupRouteData(actualRouteSnapshot, WorkbenchRouteData.title) ?? null;
|
|
82
80
|
this._view.heading ??= RouterUtils.lookupRouteData(actualRouteSnapshot, WorkbenchRouteData.heading) ?? null;
|
|
83
|
-
this._view.cssClass
|
|
84
|
-
.concat(Arrays.coerce(RouterUtils.lookupRouteData(actualRouteSnapshot, WorkbenchRouteData.cssClass)))
|
|
85
|
-
.concat(Arrays.coerce(route.snapshot.data[WorkbenchRouteData.state]?.[WorkbenchNavigationalViewStates.cssClass]))
|
|
86
|
-
.concat(this._view.cssClasses);
|
|
81
|
+
this._view.classList.set(RouterUtils.lookupRouteData(actualRouteSnapshot, WorkbenchRouteData.cssClass), { scope: 'route' });
|
|
87
82
|
}
|
|
88
83
|
onDeactivateRoute() {
|
|
89
84
|
this._view.heading = null;
|
|
90
85
|
this._view.title = null;
|
|
91
|
-
this._view.cssClass = [];
|
|
92
86
|
this._view.dirty = false;
|
|
87
|
+
this._view.classList.remove({ scope: 'application' });
|
|
88
|
+
this._view.classList.remove({ scope: 'route' });
|
|
89
|
+
this._view.classList.remove({ scope: 'navigation' });
|
|
93
90
|
}
|
|
94
91
|
ngOnDestroy() {
|
|
95
92
|
this._logger.debug(() => `Destroying ViewComponent [viewId=${this.viewId}]'`, LoggerNames.LIFECYCLE);
|
|
@@ -136,4 +133,4 @@ function configureViewGlassPane() {
|
|
|
136
133
|
useExisting: ɵWorkbenchView,
|
|
137
134
|
};
|
|
138
135
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3ZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdmlldy92aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxXQUFXLEVBQXVCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMsWUFBWSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQWlCLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxv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QkFDVixrQkFDZTt3QkFDZCxrQkFBa0I7cUJBQ25CLGFBQ1U7d0JBQ1Qsc0JBQXNCLEVBQUU7cUJBQ3pCOzZMQU9VLFdBQVc7c0JBRHJCLFNBQVM7dUJBQUMsb0JBQW9CO2dCQVN4QixZQUFZO3NCQURsQixTQUFTO3VCQUFDLGVBQWU7Z0JBSWYsTUFBTTtzQkFEaEIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBTXBCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsWUFBWTtnQkFNZCxnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsaUJBQWlCOztBQXNEaEM7O0dBRUc7QUFDSCxTQUFTLHNCQUFzQjtJQUM3QixPQUFPO1FBQ0wsT0FBTyxFQUFFLG9CQUFvQjtRQUM3QixXQUFXLEVBQUUsY0FBYztLQUM1QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIFByb3ZpZGVyLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBc3luY1N1YmplY3QsIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTY2lWaWV3cG9ydENvbXBvbmVudH0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQnO1xuaW1wb3J0IHtWaWV3TWVudVNlcnZpY2V9IGZyb20gJy4uL3BhcnQvdmlldy1jb250ZXh0LW1lbnUvdmlldy1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4vybV3b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHtBcnJheXN9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZURhdGF9IGZyb20gJy4uL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlLWRhdGEnO1xuaW1wb3J0IHtXb3JrYmVuY2hOYXZpZ2F0aW9uYWxWaWV3U3RhdGVzfSBmcm9tICcuLi9yb3V0aW5nL3dvcmtiZW5jaC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcbmltcG9ydCB7Um91dGVyVXRpbHN9IGZyb20gJy4uL3JvdXRpbmcvcm91dGVyLnV0aWwnO1xuaW1wb3J0IHtBMTF5TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtHTEFTU19QQU5FX0JMT0NLQUJMRSwgR2xhc3NQYW5lRGlyZWN0aXZlfSBmcm9tICcuLi9nbGFzcy1wYW5lL2dsYXNzLXBhbmUuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBJcyB0aGUgZ3JhcGhpY2FsIHJlcHJlc2VudGF0aW9uIG9mIGEgd29ya2JlbmNoIHZpZXcuXG4gKlxuICogVGhlIHZpZXcgaGFzIGl0cyBkZWRpY2F0ZWQgcm91dGVyIG91dGxldCB0byBkaXNwbGF5IHZpZXcgY29udGVudC4gVXNlIHJvdXRlIHBhdGggcGFyYW1ldGVyc1xuICogdG8gZGVjaWRlIHdoYXQgc3BlY2lmaWMgY29udGVudCB0byBwcmVzZW50LiBVc2UgbWF0cml4IHBhcmFtZXRlcnMgdG8gYXNzb2NpYXRlIG9wdGlvbmFsIGRhdGFcbiAqIHdpdGggdGhlIHZpZXcgb3V0bGV0IFVSTC5cbiAqXG4gKiBUaXRsZSBhbmQgaGVhZGluZyBvZiB0aGlzIHZpZXcgYXJlIGVpdGhlciBzZXQgdmlhIGBXb3JrYmVuY2hWaWV3YCwgb3IgZ2l2ZW4gYXMgcm91dGUgZGF0YSBvciBtYXRyaXggcGFyYW1ldGVyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgQTExeU1vZHVsZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgR2xhc3NQYW5lRGlyZWN0aXZlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBjb25maWd1cmVWaWV3R2xhc3NQYW5lKCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3ZpZXdwb3J0JCA9IG5ldyBBc3luY1N1YmplY3Q8U2NpVmlld3BvcnRDb21wb25lbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZChTY2lWaWV3cG9ydENvbXBvbmVudClcbiAgcHVibGljIHNldCBzZXRWaWV3cG9ydCh2aWV3cG9ydDogU2NpVmlld3BvcnRDb21wb25lbnQpIHtcbiAgICBpZiAodmlld3BvcnQpIHtcbiAgICAgIHRoaXMuX3ZpZXdwb3J0JC5uZXh0KHZpZXdwb3J0KTtcbiAgICAgIHRoaXMuX3ZpZXdwb3J0JC5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3JvdXRlcl9vdXRsZXQnKVxuICBwdWJsaWMgcm91dGVyT3V0bGV0ITogUm91dGVyT3V0bGV0OyAvLyBzcGVjc1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXZpZXdpZCcpXG4gIHB1YmxpYyBnZXQgdmlld0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXcuaWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuY2xhc3MnKVxuICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldy5jc3NDbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mudmlldy1kcmFnJylcbiAgcHVibGljIGdldCBpc1ZpZXdEcmFnQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdEYXRhICE9PSBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdmlldzogybVXb3JrYmVuY2hWaWV3LFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICB2aWV3Q29udGV4dE1lbnVTZXJ2aWNlOiBWaWV3TWVudVNlcnZpY2UpIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYENvbnN0cnVjdGluZyBWaWV3Q29tcG9uZW50LiBbdmlld0lkPSR7dGhpcy52aWV3SWR9XWAsIExvZ2dlck5hbWVzLkxJRkVDWUNMRSk7XG5cbiAgICB2aWV3Q29udGV4dE1lbnVTZXJ2aWNlLmluc3RhbGxNZW51SXRlbUFjY2VsZXJhdG9ycyQodGhpcy5faG9zdCwgdGhpcy5fdmlldylcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fdmlldy5hY3RpdmUkLCB0aGlzLl92aWV3cG9ydCRdKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChbYWN0aXZlLCB2aWV3cG9ydF0pID0+IGFjdGl2ZSA/IHRoaXMub25BY3RpdmF0ZVZpZXcodmlld3BvcnQpIDogdGhpcy5vbkRlYWN0aXZhdGVWaWV3KHZpZXdwb3J0KSk7XG4gIH1cblxuICBwcml2YXRlIG9uQWN0aXZhdGVWaWV3KHZpZXdwb3J0OiBTY2lWaWV3cG9ydENvbXBvbmVudCk6IHZvaWQge1xuICAgIHZpZXdwb3J0LmZvY3VzKCk7XG4gICAgdmlld3BvcnQuc2Nyb2xsVG9wID0gdGhpcy5fdmlldy5zY3JvbGxUb3A7XG4gICAgdmlld3BvcnQuc2Nyb2xsTGVmdCA9IHRoaXMuX3ZpZXcuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHByaXZhdGUgb25EZWFjdGl2YXRlVmlldyh2aWV3cG9ydDogU2NpVmlld3BvcnRDb21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3LnNjcm9sbFRvcCA9IHZpZXdwb3J0LnNjcm9sbFRvcDtcbiAgICB0aGlzLl92aWV3LnNjcm9sbExlZnQgPSB2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICB9XG5cbiAgcHVibGljIG9uQWN0aXZhdGVSb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcbiAgICBjb25zdCBhY3R1YWxSb3V0ZVNuYXBzaG90ID0gUm91dGVyVXRpbHMucmVzb2x2ZUFjdHVhbFJvdXRlU25hcHNob3Qocm91dGUuc25hcHNob3QpO1xuICAgIHRoaXMuX3ZpZXcudGl0bGUgPz89IFJvdXRlclV0aWxzLmxvb2t1cFJvdXRlRGF0YShhY3R1YWxSb3V0ZVNuYXBzaG90LCBXb3JrYmVuY2hSb3V0ZURhdGEudGl0bGUpID8/IG51bGw7XG4gICAgdGhpcy5fdmlldy5oZWFkaW5nID8/PSBSb3V0ZXJVdGlscy5sb29rdXBSb3V0ZURhdGEoYWN0dWFsUm91dGVTbmFwc2hvdCwgV29ya2JlbmNoUm91dGVEYXRhLmhlYWRpbmcpID8/IG51bGw7XG4gICAgdGhpcy5fdmlldy5jc3NDbGFzcyA9IG5ldyBBcnJheTxzdHJpbmc+KClcbiAgICAgIC5jb25jYXQoQXJyYXlzLmNvZXJjZShSb3V0ZXJVdGlscy5sb29rdXBSb3V0ZURhdGEoYWN0dWFsUm91dGVTbmFwc2hvdCwgV29ya2JlbmNoUm91dGVEYXRhLmNzc0NsYXNzKSkpXG4gICAgICAuY29uY2F0KEFycmF5cy5jb2VyY2Uocm91dGUuc25hcHNob3QuZGF0YVtXb3JrYmVuY2hSb3V0ZURhdGEuc3RhdGVdPy5bV29ya2JlbmNoTmF2aWdhdGlvbmFsVmlld1N0YXRlcy5jc3NDbGFzc10pKVxuICAgICAgLmNvbmNhdCh0aGlzLl92aWV3LmNzc0NsYXNzZXMpO1xuICB9XG5cbiAgcHVibGljIG9uRGVhY3RpdmF0ZVJvdXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXcuaGVhZGluZyA9IG51bGw7XG4gICAgdGhpcy5fdmlldy50aXRsZSA9IG51bGw7XG4gICAgdGhpcy5fdmlldy5jc3NDbGFzcyA9IFtdO1xuICAgIHRoaXMuX3ZpZXcuZGlydHkgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYERlc3Ryb3lpbmcgVmlld0NvbXBvbmVudCBbdmlld0lkPSR7dGhpcy52aWV3SWR9XSdgLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICB9XG59XG5cbi8qKlxuICogQmxvY2tzIHRoaXMgdmlldyB3aGVuIGRpYWxvZyhzKSBvdmVybGF5IGl0LlxuICovXG5mdW5jdGlvbiBjb25maWd1cmVWaWV3R2xhc3NQYW5lKCk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBHTEFTU19QQU5FX0JMT0NLQUJMRSxcbiAgICB1c2VFeGlzdGluZzogybVXb3JrYmVuY2hWaWV3LFxuICB9O1xufVxuXG4iLCI8c2NpLXZpZXdwb3J0IGNka1RyYXBGb2N1cz5cbiAgPHJvdXRlci1vdXRsZXQgI3JvdXRlcl9vdXRsZXQ9XCJvdXRsZXRcIlxuICAgICAgICAgICAgICAgICBbbmFtZV09XCJ2aWV3SWRcIlxuICAgICAgICAgICAgICAgICAoYWN0aXZhdGUpPVwib25BY3RpdmF0ZVJvdXRlKHJvdXRlcl9vdXRsZXQuYWN0aXZhdGVkUm91dGUpXCJcbiAgICAgICAgICAgICAgICAgKGRlYWN0aXZhdGUpPVwib25EZWFjdGl2YXRlUm91dGUoKVwiPlxuICA8L3JvdXRlci1vdXRsZXQ+XG48L3NjaS12aWV3cG9ydD5cbiJdfQ==
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3ZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdmlldy92aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxXQUFXLEVBQXVCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMsWUFBWSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQWlCLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7OztBQUU1Rjs7Ozs7Ozs7R0FRRztBQW1CSCxNQUFNLE9BQU8sYUFBYTtJQUl4QixJQUNXLFdBQVcsQ0FBQyxRQUE4QjtRQUNu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QkFEckIsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBU3hCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsZUFBZTtnQkFJZixNQUFNO3NCQURoQixXQUFXO3VCQUFDLGtCQUFrQjtnQkFNcEIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxZQUFZO2dCQU1kLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxpQkFBaUI7O0FBcURoQzs7R0FFRztBQUNILFNBQVMsc0JBQXNCO0lBQzdCLE9BQU87UUFDTCxPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLFdBQVcsRUFBRSxjQUFjO0tBQzVCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgUHJvdmlkZXIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FzeW5jU3ViamVjdCwgY29tYmluZUxhdGVzdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy92aWV3cG9ydCc7XG5pbXBvcnQge1ZpZXdNZW51U2VydmljZX0gZnJvbSAnLi4vcGFydC92aWV3LWNvbnRleHQtbWVudS92aWV3LW1lbnUuc2VydmljZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoVmlld30gZnJvbSAnLi/JtXdvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vbG9nZ2luZyc7XG5pbXBvcnQge1dvcmtiZW5jaFJvdXRlRGF0YX0gZnJvbSAnLi4vcm91dGluZy93b3JrYmVuY2gtcm91dGUtZGF0YSc7XG5pbXBvcnQge1JvdXRlclV0aWxzfSBmcm9tICcuLi9yb3V0aW5nL3JvdXRlci51dGlsJztcbmltcG9ydCB7QTExeU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdsYXNzUGFuZURpcmVjdGl2ZX0gZnJvbSAnLi4vZ2xhc3MtcGFuZS9nbGFzcy1wYW5lLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogSXMgdGhlIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiBhIHdvcmtiZW5jaCB2aWV3LlxuICpcbiAqIFRoZSB2aWV3IGhhcyBpdHMgZGVkaWNhdGVkIHJvdXRlciBvdXRsZXQgdG8gZGlzcGxheSB2aWV3IGNvbnRlbnQuIFVzZSByb3V0ZSBwYXRoIHBhcmFtZXRlcnNcbiAqIHRvIGRlY2lkZSB3aGF0IHNwZWNpZmljIGNvbnRlbnQgdG8gcHJlc2VudC4gVXNlIG1hdHJpeCBwYXJhbWV0ZXJzIHRvIGFzc29jaWF0ZSBvcHRpb25hbCBkYXRhXG4gKiB3aXRoIHRoZSB2aWV3IG91dGxldCBVUkwuXG4gKlxuICogVGl0bGUgYW5kIGhlYWRpbmcgb2YgdGhpcyB2aWV3IGFyZSBlaXRoZXIgc2V0IHZpYSBgV29ya2JlbmNoVmlld2AsIG9yIGdpdmVuIGFzIHJvdXRlIGRhdGEgb3IgbWF0cml4IHBhcmFtZXRlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2ItdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIEExMXlNb2R1bGUsXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIEdsYXNzUGFuZURpcmVjdGl2ZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgY29uZmlndXJlVmlld0dsYXNzUGFuZSgpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF92aWV3cG9ydCQgPSBuZXcgQXN5bmNTdWJqZWN0PFNjaVZpZXdwb3J0Q29tcG9uZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoU2NpVmlld3BvcnRDb21wb25lbnQpXG4gIHB1YmxpYyBzZXQgc2V0Vmlld3BvcnQodmlld3BvcnQ6IFNjaVZpZXdwb3J0Q29tcG9uZW50KSB7XG4gICAgaWYgKHZpZXdwb3J0KSB7XG4gICAgICB0aGlzLl92aWV3cG9ydCQubmV4dCh2aWV3cG9ydCk7XG4gICAgICB0aGlzLl92aWV3cG9ydCQuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdyb3V0ZXJfb3V0bGV0JylcbiAgcHVibGljIHJvdXRlck91dGxldCE6IFJvdXRlck91dGxldDsgLy8gc3BlY3NcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS12aWV3aWQnKVxuICBwdWJsaWMgZ2V0IHZpZXdJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92aWV3LmlkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmNsYXNzJylcbiAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXcuY2xhc3NMaXN0LnZhbHVlLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mudmlldy1kcmFnJylcbiAgcHVibGljIGdldCBpc1ZpZXdEcmFnQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdEYXRhICE9PSBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdmlldzogybVXb3JrYmVuY2hWaWV3LFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICB2aWV3Q29udGV4dE1lbnVTZXJ2aWNlOiBWaWV3TWVudVNlcnZpY2UpIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYENvbnN0cnVjdGluZyBWaWV3Q29tcG9uZW50LiBbdmlld0lkPSR7dGhpcy52aWV3SWR9XWAsIExvZ2dlck5hbWVzLkxJRkVDWUNMRSk7XG5cbiAgICB2aWV3Q29udGV4dE1lbnVTZXJ2aWNlLmluc3RhbGxNZW51SXRlbUFjY2VsZXJhdG9ycyQodGhpcy5faG9zdCwgdGhpcy5fdmlldylcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fdmlldy5hY3RpdmUkLCB0aGlzLl92aWV3cG9ydCRdKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChbYWN0aXZlLCB2aWV3cG9ydF0pID0+IGFjdGl2ZSA/IHRoaXMub25BY3RpdmF0ZVZpZXcodmlld3BvcnQpIDogdGhpcy5vbkRlYWN0aXZhdGVWaWV3KHZpZXdwb3J0KSk7XG4gIH1cblxuICBwcml2YXRlIG9uQWN0aXZhdGVWaWV3KHZpZXdwb3J0OiBTY2lWaWV3cG9ydENvbXBvbmVudCk6IHZvaWQge1xuICAgIHZpZXdwb3J0LmZvY3VzKCk7XG4gICAgdmlld3BvcnQuc2Nyb2xsVG9wID0gdGhpcy5fdmlldy5zY3JvbGxUb3A7XG4gICAgdmlld3BvcnQuc2Nyb2xsTGVmdCA9IHRoaXMuX3ZpZXcuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHByaXZhdGUgb25EZWFjdGl2YXRlVmlldyh2aWV3cG9ydDogU2NpVmlld3BvcnRDb21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3LnNjcm9sbFRvcCA9IHZpZXdwb3J0LnNjcm9sbFRvcDtcbiAgICB0aGlzLl92aWV3LnNjcm9sbExlZnQgPSB2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICB9XG5cbiAgcHVibGljIG9uQWN0aXZhdGVSb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcbiAgICBjb25zdCBhY3R1YWxSb3V0ZVNuYXBzaG90ID0gUm91dGVyVXRpbHMucmVzb2x2ZUFjdHVhbFJvdXRlU25hcHNob3Qocm91dGUuc25hcHNob3QpO1xuICAgIHRoaXMuX3ZpZXcudGl0bGUgPz89IFJvdXRlclV0aWxzLmxvb2t1cFJvdXRlRGF0YShhY3R1YWxSb3V0ZVNuYXBzaG90LCBXb3JrYmVuY2hSb3V0ZURhdGEudGl0bGUpID8/IG51bGw7XG4gICAgdGhpcy5fdmlldy5oZWFkaW5nID8/PSBSb3V0ZXJVdGlscy5sb29rdXBSb3V0ZURhdGEoYWN0dWFsUm91dGVTbmFwc2hvdCwgV29ya2JlbmNoUm91dGVEYXRhLmhlYWRpbmcpID8/IG51bGw7XG4gICAgdGhpcy5fdmlldy5jbGFzc0xpc3Quc2V0KFJvdXRlclV0aWxzLmxvb2t1cFJvdXRlRGF0YShhY3R1YWxSb3V0ZVNuYXBzaG90LCBXb3JrYmVuY2hSb3V0ZURhdGEuY3NzQ2xhc3MpLCB7c2NvcGU6ICdyb3V0ZSd9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlYWN0aXZhdGVSb3V0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3LmhlYWRpbmcgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXcudGl0bGUgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXcuZGlydHkgPSBmYWxzZTtcbiAgICB0aGlzLl92aWV3LmNsYXNzTGlzdC5yZW1vdmUoe3Njb3BlOiAnYXBwbGljYXRpb24nfSk7XG4gICAgdGhpcy5fdmlldy5jbGFzc0xpc3QucmVtb3ZlKHtzY29wZTogJ3JvdXRlJ30pO1xuICAgIHRoaXMuX3ZpZXcuY2xhc3NMaXN0LnJlbW92ZSh7c2NvcGU6ICduYXZpZ2F0aW9uJ30pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiBgRGVzdHJveWluZyBWaWV3Q29tcG9uZW50IFt2aWV3SWQ9JHt0aGlzLnZpZXdJZH1dJ2AsIExvZ2dlck5hbWVzLkxJRkVDWUNMRSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCbG9ja3MgdGhpcyB2aWV3IHdoZW4gZGlhbG9nKHMpIG92ZXJsYXkgaXQuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZVZpZXdHbGFzc1BhbmUoKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfQkxPQ0tBQkxFLFxuICAgIHVzZUV4aXN0aW5nOiDJtVdvcmtiZW5jaFZpZXcsXG4gIH07XG59XG5cbiIsIjxzY2ktdmlld3BvcnQgY2RrVHJhcEZvY3VzPlxuICA8cm91dGVyLW91dGxldCAjcm91dGVyX291dGxldD1cIm91dGxldFwiXG4gICAgICAgICAgICAgICAgIFtuYW1lXT1cInZpZXdJZFwiXG4gICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbkFjdGl2YXRlUm91dGUocm91dGVyX291dGxldC5hY3RpdmF0ZWRSb3V0ZSlcIlxuICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJvbkRlYWN0aXZhdGVSb3V0ZSgpXCI+XG4gIDwvcm91dGVyLW91dGxldD5cbjwvc2NpLXZpZXdwb3J0PlxuIl19
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export class WorkbenchView {
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXZpZXcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBZ0IsYUFBYTtDQW9JbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVcmxTZWdtZW50fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge1dvcmtiZW5jaE1lbnVJdGVtfSBmcm9tICcuLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuLi9wYXJ0L3dvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7Vmlld1N0YXRlfSBmcm9tICcuLi9yb3V0aW5nL3JvdXRpbmcubW9kZWwnO1xuXG4vKipcbiAqIEEgdmlldyBpcyBhIHZpc3VhbCB3b3JrYmVuY2ggY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGNvbnRlbnQgc3RhY2tlZCBvciBzaWRlLWJ5LXNpZGUuXG4gKlxuICogQW55IGNvbXBvbmVudCByZWdpc3RlcmVkIGFzIGEgcHJpbWFyeSBBbmd1bGFyIHJvdXRlIGNhbiBiZSBvcGVuZWQgYXMgYSB2aWV3IHVzaW5nIHRoZSB7QGxpbmsgV29ya2JlbmNoUm91dGVyfS5cbiAqXG4gKiBAc2VlIFdvcmtiZW5jaFBhcnRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdvcmtiZW5jaFZpZXcge1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpdHkgb2YgdGhpcyB2aWV3LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgcGFydCB3aGljaCBjb250YWlucyB0aGlzIHZpZXcuXG4gICAqXG4gICAqIE5vdGU6IHRoZSBwYXJ0IG9mIGEgdmlldyBjYW4gY2hhbmdlLCBlLmcuIHdoZW4gdGhlIHZpZXcgaXMgbW92ZWQgdG8gYW5vdGhlciBwYXJ0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBhcnQ6IFdvcmtiZW5jaFBhcnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGl0bGUgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3IHRhYi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZTogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzdWJ0aXRsZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHZpZXcgdGFiLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGhlYWRpbmc6IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBDU1MgY2xhc3MoZXMpIHRvIGJlIGFkZGVkIHRvIHRoZSB2aWV3LCB1c2VmdWwgaW4gZW5kLXRvLWVuZCB0ZXN0cyBmb3IgbG9jYXRpbmcgdmlldyBhbmQgdmlldyB0YWIuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIGNvbnRlbnQgb2YgdGhlIGN1cnJlbnQgdmlldyBpcyBkaXJ0eS5cbiAgICogSWYgZGlydHksIGEgZGlydHkgbWFya2VyIGlzIGRpc3BsYXllZCBpbiB0aGUgdmlldyB0YWIuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZGlydHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiBhIGNsb3NlIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3IHRhYi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zYWJsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyB2aWV3IGlzIGFjdGl2ZSBvciBpbmFjdGl2ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhY3RpdmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHdoZW4gdGhpcyB2aWV3IGJlY29tZXMgYWN0aXZlIG9yIGluYWN0aXZlLlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIGN1cnJlbnQgc3RhdGUsIGFuZCB0aGVuIGVhY2ggdGltZSB0aGUgc3RhdGUgY2hhbmdlcy4gVGhlIG9ic2VydmFibGUgbmV2ZXIgY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFjdGl2ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFRoZSBwb3NpdGlvbiBvZiB0aGlzIHZpZXcgaW4gdGhlIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwb3NpdGlvbjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBgVHJ1ZWAgd2hlbiB0aGlzIHZpZXcgaXMgdGhlIGZpcnN0IHZpZXcgaW4gdGhlIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmaXJzdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogYFRydWVgIHdoZW4gdGhpcyB2aWV3IGlzIHRoZSBsYXN0IHZpZXcgaW4gdGhlIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBsYXN0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmlkY2F0ZXMgd2hldGhlciB0aGUgdGFiIG9mIHRoaXMgdmlldyBpcyBzY3JvbGxlZCBpbnRvIHZpZXcgaW4gdGhlIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzY3JvbGxlZEludG9WaWV3OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIHZpZXcgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRlc3Ryb3llZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVVJMIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXJsU2VnbWVudHM6IFVybFNlZ21lbnRbXTtcblxuICAvKipcbiAgICogU3RhdGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlldy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHN0YXRlIGlzIHZvbGF0aWxlLCBtZWFuaW5nIGl0IGlzIG5vdCBlbmNvZGVkIGluIHRoZSBVUkwgYnV0IHJlYWQgZnJvbSB0aGUgYnJvd3NlciBzZXNzaW9uIGhpc3Rvcnk7IHRodXMsIGl0IHdpbGwgYmUgbG9zdCB3aGVuIHRoZSBwYWdlIGlzIHJlbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXRlOiBWaWV3U3RhdGU7XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGlzIHZpZXcuXG4gICAqXG4gICAqIE5vdGU6IFRoaXMgaW5zdHJ1Y3Rpb24gcnVucyBhc3luY2hyb25vdXNseSB2aWEgVVJMIHJvdXRpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWN0aXZhdGUoKTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogRGVzdHJveXMgdGhpcyB2aWV3IChvciBzaWJsaW5nIHZpZXdzKSBhbmQgdGhlIGFzc29jaWF0ZWQgcm91dGVkIGNvbXBvbmVudC5cbiAgICpcbiAgICogTm90ZTogVGhpcyBpbnN0cnVjdGlvbiBydW5zIGFzeW5jaHJvbm91c2x5IHZpYSBVUkwgcm91dGluZy5cbiAgICpcbiAgICogQHBhcmFtIHRhcmdldFxuICAgKiAgICAgICAgQWxsb3dzIHRvIGNvbnRyb2wgd2hpY2ggdmlldyhzKSB0byBjbG9zZTpcbiAgICpcbiAgICogICAgICAgIC0gc2VsZjogY2xvc2VzIHRoaXMgdmlld1xuICAgKiAgICAgICAgLSBhbGwtdmlld3M6IGNsb3NlcyBhbGwgdmlld3Mgb2YgdGhpcyBwYXJ0XG4gICAqICAgICAgICAtIG90aGVyLXZpZXdzOiBjbG9zZXMgdGhlIG90aGVyIHZpZXdzIG9mIHRoaXMgcGFydFxuICAgKiAgICAgICAgLSB2aWV3cy10by10aGUtcmlnaHQ6IGNsb3NlcyB0aGUgdmlld3MgdG8gdGhlIHJpZ2h0IG9mIHRoaXMgdmlld1xuICAgKiAgICAgICAgLSB2aWV3cy10by10aGUtbGVmdDogY2xvc2VzIHRoZSB2aWV3cyB0byB0aGUgbGVmdCBvZiB0aGlzIHZpZXdcbiAgICpcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZSh0YXJnZXQ/OiAnc2VsZicgfCAnYWxsLXZpZXdzJyB8ICdvdGhlci12aWV3cycgfCAndmlld3MtdG8tdGhlLXJpZ2h0JyB8ICd2aWV3cy10by10aGUtbGVmdCcpOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGlzIHZpZXcgdG8gYSBuZXcgYnJvd3NlciB3aW5kb3cuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbW92ZSh0YXJnZXQ6ICduZXctd2luZG93Jyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoaXMgdmlldyB0byBhIGRpZmZlcmVudCBvciBuZXcgcGFydCBpbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbi5cbiAgICpcbiAgICogU3BlY2lmeWluZyBhIHRhcmdldCB3b3JrYmVuY2ggaWRlbnRpZmllciBhbGxvd3MgdGhlIHZpZXcgdG8gYmUgbW92ZWQgdG8gYSB3b3JrYmVuY2ggaW4gYSBkaWZmZXJlbnQgYnJvd3NlciB3aW5kb3cuXG4gICAqIFRoZSB0YXJnZXQgd29ya2JlbmNoIElEIGlzIGF2YWlsYWJsZSB2aWEge0BsaW5rIFdPUktCRU5DSF9JRH0gREkgdG9rZW4gaW4gdGhlIHRhcmdldCBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBtb3ZlKHBhcnRJZDogc3RyaW5nLCBvcHRpb25zPzoge3JlZ2lvbj86ICdub3J0aCcgfCAnc291dGgnIHwgJ3dlc3QnIHwgJ2Vhc3QnOyB3b3JrYmVuY2hJZD86IHN0cmluZ30pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBtZW51IGl0ZW0gd2hpY2ggaXMgYWRkZWQgdG8gdGhlIGNvbnRleHQgbWVudSBvZiB0aGUgdmlldyB0YWIuXG4gICAqXG4gICAqIEByZXR1cm4gaGFuZGxlIHRvIHVucmVnaXN0ZXIgdGhlIG1lbnUgaXRlbS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWdpc3Rlck1lbnVJdGVtKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSk6IERpc3Bvc2FibGU7XG59XG4iXX0=
|
|
@@ -12,7 +12,7 @@ import { ChildrenOutletContexts, Router } from '@angular/router';
|
|
|
12
12
|
import { ViewDragService } from '../view-dnd/view-drag.service';
|
|
13
13
|
import { distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
14
14
|
import { filterArray, mapArray } from '@scion/toolkit/operators';
|
|
15
|
-
import {
|
|
15
|
+
import { Defined } from '@scion/toolkit/util';
|
|
16
16
|
import { throwError } from '../common/throw-error.util';
|
|
17
17
|
import { WorkbenchPart } from '../part/workbench-part.model';
|
|
18
18
|
import { ɵWorkbenchService } from '../ɵworkbench.service';
|
|
@@ -29,6 +29,8 @@ import { ɵDestroyRef } from '../common/ɵdestroy-ref';
|
|
|
29
29
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
30
30
|
import { provideViewContext } from './view-context-provider';
|
|
31
31
|
import { WORKBENCH_ID } from '../workbench-id';
|
|
32
|
+
import { WorkbenchNavigationalStates, WorkbenchNavigationalViewStates } from '../routing/workbench-navigational-states';
|
|
33
|
+
import { ClassList } from '../common/class-list';
|
|
32
34
|
export class ɵWorkbenchView {
|
|
33
35
|
constructor(id, options) {
|
|
34
36
|
this.id = id;
|
|
@@ -44,6 +46,7 @@ export class ɵWorkbenchView {
|
|
|
44
46
|
this._part$ = new BehaviorSubject(undefined);
|
|
45
47
|
this._menuItemProviders$ = new BehaviorSubject([]);
|
|
46
48
|
this._scrolledIntoView$ = new BehaviorSubject(true);
|
|
49
|
+
this._adapters = new Map();
|
|
47
50
|
this._destroyRef = new ɵDestroyRef();
|
|
48
51
|
this._closable = true;
|
|
49
52
|
this.title = null;
|
|
@@ -51,9 +54,10 @@ export class ɵWorkbenchView {
|
|
|
51
54
|
this.dirty = false;
|
|
52
55
|
this.scrollTop = 0;
|
|
53
56
|
this.scrollLeft = 0;
|
|
57
|
+
this.state = {};
|
|
54
58
|
this.active$ = new BehaviorSubject(false);
|
|
55
|
-
this.cssClasses$ = new BehaviorSubject([]);
|
|
56
59
|
this.blockedBy$ = new BehaviorSubject(null);
|
|
60
|
+
this.classList = new ClassList();
|
|
57
61
|
this.menuItems$ = combineLatest([this._menuItemProviders$, this._workbenchService.viewMenuItemProviders$])
|
|
58
62
|
.pipe(map(([localMenuItemProviders, globalMenuItemProviders]) => localMenuItemProviders.concat(globalMenuItemProviders)), mapArray(menuItemFactoryFn => menuItemFactoryFn(this)), filterArray((menuItem) => menuItem !== null));
|
|
59
63
|
this.portal = this.createPortal(options.component);
|
|
@@ -81,6 +85,8 @@ export class ɵWorkbenchView {
|
|
|
81
85
|
onLayoutChange(layout) {
|
|
82
86
|
const partId = layout.part({ by: { viewId: this.id } }).id;
|
|
83
87
|
this._part$.next(this._partRegistry.get(partId));
|
|
88
|
+
this.state = WorkbenchNavigationalStates.fromNavigation(this._router.getCurrentNavigation())?.viewStates[this.id] ?? this.state ?? {};
|
|
89
|
+
this.classList.set(this.state[WorkbenchNavigationalViewStates.cssClass], { scope: 'navigation' });
|
|
84
90
|
}
|
|
85
91
|
get first() {
|
|
86
92
|
return this.position === 0;
|
|
@@ -92,10 +98,10 @@ export class ɵWorkbenchView {
|
|
|
92
98
|
return this.part.viewIds.indexOf(this.id);
|
|
93
99
|
}
|
|
94
100
|
set cssClass(cssClass) {
|
|
95
|
-
this.
|
|
101
|
+
this.classList.set(cssClass, { scope: 'application' });
|
|
96
102
|
}
|
|
97
|
-
get
|
|
98
|
-
return this.
|
|
103
|
+
get cssClass() {
|
|
104
|
+
return this.classList.get({ scope: 'application' });
|
|
99
105
|
}
|
|
100
106
|
get active() {
|
|
101
107
|
return this.active$.value;
|
|
@@ -171,6 +177,7 @@ export class ɵWorkbenchView {
|
|
|
171
177
|
partId: this.part.id,
|
|
172
178
|
viewId: this.id,
|
|
173
179
|
viewUrlSegments: this.urlSegments,
|
|
180
|
+
classList: this.classList.toMap(),
|
|
174
181
|
};
|
|
175
182
|
if (target === 'new-window') {
|
|
176
183
|
this._viewDragService.dispatchViewMoveEvent({ source, target: { workbenchId: 'new-window' } });
|
|
@@ -199,6 +206,27 @@ export class ɵWorkbenchView {
|
|
|
199
206
|
},
|
|
200
207
|
};
|
|
201
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Registers an adapter for this view, replacing any previously registered adapter of the same type.
|
|
211
|
+
*
|
|
212
|
+
* Adapters enable loosely coupled extension of an object, allowing one object to be adapted to another.
|
|
213
|
+
*/
|
|
214
|
+
registerAdapter(adapterType, object) {
|
|
215
|
+
this._adapters.set(adapterType, object);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Unregisters the given adapter. Has no effect if not registered.
|
|
219
|
+
*/
|
|
220
|
+
unregisterAdapter(adapterType) {
|
|
221
|
+
this._adapters.delete(adapterType);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Adapts this object to the specified type. Returns `null` if no such object can be found.
|
|
225
|
+
*/
|
|
226
|
+
adapt(adapterType) {
|
|
227
|
+
const adapter = this._adapters.get(adapterType);
|
|
228
|
+
return adapter ? adapter : null;
|
|
229
|
+
}
|
|
202
230
|
get destroyed() {
|
|
203
231
|
return this.portal.isDestroyed;
|
|
204
232
|
}
|
|
@@ -235,4 +263,4 @@ export class ɵWorkbenchView {
|
|
|
235
263
|
this.portal.destroy();
|
|
236
264
|
}
|
|
237
265
|
}
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtdmlldy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFDLHNCQUFzQixFQUFFLE1BQU0sRUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVB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LENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGlsZHJlbk91dGxldENvbnRleHRzLCBSb3V0ZXIsIFVybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIG1hcEFycmF5fSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBcnJheXMsIERlZmluZWR9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJy4uL2NvbW1vbi90aHJvdy1lcnJvci51dGlsJztcbmltcG9ydCB7V29ya2JlbmNoTWVudUl0ZW0sIFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZufSBmcm9tICcuLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vcGFydC93b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge8m1V29ya2JlbmNoU2VydmljZX0gZnJvbSAnLi4vybV3b3JrYmVuY2guc2VydmljZSc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXYkNvbXBvbmVudFBvcnRhbH0gZnJvbSAnLi4vcG9ydGFsL3diLWNvbXBvbmVudC1wb3J0YWwnO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFBhcnR9IGZyb20gJy4uL3BhcnQvybV3b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge0FjdGl2YXRpb25JbnN0YW50UHJvdmlkZXJ9IGZyb20gJy4uL2FjdGl2YXRpb24taW5zdGFudC5wcm92aWRlcic7XG5pbXBvcnQge1dvcmtiZW5jaFJvdXRlcn0gZnJvbSAnLi4vcm91dGluZy93b3JrYmVuY2gtcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0UmVnaXN0cnl9IGZyb20gJy4uL3BhcnQvd29ya2JlbmNoLXBhcnQucmVnaXN0cnknO1xuaW1wb3J0IHvJtVdvcmtiZW5jaExheW91dH0gZnJvbSAnLi4vbGF5b3V0L8m1d29ya2JlbmNoLWxheW91dCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4uL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHtidWZmZXJMYXRlc3RVbnRpbExheW91dENoYW5nZX0gZnJvbSAnLi4vY29tbW9uL29wZXJhdG9ycyc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5fSBmcm9tICcuLi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge8m1RGVzdHJveVJlZn0gZnJvbSAnLi4vY29tbW9uL8m1ZGVzdHJveS1yZWYnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7cHJvdmlkZVZpZXdDb250ZXh0fSBmcm9tICcuL3ZpZXctY29udGV4dC1wcm92aWRlcic7XG5pbXBvcnQge8m1V29ya2JlbmNoRGlhbG9nfSBmcm9tICcuLi9kaWFsb2cvybV3b3JrYmVuY2gtZGlhbG9nJztcbmltcG9ydCB7QmxvY2thYmxlfSBmcm9tICcuLi9nbGFzcy1wYW5lL2Jsb2NrYWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vd29ya2JlbmNoLWlkJztcblxuZXhwb3J0IGNsYXNzIMm1V29ya2JlbmNoVmlldyBpbXBsZW1lbnRzIFdvcmtiZW5jaFZpZXcsIEJsb2NrYWJsZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoSWQgPSBpbmplY3QoV09SS0JFTkNIX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoU2VydmljZSA9IGluamVjdCjJtVdvcmtiZW5jaFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlID0gaW5qZWN0KFdvcmtiZW5jaExheW91dFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hSb3V0ZXIgPSBpbmplY3QoV29ya2JlbmNoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFydFJlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaFBhcnRSZWdpc3RyeSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEcmFnU2VydmljZSA9IGluamVjdChWaWV3RHJhZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGlvbkluc3RhbnRQcm92aWRlciA9IGluamVjdChBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkgPSBpbmplY3QoV29ya2JlbmNoRGlhbG9nUmVnaXN0cnkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDzJtVdvcmtiZW5jaFBhcnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lbnVJdGVtUHJvdmlkZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm5bXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxlZEludG9WaWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBuZXcgybVEZXN0cm95UmVmKCk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZhdGlvbkluc3RhbnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfY2xvc2FibGUgPSB0cnVlO1xuXG4gIHB1YmxpYyB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBoZWFkaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGRpcnR5ID0gZmFsc2U7XG4gIHB1YmxpYyBzY3JvbGxUb3AgPSAwO1xuICBwdWJsaWMgc2Nyb2xsTGVmdCA9IDA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGNzc0NsYXNzZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxXb3JrYmVuY2hNZW51SXRlbVtdPjtcbiAgcHVibGljIHJlYWRvbmx5IGJsb2NrZWRCeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PMm1V29ya2JlbmNoRGlhbG9nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwb3J0YWw6IFdiQ29tcG9uZW50UG9ydGFsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLCBvcHRpb25zOiB7Y29tcG9uZW50OiBDb21wb25lbnRUeXBlPFZpZXdDb21wb25lbnQ+fSkge1xuICAgIHRoaXMubWVudUl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX21lbnVJdGVtUHJvdmlkZXJzJCwgdGhpcy5fd29ya2JlbmNoU2VydmljZS52aWV3TWVudUl0ZW1Qcm92aWRlcnMkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtsb2NhbE1lbnVJdGVtUHJvdmlkZXJzLCBnbG9iYWxNZW51SXRlbVByb3ZpZGVyc10pID0+IGxvY2FsTWVudUl0ZW1Qcm92aWRlcnMuY29uY2F0KGdsb2JhbE1lbnVJdGVtUHJvdmlkZXJzKSksXG4gICAgICAgIG1hcEFycmF5KG1lbnVJdGVtRmFjdG9yeUZuID0+IG1lbnVJdGVtRmFjdG9yeUZuKHRoaXMpKSxcbiAgICAgICAgZmlsdGVyQXJyYXkoKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSB8IG51bGwpOiBtZW51SXRlbSBpcyBXb3JrYmVuY2hNZW51SXRlbSA9PiBtZW51SXRlbSAhPT0gbnVsbCksXG4gICAgICApO1xuICAgIHRoaXMucG9ydGFsID0gdGhpcy5jcmVhdGVQb3J0YWwob3B0aW9ucy5jb21wb25lbnQpO1xuICAgIHRoaXMudHJhY2tWaWV3QWN0aXZhdGlvbigpO1xuICAgIHRoaXMudG91Y2hPbkFjdGl2YXRlKCk7XG4gICAgdGhpcy5ibG9ja1doZW5EaWFsb2dPcGVuZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUG9ydGFsKHZpZXdDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Vmlld0NvbXBvbmVudD4pOiBXYkNvbXBvbmVudFBvcnRhbCB7XG4gICAgcmV0dXJuIG5ldyBXYkNvbXBvbmVudFBvcnRhbCh2aWV3Q29tcG9uZW50LCB7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZVZpZXdDb250ZXh0KHRoaXMpLFxuICAgICAgICAvLyBGb3IgZWFjaCBwcmltYXJ5IHRvcC1sZXZlbCByb3V0ZSwgdGhlIHdvcmtiZW5jaCByZWdpc3RlcnMgY29ycmVzcG9uZGluZyBzZWNvbmRhcnkgdG9wLWxldmVsIHZpZXcgcm91dGVzLlxuICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGUgd29ya2JlbmNoIGNvbXBvbmVudCBpcyBkaXNwbGF5ZWQgaW4gYSByb3V0ZXIgb3V0bGV0LCB2aWV3IG91dGxldHMgYXJlIG5vdCB0b3AtbGV2ZWwgb3V0bGV0cyBhbnltb3JlLlxuICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIGluc3RydWN0IHRoZSB2aWV3J3Mgcm91dGVyIG91dGxldCB0byBhY3QgYXMgYSB0b3AtbGV2ZWwgb3V0bGV0IHRvIGJlIHRoZSB0YXJnZXQgb2YgdGhlIHJlZ2lzdGVyZWQgdG9wLWxldmVsIHZpZXcgcm91dGVzLlxuICAgICAgICB7cHJvdmlkZTogQ2hpbGRyZW5PdXRsZXRDb250ZXh0cywgdXNlVmFsdWU6IGluamVjdChDaGlsZHJlbk91dGxldENvbnRleHRzKX0sXG4gICAgICAgIC8vIFByZXZlbnQgaW5qZWN0aW5nIHRoaXMgcGFydCBpbnRvIHRoZSB2aWV3IGJlY2F1c2UgdGhlIHZpZXcgbWF5IGJlIGRyYWdnZWQgdG8gYSBkaWZmZXJlbnQgcGFydC5cbiAgICAgICAge3Byb3ZpZGU6IFdvcmtiZW5jaFBhcnQsIHVzZUZhY3Rvcnk6ICgpID0+IHRocm93RXJyb3IoYFtOdWxsSW5qZWN0b3JFcnJvcl0gTm8gcHJvdmlkZXIgZm9yICdXb3JrYmVuY2hQYXJ0J2ApfSxcbiAgICAgICAge3Byb3ZpZGU6IMm1V29ya2JlbmNoUGFydCwgdXNlRmFjdG9yeTogKCkgPT4gdGhyb3dFcnJvcihgW051bGxJbmplY3RvckVycm9yXSBObyBwcm92aWRlciBmb3IgJ8m1V29ya2JlbmNoUGFydCdgKX0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHRvIHVwZGF0ZSB0aGlzIHdvcmtiZW5jaCBtb2RlbCBvYmplY3Qgd2hlbiB0aGUgd29ya2JlbmNoIGxheW91dCBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIG9uTGF5b3V0Q2hhbmdlKGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJ0SWQgPSBsYXlvdXQucGFydCh7Ynk6IHt2aWV3SWQ6IHRoaXMuaWR9fSkuaWQ7XG4gICAgdGhpcy5fcGFydCQubmV4dCh0aGlzLl9wYXJ0UmVnaXN0cnkuZ2V0KHBhcnRJZCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gdGhpcy5wYXJ0LnZpZXdJZHMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LnZpZXdJZHMuaW5kZXhPZih0aGlzLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3NzQ2xhc3MoY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5jc3NDbGFzc2VzJC5uZXh0KEFycmF5cy5jb2VyY2UoY3NzQ2xhc3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY3NzQ2xhc3NlcyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldCBjbG9zYWJsZShjbG9zYWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NhYmxlID0gY2xvc2FibGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3NhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zYWJsZSAmJiAhdGhpcy5ibG9ja2VkQnkkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFjdGl2YXRlKG9wdGlvbnM/OiB7c2tpcExvY2F0aW9uQ2hhbmdlPzogYm9vbGVhbn0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5hY3RpdmUgJiYgdGhpcy5wYXJ0LmFjdGl2ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudExheW91dCA9IHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2UubGF5b3V0O1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hSb3V0ZXIuybVuYXZpZ2F0ZShcbiAgICAgIGxheW91dCA9PiBjdXJyZW50TGF5b3V0ID09PSBsYXlvdXQgPyBsYXlvdXQuYWN0aXZhdGVWaWV3KHRoaXMuaWQsIHthY3RpdmF0ZVBhcnQ6IHRydWV9KSA6IG51bGwsIC8vIGNhbmNlbCBuYXZpZ2F0aW9uIGlmIHRoZSBsYXlvdXQgaGFzIGJlY29tZSBzdGFsZVxuICAgICAge3NraXBMb2NhdGlvbkNoYW5nZTogb3B0aW9ucz8uc2tpcExvY2F0aW9uQ2hhbmdlfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGUgdGFiIG9mIHRoaXMgdmlldyBpcyBzY3JvbGxlZCBpbnRvIHZpZXcgaW4gdGhlIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBzZXQgc2Nyb2xsZWRJbnRvVmlldyhzY3JvbGxlZEludG9WaWV3OiBib29sZWFuKSB7XG4gICAgaWYgKHNjcm9sbGVkSW50b1ZpZXcgIT09IHRoaXMuX3Njcm9sbGVkSW50b1ZpZXckLnZhbHVlKSB7XG4gICAgICB0aGlzLl9zY3JvbGxlZEludG9WaWV3JC5uZXh0KHNjcm9sbGVkSW50b1ZpZXcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgcHVibGljIGdldCBzY3JvbGxlZEludG9WaWV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxlZEludG9WaWV3JC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmZvcm1zIHdoZXRoZXIgdGhlIHRhYiBvZiB0aGlzIHZpZXcgaXMgc2Nyb2xsZWQgaW50byB2aWV3IGluIHRoZSB0YWJiYXIuXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IHN0YXRlIHVwb24gc3Vic2NyaXB0aW9uLCBhbmQgdGhlbiBjb250aW51b3VzbHkgd2hlbiB0aGUgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsZWRJbnRvVmlldyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbGVkSW50b1ZpZXckO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmF0aW9uSW5zdGFudCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmF0aW9uSW5zdGFudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFydCgpOiBXb3JrYmVuY2hQYXJ0IHtcbiAgICByZXR1cm4gRGVmaW5lZC5vckVsc2VUaHJvdyh0aGlzLl9wYXJ0JC52YWx1ZSwgKCkgPT4gRXJyb3IoYFtOdWxsUGFydEVycm9yXSBQYXJ0IHJlZmVyZW5jZSBtaXNzaW5nIGZvciB2aWV3ICcke3RoaXMuaWR9Jy5gKSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogJ3NlbGYnIHwgJ2FsbC12aWV3cycgfCAnb3RoZXItdmlld3MnIHwgJ3ZpZXdzLXRvLXRoZS1yaWdodCcgfCAndmlld3MtdG8tdGhlLWxlZnQnKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgc3dpdGNoICh0YXJnZXQgfHwgJ3NlbGYnKSB7XG4gICAgICBjYXNlICdzZWxmJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKHRoaXMuaWQpO1xuICAgICAgfVxuICAgICAgY2FzZSAnYWxsLXZpZXdzJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKC4uLnRoaXMucGFydC52aWV3SWRzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ290aGVyLXZpZXdzJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKC4uLnRoaXMucGFydC52aWV3SWRzLmZpbHRlcih2aWV3SWQgPT4gdmlld0lkICE9PSB0aGlzLmlkKSk7XG4gICAgICB9XG4gICAgICBjYXNlICd2aWV3cy10by10aGUtcmlnaHQnOiB7XG4gICAgICAgIGNvbnN0IHZpZXdJZHMgPSB0aGlzLnBhcnQudmlld0lkcztcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyguLi52aWV3SWRzLnNsaWNlKHZpZXdJZHMuaW5kZXhPZih0aGlzLmlkKSArIDEpKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3ZpZXdzLXRvLXRoZS1sZWZ0Jzoge1xuICAgICAgICBjb25zdCB2aWV3SWRzID0gdGhpcy5wYXJ0LnZpZXdJZHM7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLmNsb3NlVmlld3MoLi4udmlld0lkcy5zbGljZSgwLCB2aWV3SWRzLmluZGV4T2YodGhpcy5pZCkpKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vdmUodGFyZ2V0OiAnbmV3LXdpbmRvdycpOiB2b2lkO1xuICBwdWJsaWMgbW92ZShwYXJ0SWQ6IHN0cmluZywgb3B0aW9ucz86IHtyZWdpb24/OiAnbm9ydGgnIHwgJ3NvdXRoJyB8ICd3ZXN0JyB8ICdlYXN0Jzsgd29ya2JlbmNoSWQ/OiBzdHJpbmd9KTogdm9pZDtcbiAgcHVibGljIG1vdmUodGFyZ2V0OiAnbmV3LXdpbmRvdycgfCBzdHJpbmcsIG9wdGlvbnM/OiB7cmVnaW9uPzogJ25vcnRoJyB8ICdzb3V0aCcgfCAnd2VzdCcgfCAnZWFzdCc7IHdvcmtiZW5jaElkPzogc3RyaW5nfSk6IHZvaWQge1xuICAgIGNvbnN0IHNvdXJjZSA9IHtcbiAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgIHBhcnRJZDogdGhpcy5wYXJ0LmlkLFxuICAgICAgdmlld0lkOiB0aGlzLmlkLFxuICAgICAgdmlld1VybFNlZ21lbnRzOiB0aGlzLnVybFNlZ21lbnRzLFxuICAgIH07XG5cbiAgICBpZiAodGFyZ2V0ID09PSAnbmV3LXdpbmRvdycpIHtcbiAgICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe3NvdXJjZSwgdGFyZ2V0OiB7d29ya2JlbmNoSWQ6ICduZXctd2luZG93J319KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBlbGVtZW50SWQ6IHRhcmdldCxcbiAgICAgICAgICByZWdpb246IG9wdGlvbnMhLnJlZ2lvbixcbiAgICAgICAgICB3b3JrYmVuY2hJZDogb3B0aW9ucyEud29ya2JlbmNoSWQgPz8gdGhpcy5fd29ya2JlbmNoSWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVybFNlZ21lbnRzKCk6IFVybFNlZ21lbnRbXSB7XG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuX3JvdXRlci5wYXJzZVVybCh0aGlzLl9yb3V0ZXIudXJsKTtcbiAgICByZXR1cm4gdXJsVHJlZS5yb290LmNoaWxkcmVuW3RoaXMuaWRdPy5zZWdtZW50cyA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck1lbnVJdGVtKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSk6IERpc3Bvc2FibGUge1xuICAgIGNvbnN0IGZhY3RvcnlGbiA9ICgpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiBtZW51SXRlbTtcbiAgICB0aGlzLl9tZW51SXRlbVByb3ZpZGVycyQubmV4dCh0aGlzLl9tZW51SXRlbVByb3ZpZGVycyQudmFsdWUuY29uY2F0KGZhY3RvcnlGbikpO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwb3NlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC5uZXh0KHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC52YWx1ZS5maWx0ZXIoaXQgPT4gaXQgIT09IGZhY3RvcnlGbikpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBkZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9ydGFsLmlzRGVzdHJveWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3JzIHRoZSBhc3NvY2lhdGVkIHBhcnQgdG8gY2hlY2sgaWYgdGhpcyB2aWV3IGlzIGN1cnJlbnRseSBhY3RpdmUsIHVwZGF0aW5nIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhpcyB2aWV3IGFjY29yZGluZ2x5LlxuICAgKi9cbiAgcHJpdmF0ZSB0cmFja1ZpZXdBY3RpdmF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3BhcnQkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHBhcnQgPT4gcGFydD8uYWN0aXZlVmlld0lkJCA/PyBFTVBUWSksXG4gICAgICAgIG1hcChhY3RpdmVWaWV3SWQgPT4gYWN0aXZlVmlld0lkID09PSB0aGlzLmlkKSxcbiAgICAgICAgYnVmZmVyTGF0ZXN0VW50aWxMYXlvdXRDaGFuZ2UoKSwgLy8gUHJldmVudCB0aGUgKGRlLSlhY3RpdmF0aW9uIG9mIHBvdGVudGlhbGx5IHdyb25nIHZpZXdzIHdoaWxlIHVwZGF0aW5nIHRoZSBsYXlvdXQuXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5hY3RpdmUkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBhY3RpdmF0aW9uIGluc3RhbnQgd2hlbiB0aGlzIHZpZXcgaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSB0b3VjaE9uQWN0aXZhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGlvbkluc3RhbnQgPSB0aGlzLl9hY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyLm5vdygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQmxvY2tzIHRoaXMgdmlldyB3aGVuIGEgZGlhbG9nIG92ZXJsYXlzIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSBibG9ja1doZW5EaWFsb2dPcGVuZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkudG9wJCh7dmlld0lkOiB0aGlzLmlkfSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5ibG9ja2VkQnkkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3lSZWYuZGVzdHJveSgpO1xuICAgIHRoaXMuX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5LmRpYWxvZ3Moe3ZpZXdJZDogdGhpcy5pZH0pLmZvckVhY2goZGlhbG9nID0+IGRpYWxvZy5kZXN0cm95KCkpO1xuICAgIHRoaXMucG9ydGFsLmRlc3Ryb3koKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwc2V1ZG8tdHlwZSBmb3IgdGhlIGFjdHVhbCB7QGxpbmsgVmlld0NvbXBvbmVudH0gd2hpY2ggbXVzdCBub3QgYmUgcmVmZXJlbmNlZCBpbiBvcmRlciB0byBhdm9pZCBpbXBvcnQgY3ljbGVzLlxuICovXG50eXBlIFZpZXdDb21wb25lbnQgPSBhbnk7XG4iXX0=
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtdmlldy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFDLHNCQUFzQixFQUFFLE1BQU0sRUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUd0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFlLE1BQU0sRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIs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QUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2hpbGRyZW5PdXRsZXRDb250ZXh0cywgUm91dGVyLCBVcmxTZWdtZW50fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2ZpbHRlckFycmF5LCBtYXBBcnJheX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7RGVmaW5lZH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge0Rpc3Bvc2FibGV9IGZyb20gJy4uL2NvbW1vbi9kaXNwb3NhYmxlJztcbmltcG9ydCB7dGhyb3dFcnJvcn0gZnJvbSAnLi4vY29tbW9uL3Rocm93LWVycm9yLnV0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hNZW51SXRlbSwgV29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm59IGZyb20gJy4uL3dvcmtiZW5jaC5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXd9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuLi9wYXJ0L3dvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuLi/JtXdvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1diQ29tcG9uZW50UG9ydGFsfSBmcm9tICcuLi9wb3J0YWwvd2ItY29tcG9uZW50LXBvcnRhbCc7XG5pbXBvcnQge0Fic3RyYWN0VHlwZSwgaW5qZWN0LCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hQYXJ0fSBmcm9tICcuLi9wYXJ0L8m1d29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHtBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyfSBmcm9tICcuLi9hY3RpdmF0aW9uLWluc3RhbnQucHJvdmlkZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZXJ9IGZyb20gJy4uL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoUGFydFJlZ2lzdHJ5fSBmcm9tICcuLi9wYXJ0L3dvcmtiZW5jaC1wYXJ0LnJlZ2lzdHJ5JztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4uL2xheW91dC/JtXdvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7YnVmZmVyTGF0ZXN0VW50aWxMYXlvdXRDaGFuZ2V9IGZyb20gJy4uL2NvbW1vbi9vcGVyYXRvcnMnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi4vZGlhbG9nL3dvcmtiZW5jaC1kaWFsb2cucmVnaXN0cnknO1xuaW1wb3J0IHvJtURlc3Ryb3lSZWZ9IGZyb20gJy4uL2NvbW1vbi/JtWRlc3Ryb3ktcmVmJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge3Byb3ZpZGVWaWV3Q29udGV4dH0gZnJvbSAnLi92aWV3LWNvbnRleHQtcHJvdmlkZXInO1xuaW1wb3J0IHvJtVdvcmtiZW5jaERpYWxvZ30gZnJvbSAnLi4vZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi4vZ2xhc3MtcGFuZS9ibG9ja2FibGUnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfSUR9IGZyb20gJy4uL3dvcmtiZW5jaC1pZCc7XG5pbXBvcnQge1ZpZXdTdGF0ZX0gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoTmF2aWdhdGlvbmFsU3RhdGVzLCBXb3JrYmVuY2hOYXZpZ2F0aW9uYWxWaWV3U3RhdGVzfSBmcm9tICcuLi9yb3V0aW5nL3dvcmtiZW5jaC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcbmltcG9ydCB7Q2xhc3NMaXN0fSBmcm9tICcuLi9jb21tb24vY2xhc3MtbGlzdCc7XG5cbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaFZpZXcgaW1wbGVtZW50cyBXb3JrYmVuY2hWaWV3LCBCbG9ja2FibGUge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaElkID0gaW5qZWN0KFdPUktCRU5DSF9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaFNlcnZpY2UgPSBpbmplY3QoybVXb3JrYmVuY2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoTGF5b3V0U2VydmljZSA9IGluamVjdChXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoUm91dGVyID0gaW5qZWN0KFdvcmtiZW5jaFJvdXRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcnRSZWdpc3RyeSA9IGluamVjdChXb3JrYmVuY2hQYXJ0UmVnaXN0cnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RHJhZ1NlcnZpY2UgPSBpbmplY3QoVmlld0RyYWdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIgPSBpbmplY3QoQWN0aXZhdGlvbkluc3RhbnRQcm92aWRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJ0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8ybVXb3JrYmVuY2hQYXJ0IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZW51SXRlbVByb3ZpZGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZuW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2Nyb2xsZWRJbnRvVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZGFwdGVycyA9IG5ldyBNYXA8VHlwZTx1bmtub3duPiB8IEFic3RyYWN0VHlwZTx1bmtub3duPiwgdW5rbm93bj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IG5ldyDJtURlc3Ryb3lSZWYoKTtcblxuICBwcml2YXRlIF9hY3RpdmF0aW9uSW5zdGFudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jbG9zYWJsZSA9IHRydWU7XG5cbiAgcHVibGljIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGhlYWRpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgZGlydHkgPSBmYWxzZTtcbiAgcHVibGljIHNjcm9sbFRvcCA9IDA7XG4gIHB1YmxpYyBzY3JvbGxMZWZ0ID0gMDtcbiAgcHVibGljIHN0YXRlOiBWaWV3U3RhdGUgPSB7fTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxXb3JrYmVuY2hNZW51SXRlbVtdPjtcbiAgcHVibGljIHJlYWRvbmx5IGJsb2NrZWRCeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PMm1V29ya2JlbmNoRGlhbG9nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwb3J0YWw6IFdiQ29tcG9uZW50UG9ydGFsO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xhc3NMaXN0ID0gbmV3IENsYXNzTGlzdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLCBvcHRpb25zOiB7Y29tcG9uZW50OiBDb21wb25lbnRUeXBlPFZpZXdDb21wb25lbnQ+fSkge1xuICAgIHRoaXMubWVudUl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX21lbnVJdGVtUHJvdmlkZXJzJCwgdGhpcy5fd29ya2JlbmNoU2VydmljZS52aWV3TWVudUl0ZW1Qcm92aWRlcnMkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtsb2NhbE1lbnVJdGVtUHJvdmlkZXJzLCBnbG9iYWxNZW51SXRlbVByb3ZpZGVyc10pID0+IGxvY2FsTWVudUl0ZW1Qcm92aWRlcnMuY29uY2F0KGdsb2JhbE1lbnVJdGVtUHJvdmlkZXJzKSksXG4gICAgICAgIG1hcEFycmF5KG1lbnVJdGVtRmFjdG9yeUZuID0+IG1lbnVJdGVtRmFjdG9yeUZuKHRoaXMpKSxcbiAgICAgICAgZmlsdGVyQXJyYXkoKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSB8IG51bGwpOiBtZW51SXRlbSBpcyBXb3JrYmVuY2hNZW51SXRlbSA9PiBtZW51SXRlbSAhPT0gbnVsbCksXG4gICAgICApO1xuICAgIHRoaXMucG9ydGFsID0gdGhpcy5jcmVhdGVQb3J0YWwob3B0aW9ucy5jb21wb25lbnQpO1xuICAgIHRoaXMudHJhY2tWaWV3QWN0aXZhdGlvbigpO1xuICAgIHRoaXMudG91Y2hPbkFjdGl2YXRlKCk7XG4gICAgdGhpcy5ibG9ja1doZW5EaWFsb2dPcGVuZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUG9ydGFsKHZpZXdDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Vmlld0NvbXBvbmVudD4pOiBXYkNvbXBvbmVudFBvcnRhbCB7XG4gICAgcmV0dXJuIG5ldyBXYkNvbXBvbmVudFBvcnRhbCh2aWV3Q29tcG9uZW50LCB7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZVZpZXdDb250ZXh0KHRoaXMpLFxuICAgICAgICAvLyBGb3IgZWFjaCBwcmltYXJ5IHRvcC1sZXZlbCByb3V0ZSwgdGhlIHdvcmtiZW5jaCByZWdpc3RlcnMgY29ycmVzcG9uZGluZyBzZWNvbmRhcnkgdG9wLWxldmVsIHZpZXcgcm91dGVzLlxuICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGUgd29ya2JlbmNoIGNvbXBvbmVudCBpcyBkaXNwbGF5ZWQgaW4gYSByb3V0ZXIgb3V0bGV0LCB2aWV3IG91dGxldHMgYXJlIG5vdCB0b3AtbGV2ZWwgb3V0bGV0cyBhbnltb3JlLlxuICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIGluc3RydWN0IHRoZSB2aWV3J3Mgcm91dGVyIG91dGxldCB0byBhY3QgYXMgYSB0b3AtbGV2ZWwgb3V0bGV0IHRvIGJlIHRoZSB0YXJnZXQgb2YgdGhlIHJlZ2lzdGVyZWQgdG9wLWxldmVsIHZpZXcgcm91dGVzLlxuICAgICAgICB7cHJvdmlkZTogQ2hpbGRyZW5PdXRsZXRDb250ZXh0cywgdXNlVmFsdWU6IGluamVjdChDaGlsZHJlbk91dGxldENvbnRleHRzKX0sXG4gICAgICAgIC8vIFByZXZlbnQgaW5qZWN0aW5nIHRoaXMgcGFydCBpbnRvIHRoZSB2aWV3IGJlY2F1c2UgdGhlIHZpZXcgbWF5IGJlIGRyYWdnZWQgdG8gYSBkaWZmZXJlbnQgcGFydC5cbiAgICAgICAge3Byb3ZpZGU6IFdvcmtiZW5jaFBhcnQsIHVzZUZhY3Rvcnk6ICgpID0+IHRocm93RXJyb3IoYFtOdWxsSW5qZWN0b3JFcnJvcl0gTm8gcHJvdmlkZXIgZm9yICdXb3JrYmVuY2hQYXJ0J2ApfSxcbiAgICAgICAge3Byb3ZpZGU6IMm1V29ya2JlbmNoUGFydCwgdXNlRmFjdG9yeTogKCkgPT4gdGhyb3dFcnJvcihgW051bGxJbmplY3RvckVycm9yXSBObyBwcm92aWRlciBmb3IgJ8m1V29ya2JlbmNoUGFydCdgKX0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHRvIHVwZGF0ZSB0aGlzIHdvcmtiZW5jaCBtb2RlbCBvYmplY3Qgd2hlbiB0aGUgd29ya2JlbmNoIGxheW91dCBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIG9uTGF5b3V0Q2hhbmdlKGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJ0SWQgPSBsYXlvdXQucGFydCh7Ynk6IHt2aWV3SWQ6IHRoaXMuaWR9fSkuaWQ7XG4gICAgdGhpcy5fcGFydCQubmV4dCh0aGlzLl9wYXJ0UmVnaXN0cnkuZ2V0KHBhcnRJZCkpO1xuICAgIHRoaXMuc3RhdGUgPSBXb3JrYmVuY2hOYXZpZ2F0aW9uYWxTdGF0ZXMuZnJvbU5hdmlnYXRpb24odGhpcy5fcm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCkhKT8udmlld1N0YXRlc1t0aGlzLmlkXSA/PyB0aGlzLnN0YXRlID8/IHt9O1xuICAgIHRoaXMuY2xhc3NMaXN0LnNldCh0aGlzLnN0YXRlW1dvcmtiZW5jaE5hdmlnYXRpb25hbFZpZXdTdGF0ZXMuY3NzQ2xhc3NdIGFzIHVuZGVmaW5lZCB8IHN0cmluZyB8IHN0cmluZ1tdLCB7c2NvcGU6ICduYXZpZ2F0aW9uJ30pO1xuICB9XG5cbiAgcHVibGljIGdldCBmaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gdGhpcy5wYXJ0LnZpZXdJZHMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJ0LnZpZXdJZHMuaW5kZXhPZih0aGlzLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3NzQ2xhc3MoY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5jbGFzc0xpc3Quc2V0KGNzc0NsYXNzLCB7c2NvcGU6ICdhcHBsaWNhdGlvbid9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNsYXNzTGlzdC5nZXQoe3Njb3BlOiAnYXBwbGljYXRpb24nfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldCBjbG9zYWJsZShjbG9zYWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NhYmxlID0gY2xvc2FibGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3NhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zYWJsZSAmJiAhdGhpcy5ibG9ja2VkQnkkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFjdGl2YXRlKG9wdGlvbnM/OiB7c2tpcExvY2F0aW9uQ2hhbmdlPzogYm9vbGVhbn0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5hY3RpdmUgJiYgdGhpcy5wYXJ0LmFjdGl2ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudExheW91dCA9IHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2UubGF5b3V0O1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hSb3V0ZXIuybVuYXZpZ2F0ZShcbiAgICAgIGxheW91dCA9PiBjdXJyZW50TGF5b3V0ID09PSBsYXlvdXQgPyBsYXlvdXQuYWN0aXZhdGVWaWV3KHRoaXMuaWQsIHthY3RpdmF0ZVBhcnQ6IHRydWV9KSA6IG51bGwsIC8vIGNhbmNlbCBuYXZpZ2F0aW9uIGlmIHRoZSBsYXlvdXQgaGFzIGJlY29tZSBzdGFsZVxuICAgICAge3NraXBMb2NhdGlvbkNoYW5nZTogb3B0aW9ucz8uc2tpcExvY2F0aW9uQ2hhbmdlfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGUgdGFiIG9mIHRoaXMgdmlldyBpcyBzY3JvbGxlZCBpbnRvIHZpZXcgaW4gdGhlIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBzZXQgc2Nyb2xsZWRJbnRvVmlldyhzY3JvbGxlZEludG9WaWV3OiBib29sZWFuKSB7XG4gICAgaWYgKHNjcm9sbGVkSW50b1ZpZXcgIT09IHRoaXMuX3Njcm9sbGVkSW50b1ZpZXckLnZhbHVlKSB7XG4gICAgICB0aGlzLl9zY3JvbGxlZEludG9WaWV3JC5uZXh0KHNjcm9sbGVkSW50b1ZpZXcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgcHVibGljIGdldCBzY3JvbGxlZEludG9WaWV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxlZEludG9WaWV3JC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmZvcm1zIHdoZXRoZXIgdGhlIHRhYiBvZiB0aGlzIHZpZXcgaXMgc2Nyb2xsZWQgaW50byB2aWV3IGluIHRoZSB0YWJiYXIuXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IHN0YXRlIHVwb24gc3Vic2NyaXB0aW9uLCBhbmQgdGhlbiBjb250aW51b3VzbHkgd2hlbiB0aGUgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsZWRJbnRvVmlldyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbGVkSW50b1ZpZXckO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmF0aW9uSW5zdGFudCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmF0aW9uSW5zdGFudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFydCgpOiBXb3JrYmVuY2hQYXJ0IHtcbiAgICByZXR1cm4gRGVmaW5lZC5vckVsc2VUaHJvdyh0aGlzLl9wYXJ0JC52YWx1ZSwgKCkgPT4gRXJyb3IoYFtOdWxsUGFydEVycm9yXSBQYXJ0IHJlZmVyZW5jZSBtaXNzaW5nIGZvciB2aWV3ICcke3RoaXMuaWR9Jy5gKSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogJ3NlbGYnIHwgJ2FsbC12aWV3cycgfCAnb3RoZXItdmlld3MnIHwgJ3ZpZXdzLXRvLXRoZS1yaWdodCcgfCAndmlld3MtdG8tdGhlLWxlZnQnKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgc3dpdGNoICh0YXJnZXQgfHwgJ3NlbGYnKSB7XG4gICAgICBjYXNlICdzZWxmJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKHRoaXMuaWQpO1xuICAgICAgfVxuICAgICAgY2FzZSAnYWxsLXZpZXdzJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKC4uLnRoaXMucGFydC52aWV3SWRzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ290aGVyLXZpZXdzJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKC4uLnRoaXMucGFydC52aWV3SWRzLmZpbHRlcih2aWV3SWQgPT4gdmlld0lkICE9PSB0aGlzLmlkKSk7XG4gICAgICB9XG4gICAgICBjYXNlICd2aWV3cy10by10aGUtcmlnaHQnOiB7XG4gICAgICAgIGNvbnN0IHZpZXdJZHMgPSB0aGlzLnBhcnQudmlld0lkcztcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyguLi52aWV3SWRzLnNsaWNlKHZpZXdJZHMuaW5kZXhPZih0aGlzLmlkKSArIDEpKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3ZpZXdzLXRvLXRoZS1sZWZ0Jzoge1xuICAgICAgICBjb25zdCB2aWV3SWRzID0gdGhpcy5wYXJ0LnZpZXdJZHM7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLmNsb3NlVmlld3MoLi4udmlld0lkcy5zbGljZSgwLCB2aWV3SWRzLmluZGV4T2YodGhpcy5pZCkpKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vdmUodGFyZ2V0OiAnbmV3LXdpbmRvdycpOiB2b2lkO1xuICBwdWJsaWMgbW92ZShwYXJ0SWQ6IHN0cmluZywgb3B0aW9ucz86IHtyZWdpb24/OiAnbm9ydGgnIHwgJ3NvdXRoJyB8ICd3ZXN0JyB8ICdlYXN0Jzsgd29ya2JlbmNoSWQ/OiBzdHJpbmd9KTogdm9pZDtcbiAgcHVibGljIG1vdmUodGFyZ2V0OiAnbmV3LXdpbmRvdycgfCBzdHJpbmcsIG9wdGlvbnM/OiB7cmVnaW9uPzogJ25vcnRoJyB8ICdzb3V0aCcgfCAnd2VzdCcgfCAnZWFzdCc7IHdvcmtiZW5jaElkPzogc3RyaW5nfSk6IHZvaWQge1xuICAgIGNvbnN0IHNvdXJjZSA9IHtcbiAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgIHBhcnRJZDogdGhpcy5wYXJ0LmlkLFxuICAgICAgdmlld0lkOiB0aGlzLmlkLFxuICAgICAgdmlld1VybFNlZ21lbnRzOiB0aGlzLnVybFNlZ21lbnRzLFxuICAgICAgY2xhc3NMaXN0OiB0aGlzLmNsYXNzTGlzdC50b01hcCgpLFxuICAgIH07XG5cbiAgICBpZiAodGFyZ2V0ID09PSAnbmV3LXdpbmRvdycpIHtcbiAgICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe3NvdXJjZSwgdGFyZ2V0OiB7d29ya2JlbmNoSWQ6ICduZXctd2luZG93J319KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBlbGVtZW50SWQ6IHRhcmdldCxcbiAgICAgICAgICByZWdpb246IG9wdGlvbnMhLnJlZ2lvbixcbiAgICAgICAgICB3b3JrYmVuY2hJZDogb3B0aW9ucyEud29ya2JlbmNoSWQgPz8gdGhpcy5fd29ya2JlbmNoSWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVybFNlZ21lbnRzKCk6IFVybFNlZ21lbnRbXSB7XG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuX3JvdXRlci5wYXJzZVVybCh0aGlzLl9yb3V0ZXIudXJsKTtcbiAgICByZXR1cm4gdXJsVHJlZS5yb290LmNoaWxkcmVuW3RoaXMuaWRdPy5zZWdtZW50cyA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck1lbnVJdGVtKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSk6IERpc3Bvc2FibGUge1xuICAgIGNvbnN0IGZhY3RvcnlGbiA9ICgpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiBtZW51SXRlbTtcbiAgICB0aGlzLl9tZW51SXRlbVByb3ZpZGVycyQubmV4dCh0aGlzLl9tZW51SXRlbVByb3ZpZGVycyQudmFsdWUuY29uY2F0KGZhY3RvcnlGbikpO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwb3NlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC5uZXh0KHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC52YWx1ZS5maWx0ZXIoaXQgPT4gaXQgIT09IGZhY3RvcnlGbikpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhbiBhZGFwdGVyIGZvciB0aGlzIHZpZXcsIHJlcGxhY2luZyBhbnkgcHJldmlvdXNseSByZWdpc3RlcmVkIGFkYXB0ZXIgb2YgdGhlIHNhbWUgdHlwZS5cbiAgICpcbiAgICogQWRhcHRlcnMgZW5hYmxlIGxvb3NlbHkgY291cGxlZCBleHRlbnNpb24gb2YgYW4gb2JqZWN0LCBhbGxvd2luZyBvbmUgb2JqZWN0IHRvIGJlIGFkYXB0ZWQgdG8gYW5vdGhlci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckFkYXB0ZXI8VD4oYWRhcHRlclR5cGU6IEFic3RyYWN0VHlwZTxUPiB8IFR5cGU8VD4sIG9iamVjdDogVCk6IHZvaWQge1xuICAgIHRoaXMuX2FkYXB0ZXJzLnNldChhZGFwdGVyVHlwZSwgb2JqZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyB0aGUgZ2l2ZW4gYWRhcHRlci4gSGFzIG5vIGVmZmVjdCBpZiBub3QgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQWRhcHRlcihhZGFwdGVyVHlwZTogQWJzdHJhY3RUeXBlPHVua25vd24+IHwgVHlwZTx1bmtub3duPik6IHZvaWQge1xuICAgIHRoaXMuX2FkYXB0ZXJzLmRlbGV0ZShhZGFwdGVyVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRzIHRoaXMgb2JqZWN0IHRvIHRoZSBzcGVjaWZpZWQgdHlwZS4gUmV0dXJucyBgbnVsbGAgaWYgbm8gc3VjaCBvYmplY3QgY2FuIGJlIGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGFkYXB0PFQ+KGFkYXB0ZXJUeXBlOiBBYnN0cmFjdFR5cGU8VD4gfCBUeXBlPFQ+KTogVCB8IG51bGwge1xuICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLl9hZGFwdGVycy5nZXQoYWRhcHRlclR5cGUpO1xuICAgIHJldHVybiBhZGFwdGVyID8gYWRhcHRlciBhcyBUIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBvcnRhbC5pc0Rlc3Ryb3llZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb25pdG9ycyB0aGUgYXNzb2NpYXRlZCBwYXJ0IHRvIGNoZWNrIGlmIHRoaXMgdmlldyBpcyBjdXJyZW50bHkgYWN0aXZlLCB1cGRhdGluZyB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoaXMgdmlldyBhY2NvcmRpbmdseS5cbiAgICovXG4gIHByaXZhdGUgdHJhY2tWaWV3QWN0aXZhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9wYXJ0JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChwYXJ0ID0+IHBhcnQ/LmFjdGl2ZVZpZXdJZCQgPz8gRU1QVFkpLFxuICAgICAgICBtYXAoYWN0aXZlVmlld0lkID0+IGFjdGl2ZVZpZXdJZCA9PT0gdGhpcy5pZCksXG4gICAgICAgIGJ1ZmZlckxhdGVzdFVudGlsTGF5b3V0Q2hhbmdlKCksIC8vIFByZXZlbnQgdGhlIChkZS0pYWN0aXZhdGlvbiBvZiBwb3RlbnRpYWxseSB3cm9uZyB2aWV3cyB3aGlsZSB1cGRhdGluZyB0aGUgbGF5b3V0LlxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYWN0aXZlJCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgYWN0aXZhdGlvbiBpbnN0YW50IHdoZW4gdGhpcyB2aWV3IGlzIGFjdGl2YXRlZC5cbiAgICovXG4gIHByaXZhdGUgdG91Y2hPbkFjdGl2YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRpb25JbnN0YW50ID0gdGhpcy5fYWN0aXZhdGlvbkluc3RhbnRQcm92aWRlci5ub3coKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJsb2NrcyB0aGlzIHZpZXcgd2hlbiBhIGRpYWxvZyBvdmVybGF5cyBpdC5cbiAgICovXG4gIHByaXZhdGUgYmxvY2tXaGVuRGlhbG9nT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMuX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5LnRvcCQoe3ZpZXdJZDogdGhpcy5pZH0pXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYmxvY2tlZEJ5JCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95UmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLl93b3JrYmVuY2hEaWFsb2dSZWdpc3RyeS5kaWFsb2dzKHt2aWV3SWQ6IHRoaXMuaWR9KS5mb3JFYWNoKGRpYWxvZyA9PiBkaWFsb2cuZGVzdHJveSgpKTtcbiAgICB0aGlzLnBvcnRhbC5kZXN0cm95KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcHNldWRvLXR5cGUgZm9yIHRoZSBhY3R1YWwge0BsaW5rIFZpZXdDb21wb25lbnR9IHdoaWNoIG11c3Qgbm90IGJlIHJlZmVyZW5jZWQgaW4gb3JkZXIgdG8gYXZvaWQgaW1wb3J0IGN5Y2xlcy5cbiAqL1xudHlwZSBWaWV3Q29tcG9uZW50ID0gYW55O1xuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2024 Swiss Federal Railways
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
*/
|
|
10
|
+
import { MPart } from '../layout/workbench-layout.model';
|
|
11
|
+
import { WorkbenchLayouts } from '../layout/workbench-layouts.util';
|
|
12
|
+
/**
|
|
13
|
+
* Provides helper functions for dragging a view to a grid.
|
|
14
|
+
*/
|
|
15
|
+
export const GridDropTargets = {
|
|
16
|
+
/**
|
|
17
|
+
* Resolves the drop target for moving a view to the root part (or node) of a grid.
|
|
18
|
+
*
|
|
19
|
+
* Examples:
|
|
20
|
+
* - Droping a view at the grid's boundaries (north, south, east, west).
|
|
21
|
+
* - Dropping a view on the grid's start page (center).
|
|
22
|
+
*
|
|
23
|
+
* When dropping a view on the grid's start page, the root of the grid can be a part or a node,
|
|
24
|
+
* depending on whether the grid contains structural parts.
|
|
25
|
+
*/
|
|
26
|
+
resolve: (target) => {
|
|
27
|
+
const { grid, dropRegion, workbenchId } = target;
|
|
28
|
+
switch (dropRegion) {
|
|
29
|
+
case 'center': {
|
|
30
|
+
if (grid.root instanceof MPart) {
|
|
31
|
+
return { elementId: grid.root.id, workbenchId };
|
|
32
|
+
}
|
|
33
|
+
if (grid.activePartId) {
|
|
34
|
+
return { elementId: grid.activePartId, workbenchId };
|
|
35
|
+
}
|
|
36
|
+
return { elementId: WorkbenchLayouts.collectParts(grid.root)[0].id, workbenchId };
|
|
37
|
+
}
|
|
38
|
+
default: {
|
|
39
|
+
return {
|
|
40
|
+
elementId: grid.root instanceof MPart ? grid.root.id : grid.root.nodeId,
|
|
41
|
+
region: dropRegion,
|
|
42
|
+
workbenchId,
|
|
43
|
+
newPart: { ratio: .2 },
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kcm9wLXRhcmdldHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXctZG5kL2dyaWQtZHJvcC10YXJnZXRzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFHSCxPQUFPLEVBQUMsS0FBSyxFQUFZLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFFN0I7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBTyxFQUFFLENBQUMsTUFBMEcsRUFBdUIsRUFBRTtRQUMzSSxNQUFNLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsR0FBRyxNQUFNLENBQUM7UUFFL0MsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDYixJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksS0FBSyxFQUFFO29CQUM5QixPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBQyxDQUFDO2lCQUMvQztnQkFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUMsQ0FBQztpQkFDcEQ7Z0JBQ0QsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUMsQ0FBQzthQUNqRjtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE9BQU87b0JBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO29CQUN2RSxNQUFNLEVBQUUsVUFBVTtvQkFDbEIsV0FBVztvQkFDWCxPQUFPLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDO2lCQUNyQixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1ZpZXdNb3ZlRXZlbnRUYXJnZXR9IGZyb20gJy4vdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtNUGFydCwgTVBhcnRHcmlkfSBmcm9tICcuLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dHN9IGZyb20gJy4uL2xheW91dC93b3JrYmVuY2gtbGF5b3V0cy51dGlsJztcblxuLyoqXG4gKiBQcm92aWRlcyBoZWxwZXIgZnVuY3Rpb25zIGZvciBkcmFnZ2luZyBhIHZpZXcgdG8gYSBncmlkLlxuICovXG5leHBvcnQgY29uc3QgR3JpZERyb3BUYXJnZXRzID0ge1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZHJvcCB0YXJnZXQgZm9yIG1vdmluZyBhIHZpZXcgdG8gdGhlIHJvb3QgcGFydCAob3Igbm9kZSkgb2YgYSBncmlkLlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICogLSBEcm9waW5nIGEgdmlldyBhdCB0aGUgZ3JpZCdzIGJvdW5kYXJpZXMgKG5vcnRoLCBzb3V0aCwgZWFzdCwgd2VzdCkuXG4gICAqIC0gRHJvcHBpbmcgYSB2aWV3IG9uIHRoZSBncmlkJ3Mgc3RhcnQgcGFnZSAoY2VudGVyKS5cbiAgICpcbiAgICogV2hlbiBkcm9wcGluZyBhIHZpZXcgb24gdGhlIGdyaWQncyBzdGFydCBwYWdlLCB0aGUgcm9vdCBvZiB0aGUgZ3JpZCBjYW4gYmUgYSBwYXJ0IG9yIGEgbm9kZSxcbiAgICogZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGdyaWQgY29udGFpbnMgc3RydWN0dXJhbCBwYXJ0cy5cbiAgICovXG4gIHJlc29sdmU6ICh0YXJnZXQ6IHtncmlkOiBNUGFydEdyaWQ7IGRyb3BSZWdpb246ICd3ZXN0JyB8ICdlYXN0JyB8ICdub3J0aCcgfCAnc291dGgnIHwgJ2NlbnRlcic7IHdvcmtiZW5jaElkOiBzdHJpbmd9KTogVmlld01vdmVFdmVudFRhcmdldCA9PiB7XG4gICAgY29uc3Qge2dyaWQsIGRyb3BSZWdpb24sIHdvcmtiZW5jaElkfSA9IHRhcmdldDtcblxuICAgIHN3aXRjaCAoZHJvcFJlZ2lvbikge1xuICAgICAgY2FzZSAnY2VudGVyJzoge1xuICAgICAgICBpZiAoZ3JpZC5yb290IGluc3RhbmNlb2YgTVBhcnQpIHtcbiAgICAgICAgICByZXR1cm4ge2VsZW1lbnRJZDogZ3JpZC5yb290LmlkLCB3b3JrYmVuY2hJZH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdyaWQuYWN0aXZlUGFydElkKSB7XG4gICAgICAgICAgcmV0dXJuIHtlbGVtZW50SWQ6IGdyaWQuYWN0aXZlUGFydElkLCB3b3JrYmVuY2hJZH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtlbGVtZW50SWQ6IFdvcmtiZW5jaExheW91dHMuY29sbGVjdFBhcnRzKGdyaWQucm9vdClbMF0uaWQsIHdvcmtiZW5jaElkfTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbGVtZW50SWQ6IGdyaWQucm9vdCBpbnN0YW5jZW9mIE1QYXJ0ID8gZ3JpZC5yb290LmlkIDogZ3JpZC5yb290Lm5vZGVJZCxcbiAgICAgICAgICByZWdpb246IGRyb3BSZWdpb24sXG4gICAgICAgICAgd29ya2JlbmNoSWQsXG4gICAgICAgICAgbmV3UGFydDoge3JhdGlvOiAuMn0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9LFxufSBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -206,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
206
206
|
type: Injectable,
|
|
207
207
|
args: [{ providedIn: 'root' }]
|
|
208
208
|
}], ctorParameters: () => [{ type: i0.NgZone }] });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1kcmFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFZLEVBQUUsRUFBaUIsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztBQU05RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO0FBRXhEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFrQzFCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBaENqQzs7V0FFRztRQUNLLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUMxQyxtQ0FBOEIsR0FBRyxJQUFJLHlCQUF5QixDQUFlLDBCQUEwQixDQUFDLENBQUM7UUFDekcsaUNBQTRCLEdBQUcsSUFBSSx5QkFBeUIsQ0FBTyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzdGLDhCQUF5QixHQUFHLElBQUkseUJBQXlC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RUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBPYnNlcnZlciwgb2YsIFRlYXJkb3duTG9naWMsIHppcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FycmF5c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge1VybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dvcmtiZW5jaEJyb2FkY2FzdENoYW5uZWx9IGZyb20gJy4uL2NvbW11bmljYXRpb24vd29ya2JlbmNoLWJyb2FkY2FzdC1jaGFubmVsJztcbmltcG9ydCB7b2JzZXJ2ZUluc2lkZSwgc3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBFdmVudHMgZmlyZWQgZHVyaW5nIHZpZXcgZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFZpZXdEcmFnRXZlbnRUeXBlID0gJ2RyYWdzdGFydCcgfCAnZHJhZ2VuZCcgfCAnZHJhZ2VudGVyJyB8ICdkcmFnb3ZlcicgfCAnZHJhZ2xlYXZlJyB8ICdkcm9wJztcbi8qKlxuICogVHJhbnNmZXIgdHlwZSBmb3IgZHJhZ2dpbmcgYSB2aWV3LlxuICovXG5leHBvcnQgY29uc3QgVklFV19EUkFHX1RSQU5TRkVSX1RZUEUgPSAnd29ya2JlbmNoL3ZpZXcnO1xuXG4vKipcbiAqIE1hbmFnZXMgdGhlIGRyYWcgJiBkcm9wIGJlaGF2aW9yIHdoZW4gdGhlIHVzZXIgZHJhZ3MgYSB2aWV3LlxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaWV3RHJhZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHZpZXcgZHJhZyBkYXRhIG9mIHRoZSBvbmdvaW5nIHZpZXcgZHJhZyBvcGVyYXRpb24sIGlmIGFueSwgb3IgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHByaXZhdGUgX3ZpZXdEcmFnRGF0YTogVmlld0RyYWdEYXRhIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3ZpZXdEcmFnU3RhcnRCcm9hZGNhc3RDaGFubmVsID0gbmV3IFdvcmtiZW5jaEJyb2FkY2FzdENoYW5uZWw8Vmlld0RyYWdEYXRhPignd29ya2JlbmNoL3ZpZXcvZHJhZ3N0YXJ0Jyk7XG4gIHByaXZhdGUgX3ZpZXdEcmFnRW5kQnJvYWRjYXN0Q2hhbm5lbCA9IG5ldyBXb3JrYmVuY2hCcm9hZGNhc3RDaGFubmVsPHZvaWQ+KCd3b3JrYmVuY2gvdmlldy9kcmFnZW5kJyk7XG4gIHByaXZhdGUgX3ZpZXdNb3ZlQnJvYWRjYXN0Q2hhbm5lbCA9IG5ldyBXb3JrYmVuY2hCcm9hZGNhc3RDaGFubmVsPFZpZXdNb3ZlRXZlbnQ+KCd3b3JrYmVuY2gvdmlldy9tb3ZlJyk7XG4gIHByaXZhdGUgX3RhYmJhckRyYWdPdmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIC8qIHBhcnRJZCAqLyB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyBhIHZpZXd0YWIuIFRoZSBldmVudCBpcyByZWNlaXZlZCBhY3Jvc3MgYXBwIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBvcmlnaW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld0RyYWdTdGFydCQ6IE9ic2VydmFibGU8Vmlld0RyYWdEYXRhPiA9IHRoaXMuX3ZpZXdEcmFnU3RhcnRCcm9hZGNhc3RDaGFubmVsLm9ic2VydmUkO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB1c2VyIGVuZHMgZHJhZ2dpbmcgYSB2aWV3dGFiLiBUaGUgZXZlbnQgaXMgcmVjZWl2ZWQgYWNyb3NzIGFwcCBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpZXdEcmFnRW5kJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuX3ZpZXdEcmFnRW5kQnJvYWRjYXN0Q2hhbm5lbC5vYnNlcnZlJDtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdXNlciBtb3ZlcyBhIHZpZXcuIFRoZSBldmVudCBpcyByZWNlaXZlZCBhY3Jvc3MgYXBwIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBvcmlnaW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld01vdmUkOiBPYnNlcnZhYmxlPFZpZXdNb3ZlRXZlbnQ+ID0gdGhpcy5fdmlld01vdmVCcm9hZGNhc3RDaGFubmVsLm9ic2VydmUkO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhcnQgd2hlbiB0aGUgdXNlciBpcyBkcmFnZ2luZyBhIHZpZXcgb3ZlciBpdHMgdGFiYmFyLCBvciBgbnVsbGAgaWYgbm90IGRyYWdnaW5nIG92ZXIgYSB0YWJiYXIuXG4gICAqIFRoZSBldmVudCBpcyBOT1QgcmVjZWl2ZWQgYWNyb3NzIGFwcCBpbnN0YW5jZXMuXG4gICAqXG4gICAqIFVwb24gc3Vic2NyaXB0aW9uLCBlbWl0cyB0aGUgY3VycmVudCBzdGF0ZSwgYW5kIHRoZW4gZWFjaCB0aW1lIHRoZSBzdGF0ZSBjaGFuZ2VzLiBUaGUgb2JzZXJ2YWJsZSBuZXZlciBjb21wbGV0ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFiYmFyRHJhZ092ZXIkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+ID0gdGhpcy5fdGFiYmFyRHJhZ092ZXIkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMudmlld0RyYWdTdGFydCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSh2aWV3RHJhZ0RhdGEgPT4ge1xuICAgICAgICB0aGlzLl92aWV3RHJhZ0RhdGEgPSB2aWV3RHJhZ0RhdGE7XG4gICAgICB9KTtcbiAgICB0aGlzLnZpZXdEcmFnRW5kJFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdmlld0RyYWdEYXRhID0gbnVsbDtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGVuIGRyYWdnaW5nIGEgdmlldyBvdmVyIHNwZWNpZmllZCB0YWJiYXIuXG4gICAqL1xuICBwdWJsaWMgc2V0VGFiYmFyRHJhZ292ZXIocGFydElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl90YWJiYXJEcmFnT3ZlciQubmV4dChwYXJ0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc2V0IHdoZW4gbm90IGRyYWdnaW5nIGEgdmlldyBvdmVyIHNwZWNpZmllZCB0YWJiYXIgYW55bW9yZS5cbiAgICovXG4gIHB1YmxpYyB1bnNldFRhYmJhckRyYWdvdmVyKHBhcnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RhYmJhckRyYWdPdmVyJC52YWx1ZSA9PT0gcGFydElkKSB7XG4gICAgICB0aGlzLl90YWJiYXJEcmFnT3ZlciQubmV4dChudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGRyYWdnaW5nIGEgdmlldyB0YWIgb3ZlciBhIHRhYmJhci5cbiAgICpcbiAgICogUmV0dXJucyB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhcnQgaWYgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgYSB2aWV3IG92ZXIgaXRzIHRhYmJhciwgb3IgYG51bGxgIGlmIG5vdCBkcmFnZ2luZyBvdmVyIGEgdGFiYmFyLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0RyYWdPdmVyVGFiYmFyKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90YWJiYXJEcmFnT3ZlciQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBldmVudCBpcyBhIHZpZXcgZHJhZyBldmVudCB3aXRoIHRoZSBzYW1lIG9yaWdpbi5cbiAgICovXG4gIHB1YmxpYyBpc1ZpZXdEcmFnRXZlbnQoZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoVklFV19EUkFHX1RSQU5TRkVSX1RZUEUpICYmIHRoaXMudmlld0RyYWdEYXRhICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgZm9yIHNhbWUtb3JpZ2luIHZpZXcgZHJhZyBldmVudHMgb24gdGhlIGdpdmVuIHRhcmdldCBlbGVtZW50LlxuICAgKlxuICAgKiBVbmxpa2Ugd2hlbiBpbnN0YWxsaW5nIGEgXCJuYXRpdmVcIiBldmVudCBoYW5kbGVyIGZvciBgZHJhZ2VudGVyYCBhbmQvb3IgYGRyYWdsZWF2ZWAgZXZlbnRzLFxuICAgKiB0aGlzIG9ic2VydmFibGUgZG9lcyBub3QgZW1pdCB3aGVuIGRyYWdnaW5nIG92ZXIgY2hpbGQgZWxlbWVudHMgb2YgdGhlIHRhcmdldCBlbGVtZW50LlxuICAgKlxuICAgKiBGb2xsb3dpbmcgZHJhZyBldmVudHMgYXJlIGVtaXR0ZWQ6XG4gICAqIC0gZHJhZ3N0YXJ0OiB3aGVuIHN0YXJ0IGRyYWdnaW5nIGEgdmlldyB0YWJcbiAgICogLSBkcmFnZW5kOiB3aGVuIGVuZCBkcmFnZ2luZyBhIHZpZXcgdGFiXG4gICAqIC0gZHJhZ2VudGVyOiB3aGVuIGVudGVyaW5nIHRoZSB0YXJnZXQgZWxlbWVudCB3aGlsZSBkcmFnZ2luZyBhIHZpZXcgdGFiXG4gICAqIC0gZHJhZ292ZXI6IHdoZW4gZHJhZ2dpbmcgYSB2aWV3IHRhYiBvdmVyIHRoZSB0YXJnZXQgZWxlbWVudCwgZXZlcnkgZmV3IGh1bmRyZWQgbWlsbGlzZWNvbmRzXG4gICAqIC0gZHJhZ2xlYXZlOiB3aGVuIGxlYXZpbmcgdGhlIHRhcmdldCBlbGVtZW50IHdoaWxlIGRyYWdnaW5nIGEgdmlldyB0YWJcbiAgICogLSBkcm9wOiB3aGVuIGRyb3BwaW5nIGEgdmlldyB0YWIgb24gYSB2YWxpZCBkcm9wIHRhcmdldFxuICAgKlxuICAgKiBBcyBieSBkZXNpZ24gb2YgbmF0aXZlIGRyYWcgYW5kIGRyb3AsIHRoZSBgZHJhZ2xlYXZlYCBldmVudCBpcyBub3QgZmlyZWQgb24gZHJvcCBhY3Rpb24uXG4gICAqIFRoZXJlZm9yZSwgYWx3YXlzIGhhbmRsZSBib3RoIGV2ZW50cywgYGRyYWdsZWF2ZWAgYW5kIGBkcm9wYCBldmVudHMsIHJlc3BlY3RpdmVseS5cbiAgICpcbiAgICogQHBhcmFtIHRhcmdldCAtIFNwZWNpZmllcyB0aGUgZWxlbWVudCBvbiB3aGljaCB0byBzdWJzY3JpYmUgZm9yIGRyYWcgZXZlbnRzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbnRyb2xzIGhvdyB0byBzdWJzY3JpYmUgZm9yIGRyYWcgZXZlbnRzLlxuICAgKiAgICAgICAgQHByb3BlcnR5IGV2ZW50VHlwZSAtIEZpbHRlcnMgZm9yIHNwZWNpZmllZCBkcmFnIGV2ZW50czsgZGVmYXVsdHMgdG8gYW55IGV2ZW50LlxuICAgKiAgICAgICAgQHByb3BlcnR5IGNhcHR1cmUgLSBDb250cm9scyB3aGV0aGVyIHRvIHN1YnNjcmliZSBmb3IgZHJhZyBldmVudHMgaW4gdGhlIGNhcHR1cmluZyBwaGFzZTsgZGVmYXVsdHMgdG8gYGZhbHNlYCwgaS5lLiwgYGJ1YmJsaW5nYCBwaGFzZS5cbiAgICovXG4gIHB1YmxpYyB2aWV3RHJhZyQodGFyZ2V0OiBFbGVtZW50IHwgV2luZG93LCBvcHRpb25zPzogVmlld0RyYWdFdmVudExpc3RlbmVyT3B0aW9ucyk6IE9ic2VydmFibGU8RHJhZ0V2ZW50PiB7XG4gICAgY29uc3QgZmlsdGVyZWRFdmVudFR5cGVzID0gbmV3IFNldDxzdHJpbmc+KEFycmF5cy5jb2VyY2Uob3B0aW9ucz8uZXZlbnRUeXBlKSk7XG4gICAgY29uc3QgaXNWaWV3RHJhZ0V2ZW50ID0gdGhpcy5pc1ZpZXdEcmFnRXZlbnQuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPERyYWdFdmVudD4pOiBUZWFyZG93bkxvZ2ljID0+IHtcbiAgICAgIGNvbnN0IGluc2lkZUFuZ3VsYXIgPSBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCk7XG5cbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG1lcmdlKFxuICAgICAgICBzaG91bGRTdWJzY3JpYmUoJ2RyYWdzdGFydCcpID8gZHJhZ3N0YXJ0JCgpIDogRU1QVFksXG4gICAgICAgIHNob3VsZFN1YnNjcmliZSgnZHJhZ2VuZCcpID8gZHJhZ2VuZCQoKSA6IEVNUFRZLFxuICAgICAgICBzaG91bGRTdWJzY3JpYmUoJ2RyYWdvdmVyJykgPyBkcmFnb3ZlciQoKSA6IEVNUFRZLFxuICAgICAgICBzaG91bGRTdWJzY3JpYmUoJ2RyYWdlbnRlcicpIHx8IHNob3VsZFN1YnNjcmliZSgnZHJhZ2xlYXZlJykgfHwgc2hvdWxkU3Vic2NyaWJlKCdkcm9wJykgPyBkcmFnZW50ZXJPckRyYWdsZWF2ZU9yRHJvcCQoKSA6IEVNUFRZLFxuICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzdWJzY3JpYmVJbnNpZGUoZm4gPT4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICAgIG9ic2VydmVJbnNpZGUoZm4gPT4gaW5zaWRlQW5ndWxhciA/IHRoaXMuX3pvbmUucnVuKGZuKSA6IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKG9ic2VydmVyKTtcblxuICAgICAgcmV0dXJuICgpOiB2b2lkID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gZHJhZ3N0YXJ0JCgpOiBPYnNlcnZhYmxlPERyYWdFdmVudD4ge1xuICAgICAgcmV0dXJuIGZyb21FdmVudDxEcmFnRXZlbnQ+KHRhcmdldCwgJ2RyYWdzdGFydCcsIG9wdGlvbnMgPz8ge30pXG4gICAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBpc1ZpZXdEcmFnRXZlbnQoZXZlbnQpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZHJhZ2VuZCQoKTogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHtcbiAgICAgIC8vIFRoZSBgZHJhZ2VuZGAgZXZlbnQgZG9lcyBub3QgY29udGFpbiBhIGRyYWcgdHJhbnNmZXIgdHlwZS4gVG8gc3RpbGwgZmlsdGVyIHZpZXctcmVsYXRlZCBgZHJhZ2VuZGAgZXZlbnRzLFxuICAgICAgLy8gd2UgY29tYmluZSBgZHJhZ3N0YXJ0YCBhbmQgYGRyYWdlbmRgIGV2ZW50cywgaS5lLiwgd2hlbiBhIHZpZXctcmVsYXRlZCBgZHJhZ3N0YXJ0YCBldmVudCBvY2N1cnMsIHdlIGV4cGVjdFxuICAgICAgLy8gdGhlIG5leHQgYGRyYWdlbmRgIGV2ZW50IHRvIGJlIHZpZXctcmVsYXRlZC5cbiAgICAgIHJldHVybiB6aXAoXG4gICAgICAgIGZyb21FdmVudDxEcmFnRXZlbnQ+KHRhcmdldCwgJ2RyYWdzdGFydCcsIG9wdGlvbnMgPz8ge30pLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGlzVmlld0RyYWdFdmVudChldmVudCkpKSxcbiAgICAgICAgZnJvbUV2ZW50PERyYWdFdmVudD4odGFyZ2V0LCAnZHJhZ2VuZCcsIG9wdGlvbnMgPz8ge30pLFxuICAgICAgKS5waXBlKG1hcCgoW18sIGRyYWdlbmRFdmVudF0pID0+IGRyYWdlbmRFdmVudCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRyYWdvdmVyJCgpOiBPYnNlcnZhYmxlPERyYWdFdmVudD4ge1xuICAgICAgcmV0dXJuIGZyb21FdmVudDxEcmFnRXZlbnQ+KHRhcmdldCwgJ2RyYWdvdmVyJywgb3B0aW9ucyA/PyB7fSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGlzVmlld0RyYWdFdmVudChldmVudCkpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkcmFnZW50ZXJPckRyYWdsZWF2ZU9yRHJvcCQoKTogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHtcbiAgICAgIC8vIFdlIGVtaXQgYGRyYWdlbnRlcmAgb25seSB3aGVuIGVudGVyaW5nIHRoZSB0YXJnZXQgZWxlbWVudCAob3IgYW55IGNoaWxkIGVsZW1lbnQpIGZvciB0aGUgZmlyc3QgdGltZVxuICAgICAgLy8gYW5kIG9ubHkgYWdhaW4gYWZ0ZXIgZW50ZXJpbmcgaXQgYWdhaW4uIFRoZSBzYW1lIGFwcGxpZXMgZm9yIGBkcmFnbGVhdmVgLlxuICAgICAgbGV0IGRyYWdFbnRlckNvdW50ID0gMDtcbiAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50PERyYWdFdmVudD4odGFyZ2V0LCAnZHJhZ2VudGVyJywgb3B0aW9ucyA/PyB7fSksXG4gICAgICAgIGZyb21FdmVudDxEcmFnRXZlbnQ+KHRhcmdldCwgJ2RyYWdsZWF2ZScsIG9wdGlvbnMgPz8ge30pLFxuICAgICAgICBmcm9tRXZlbnQ8RHJhZ0V2ZW50Pih0YXJnZXQsICdkcm9wJywgb3B0aW9ucyA/PyB7fSksXG4gICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcihldmVudCA9PiBpc1ZpZXdEcmFnRXZlbnQoZXZlbnQpKSxcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdkcmFnZW50ZXInOiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgrK2RyYWdFbnRlckNvdW50ID09PSAxKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlICdkcmFnbGVhdmUnOlxuICAgICAgICAgICAgICBjYXNlICdkcm9wJzoge1xuICAgICAgICAgICAgICAgIHJldHVybiAoLS1kcmFnRW50ZXJDb3VudCA9PT0gMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gc2hvdWxkU3Vic2NyaWJlKGV2ZW50LnR5cGUpKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzaG91bGRTdWJzY3JpYmUoZXZlbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhZmlsdGVyZWRFdmVudFR5cGVzLnNpemUgfHwgZmlsdGVyZWRFdmVudFR5cGVzLmhhcyhldmVudFR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIHRoZSBnaXZlbiB2aWV3IG1vdmUgZXZlbnQgdG8gYXBwIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBvcmlnaW4uXG4gICAqL1xuICBwdWJsaWMgZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogdm9pZCB7XG4gICAgLy8gV2FpdCB0byBkaXNwYXRjaCB0aGUgZXZlbnQgdW50aWwgdGhlIGRyYWcgb3BlcmF0aW9uIGZpbmlzaGVkLCBpZiBhbnksIGJlY2F1c2UgaWYgdGhlIGRyYWcgc291cmNlIGVsZW1lbnRcbiAgICAvLyBpcyBkZXN0cm95ZWQgZHVyaW5nIHRoZSBkcmFnIG9wZXJhdGlvbiwgZS5nLiBpZiBtb3ZlZCB0byBhbm90aGVyIHBhcnQsIHRoZSBkcmFnIG9wZXJhdGlvbiB3b3VsZCBub3RcbiAgICAvLyBvcmRpbmFyaWx5IGNvbXBsZXRlLCBtZWFuaW5nICdkcmFnZW5kJyBvciAnZHJhZ2xlYXZlJyB3b3VsZCBub3QgYmUgY2FsbGVkLlxuICAgIGNvbnN0IGlzRHJhZ2dpbmcgPSB0aGlzLnZpZXdEcmFnRGF0YSAhPT0gbnVsbDtcbiAgICAoaXNEcmFnZ2luZyA/IHRoaXMudmlld0RyYWdFbmQkIDogb2YodW5kZWZpbmVkKSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3ZpZXdNb3ZlQnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShldmVudCkpO1xuXG4gIH1cblxuICAvKipcbiAgICogTWFrZXMgdGhlIGdpdmVuIHZpZXcgZHJhZyBkYXRhIGF2YWlsYWJsZSB0byBhcHAgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIG9yaWdpbi5cbiAgICpcbiAgICogSW52b2tlIHRoaXMgbWV0aG9kIGluc2lkZSAnZHJhZ3N0YXJ0JyBldmVudCBoYW5kbGVyIG9mIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBkcmFnIG9wZXJhdGlvbiBzdGFydGVkLlxuICAgKi9cbiAgcHVibGljIHNldFZpZXdEcmFnRGF0YSh2aWV3RHJhZ0RhdGE6IFZpZXdEcmFnRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU3RhcnRCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKHZpZXdEcmFnRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgdmlldyBkcmFnIGRhdGEuXG4gICAqXG4gICAqIEludm9rZSB0aGlzIG1ldGhvZCBpbnNpZGUgJ2RyYWdlbmQnIGV2ZW50IGhhbmRsZXIgb2YgdGhlIGVsZW1lbnQgd2hlcmUgdGhlIGRyYWcgb3BlcmF0aW9uIHN0YXJ0ZWQuXG4gICAqL1xuICBwdWJsaWMgdW5zZXRWaWV3RHJhZ0RhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdFbmRCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmlldyBkcmFnIGRhdGEgb2YgdGhlIG9uZ29pbmcgdmlldyBkcmFnIG9wZXJhdGlvbiBvciBgbnVsbGAgaWYgbm8gZHJhZyBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZpZXdEcmFnRGF0YSgpOiBWaWV3RHJhZ0RhdGEgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RyYWdEYXRhO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdNb3ZlQnJvYWRjYXN0Q2hhbm5lbC5kZXN0cm95KCk7XG4gICAgdGhpcy5fdmlld0RyYWdTdGFydEJyb2FkY2FzdENoYW5uZWwuZGVzdHJveSgpO1xuICAgIHRoaXMuX3ZpZXdEcmFnRW5kQnJvYWRjYXN0Q2hhbm5lbC5kZXN0cm95KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGRhdGEgb2YgYSB2aWV3IGRyYWcgb3BlcmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdEcmFnRGF0YSB7XG4gIC8qKlxuICAgKiBYLWNvb3JkaW5hdGUgb2YgdGhlIG1vdXNlIHBvaW50ZXIsIHJlbGF0aXZlIHRvIHRoZSB2aWV3IHRhYiBkcmFnIGltYWdlLlxuICAgKi9cbiAgdmlld1RhYlBvaW50ZXJPZmZzZXRYOiBudW1iZXI7XG4gIC8qKlxuICAgKiBZLWNvb3JkaW5hdGUgb2YgdGhlIG1vdXNlIHBvaW50ZXIsIHJlbGF0aXZlIHRvIHRoZSB2aWV3IHRhYiBkcmFnIGltYWdlLlxuICAgKi9cbiAgdmlld1RhYlBvaW50ZXJPZmZzZXRZOiBudW1iZXI7XG4gIHZpZXdJZDogc3RyaW5nO1xuICB2aWV3VGl0bGU6IHN0cmluZztcbiAgdmlld1VybFNlZ21lbnRzOiBVcmxTZWdtZW50W107XG4gIHZpZXdIZWFkaW5nOiBzdHJpbmc7XG4gIHZpZXdDbG9zYWJsZTogYm9vbGVhbjtcbiAgdmlld0RpcnR5OiBib29sZWFuO1xuICBwYXJ0SWQ6IHN0cmluZztcbiAgdmlld1RhYldpZHRoOiBudW1iZXI7XG4gIHZpZXdUYWJIZWlnaHQ6IG51bWJlcjtcbiAgd29ya2JlbmNoSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gbW92aW5nIGEgdmlldy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaWV3TW92ZUV2ZW50IHtcbiAgc291cmNlOiB7XG4gICAgdmlld0lkOiBzdHJpbmc7XG4gICAgcGFydElkOiBzdHJpbmc7XG4gICAgdmlld1VybFNlZ21lbnRzOiBVcmxTZWdtZW50W107XG4gICAgd29ya2JlbmNoSWQ6IHN0cmluZztcbiAgfTtcbiAgdGFyZ2V0OiB7XG4gICAgLyoqXG4gICAgICogUGFydCAob3Igbm9kZSkgd2hlcmUgKG9yIHJlbGF0aXZlIHRvIHdoaWNoKSB0byBhZGQgdGhlIHZpZXcuXG4gICAgICpcbiAgICAgKiBSdWxlcyBmb3IgZGlmZmVyZW50IHJlZ2lvbnM6XG4gICAgICogLSBJZiBub3Qgc3BlY2lmeWluZyBhIHJlZ2lvbiwge0BsaW5rIGVsZW1lbnRJZH0gaXMgbWFuZGF0b3J5IGFuZCBtdXN0IHJlZmVyZW5jZSBhIHBhcnQuXG4gICAgICogLSBGb3IgcmVnaW9ucyBgbm9ydGhgLCBgc291dGhgLCBgZWFzdGAsIG9yIGB3ZXN0YCwge0BsaW5rIGVsZW1lbnRJZH0gY2FuIHJlZmVyZW5jZSBhIHBhcnQgb3Igbm9kZSxcbiAgICAgKiAgIHJlbGF0aXZlIHRvIHdoaWNoIHRvIGFsaWduIHRoZSB2aWV3LiBJZiBub3Qgc2V0LCB0aGUgdmlldyBpcyBhbGlnZW5kIHJlbGF0aXZlIHRvIHRoZSByb290IG9mXG4gICAgICogICB0aGUgZW50aXJlIGxheW91dC5cbiAgICAgKlxuICAgICAqIE5vdGU6IFByb3BlcnR5IGlzIGlnbm9yZWQgd2hlbiBtb3ZpbmcgdGhlIHZpZXcgdG8gYSBuZXcgd2luZG93LlxuICAgICAqL1xuICAgIGVsZW1lbnRJZD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBSZWdpb24gb2Yge0BsaW5rIGVsZW1lbnRJZH0gd2hlcmUgdG8gYWRkIHRoZSB2aWV3IChpbiBhIG5ldyBwYXJ0KS5cbiAgICAgKlxuICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIHtAbGluayBlbGVtZW50SWR9IG11c3QgcmVmZXJlbmNlIGEgcGFydCB0byB3aGljaCB0byBhZGQgdGhlIHZpZXcuXG4gICAgICpcbiAgICAgKiBOb3RlOlxuICAgICAqIC0gUHJvcGVydHkgaXMgaWdub3JlZCB3aGVuIG1vdmluZyB0aGUgdmlldyB0byBhIG5ldyB3aW5kb3cuXG4gICAgICogLSBQcm9wZXJ0eSBpcyByZXF1aXJlZCBpZiB7QGxpbmsgZWxlbWVudElkfSBpcyBhIG5vZGUuXG4gICAgICovXG4gICAgcmVnaW9uPzogJ25vcnRoJyB8ICdlYXN0JyB8ICdzb3V0aCcgfCAnd2VzdCc7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gd2hlcmUgdG8gaW5zZXJ0IHRoZSB2aWV3LiBUaGUgcG9zaXRpb24gaXMgemVyby1iYXNlZC4gSWYgbm90IHNldCwgYWRkcyB0aGUgdmlldyBhZnRlciB0aGUgYWN0aXZlIHZpZXcuXG4gICAgICovXG4gICAgcG9zaXRpb24/OiBudW1iZXIgfCAnc3RhcnQnIHwgJ2VuZCc7XG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciBvZiB0aGUgdGFyZ2V0IHdvcmtiZW5jaCwgb3IgJ25ldy13aW5kb3cnIHRvIG1vdmUgdGhlIHZpZXcgdG8gYSBuZXcgYnJvd3NlciB3aW5kb3cuXG4gICAgICovXG4gICAgd29ya2JlbmNoSWQ6IHN0cmluZyB8ICduZXctd2luZG93JztcbiAgICAvKipcbiAgICAgKiBEZXNjcmliZXMgdGhlIHBhcnQgdG8gYmUgY3JlYXRlZCBpZiB0aGUgcmVnaW9uIGlzICdub3J0aCcsICdlYXN0JywgJ3NvdXRoJywgb3IgJ3dlc3QnLlxuICAgICAqL1xuICAgIG5ld1BhcnQ/OiB7XG4gICAgICAvKipcbiAgICAgICAqIElkZW50aXR5IG9mIHRoZSBuZXcgcGFydC4gSWYgbm90IHNldCwgYXNzaWducyBhIFVVSUQuXG4gICAgICAgKi9cbiAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBQcm9wb3J0aW9uYWwgc2l6ZSBvZiB0aGUgcGFydCByZWxhdGl2ZSB0byB0aGUgcmVmZXJlbmNlIHBhcnQuXG4gICAgICAgKiBUaGUgcmF0aW8gaXMgdGhlIGNsb3NlZCBpbnRlcnZhbCBbMCwxXS4gSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYDAuNWAuXG4gICAgICAgKi9cbiAgICAgIHJhdGlvPzogbnVtYmVyO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld0RyYWdFdmVudExpc3RlbmVyT3B0aW9ucyBleHRlbmRzIEV2ZW50TGlzdGVuZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFsbG93cyBmaWx0ZXJpbmcgZm9yIGdpdmVuIGRyYWcgZXZlbnQgdHlwZXMuXG4gICAqL1xuICBldmVudFR5cGU/OiBWaWV3RHJhZ0V2ZW50VHlwZSB8IFZpZXdEcmFnRXZlbnRUeXBlW107XG59XG4iXX0=
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1kcmFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFZLEVBQUUsRUFBaUIsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztBQU85RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO0FBRXhEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFrQzFCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBaENqQzs7V0FFRztRQUNLLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUMxQyxtQ0FBOEIsR0FBRyxJQUFJLHlCQUF5QixDQUFlLDBCQUEwQixDQUFDLENBQUM7UUFDekcsaUNBQTRCLEdBQUcsSUFBSSx5QkFBeUIsQ0FBTyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzdGLDhCQUF5QixHQUFHLElBQUkseUJBQXlC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RUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBPYnNlcnZlciwgb2YsIFRlYXJkb3duTG9naWMsIHppcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FycmF5c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge1VybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dvcmtiZW5jaEJyb2FkY2FzdENoYW5uZWx9IGZyb20gJy4uL2NvbW11bmljYXRpb24vd29ya2JlbmNoLWJyb2FkY2FzdC1jaGFubmVsJztcbmltcG9ydCB7b2JzZXJ2ZUluc2lkZSwgc3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Q2xhc3NMaXN0TWFwfSBmcm9tICcuLi9jb21tb24vY2xhc3MtbGlzdCc7XG5cbi8qKlxuICogRXZlbnRzIGZpcmVkIGR1cmluZyB2aWV3IGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBWaWV3RHJhZ0V2ZW50VHlwZSA9ICdkcmFnc3RhcnQnIHwgJ2RyYWdlbmQnIHwgJ2RyYWdlbnRlcicgfCAnZHJhZ292ZXInIHwgJ2RyYWdsZWF2ZScgfCAnZHJvcCc7XG4vKipcbiAqIFRyYW5zZmVyIHR5cGUgZm9yIGRyYWdnaW5nIGEgdmlldy5cbiAqL1xuZXhwb3J0IGNvbnN0IFZJRVdfRFJBR19UUkFOU0ZFUl9UWVBFID0gJ3dvcmtiZW5jaC92aWV3JztcblxuLyoqXG4gKiBNYW5hZ2VzIHRoZSBkcmFnICYgZHJvcCBiZWhhdmlvciB3aGVuIHRoZSB1c2VyIGRyYWdzIGEgdmlldy5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVmlld0RyYWdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB2aWV3IGRyYWcgZGF0YSBvZiB0aGUgb25nb2luZyB2aWV3IGRyYWcgb3BlcmF0aW9uLCBpZiBhbnksIG9yIGBudWxsYCBvdGhlcndpc2UuXG4gICAqL1xuICBwcml2YXRlIF92aWV3RHJhZ0RhdGE6IFZpZXdEcmFnRGF0YSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF92aWV3RHJhZ1N0YXJ0QnJvYWRjYXN0Q2hhbm5lbCA9IG5ldyBXb3JrYmVuY2hCcm9hZGNhc3RDaGFubmVsPFZpZXdEcmFnRGF0YT4oJ3dvcmtiZW5jaC92aWV3L2RyYWdzdGFydCcpO1xuICBwcml2YXRlIF92aWV3RHJhZ0VuZEJyb2FkY2FzdENoYW5uZWwgPSBuZXcgV29ya2JlbmNoQnJvYWRjYXN0Q2hhbm5lbDx2b2lkPignd29ya2JlbmNoL3ZpZXcvZHJhZ2VuZCcpO1xuICBwcml2YXRlIF92aWV3TW92ZUJyb2FkY2FzdENoYW5uZWwgPSBuZXcgV29ya2JlbmNoQnJvYWRjYXN0Q2hhbm5lbDxWaWV3TW92ZUV2ZW50Pignd29ya2JlbmNoL3ZpZXcvbW92ZScpO1xuICBwcml2YXRlIF90YWJiYXJEcmFnT3ZlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyAvKiBwYXJ0SWQgKi8gfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgYSB2aWV3dGFiLiBUaGUgZXZlbnQgaXMgcmVjZWl2ZWQgYWNyb3NzIGFwcCBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpZXdEcmFnU3RhcnQkOiBPYnNlcnZhYmxlPFZpZXdEcmFnRGF0YT4gPSB0aGlzLl92aWV3RHJhZ1N0YXJ0QnJvYWRjYXN0Q2hhbm5lbC5vYnNlcnZlJDtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdXNlciBlbmRzIGRyYWdnaW5nIGEgdmlld3RhYi4gVGhlIGV2ZW50IGlzIHJlY2VpdmVkIGFjcm9zcyBhcHAgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIG9yaWdpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2aWV3RHJhZ0VuZCQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl92aWV3RHJhZ0VuZEJyb2FkY2FzdENoYW5uZWwub2JzZXJ2ZSQ7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHVzZXIgbW92ZXMgYSB2aWV3LiBUaGUgZXZlbnQgaXMgcmVjZWl2ZWQgYWNyb3NzIGFwcCBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb3ZlJDogT2JzZXJ2YWJsZTxWaWV3TW92ZUV2ZW50PiA9IHRoaXMuX3ZpZXdNb3ZlQnJvYWRjYXN0Q2hhbm5lbC5vYnNlcnZlJDtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGlkZW50aXR5IG9mIHRoZSBwYXJ0IHdoZW4gdGhlIHVzZXIgaXMgZHJhZ2dpbmcgYSB2aWV3IG92ZXIgaXRzIHRhYmJhciwgb3IgYG51bGxgIGlmIG5vdCBkcmFnZ2luZyBvdmVyIGEgdGFiYmFyLlxuICAgKiBUaGUgZXZlbnQgaXMgTk9UIHJlY2VpdmVkIGFjcm9zcyBhcHAgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIGN1cnJlbnQgc3RhdGUsIGFuZCB0aGVuIGVhY2ggdGltZSB0aGUgc3RhdGUgY2hhbmdlcy4gVGhlIG9ic2VydmFibGUgbmV2ZXIgY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmJhckRyYWdPdmVyJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiA9IHRoaXMuX3RhYmJhckRyYWdPdmVyJDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLnZpZXdEcmFnU3RhcnQkXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUodmlld0RyYWdEYXRhID0+IHtcbiAgICAgICAgdGhpcy5fdmlld0RyYWdEYXRhID0gdmlld0RyYWdEYXRhO1xuICAgICAgfSk7XG4gICAgdGhpcy52aWV3RHJhZ0VuZCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3ZpZXdEcmFnRGF0YSA9IG51bGw7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2hlbiBkcmFnZ2luZyBhIHZpZXcgb3ZlciBzcGVjaWZpZWQgdGFiYmFyLlxuICAgKi9cbiAgcHVibGljIHNldFRhYmJhckRyYWdvdmVyKHBhcnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fdGFiYmFyRHJhZ092ZXIkLm5leHQocGFydElkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnNldCB3aGVuIG5vdCBkcmFnZ2luZyBhIHZpZXcgb3ZlciBzcGVjaWZpZWQgdGFiYmFyIGFueW1vcmUuXG4gICAqL1xuICBwdWJsaWMgdW5zZXRUYWJiYXJEcmFnb3ZlcihwYXJ0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90YWJiYXJEcmFnT3ZlciQudmFsdWUgPT09IHBhcnRJZCkge1xuICAgICAgdGhpcy5fdGFiYmFyRHJhZ092ZXIkLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBkcmFnZ2luZyBhIHZpZXcgdGFiIG92ZXIgYSB0YWJiYXIuXG4gICAqXG4gICAqIFJldHVybnMgdGhlIGlkZW50aXR5IG9mIHRoZSBwYXJ0IGlmIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGEgdmlldyBvdmVyIGl0cyB0YWJiYXIsIG9yIGBudWxsYCBpZiBub3QgZHJhZ2dpbmcgb3ZlciBhIHRhYmJhci5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNEcmFnT3ZlclRhYmJhcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiYmFyRHJhZ092ZXIkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gZXZlbnQgaXMgYSB2aWV3IGRyYWcgZXZlbnQgd2l0aCB0aGUgc2FtZSBvcmlnaW4uXG4gICAqL1xuICBwdWJsaWMgaXNWaWV3RHJhZ0V2ZW50KGV2ZW50OiBEcmFnRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKFZJRVdfRFJBR19UUkFOU0ZFUl9UWVBFKSAmJiB0aGlzLnZpZXdEcmFnRGF0YSAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIGZvciBzYW1lLW9yaWdpbiB2aWV3IGRyYWcgZXZlbnRzIG9uIHRoZSBnaXZlbiB0YXJnZXQgZWxlbWVudC5cbiAgICpcbiAgICogVW5saWtlIHdoZW4gaW5zdGFsbGluZyBhIFwibmF0aXZlXCIgZXZlbnQgaGFuZGxlciBmb3IgYGRyYWdlbnRlcmAgYW5kL29yIGBkcmFnbGVhdmVgIGV2ZW50cyxcbiAgICogdGhpcyBvYnNlcnZhYmxlIGRvZXMgbm90IGVtaXQgd2hlbiBkcmFnZ2luZyBvdmVyIGNoaWxkIGVsZW1lbnRzIG9mIHRoZSB0YXJnZXQgZWxlbWVudC5cbiAgICpcbiAgICogRm9sbG93aW5nIGRyYWcgZXZlbnRzIGFyZSBlbWl0dGVkOlxuICAgKiAtIGRyYWdzdGFydDogd2hlbiBzdGFydCBkcmFnZ2luZyBhIHZpZXcgdGFiXG4gICAqIC0gZHJhZ2VuZDogd2hlbiBlbmQgZHJhZ2dpbmcgYSB2aWV3IHRhYlxuICAgKiAtIGRyYWdlbnRlcjogd2hlbiBlbnRlcmluZyB0aGUgdGFyZ2V0IGVsZW1lbnQgd2hpbGUgZHJhZ2dpbmcgYSB2aWV3IHRhYlxuICAgKiAtIGRyYWdvdmVyOiB3aGVuIGRyYWdnaW5nIGEgdmlldyB0YWIgb3ZlciB0aGUgdGFyZ2V0IGVsZW1lbnQsIGV2ZXJ5IGZldyBodW5kcmVkIG1pbGxpc2Vjb25kc1xuICAgKiAtIGRyYWdsZWF2ZTogd2hlbiBsZWF2aW5nIHRoZSB0YXJnZXQgZWxlbWVudCB3aGlsZSBkcmFnZ2luZyBhIHZpZXcgdGFiXG4gICAqIC0gZHJvcDogd2hlbiBkcm9wcGluZyBhIHZpZXcgdGFiIG9uIGEgdmFsaWQgZHJvcCB0YXJnZXRcbiAgICpcbiAgICogQXMgYnkgZGVzaWduIG9mIG5hdGl2ZSBkcmFnIGFuZCBkcm9wLCB0aGUgYGRyYWdsZWF2ZWAgZXZlbnQgaXMgbm90IGZpcmVkIG9uIGRyb3AgYWN0aW9uLlxuICAgKiBUaGVyZWZvcmUsIGFsd2F5cyBoYW5kbGUgYm90aCBldmVudHMsIGBkcmFnbGVhdmVgIGFuZCBgZHJvcGAgZXZlbnRzLCByZXNwZWN0aXZlbHkuXG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBTcGVjaWZpZXMgdGhlIGVsZW1lbnQgb24gd2hpY2ggdG8gc3Vic2NyaWJlIGZvciBkcmFnIGV2ZW50cy5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb250cm9scyBob3cgdG8gc3Vic2NyaWJlIGZvciBkcmFnIGV2ZW50cy5cbiAgICogICAgICAgIEBwcm9wZXJ0eSBldmVudFR5cGUgLSBGaWx0ZXJzIGZvciBzcGVjaWZpZWQgZHJhZyBldmVudHM7IGRlZmF1bHRzIHRvIGFueSBldmVudC5cbiAgICogICAgICAgIEBwcm9wZXJ0eSBjYXB0dXJlIC0gQ29udHJvbHMgd2hldGhlciB0byBzdWJzY3JpYmUgZm9yIGRyYWcgZXZlbnRzIGluIHRoZSBjYXB0dXJpbmcgcGhhc2U7IGRlZmF1bHRzIHRvIGBmYWxzZWAsIGkuZS4sIGBidWJibGluZ2AgcGhhc2UuXG4gICAqL1xuICBwdWJsaWMgdmlld0RyYWckKHRhcmdldDogRWxlbWVudCB8IFdpbmRvdywgb3B0aW9ucz86IFZpZXdEcmFnRXZlbnRMaXN0ZW5lck9wdGlvbnMpOiBPYnNlcnZhYmxlPERyYWdFdmVudD4ge1xuICAgIGNvbnN0IGZpbHRlcmVkRXZlbnRUeXBlcyA9IG5ldyBTZXQ8c3RyaW5nPihBcnJheXMuY29lcmNlKG9wdGlvbnM/LmV2ZW50VHlwZSkpO1xuICAgIGNvbnN0IGlzVmlld0RyYWdFdmVudCA9IHRoaXMuaXNWaWV3RHJhZ0V2ZW50LmJpbmQodGhpcyk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxEcmFnRXZlbnQ+KTogVGVhcmRvd25Mb2dpYyA9PiB7XG4gICAgICBjb25zdCBpbnNpZGVBbmd1bGFyID0gTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpO1xuXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBtZXJnZShcbiAgICAgICAgc2hvdWxkU3Vic2NyaWJlKCdkcmFnc3RhcnQnKSA/IGRyYWdzdGFydCQoKSA6IEVNUFRZLFxuICAgICAgICBzaG91bGRTdWJzY3JpYmUoJ2RyYWdlbmQnKSA/IGRyYWdlbmQkKCkgOiBFTVBUWSxcbiAgICAgICAgc2hvdWxkU3Vic2NyaWJlKCdkcmFnb3ZlcicpID8gZHJhZ292ZXIkKCkgOiBFTVBUWSxcbiAgICAgICAgc2hvdWxkU3Vic2NyaWJlKCdkcmFnZW50ZXInKSB8fCBzaG91bGRTdWJzY3JpYmUoJ2RyYWdsZWF2ZScpIHx8IHNob3VsZFN1YnNjcmliZSgnZHJvcCcpID8gZHJhZ2VudGVyT3JEcmFnbGVhdmVPckRyb3AkKCkgOiBFTVBUWSxcbiAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgICBvYnNlcnZlSW5zaWRlKGZuID0+IGluc2lkZUFuZ3VsYXIgPyB0aGlzLl96b25lLnJ1bihmbikgOiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShvYnNlcnZlcik7XG5cbiAgICAgIHJldHVybiAoKTogdm9pZCA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGRyYWdzdGFydCQoKTogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHtcbiAgICAgIHJldHVybiBmcm9tRXZlbnQ8RHJhZ0V2ZW50Pih0YXJnZXQsICdkcmFnc3RhcnQnLCBvcHRpb25zID8/IHt9KVxuICAgICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gaXNWaWV3RHJhZ0V2ZW50KGV2ZW50KSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRyYWdlbmQkKCk6IE9ic2VydmFibGU8RHJhZ0V2ZW50PiB7XG4gICAgICAvLyBUaGUgYGRyYWdlbmRgIGV2ZW50IGRvZXMgbm90IGNvbnRhaW4gYSBkcmFnIHRyYW5zZmVyIHR5cGUuIFRvIHN0aWxsIGZpbHRlciB2aWV3LXJlbGF0ZWQgYGRyYWdlbmRgIGV2ZW50cyxcbiAgICAgIC8vIHdlIGNvbWJpbmUgYGRyYWdzdGFydGAgYW5kIGBkcmFnZW5kYCBldmVudHMsIGkuZS4sIHdoZW4gYSB2aWV3LXJlbGF0ZWQgYGRyYWdzdGFydGAgZXZlbnQgb2NjdXJzLCB3ZSBleHBlY3RcbiAgICAgIC8vIHRoZSBuZXh0IGBkcmFnZW5kYCBldmVudCB0byBiZSB2aWV3LXJlbGF0ZWQuXG4gICAgICByZXR1cm4gemlwKFxuICAgICAgICBmcm9tRXZlbnQ8RHJhZ0V2ZW50Pih0YXJnZXQsICdkcmFnc3RhcnQnLCBvcHRpb25zID8/IHt9KS5waXBlKGZpbHRlcihldmVudCA9PiBpc1ZpZXdEcmFnRXZlbnQoZXZlbnQpKSksXG4gICAgICAgIGZyb21FdmVudDxEcmFnRXZlbnQ+KHRhcmdldCwgJ2RyYWdlbmQnLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICkucGlwZShtYXAoKFtfLCBkcmFnZW5kRXZlbnRdKSA9PiBkcmFnZW5kRXZlbnQpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkcmFnb3ZlciQoKTogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHtcbiAgICAgIHJldHVybiBmcm9tRXZlbnQ8RHJhZ0V2ZW50Pih0YXJnZXQsICdkcmFnb3ZlcicsIG9wdGlvbnMgPz8ge30pXG4gICAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBpc1ZpZXdEcmFnRXZlbnQoZXZlbnQpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZHJhZ2VudGVyT3JEcmFnbGVhdmVPckRyb3AkKCk6IE9ic2VydmFibGU8RHJhZ0V2ZW50PiB7XG4gICAgICAvLyBXZSBlbWl0IGBkcmFnZW50ZXJgIG9ubHkgd2hlbiBlbnRlcmluZyB0aGUgdGFyZ2V0IGVsZW1lbnQgKG9yIGFueSBjaGlsZCBlbGVtZW50KSBmb3IgdGhlIGZpcnN0IHRpbWVcbiAgICAgIC8vIGFuZCBvbmx5IGFnYWluIGFmdGVyIGVudGVyaW5nIGl0IGFnYWluLiBUaGUgc2FtZSBhcHBsaWVzIGZvciBgZHJhZ2xlYXZlYC5cbiAgICAgIGxldCBkcmFnRW50ZXJDb3VudCA9IDA7XG4gICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudDxEcmFnRXZlbnQ+KHRhcmdldCwgJ2RyYWdlbnRlcicsIG9wdGlvbnMgPz8ge30pLFxuICAgICAgICBmcm9tRXZlbnQ8RHJhZ0V2ZW50Pih0YXJnZXQsICdkcmFnbGVhdmUnLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgZnJvbUV2ZW50PERyYWdFdmVudD4odGFyZ2V0LCAnZHJvcCcsIG9wdGlvbnMgPz8ge30pLFxuICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gaXNWaWV3RHJhZ0V2ZW50KGV2ZW50KSksXG4gICAgICAgICAgZmlsdGVyKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAnZHJhZ2VudGVyJzoge1xuICAgICAgICAgICAgICAgIHJldHVybiAoKytkcmFnRW50ZXJDb3VudCA9PT0gMSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICAgICAgICAgICAgY2FzZSAnZHJvcCc6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKC0tZHJhZ0VudGVyQ291bnQgPT09IDApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHNob3VsZFN1YnNjcmliZShldmVudC50eXBlKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2hvdWxkU3Vic2NyaWJlKGV2ZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWZpbHRlcmVkRXZlbnRUeXBlcy5zaXplIHx8IGZpbHRlcmVkRXZlbnRUeXBlcy5oYXMoZXZlbnRUeXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyB0aGUgZ2l2ZW4gdmlldyBtb3ZlIGV2ZW50IHRvIGFwcCBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIGRpc3BhdGNoVmlld01vdmVFdmVudChldmVudDogVmlld01vdmVFdmVudCk6IHZvaWQge1xuICAgIC8vIFdhaXQgdG8gZGlzcGF0Y2ggdGhlIGV2ZW50IHVudGlsIHRoZSBkcmFnIG9wZXJhdGlvbiBmaW5pc2hlZCwgaWYgYW55LCBiZWNhdXNlIGlmIHRoZSBkcmFnIHNvdXJjZSBlbGVtZW50XG4gICAgLy8gaXMgZGVzdHJveWVkIGR1cmluZyB0aGUgZHJhZyBvcGVyYXRpb24sIGUuZy4gaWYgbW92ZWQgdG8gYW5vdGhlciBwYXJ0LCB0aGUgZHJhZyBvcGVyYXRpb24gd291bGQgbm90XG4gICAgLy8gb3JkaW5hcmlseSBjb21wbGV0ZSwgbWVhbmluZyAnZHJhZ2VuZCcgb3IgJ2RyYWdsZWF2ZScgd291bGQgbm90IGJlIGNhbGxlZC5cbiAgICBjb25zdCBpc0RyYWdnaW5nID0gdGhpcy52aWV3RHJhZ0RhdGEgIT09IG51bGw7XG4gICAgKGlzRHJhZ2dpbmcgPyB0aGlzLnZpZXdEcmFnRW5kJCA6IG9mKHVuZGVmaW5lZCkpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl92aWV3TW92ZUJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoZXZlbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGUgZ2l2ZW4gdmlldyBkcmFnIGRhdGEgYXZhaWxhYmxlIHRvIGFwcCBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgb3JpZ2luLlxuICAgKlxuICAgKiBJbnZva2UgdGhpcyBtZXRob2QgaW5zaWRlICdkcmFnc3RhcnQnIGV2ZW50IGhhbmRsZXIgb2YgdGhlIGVsZW1lbnQgd2hlcmUgdGhlIGRyYWcgb3BlcmF0aW9uIHN0YXJ0ZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0Vmlld0RyYWdEYXRhKHZpZXdEcmFnRGF0YTogVmlld0RyYWdEYXRhKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdTdGFydEJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2Uodmlld0RyYWdEYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSB2aWV3IGRyYWcgZGF0YS5cbiAgICpcbiAgICogSW52b2tlIHRoaXMgbWV0aG9kIGluc2lkZSAnZHJhZ2VuZCcgZXZlbnQgaGFuZGxlciBvZiB0aGUgZWxlbWVudCB3aGVyZSB0aGUgZHJhZyBvcGVyYXRpb24gc3RhcnRlZC5cbiAgICovXG4gIHB1YmxpYyB1bnNldFZpZXdEcmFnRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3RHJhZ0VuZEJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2aWV3IGRyYWcgZGF0YSBvZiB0aGUgb25nb2luZyB2aWV3IGRyYWcgb3BlcmF0aW9uIG9yIGBudWxsYCBpZiBubyBkcmFnIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmlld0RyYWdEYXRhKCk6IFZpZXdEcmFnRGF0YSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92aWV3RHJhZ0RhdGE7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld01vdmVCcm9hZGNhc3RDaGFubmVsLmRlc3Ryb3koKTtcbiAgICB0aGlzLl92aWV3RHJhZ1N0YXJ0QnJvYWRjYXN0Q2hhbm5lbC5kZXN0cm95KCk7XG4gICAgdGhpcy5fdmlld0RyYWdFbmRCcm9hZGNhc3RDaGFubmVsLmRlc3Ryb3koKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZGF0YSBvZiBhIHZpZXcgZHJhZyBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlld0RyYWdEYXRhIHtcbiAgLyoqXG4gICAqIFgtY29vcmRpbmF0ZSBvZiB0aGUgbW91c2UgcG9pbnRlciwgcmVsYXRpdmUgdG8gdGhlIHZpZXcgdGFiIGRyYWcgaW1hZ2UuXG4gICAqL1xuICB2aWV3VGFiUG9pbnRlck9mZnNldFg6IG51bWJlcjtcbiAgLyoqXG4gICAqIFktY29vcmRpbmF0ZSBvZiB0aGUgbW91c2UgcG9pbnRlciwgcmVsYXRpdmUgdG8gdGhlIHZpZXcgdGFiIGRyYWcgaW1hZ2UuXG4gICAqL1xuICB2aWV3VGFiUG9pbnRlck9mZnNldFk6IG51bWJlcjtcbiAgdmlld0lkOiBzdHJpbmc7XG4gIHZpZXdUaXRsZTogc3RyaW5nO1xuICB2aWV3VXJsU2VnbWVudHM6IFVybFNlZ21lbnRbXTtcbiAgdmlld0hlYWRpbmc6IHN0cmluZztcbiAgdmlld0Nsb3NhYmxlOiBib29sZWFuO1xuICB2aWV3RGlydHk6IGJvb2xlYW47XG4gIHBhcnRJZDogc3RyaW5nO1xuICB2aWV3VGFiV2lkdGg6IG51bWJlcjtcbiAgdmlld1RhYkhlaWdodDogbnVtYmVyO1xuICB3b3JrYmVuY2hJZDogc3RyaW5nO1xuICBjbGFzc0xpc3Q/OiBDbGFzc0xpc3RNYXA7XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIG1vdmluZyBhIHZpZXcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlld01vdmVFdmVudCB7XG4gIHNvdXJjZTogVmlld01vdmVFdmVudFNvdXJjZTtcbiAgdGFyZ2V0OiBWaWV3TW92ZUV2ZW50VGFyZ2V0O1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHZpZXcgdG8gYmUgbW92ZWQgdG8gYW5vdGhlciBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaWV3TW92ZUV2ZW50U291cmNlIHtcbiAgdmlld0lkOiBzdHJpbmc7XG4gIHBhcnRJZDogc3RyaW5nO1xuICB2aWV3VXJsU2VnbWVudHM6IFVybFNlZ21lbnRbXTtcbiAgd29ya2JlbmNoSWQ6IHN0cmluZztcbiAgY2xhc3NMaXN0PzogQ2xhc3NMaXN0TWFwO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgdGFyZ2V0IGxvY2F0aW9uIGZvciBtb3ZpbmcgYSB2aWV3LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdNb3ZlRXZlbnRUYXJnZXQge1xuICAvKipcbiAgICogUGFydCAob3Igbm9kZSkgd2hlcmUgKG9yIHJlbGF0aXZlIHRvIHdoaWNoKSB0byBhZGQgdGhlIHZpZXcuXG4gICAqXG4gICAqIFJ1bGVzIGZvciBkaWZmZXJlbnQgcmVnaW9uczpcbiAgICogLSBJZiBub3Qgc3BlY2lmeWluZyBhIHJlZ2lvbiwge0BsaW5rIGVsZW1lbnRJZH0gaXMgbWFuZGF0b3J5IGFuZCBtdXN0IHJlZmVyZW5jZSBhIHBhcnQuXG4gICAqIC0gRm9yIHJlZ2lvbnMgYG5vcnRoYCwgYHNvdXRoYCwgYGVhc3RgLCBvciBgd2VzdGAsIHtAbGluayBlbGVtZW50SWR9IGNhbiByZWZlcmVuY2UgYSBwYXJ0IG9yIG5vZGUsXG4gICAqICAgcmVsYXRpdmUgdG8gd2hpY2ggdG8gYWxpZ24gdGhlIHZpZXcuIElmIG5vdCBzZXQsIHRoZSB2aWV3IGlzIGFsaWduZWQgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2ZcbiAgICogICB0aGUgZW50aXJlIGxheW91dC5cbiAgICpcbiAgICogTm90ZTogUHJvcGVydHkgaXMgaWdub3JlZCB3aGVuIG1vdmluZyB0aGUgdmlldyB0byBhIG5ldyB3aW5kb3cuXG4gICAqL1xuICBlbGVtZW50SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZWdpb24gb2Yge0BsaW5rIGVsZW1lbnRJZH0gd2hlcmUgdG8gYWRkIHRoZSB2aWV3IChpbiBhIG5ldyBwYXJ0KS5cbiAgICpcbiAgICogSWYgbm90IHNwZWNpZmllZCwge0BsaW5rIGVsZW1lbnRJZH0gbXVzdCByZWZlcmVuY2UgYSBwYXJ0IHRvIHdoaWNoIHRvIGFkZCB0aGUgdmlldy5cbiAgICpcbiAgICogTm90ZTpcbiAgICogLSBQcm9wZXJ0eSBpcyBpZ25vcmVkIHdoZW4gbW92aW5nIHRoZSB2aWV3IHRvIGEgbmV3IHdpbmRvdy5cbiAgICogLSBQcm9wZXJ0eSBpcyByZXF1aXJlZCBpZiB7QGxpbmsgZWxlbWVudElkfSBpcyBhIG5vZGUuXG4gICAqL1xuICByZWdpb24/OiAnbm9ydGgnIHwgJ2Vhc3QnIHwgJ3NvdXRoJyB8ICd3ZXN0JztcbiAgLyoqXG4gICAqIFBvc2l0aW9uIHdoZXJlIHRvIGluc2VydCB0aGUgdmlldy4gVGhlIHBvc2l0aW9uIGlzIHplcm8tYmFzZWQuIElmIG5vdCBzZXQsIGFkZHMgdGhlIHZpZXcgYWZ0ZXIgdGhlIGFjdGl2ZSB2aWV3LlxuICAgKi9cbiAgcG9zaXRpb24/OiBudW1iZXIgfCAnc3RhcnQnIHwgJ2VuZCc7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIG9mIHRoZSB0YXJnZXQgd29ya2JlbmNoLCBvciAnbmV3LXdpbmRvdycgdG8gbW92ZSB0aGUgdmlldyB0byBhIG5ldyBicm93c2VyIHdpbmRvdy5cbiAgICovXG4gIHdvcmtiZW5jaElkOiBzdHJpbmcgfCAnbmV3LXdpbmRvdyc7XG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIHBhcnQgdG8gYmUgY3JlYXRlZCBpZiB0aGUgcmVnaW9uIGlzICdub3J0aCcsICdlYXN0JywgJ3NvdXRoJywgb3IgJ3dlc3QnLlxuICAgKi9cbiAgbmV3UGFydD86IHtcbiAgICAvKipcbiAgICAgKiBJZGVudGl0eSBvZiB0aGUgbmV3IHBhcnQuIElmIG5vdCBzZXQsIGFzc2lnbnMgYSBVVUlELlxuICAgICAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFByb3BvcnRpb25hbCBzaXplIG9mIHRoZSBwYXJ0IHJlbGF0aXZlIHRvIHRoZSByZWZlcmVuY2UgcGFydC5cbiAgICAgKiBUaGUgcmF0aW8gaXMgdGhlIGNsb3NlZCBpbnRlcnZhbCBbMCwxXS4gSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYDAuNWAuXG4gICAgICovXG4gICAgcmF0aW8/OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld0RyYWdFdmVudExpc3RlbmVyT3B0aW9ucyBleHRlbmRzIEV2ZW50TGlzdGVuZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFsbG93cyBmaWx0ZXJpbmcgZm9yIGdpdmVuIGRyYWcgZXZlbnQgdHlwZXMuXG4gICAqL1xuICBldmVudFR5cGU/OiBWaWV3RHJhZ0V2ZW50VHlwZSB8IFZpZXdEcmFnRXZlbnRUeXBlW107XG59XG4iXX0=
|