@scion/workbench 18.0.0-beta.7 → 18.0.0-beta.8
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/animation-frame.observable.mjs +37 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +85 -28
- package/esm2022/lib/content-projection/workbench-element-references.mjs +32 -0
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +4 -4
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +31 -38
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -2
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +13 -16
- package/esm2022/lib/layout/workbench-layout.component.mjs +14 -18
- package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -9
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +2 -2
- package/esm2022/lib/layout//311/265workbench-layout.mjs +9 -3
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +5 -4
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +3 -2
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +42 -48
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +3 -3
- package/esm2022/lib/notification/notification.service.mjs +5 -4
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +5 -7
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +49 -45
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +4 -4
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +4 -4
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +3 -4
- package/esm2022/lib/part//311/265workbench-part.model.mjs +4 -4
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +2 -2
- package/esm2022/lib/popup/popup.config.mjs +3 -2
- package/esm2022/lib/popup/popup.service.mjs +136 -137
- package/esm2022/lib/portal/wb-component-portal.mjs +13 -16
- package/esm2022/lib/routing/routing.util.mjs +9 -4
- package/esm2022/lib/routing/workbench-route-guards.mjs +7 -7
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +4 -2
- package/esm2022/lib/startup/workbench-launcher.service.mjs +3 -2
- package/esm2022/lib/view//311/265workbench-view.model.mjs +10 -6
- package/esm2022/lib/view-dnd/view-drag.service.mjs +8 -4
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +6 -6
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +5 -5
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +3 -3
- package/esm2022/lib/workbench-config.mjs +1 -1
- package/esm2022/lib/workbench.component.mjs +51 -58
- package/esm2022/lib//311/265workbench.service.mjs +9 -2
- package/fesm2022/scion-workbench.mjs +1227 -1285
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/animation-frame.observable.d.ts +10 -0
- package/lib/content-projection/content-as-overlay.component.d.ts +39 -22
- package/lib/content-projection/workbench-element-references.d.ts +13 -0
- package/lib/dialog//311/265workbench-dialog.d.ts +2 -7
- package/lib/layout/main-area-layout/main-area-layout.component.d.ts +0 -4
- package/lib/layout/workbench-layout.component.d.ts +4 -5
- package/lib/layout/workbench-layouts.util.d.ts +0 -6
- package/lib/layout/workench-layout-serializer.service.d.ts +1 -1
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +16 -29
- package/lib/page-not-found/page-not-found.component.d.ts +1 -0
- package/lib/part/part-bar/part-bar.component.d.ts +6 -10
- package/lib/part//311/265workbench-part.model.d.ts +1 -2
- package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
- package/lib/popup/popup.service.d.ts +2 -13
- package/lib/portal/wb-component-portal.d.ts +3 -5
- package/lib/routing/routing.util.d.ts +4 -0
- package/lib/view//311/265workbench-view.model.d.ts +2 -2
- package/lib/view-dnd/view-drag.service.d.ts +4 -0
- package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +1 -1
- package/lib/workbench-config.d.ts +2 -2
- package/lib/workbench.component.d.ts +14 -32
- package/package.json +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +0 -100
- package/esm2022/lib/content-projection/view-container.reference.mjs +0 -68
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +0 -26
- package/lib/content-projection/content-projection.directive.d.ts +0 -30
- package/lib/content-projection/view-container.reference.d.ts +0 -42
- package/lib/page-not-found/format-url.pipe.d.ts +0 -11
|
@@ -0,0 +1,37 @@
|
|
|
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 { Observable, Subject } from 'rxjs';
|
|
11
|
+
import { inject, NgZone } from '@angular/core';
|
|
12
|
+
import { startWith } from 'rxjs/operators';
|
|
13
|
+
import { observeIn } from '@scion/toolkit/operators';
|
|
14
|
+
/**
|
|
15
|
+
* Creates an observable that emits on every animation frame.
|
|
16
|
+
*
|
|
17
|
+
* Unlike {@link `interval(0, animationFrameScheduler)`}, the observable always emits outside the Angular zone.
|
|
18
|
+
*
|
|
19
|
+
* The RxJS `animationFrameScheduler` does not necessarily execute in the current execution context, such as inside or outside Angular.
|
|
20
|
+
* The scheduler always executes tasks in the zone where the scheduler was first used in the application.
|
|
21
|
+
*/
|
|
22
|
+
export function onEveryAnimationFrame$() {
|
|
23
|
+
const zone = inject(NgZone);
|
|
24
|
+
return new Observable(observer => {
|
|
25
|
+
const animationFrame$ = new Subject();
|
|
26
|
+
const subscription = animationFrame$
|
|
27
|
+
.pipe(startWith(undefined), observeIn(fn => zone.runOutsideAngular(fn)))
|
|
28
|
+
.subscribe(() => {
|
|
29
|
+
requestAnimationFrame(() => {
|
|
30
|
+
observer.next();
|
|
31
|
+
animationFrame$.next();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
return () => subscription.unsubscribe();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWZyYW1lLm9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9jb21tb24vYW5pbWF0aW9uLWZyYW1lLm9ic2VydmFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRW5EOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixPQUFPLElBQUksVUFBVSxDQUFPLFFBQVEsQ0FBQyxFQUFFO1FBQ3JDLE1BQU0sZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDNUMsTUFBTSxZQUFZLEdBQUcsZUFBZTthQUNqQyxJQUFJLENBQ0gsU0FBUyxDQUFDLFNBQWlCLENBQUMsRUFDNUIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzVDO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDekIsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVMLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7aW5qZWN0LCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7b2JzZXJ2ZUlufSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG9uIGV2ZXJ5IGFuaW1hdGlvbiBmcmFtZS5cbiAqXG4gKiBVbmxpa2Uge0BsaW5rIGBpbnRlcnZhbCgwLCBhbmltYXRpb25GcmFtZVNjaGVkdWxlcilgfSwgdGhlIG9ic2VydmFibGUgYWx3YXlzIGVtaXRzIG91dHNpZGUgdGhlIEFuZ3VsYXIgem9uZS5cbiAqXG4gKiBUaGUgUnhKUyBgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXJgIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGV4ZWN1dGUgaW4gdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGNvbnRleHQsIHN1Y2ggYXMgaW5zaWRlIG9yIG91dHNpZGUgQW5ndWxhci5cbiAqIFRoZSBzY2hlZHVsZXIgYWx3YXlzIGV4ZWN1dGVzIHRhc2tzIGluIHRoZSB6b25lIHdoZXJlIHRoZSBzY2hlZHVsZXIgd2FzIGZpcnN0IHVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25FdmVyeUFuaW1hdGlvbkZyYW1lJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgY29uc3Qgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbkZyYW1lJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gYW5pbWF0aW9uRnJhbWUkXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCBhcyB2b2lkKSxcbiAgICAgICAgb2JzZXJ2ZUluKGZuID0+IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgICBhbmltYXRpb25GcmFtZSQubmV4dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2024 Swiss Federal Railways
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made
|
|
5
5
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -7,51 +7,108 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import { Component,
|
|
11
|
-
import {
|
|
10
|
+
import { Component, computed, effect, ElementRef, inject, input, signal, TemplateRef, untracked, viewChild } from '@angular/core';
|
|
11
|
+
import { setStyle } from '../common/dom.util';
|
|
12
|
+
import { boundingClientRect } from '@scion/components/dimension';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
+
* Projects `ng-content` to a top-level DOM element and aligns it with this component's bounding box.
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
* For
|
|
17
|
+
* When this component is moved in the DOM, projected content is not moved in the DOM; only its position and size are changed.
|
|
18
|
+
* For example, an iframe would reload when moved in the DOM.
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* The <ng-content> is added to a CSS grid container with a single column, thus, content fills remaining space vertically and horizontally.
|
|
22
|
-
* To style elements of `ng-content`, do not combine CSS selectors with the `:host` CSS pseudo-class because, in the DOM, they are not children
|
|
23
|
-
* of the host component.
|
|
24
|
-
*
|
|
25
|
-
* #### Example HTML template:
|
|
20
|
+
* Style `ng-content` outside the `:host` CSS pseudo-class as not a direct child of this component.
|
|
26
21
|
*
|
|
22
|
+
* ---
|
|
23
|
+
* Usage:
|
|
27
24
|
* ```html
|
|
28
|
-
* <wb-content-as-overlay
|
|
25
|
+
* <wb-content-as-overlay [config]="...">
|
|
29
26
|
* <iframe [src]="..."></iframe>
|
|
30
27
|
* </wb-content-as-overlay>
|
|
31
28
|
* ```
|
|
32
29
|
*
|
|
33
|
-
*
|
|
34
|
-
* #### Example SCSS styles:
|
|
35
|
-
*
|
|
36
30
|
* ```scss
|
|
37
|
-
* :host {
|
|
38
|
-
* display: grid; // fills remaining space vertically and horizontall
|
|
39
|
-
* }
|
|
40
|
-
*
|
|
41
31
|
* iframe {
|
|
42
32
|
* background-color: gray;
|
|
43
33
|
* }
|
|
44
34
|
* ```
|
|
45
35
|
*/
|
|
46
36
|
export class ContentAsOverlayComponent {
|
|
37
|
+
constructor() {
|
|
38
|
+
/**
|
|
39
|
+
* Configures content projection of `ng-content`.
|
|
40
|
+
*
|
|
41
|
+
* A config input is used instead of separate input properties to support updating the config if detached from the Angular change detector.
|
|
42
|
+
*/
|
|
43
|
+
this.config = input.required();
|
|
44
|
+
this._template = viewChild.required(TemplateRef);
|
|
45
|
+
this._visible = computed(() => this.config().visible());
|
|
46
|
+
this._location = computed(() => this.config().location());
|
|
47
|
+
this._overlay = signal(undefined);
|
|
48
|
+
this.createOverlay();
|
|
49
|
+
this.alignOverlayToHostBounds();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Creates the overlay for rendering projected content.
|
|
53
|
+
*/
|
|
54
|
+
createOverlay() {
|
|
55
|
+
effect(onCleanup => {
|
|
56
|
+
const location = this._location();
|
|
57
|
+
if (!location) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const template = this._template();
|
|
61
|
+
untracked(() => {
|
|
62
|
+
// Create an embedded view from the content template.
|
|
63
|
+
const overlayViewRef = location.createEmbeddedView(template, null);
|
|
64
|
+
overlayViewRef.detectChanges();
|
|
65
|
+
if (overlayViewRef.rootNodes.length !== 1) {
|
|
66
|
+
throw Error(`[ContentAsOverlayError] Expected single root node for content projection, but received ${overlayViewRef.rootNodes.length} root nodes.`);
|
|
67
|
+
}
|
|
68
|
+
const [overlayElement] = overlayViewRef.rootNodes;
|
|
69
|
+
// Position projected content out of the document flow relative to the page viewport.
|
|
70
|
+
setStyle(overlayElement, { position: 'fixed' });
|
|
71
|
+
this._overlay.set(overlayElement);
|
|
72
|
+
// Destroy overlay when the location or template changes.
|
|
73
|
+
onCleanup(() => untracked(() => {
|
|
74
|
+
overlayViewRef.destroy();
|
|
75
|
+
this._overlay.set(undefined);
|
|
76
|
+
}));
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Aligns the overlay to the bounding box of this component.
|
|
82
|
+
*/
|
|
83
|
+
alignOverlayToHostBounds() {
|
|
84
|
+
const hostBounds = boundingClientRect(inject((ElementRef)));
|
|
85
|
+
effect(() => {
|
|
86
|
+
const overlay = this._overlay();
|
|
87
|
+
if (!overlay) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
// Maintain position and size when hidden to prevent flickering when visible again and to support for virtual scrolling in projected content.
|
|
91
|
+
const visible = this._visible();
|
|
92
|
+
if (!visible) {
|
|
93
|
+
setStyle(overlay, { visibility: 'hidden' }); // Hide via `visibility` instead of `display` property to retain the size.
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// IMPORTANT: Track host bounds only if visible to prevent flickering.
|
|
97
|
+
const { top, left, width, height } = hostBounds();
|
|
98
|
+
setStyle(overlay, {
|
|
99
|
+
top: `${top}px`,
|
|
100
|
+
left: `${left}px`,
|
|
101
|
+
width: `${width}px`,
|
|
102
|
+
height: `${height}px`,
|
|
103
|
+
visibility: null,
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
47
107
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ContentAsOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.2", type: ContentAsOverlayComponent, isStandalone: true, selector: "wb-content-as-overlay", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template>\n <ng-content/>\n</ng-template>\n" }); }
|
|
49
109
|
}
|
|
50
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ContentAsOverlayComponent, decorators: [{
|
|
51
111
|
type: Component,
|
|
52
|
-
args: [{ selector: 'wb-content-as-overlay', standalone: true,
|
|
53
|
-
}],
|
|
54
|
-
|
|
55
|
-
args: [{ required: true }]
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hcy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbnRlbnQtcHJvamVjdGlvbi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29udGVudC1wcm9qZWN0aW9uL2NvbnRlbnQtYXMtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBUUgsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCO2tHQUF6Qix5QkFBeUIseUhDckR0QywyVkFVQSwrRUR5Q1ksMEJBQTBCOzsyRkFFekIseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQywwQkFBMEIsQ0FBQzs4QkFROUIsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRlbnRQcm9qZWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL2NvbnRlbnQtcHJvamVjdGlvbi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFN0cnVjdHVyYWwgY29tcG9uZW50IHdoaWNoIGFkZHMgaXRzIGBuZy1jb250ZW50YCB0byBhIHRvcC1sZXZlbCB3b3JrYmVuY2ggRE9NIGVsZW1lbnQgYW5kIHByb2plY3RzIGl0IGludG8gdGhpcyBjb21wb25lbnQncyBib3VuZGluZyBib3guXG4gKlxuICogVGhpcyBjb21wb25lbnQgZW5zdXJlcyB0aGF0IGl0cyBjb250ZW50IGNoaWxkcmVuIGFyZSBub3QgcmVwYXJlbnRlZCBpbiB0aGUgRE9NIHdoZW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQgaXMgY2hhbmdlZC5cbiAqIEZvciBpbnN0YW5jZSwgYW4gaWZyYW1lIHdvdWxkIHJlbG9hZCB3aGVuIGl0IGlzIHJlcGFyZW50ZWQgaW4gdGhlIERPTS5cbiAqXG4gKiBVc2UgdGhpcyBjb21wb25lbnQgdG8gd3JhcCB0aGUgZW50aXJlIGNvbnRlbnQgb2YgeW91ciBjb21wb25lbnQsIHNvIGA8d2ItY29udGVudC1hcy1vdmVybGF5PmAgaXMgdGhlIG9ubHkgcm9vdCB2aWV3IGNoaWxkIG9mIHlvdXIgY29tcG9uZW50LlxuICpcbiAqIFRoZSA8bmctY29udGVudD4gaXMgYWRkZWQgdG8gYSBDU1MgZ3JpZCBjb250YWluZXIgd2l0aCBhIHNpbmdsZSBjb2x1bW4sIHRodXMsIGNvbnRlbnQgZmlsbHMgcmVtYWluaW5nIHNwYWNlIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseS5cbiAqIFRvIHN0eWxlIGVsZW1lbnRzIG9mIGBuZy1jb250ZW50YCwgZG8gbm90IGNvbWJpbmUgQ1NTIHNlbGVjdG9ycyB3aXRoIHRoZSBgOmhvc3RgIENTUyBwc2V1ZG8tY2xhc3MgYmVjYXVzZSwgaW4gdGhlIERPTSwgdGhleSBhcmUgbm90IGNoaWxkcmVuXG4gKiBvZiB0aGUgaG9zdCBjb21wb25lbnQuXG4gKlxuICogIyMjIyBFeGFtcGxlIEhUTUwgdGVtcGxhdGU6XG4gKlxuICogYGBgaHRtbFxuICogPHdiLWNvbnRlbnQtYXMtb3ZlcmxheSBvdmVybGF5SG9zdD1cIi4uLlwiPlxuICogICA8aWZyYW1lIFtzcmNdPVwiLi4uXCI+PC9pZnJhbWU+XG4gKiA8L3diLWNvbnRlbnQtYXMtb3ZlcmxheT5cbiAqIGBgYFxuICpcbiAqXG4gKiAjIyMjIEV4YW1wbGUgU0NTUyBzdHlsZXM6XG4gKlxuICogYGBgc2Nzc1xuICogOmhvc3Qge1xuICogICBkaXNwbGF5OiBncmlkOyAvLyBmaWxscyByZW1haW5pbmcgc3BhY2UgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGxcbiAqIH1cbiAqXG4gKiBpZnJhbWUge1xuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLWNvbnRlbnQtYXMtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbnRlbnRQcm9qZWN0aW9uRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudEFzT3ZlcmxheUNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdmlldyBjb250YWluZXIgd2hlcmUgdG8gaW5zZXJ0IHRoZSBvdmVybGF5LlxuICAgKi9cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBvdmVybGF5SG9zdDogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCB8IG51bGw7XG59XG4iLCI8IS0tIGRlZmluZSB0aGUgYXJlYSB3aGVyZSB0byBwcm9qZWN0IGBuZy1jb250ZW50YCBpbnRvIC0tPlxuPGRpdiB3YkNvbnRlbnRQcm9qZWN0aW9uXG4gICAgIFt3YkNvbnRlbnRQcm9qZWN0aW9uQ29udGVudF09XCJuZ19jb250ZW50X3RlbXBsYXRlXCJcbiAgICAgW3diQ29udGVudFByb2plY3Rpb25PdmVybGF5SG9zdF09XCJvdmVybGF5SG9zdFwiPlxuPC9kaXY+XG5cbjwhLS0gbWFrZSBgbmctY29udGVudGAgYXZhaWxhYmxlIGluIHRoZSBmb3JtIG9mIGEgdGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI25nX2NvbnRlbnRfdGVtcGxhdGU+XG4gIDxuZy1jb250ZW50Lz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
112
|
+
args: [{ selector: 'wb-content-as-overlay', standalone: true, template: "<ng-template>\n <ng-content/>\n</ng-template>\n" }]
|
|
113
|
+
}], ctorParameters: () => [] });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hcy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbnRlbnQtcHJvamVjdGlvbi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29udGVudC1wcm9qZWN0aW9uL2NvbnRlbnQtYXMtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFjcEM7UUFaQTs7OztXQUlHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7UUFFeEMsY0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELGFBQVEs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SSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgU2lnbmFsLCBUZW1wbGF0ZVJlZiwgdW50cmFja2VkLCB2aWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZXRTdHlsZX0gZnJvbSAnLi4vY29tbW9uL2RvbS51dGlsJztcbmltcG9ydCB7Ym91bmRpbmdDbGllbnRSZWN0fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24nO1xuXG4vKipcbiAqIFByb2plY3RzIGBuZy1jb250ZW50YCB0byBhIHRvcC1sZXZlbCBET00gZWxlbWVudCBhbmQgYWxpZ25zIGl0IHdpdGggdGhpcyBjb21wb25lbnQncyBib3VuZGluZyBib3guXG4gKlxuICogV2hlbiB0aGlzIGNvbXBvbmVudCBpcyBtb3ZlZCBpbiB0aGUgRE9NLCBwcm9qZWN0ZWQgY29udGVudCBpcyBub3QgbW92ZWQgaW4gdGhlIERPTTsgb25seSBpdHMgcG9zaXRpb24gYW5kIHNpemUgYXJlIGNoYW5nZWQuXG4gKiBGb3IgZXhhbXBsZSwgYW4gaWZyYW1lIHdvdWxkIHJlbG9hZCB3aGVuIG1vdmVkIGluIHRoZSBET00uXG4gKlxuICogU3R5bGUgYG5nLWNvbnRlbnRgIG91dHNpZGUgdGhlIGA6aG9zdGAgQ1NTIHBzZXVkby1jbGFzcyBhcyBub3QgYSBkaXJlY3QgY2hpbGQgb2YgdGhpcyBjb21wb25lbnQuXG4gKlxuICogLS0tXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDx3Yi1jb250ZW50LWFzLW92ZXJsYXkgW2NvbmZpZ109XCIuLi5cIj5cbiAqICAgPGlmcmFtZSBbc3JjXT1cIi4uLlwiPjwvaWZyYW1lPlxuICogPC93Yi1jb250ZW50LWFzLW92ZXJsYXk+XG4gKiBgYGBcbiAqXG4gKiBgYGBzY3NzXG4gKiBpZnJhbWUge1xuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLWNvbnRlbnQtYXMtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50QXNPdmVybGF5Q29tcG9uZW50IHtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyBjb250ZW50IHByb2plY3Rpb24gb2YgYG5nLWNvbnRlbnRgLlxuICAgKlxuICAgKiBBIGNvbmZpZyBpbnB1dCBpcyB1c2VkIGluc3RlYWQgb2Ygc2VwYXJhdGUgaW5wdXQgcHJvcGVydGllcyB0byBzdXBwb3J0IHVwZGF0aW5nIHRoZSBjb25maWcgaWYgZGV0YWNoZWQgZnJvbSB0aGUgQW5ndWxhciBjaGFuZ2UgZGV0ZWN0b3IuXG4gICAqL1xuICBwdWJsaWMgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8Q29udGVudEFzT3ZlcmxheUNvbmZpZz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZSA9IHZpZXdDaGlsZC5yZXF1aXJlZChUZW1wbGF0ZVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Zpc2libGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLnZpc2libGUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvY2F0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5sb2NhdGlvbigpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheSA9IHNpZ25hbDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLmFsaWduT3ZlcmxheVRvSG9zdEJvdW5kcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIG92ZXJsYXkgZm9yIHJlbmRlcmluZyBwcm9qZWN0ZWQgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICBlZmZlY3Qob25DbGVhbnVwID0+IHtcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5fbG9jYXRpb24oKTtcbiAgICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMuX3RlbXBsYXRlKCk7XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIC8vIENyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20gdGhlIGNvbnRlbnQgdGVtcGxhdGUuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlWaWV3UmVmID0gbG9jYXRpb24uY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCBudWxsKTtcbiAgICAgICAgb3ZlcmxheVZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAob3ZlcmxheVZpZXdSZWYucm9vdE5vZGVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IEVycm9yKGBbQ29udGVudEFzT3ZlcmxheUVycm9yXSBFeHBlY3RlZCBzaW5nbGUgcm9vdCBub2RlIGZvciBjb250ZW50IHByb2plY3Rpb24sIGJ1dCByZWNlaXZlZCAke292ZXJsYXlWaWV3UmVmLnJvb3ROb2Rlcy5sZW5ndGh9IHJvb3Qgbm9kZXMuYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW292ZXJsYXlFbGVtZW50XSA9IG92ZXJsYXlWaWV3UmVmLnJvb3ROb2RlcztcblxuICAgICAgICAvLyBQb3NpdGlvbiBwcm9qZWN0ZWQgY29udGVudCBvdXQgb2YgdGhlIGRvY3VtZW50IGZsb3cgcmVsYXRpdmUgdG8gdGhlIHBhZ2Ugdmlld3BvcnQuXG4gICAgICAgIHNldFN0eWxlKG92ZXJsYXlFbGVtZW50LCB7cG9zaXRpb246ICdmaXhlZCd9KTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5LnNldChvdmVybGF5RWxlbWVudCk7XG5cbiAgICAgICAgLy8gRGVzdHJveSBvdmVybGF5IHdoZW4gdGhlIGxvY2F0aW9uIG9yIHRlbXBsYXRlIGNoYW5nZXMuXG4gICAgICAgIG9uQ2xlYW51cCgoKSA9PiB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIG92ZXJsYXlWaWV3UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLl9vdmVybGF5LnNldCh1bmRlZmluZWQpO1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhlIG92ZXJsYXkgdG8gdGhlIGJvdW5kaW5nIGJveCBvZiB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgYWxpZ25PdmVybGF5VG9Ib3N0Qm91bmRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3RCb3VuZHMgPSBib3VuZGluZ0NsaWVudFJlY3QoaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuX292ZXJsYXkoKTtcbiAgICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIE1haW50YWluIHBvc2l0aW9uIGFuZCBzaXplIHdoZW4gaGlkZGVuIHRvIHByZXZlbnQgZmxpY2tlcmluZyB3aGVuIHZpc2libGUgYWdhaW4gYW5kIHRvIHN1cHBvcnQgZm9yIHZpcnR1YWwgc2Nyb2xsaW5nIGluIHByb2plY3RlZCBjb250ZW50LlxuICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuX3Zpc2libGUoKTtcbiAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICBzZXRTdHlsZShvdmVybGF5LCB7dmlzaWJpbGl0eTogJ2hpZGRlbid9KTsgLy8gSGlkZSB2aWEgYHZpc2liaWxpdHlgIGluc3RlYWQgb2YgYGRpc3BsYXlgIHByb3BlcnR5IHRvIHJldGFpbiB0aGUgc2l6ZS5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBJTVBPUlRBTlQ6IFRyYWNrIGhvc3QgYm91bmRzIG9ubHkgaWYgdmlzaWJsZSB0byBwcmV2ZW50IGZsaWNrZXJpbmcuXG4gICAgICBjb25zdCB7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSA9IGhvc3RCb3VuZHMoKTtcbiAgICAgIHNldFN0eWxlKG92ZXJsYXksIHtcbiAgICAgICAgdG9wOiBgJHt0b3B9cHhgLFxuICAgICAgICBsZWZ0OiBgJHtsZWZ0fXB4YCxcbiAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgICAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmVzIGNvbnRlbnQgcHJvamVjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250ZW50QXNPdmVybGF5Q29uZmlnIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbG9jYXRpb24gd2hlcmUgdG8gYXR0YWNoIHByb2plY3RlZCBjb250ZW50IGluIHRoZSBET00uXG4gICAqL1xuICBsb2NhdGlvbjogU2lnbmFsPFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHByb2plY3RlZCBjb250ZW50LlxuICAgKi9cbiAgdmlzaWJsZTogU2lnbmFsPGJvb2xlYW4+O1xufVxuIiwiPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
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 { InjectionToken, signal } from '@angular/core';
|
|
11
|
+
/**
|
|
12
|
+
* DI token to inject the DOM location where to attach iframes.
|
|
13
|
+
*/
|
|
14
|
+
export const IFRAME_OVERLAY_HOST = new InjectionToken('IFRAME_OVERLAY_HOST', {
|
|
15
|
+
providedIn: 'root',
|
|
16
|
+
factory: () => signal(undefined),
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* DI token to inject the DOM location where to attach the visual placeholder when dragging a view over a drop zone.
|
|
20
|
+
*/
|
|
21
|
+
export const VIEW_DROP_ZONE_OVERLAY_HOST = new InjectionToken('VIEW_DROP_ZONE_OVERLAY_HOST', {
|
|
22
|
+
providedIn: 'root',
|
|
23
|
+
factory: () => signal(undefined),
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* DI token to inject the DOM location of the {@link WorkbenchComponent} HTML element.
|
|
27
|
+
*/
|
|
28
|
+
export const WORKBENCH_ELEMENT_REF = new InjectionToken('WORKBENCH_ELEMENT_REF', {
|
|
29
|
+
providedIn: 'root',
|
|
30
|
+
factory: () => signal(undefined),
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWVsZW1lbnQtcmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbnRlbnQtcHJvamVjdGlvbi93b3JrYmVuY2gtZWxlbWVudC1yZWZlcmVuY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBRXZGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQStDLHFCQUFxQixFQUFFO0lBQ3pILFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQStDLDZCQUE2QixFQUFFO0lBQ3pJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQStDLHVCQUF1QixFQUFFO0lBQzdILFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgc2lnbmFsLCBWaWV3Q29udGFpbmVyUmVmLCBXcml0YWJsZVNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogREkgdG9rZW4gdG8gaW5qZWN0IHRoZSBET00gbG9jYXRpb24gd2hlcmUgdG8gYXR0YWNoIGlmcmFtZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBJRlJBTUVfT1ZFUkxBWV9IT1NUID0gbmV3IEluamVjdGlvblRva2VuPFdyaXRhYmxlU2lnbmFsPFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ+PignSUZSQU1FX09WRVJMQVlfSE9TVCcsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBzaWduYWwodW5kZWZpbmVkKSxcbn0pO1xuXG4vKipcbiAqIERJIHRva2VuIHRvIGluamVjdCB0aGUgRE9NIGxvY2F0aW9uIHdoZXJlIHRvIGF0dGFjaCB0aGUgdmlzdWFsIHBsYWNlaG9sZGVyIHdoZW4gZHJhZ2dpbmcgYSB2aWV3IG92ZXIgYSBkcm9wIHpvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWSUVXX0RST1BfWk9ORV9PVkVSTEFZX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48V3JpdGFibGVTaWduYWw8Vmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZD4+KCdWSUVXX0RST1BfWk9ORV9PVkVSTEFZX0hPU1QnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gc2lnbmFsKHVuZGVmaW5lZCksXG59KTtcblxuLyoqXG4gKiBESSB0b2tlbiB0byBpbmplY3QgdGhlIERPTSBsb2NhdGlvbiBvZiB0aGUge0BsaW5rIFdvcmtiZW5jaENvbXBvbmVudH0gSFRNTCBlbGVtZW50LlxuICovXG5leHBvcnQgY29uc3QgV09SS0JFTkNIX0VMRU1FTlRfUkVGID0gbmV3IEluamVjdGlvblRva2VuPFdyaXRhYmxlU2lnbmFsPFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ+PignV09SS0JFTkNIX0VMRU1FTlRfUkVGJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHNpZ25hbCh1bmRlZmluZWQpLFxufSk7XG4iXX0=
|
|
@@ -15,7 +15,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
15
15
|
import { ɵWorkbenchDialog } from './ɵworkbench-dialog';
|
|
16
16
|
import { SciViewportComponent } from '@scion/components/viewport';
|
|
17
17
|
import { animate, style, transition, trigger } from '@angular/animations';
|
|
18
|
-
import {
|
|
18
|
+
import { subscribeIn } from '@scion/toolkit/operators';
|
|
19
19
|
import { MovableDirective } from './movable.directive';
|
|
20
20
|
import { ResizableDirective } from './resizable.directive';
|
|
21
21
|
import { SciDimensionDirective } from '@scion/components/dimension';
|
|
@@ -104,11 +104,11 @@ export class WorkbenchDialogComponent {
|
|
|
104
104
|
*/
|
|
105
105
|
trackFocus() {
|
|
106
106
|
fromEvent(this._dialogElement.nativeElement, 'focusin')
|
|
107
|
-
.pipe(map(event => event.target instanceof HTMLElement ? event.target : undefined),
|
|
107
|
+
.pipe(subscribeIn(fn => this._zone.runOutsideAngular(fn)), map(event => event.target instanceof HTMLElement ? event.target : undefined),
|
|
108
108
|
// The dialog is focused if it has no focusable element, so the dialog can be closed via Escape.
|
|
109
109
|
// However, in order not to cancel the autofocus, the dialog element must not be memoized as the
|
|
110
110
|
// active element. Otherwise, delayed content would not be focused.
|
|
111
|
-
filter(element => element !== this._dialogElement.nativeElement),
|
|
111
|
+
filter(element => element !== this._dialogElement.nativeElement), takeUntilDestroyed(this._destroyRef))
|
|
112
112
|
.subscribe(activeElement => {
|
|
113
113
|
this._activeElement$.next(activeElement);
|
|
114
114
|
});
|
|
@@ -247,4 +247,4 @@ function configureDialogGlassPane() {
|
|
|
247
247
|
},
|
|
248
248
|
];
|
|
249
249
|
}
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWMsTUFBTSxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBNEIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVKLE9BQU8sRUFBQyxlQUFlLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsT0FBTyxFQUFxQixLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JB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VyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLDBLQUEwSztTQUM1TjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixVQUFVLEVBQUUsR0FBcUIsRUFBRSxDQUFDLENBQUMsRUFBQyxVQUFVLEVBQUUsRUFBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUMsQ0FBQztTQUNuRztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgZWZmZWN0LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBpbmplY3QsIE5nWm9uZSwgT25Jbml0LCBQcm92aWRlciwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBMTF5TW9kdWxlLCBDZGtUcmFwRm9jdXN9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge8m1V29ya2JlbmNoRGlhbG9nfSBmcm9tICcuL8m1d29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy92aWV3cG9ydCc7XG5pbXBvcnQge2FuaW1hdGUsIEFuaW1hdGlvbk1ldGFkYXRhLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge3N1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7TW92YWJsZURpcmVjdGl2ZSwgV2JNb3ZlRXZlbnR9IGZyb20gJy4vbW92YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtSZXNpemFibGVEaXJlY3RpdmUsIFdiUmVzaXplRXZlbnR9IGZyb20gJy4vcmVzaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NjaURpbWVuc2lvbiwgU2NpRGltZW5zaW9uRGlyZWN0aXZlfSBmcm9tICdAc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24nO1xuaW1wb3J0IHtEaWFsb2dIZWFkZXJDb21wb25lbnR9IGZyb20gJy4vZGlhbG9nLWhlYWRlci9kaWFsb2ctaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RpYWxvZ0Zvb3RlckNvbXBvbmVudH0gZnJvbSAnLi9kaWFsb2ctZm9vdGVyL2RpYWxvZy1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdMQVNTX1BBTkVfT1BUSU9OUywgR2xhc3NQYW5lRGlyZWN0aXZlLCBHbGFzc1BhbmVPcHRpb25zfSBmcm9tICcuLi9nbGFzcy1wYW5lL2dsYXNzLXBhbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2Zyb21NdXRhdGlvbiR9IGZyb20gJ0BzY2lvbi90b29sa2l0L29ic2VydmFibGUnO1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIHdvcmtiZW5jaCBkaWFsb2cuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaXMgYWRkZWQgdG8gYSBDREsgb3ZlcmxheSBhbGlnbmVkIHRvIHRoZSBtb2RhbGl0eSBjb250ZXh0IGRlZmluZWQgYnkgdGhlIGRpYWxvZy5cbiAqIFRoZSBkaWFsb2cgaXRzZWxmIGlzIHJlbmRlcmVkIGluIHRoZSBjZW50ZXIgb2YgaXRzIG1vZGFsaXR5IGNvbnRleHQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrYmVuY2gtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBMTF5TW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBNb3ZhYmxlRGlyZWN0aXZlLFxuICAgIFJlc2l6YWJsZURpcmVjdGl2ZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgICBTY2lEaW1lbnNpb25EaXJlY3RpdmUsXG4gICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICBHbGFzc1BhbmVEaXJlY3RpdmUsXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdlbnRlcicsIHByb3ZpZGVFbnRlckFuaW1hdGlvbigpKSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICBOZ0NsYXNzLFxuICBdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgY29uZmlndXJlRGlhbG9nR2xhc3NQYW5lKCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEVsZW1lbnQgb2YgdGhlIGRpYWxvZyB0aGF0IGhhcyBvciBsYXN0IGhhZCBmb2N1cy5cbiAgICovXG4gIHByaXZhdGUgX2FjdGl2ZUVsZW1lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfaGVhZGVySGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZChDZGtUcmFwRm9jdXMsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIF9jZGtUcmFwRm9jdXMhOiBDZGtUcmFwRm9jdXM7XG5cbiAgQFZpZXdDaGlsZCgnZGlhbG9nX2VsZW1lbnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHJpdmF0ZSBfZGlhbG9nRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS3JtWRpYWxvZy10cmFuc2Zvcm0tdHJhbnNsYXRlLXgnKVxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtVHJhbnNsYXRlWCA9IDA7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLcm1ZGlhbG9nLXRyYW5zZm9ybS10cmFuc2xhdGUteScpXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm1UcmFuc2xhdGVZID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tybVkaWFsb2ctbWluLWhlaWdodCcpXG4gIHByb3RlY3RlZCBnZXQgbWluSGVpZ2h0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLnNpemUubWluSGVpZ2h0KCkgfHwgdGhpcy5faGVhZGVySGVpZ2h0O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLcm1ZGlhbG9nLWhlaWdodCcpXG4gIHByb3RlY3RlZCBnZXQgaGVpZ2h0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLnNpemUuaGVpZ2h0KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tybVkaWFsb2ctbWF4LWhlaWdodCcpXG4gIHByb3RlY3RlZCBnZXQgbWF4SGVpZ2h0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLnNpemUubWF4SGVpZ2h0KCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tybVkaWFsb2ctbWluLXdpZHRoJylcbiAgcHJvdGVjdGVkIGdldCBtaW5XaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5zaXplLm1pbldpZHRoKCkgfHwgJzEwMHB4JztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS3JtWRpYWxvZy13aWR0aCcpXG4gIHByb3RlY3RlZCBnZXQgd2lkdGgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cuc2l6ZS53aWR0aCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLcm1ZGlhbG9nLW1heC13aWR0aCcpXG4gIHByb3RlY3RlZCBnZXQgbWF4V2lkdGgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cuc2l6ZS5tYXhXaWR0aCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5qdXN0aWZpZWQnKVxuICBwcm90ZWN0ZWQgZ2V0IGp1c3RpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlhbG9nLnBhZGRpbmcoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRpYWxvZ2lkJylcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5pZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IMm1V29ya2JlbmNoRGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYpIHtcbiAgICB0aGlzLnNldERpYWxvZ09mZnNldCgpO1xuICAgIHRoaXMuYWRkSG9zdENzc0NsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYWNrRm9jdXMoKTtcbiAgICB0aGlzLmF1dG9Gb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaWFsb2dPZmZzZXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2tQb3NpdGlvbiA9IHRoaXMuZGlhbG9nLmdldFBvc2l0aW9uSW5EaWFsb2dTdGFjaygpO1xuICAgIHRoaXMudHJhbnNmb3JtVHJhbnNsYXRlWCA9IHN0YWNrUG9zaXRpb24gKiAxMDtcbiAgICB0aGlzLnRyYW5zZm9ybVRyYW5zbGF0ZVkgPSBzdGFja1Bvc2l0aW9uICogMTA7XG4gIH1cblxuICBwcml2YXRlIGFkZEhvc3RDc3NDbGFzc2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ2xhc3MgPSBpbmplY3QoTmdDbGFzcyk7XG4gICAgZWZmZWN0KCgpID0+IG5nQ2xhc3MubmdDbGFzcyA9IHRoaXMuZGlhbG9nLmNzc0NsYXNzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhpcyBkaWFsb2csIHJlc3RvcmluZyB0aGUgZm9jdXMgdG8gdGhlIGxhc3QgZWxlbWVudCB0aGF0IGhhZCB0aGUgZm9jdXMsXG4gICAqIG9yIG90aGVyd2lzZSBmb2N1c2VzIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5fYWN0aXZlRWxlbWVudCQuZ2V0VmFsdWUoKTtcbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBlbHNlIGlmICghdGhpcy5fY2RrVHJhcEZvY3VzLmZvY3VzVHJhcC5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCkpIHtcbiAgICAgIC8vIEZvY3VzIGRpYWxvZyBlbGVtZW50IHNvIHRoYXQgaXQgY2FuIGJlIGNsb3NlZCB2aWEgRXNjYXBlIGtleXN0cm9rZS5cbiAgICAgIHRoaXMuX2RpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgdGhlIGZvY3VzIG9mIHRoZSBkaWFsb2cuXG4gICAqL1xuICBwcml2YXRlIHRyYWNrRm9jdXMoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KHRoaXMuX2RpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChldmVudCA9PiBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IGV2ZW50LnRhcmdldCA6IHVuZGVmaW5lZCksXG4gICAgICAgIC8vIFRoZSBkaWFsb2cgaXMgZm9jdXNlZCBpZiBpdCBoYXMgbm8gZm9jdXNhYmxlIGVsZW1lbnQsIHNvIHRoZSBkaWFsb2cgY2FuIGJlIGNsb3NlZCB2aWEgRXNjYXBlLlxuICAgICAgICAvLyBIb3dldmVyLCBpbiBvcmRlciBub3QgdG8gY2FuY2VsIHRoZSBhdXRvZm9jdXMsIHRoZSBkaWFsb2cgZWxlbWVudCBtdXN0IG5vdCBiZSBtZW1vaXplZCBhcyB0aGVcbiAgICAgICAgLy8gYWN0aXZlIGVsZW1lbnQuIE90aGVyd2lzZSwgZGVsYXllZCBjb250ZW50IHdvdWxkIG5vdCBiZSBmb2N1c2VkLlxuICAgICAgICBmaWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50ICE9PSB0aGlzLl9kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGNvbnRpbnVlRm4pKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShhY3RpdmVFbGVtZW50ID0+IHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudCQubmV4dChhY3RpdmVFbGVtZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSBkaWFsb2cuIEhhcyBubyBlZmZlY3QgaWYgYW4gZWxlbWVudCBpbiB0aGUgZGlhbG9nIGFscmVhZHkgaGFzIHRoZSBmb2N1cy5cbiAgICpcbiAgICogSWYgbm8gZm9jdXNhYmxlIGVsZW1lbnQgY2FuIGJlIGZvdW5kLCB0aGUgZm9jdXNpbmcgd2lsbCBiZSByZXBlYXRlZCBvbiB0aGUgbmV4dCBET00gY2hhbmdlIHVudGlsIGFuIGVsZW1lbnQgaGFzIHRoZVxuICAgKiBmb2N1cywgYWxsb3dpbmcgZGVsYXllZCBjb250ZW50IHRvIGdldCBmb2N1cy5cbiAgICovXG4gIHByaXZhdGUgYXV0b0ZvY3VzKCk6IHZvaWQge1xuICAgIGZyb21NdXRhdGlvbiQodGhpcy5fZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50LCB7c3VidHJlZTogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fYWN0aXZlRWxlbWVudCQucGlwZShmaWx0ZXIoQm9vbGVhbikpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb25Fc2NhcGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlhbG9nLmNsb3NhYmxlKCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Nb3ZlKGV2ZW50OiBXYk1vdmVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtVHJhbnNsYXRlWCA9IGV2ZW50LnRyYW5zbGF0ZVg7XG4gICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVZID0gZXZlbnQudHJhbnNsYXRlWTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlc2l6ZShldmVudDogV2JSZXNpemVFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5oZWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kaWFsb2cuc2l6ZS5oZWlnaHQgPSBgJHtldmVudC5oZWlnaHR9cHhgO1xuICAgIH1cbiAgICBpZiAoZXZlbnQud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kaWFsb2cuc2l6ZS53aWR0aCA9IGAke2V2ZW50LndpZHRofXB4YDtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnRyYW5zbGF0ZVggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVYID0gZXZlbnQudHJhbnNsYXRlWDtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnRyYW5zbGF0ZVkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVZID0gZXZlbnQudHJhbnNsYXRlWTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25IZWFkZXJEaW1lbnNpb25DaGFuZ2UoZGltZW5zaW9uOiBTY2lEaW1lbnNpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJIZWlnaHQgPSBgJHtkaW1lbnNpb24ub2Zmc2V0SGVpZ2h0fXB4YDtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYW5pbWF0aW9uIG1ldGFkYXRhIHRvIHNsaWRlLWluIGEgbmV3IGRpYWxvZy5cbiAqL1xuZnVuY3Rpb24gcHJvdmlkZUVudGVyQW5pbWF0aW9uKCk6IEFuaW1hdGlvbk1ldGFkYXRhW10ge1xuICByZXR1cm4gW1xuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHtvcGFjaXR5OiAwLCBib3R0b206ICcxMDAlJywgdG9wOiAndW5zZXQnfSksXG4gICAgICBhbmltYXRlKCcuMXMgZWFzZS1vdXQnLCBzdHlsZSh7b3BhY2l0eTogMSwgYm90dG9tOiAnKid9KSksXG4gICAgXSksXG4gIF07XG59XG5cbi8qKlxuICogQmxvY2tzIHRoaXMgZGlhbG9nIHdoZW4gb3RoZXIgZGlhbG9nKHMpIG92ZXJsYXkgaXQuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZURpYWxvZ0dsYXNzUGFuZSgpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX0JMT0NLQUJMRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IMm1V29ya2JlbmNoRGlhbG9nKSwgLy8gcmVzb2x2ZSB7QGxpbmsgybVXb3JrYmVuY2hEaWFsb2d9IHZpYSBmb3J3YXJkUmVmIGJlY2F1c2Ugbm90IGRlZmluZWQgeWV0LCBpLmUuLCB7QGxpbmsgybVXb3JrYmVuY2hEaWFsb2d9IGNvbnN0cnVjdHMge0BsaW5rIFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudH0gaW4gaXRzIGNvbnN0cnVjdG9yLlxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9PUFRJT05TLFxuICAgICAgdXNlRmFjdG9yeTogKCk6IEdsYXNzUGFuZU9wdGlvbnMgPT4gKHthdHRyaWJ1dGVzOiB7J2RhdGEtZGlhbG9naWQnOiBpbmplY3QoybVXb3JrYmVuY2hEaWFsb2cpLmlkfX0pLFxuICAgIH0sXG4gIF07XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nIGUyZS1kaWFsb2dcIlxuICAgICBbY2xhc3MuYmxpbmtpbmddPVwiZGlhbG9nLmJsaW5raW5nJCB8IGFzeW5jXCJcbiAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgd2JNb3ZhYmxlIFt3YkhhbmRsZV09XCJoZWFkZXJcIiAod2JNb3ZhYmxlTW92ZSk9XCJvbk1vdmUoJGV2ZW50KVwiXG4gICAgIHdiUmVzaXphYmxlIFt3YlJlc2l6YWJsZUVuYWJsZWRdPVwiZGlhbG9nLnJlc2l6YWJsZSgpXCIgKHdiUmVzaXphYmxlUmVzaXplKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAgICBAZW50ZXJcbiAgICAgW0AuZGlzYWJsZWRdPVwiIWRpYWxvZy5hbmltYXRlXCJcbiAgICAgd2JHbGFzc1BhbmVcbiAgICAgI2RpYWxvZ19lbGVtZW50PlxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJveCBlMmUtZGlhbG9nLWJveFwiIGNka1RyYXBGb2N1cz5cbiAgICA8aGVhZGVyICNoZWFkZXJcbiAgICAgICAgICAgIGNsYXNzPVwiZTJlLWRpYWxvZy1oZWFkZXJcIlxuICAgICAgICAgICAgW2NsYXNzLmRpdmlkZXJdPVwiZGlhbG9nLmhlYWRlcj8uZGl2aWRlciA/PyB0cnVlXCJcbiAgICAgICAgICAgIHNjaURpbWVuc2lvbiAoc2NpRGltZW5zaW9uQ2hhbmdlKT1cIm9uSGVhZGVyRGltZW5zaW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFsb2cuaGVhZGVyPy50ZW1wbGF0ZSA/PyBkZWZhdWx0X2RpYWxvZ19oZWFkZXJcIi8+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8c2NpLXZpZXdwb3J0IGNsYXNzPVwiY29udGVudCBlMmUtZGlhbG9nLWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiZGlhbG9nLmNvbXBvbmVudDsgaW5wdXRzOiBkaWFsb2cuaW5wdXRzXCIvPlxuICAgIDwvc2NpLXZpZXdwb3J0PlxuXG4gICAgQGlmIChkaWFsb2cuZm9vdGVyIHx8IGRpYWxvZy5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgPGZvb3RlciBjbGFzcz1cImUyZS1kaWFsb2ctZm9vdGVyXCIgW2NsYXNzLmRpdmlkZXJdPVwiZGlhbG9nLmZvb3Rlcj8uZGl2aWRlciA/PyB0cnVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFsb2cuZm9vdGVyPy50ZW1wbGF0ZSA/PyBkZWZhdWx0X2RpYWxvZ19mb290ZXJcIi8+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdF9kaWFsb2dfaGVhZGVyPlxuICA8d2ItZGlhbG9nLWhlYWRlci8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRfZGlhbG9nX2Zvb3Rlcj5cbiAgPHdiLWRpYWxvZy1mb290ZXIvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWMsTUFBTSxFQUFjLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBNEIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVKLE9BQU8sRUFBQyxlQUFlLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsT0FBTyxFQUFxQixLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JB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VyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLDBLQUEwSztTQUM1TjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixVQUFVLEVBQUUsR0FBcUIsRUFBRSxDQUFDLENBQUMsRUFBQyxVQUFVLEVBQUUsRUFBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUMsQ0FBQztTQUNuRztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRGVzdHJveVJlZiwgZWZmZWN0LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBpbmplY3QsIE5nWm9uZSwgT25Jbml0LCBQcm92aWRlciwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBMTF5TW9kdWxlLCBDZGtUcmFwRm9jdXN9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge8m1V29ya2JlbmNoRGlhbG9nfSBmcm9tICcuL8m1d29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy92aWV3cG9ydCc7XG5pbXBvcnQge2FuaW1hdGUsIEFuaW1hdGlvbk1ldGFkYXRhLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge3N1YnNjcmliZUlufSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtNb3ZhYmxlRGlyZWN0aXZlLCBXYk1vdmVFdmVudH0gZnJvbSAnLi9tb3ZhYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1Jlc2l6YWJsZURpcmVjdGl2ZSwgV2JSZXNpemVFdmVudH0gZnJvbSAnLi9yZXNpemFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7U2NpRGltZW5zaW9uLCBTY2lEaW1lbnNpb25EaXJlY3RpdmV9IGZyb20gJ0BzY2lvbi9jb21wb25lbnRzL2RpbWVuc2lvbic7XG5pbXBvcnQge0RpYWxvZ0hlYWRlckNvbXBvbmVudH0gZnJvbSAnLi9kaWFsb2ctaGVhZGVyL2RpYWxvZy1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7RGlhbG9nRm9vdGVyQ29tcG9uZW50fSBmcm9tICcuL2RpYWxvZy1mb290ZXIvZGlhbG9nLWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHtHTEFTU19QQU5FX0JMT0NLQUJMRSwgR0xBU1NfUEFORV9PUFRJT05TLCBHbGFzc1BhbmVEaXJlY3RpdmUsIEdsYXNzUGFuZU9wdGlvbnN9IGZyb20gJy4uL2dsYXNzLXBhbmUvZ2xhc3MtcGFuZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7ZnJvbU11dGF0aW9uJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgd29ya2JlbmNoIGRpYWxvZy5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBhZGRlZCB0byBhIENESyBvdmVybGF5IGFsaWduZWQgdG8gdGhlIG1vZGFsaXR5IGNvbnRleHQgZGVmaW5lZCBieSB0aGUgZGlhbG9nLlxuICogVGhlIGRpYWxvZyBpdHNlbGYgaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiBpdHMgbW9kYWxpdHkgY29udGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2ItZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtiZW5jaC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrYmVuY2gtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEExMXlNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIE1vdmFibGVEaXJlY3RpdmUsXG4gICAgUmVzaXphYmxlRGlyZWN0aXZlLFxuICAgIFNjaVZpZXdwb3J0Q29tcG9uZW50LFxuICAgIFNjaURpbWVuc2lvbkRpcmVjdGl2ZSxcbiAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIEdsYXNzUGFuZURpcmVjdGl2ZSxcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2VudGVyJywgcHJvdmlkZUVudGVyQW5pbWF0aW9uKCkpLFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIE5nQ2xhc3MsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBjb25maWd1cmVEaWFsb2dHbGFzc1BhbmUoKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogRWxlbWVudCBvZiB0aGUgZGlhbG9nIHRoYXQgaGFzIG9yIGxhc3QgaGFkIGZvY3VzLlxuICAgKi9cbiAgcHJpdmF0ZSBfYWN0aXZlRWxlbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9oZWFkZXJIZWlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKENka1RyYXBGb2N1cywge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgX2Nka1RyYXBGb2N1cyE6IENka1RyYXBGb2N1cztcblxuICBAVmlld0NoaWxkKCdkaWFsb2dfZWxlbWVudCcsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIF9kaWFsb2dFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLcm1ZGlhbG9nLXRyYW5zZm9ybS10cmFuc2xhdGUteCcpXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm1UcmFuc2xhdGVYID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tybVkaWFsb2ctdHJhbnNmb3JtLXRyYW5zbGF0ZS15JylcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybVRyYW5zbGF0ZVkgPSAwO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS3JtWRpYWxvZy1taW4taGVpZ2h0JylcbiAgcHJvdGVjdGVkIGdldCBtaW5IZWlnaHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cuc2l6ZS5taW5IZWlnaHQoKSB8fCB0aGlzLl9oZWFkZXJIZWlnaHQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tybVkaWFsb2ctaGVpZ2h0JylcbiAgcHJvdGVjdGVkIGdldCBoZWlnaHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cuc2l6ZS5oZWlnaHQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS3JtWRpYWxvZy1tYXgtaGVpZ2h0JylcbiAgcHJvdGVjdGVkIGdldCBtYXhIZWlnaHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2cuc2l6ZS5tYXhIZWlnaHQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS3JtWRpYWxvZy1taW4td2lkdGgnKVxuICBwcm90ZWN0ZWQgZ2V0IG1pbldpZHRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLnNpemUubWluV2lkdGgoKSB8fCAnMTAwcHgnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLcm1ZGlhbG9nLXdpZHRoJylcbiAgcHJvdGVjdGVkIGdldCB3aWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5zaXplLndpZHRoKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tybVkaWFsb2ctbWF4LXdpZHRoJylcbiAgcHJvdGVjdGVkIGdldCBtYXhXaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5zaXplLm1heFdpZHRoKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmp1c3RpZmllZCcpXG4gIHByb3RlY3RlZCBnZXQganVzdGlmaWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaWFsb2cucGFkZGluZygpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZGlhbG9naWQnKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLmlkO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogybVXb3JrYmVuY2hEaWFsb2csXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZGVzdHJveVJlZjogRGVzdHJveVJlZikge1xuICAgIHRoaXMuc2V0RGlhbG9nT2Zmc2V0KCk7XG4gICAgdGhpcy5hZGRIb3N0Q3NzQ2xhc3NlcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudHJhY2tGb2N1cygpO1xuICAgIHRoaXMuYXV0b0ZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldERpYWxvZ09mZnNldCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFja1Bvc2l0aW9uID0gdGhpcy5kaWFsb2cuZ2V0UG9zaXRpb25JbkRpYWxvZ1N0YWNrKCk7XG4gICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVYID0gc3RhY2tQb3NpdGlvbiAqIDEwO1xuICAgIHRoaXMudHJhbnNmb3JtVHJhbnNsYXRlWSA9IHN0YWNrUG9zaXRpb24gKiAxMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSG9zdENzc0NsYXNzZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbmdDbGFzcyA9IGluamVjdChOZ0NsYXNzKTtcbiAgICBlZmZlY3QoKCkgPT4gbmdDbGFzcy5uZ0NsYXNzID0gdGhpcy5kaWFsb2cuY3NzQ2xhc3MoKSk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGlzIGRpYWxvZywgcmVzdG9yaW5nIHRoZSBmb2N1cyB0byB0aGUgbGFzdCBlbGVtZW50IHRoYXQgaGFkIHRoZSBmb2N1cyxcbiAgICogb3Igb3RoZXJ3aXNlIGZvY3VzZXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLl9hY3RpdmVFbGVtZW50JC5nZXRWYWx1ZSgpO1xuICAgIGlmIChhY3RpdmVFbGVtZW50KSB7XG4gICAgICBhY3RpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKCF0aGlzLl9jZGtUcmFwRm9jdXMuZm9jdXNUcmFwLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKSkge1xuICAgICAgLy8gRm9jdXMgZGlhbG9nIGVsZW1lbnQgc28gdGhhdCBpdCBjYW4gYmUgY2xvc2VkIHZpYSBFc2NhcGUga2V5c3Ryb2tlLlxuICAgICAgdGhpcy5fZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrcyB0aGUgZm9jdXMgb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIHByaXZhdGUgdHJhY2tGb2N1cygpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQ8Rm9jdXNFdmVudD4odGhpcy5fZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZm9jdXNpbicpXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW4oZm4gPT4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICBtYXAoZXZlbnQgPT4gZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyBldmVudC50YXJnZXQgOiB1bmRlZmluZWQpLFxuICAgICAgICAvLyBUaGUgZGlhbG9nIGlzIGZvY3VzZWQgaWYgaXQgaGFzIG5vIGZvY3VzYWJsZSBlbGVtZW50LCBzbyB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWQgdmlhIEVzY2FwZS5cbiAgICAgICAgLy8gSG93ZXZlciwgaW4gb3JkZXIgbm90IHRvIGNhbmNlbCB0aGUgYXV0b2ZvY3VzLCB0aGUgZGlhbG9nIGVsZW1lbnQgbXVzdCBub3QgYmUgbWVtb2l6ZWQgYXMgdGhlXG4gICAgICAgIC8vIGFjdGl2ZSBlbGVtZW50LiBPdGhlcndpc2UsIGRlbGF5ZWQgY29udGVudCB3b3VsZCBub3QgYmUgZm9jdXNlZC5cbiAgICAgICAgZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCAhPT0gdGhpcy5fZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShhY3RpdmVFbGVtZW50ID0+IHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudCQubmV4dChhY3RpdmVFbGVtZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSBkaWFsb2cuIEhhcyBubyBlZmZlY3QgaWYgYW4gZWxlbWVudCBpbiB0aGUgZGlhbG9nIGFscmVhZHkgaGFzIHRoZSBmb2N1cy5cbiAgICpcbiAgICogSWYgbm8gZm9jdXNhYmxlIGVsZW1lbnQgY2FuIGJlIGZvdW5kLCB0aGUgZm9jdXNpbmcgd2lsbCBiZSByZXBlYXRlZCBvbiB0aGUgbmV4dCBET00gY2hhbmdlIHVudGlsIGFuIGVsZW1lbnQgaGFzIHRoZVxuICAgKiBmb2N1cywgYWxsb3dpbmcgZGVsYXllZCBjb250ZW50IHRvIGdldCBmb2N1cy5cbiAgICovXG4gIHByaXZhdGUgYXV0b0ZvY3VzKCk6IHZvaWQge1xuICAgIGZyb21NdXRhdGlvbiQodGhpcy5fZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50LCB7c3VidHJlZTogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fYWN0aXZlRWxlbWVudCQucGlwZShmaWx0ZXIoQm9vbGVhbikpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb25Fc2NhcGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlhbG9nLmNsb3NhYmxlKCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Nb3ZlKGV2ZW50OiBXYk1vdmVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtVHJhbnNsYXRlWCA9IGV2ZW50LnRyYW5zbGF0ZVg7XG4gICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVZID0gZXZlbnQudHJhbnNsYXRlWTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlc2l6ZShldmVudDogV2JSZXNpemVFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5oZWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kaWFsb2cuc2l6ZS5oZWlnaHQgPSBgJHtldmVudC5oZWlnaHR9cHhgO1xuICAgIH1cbiAgICBpZiAoZXZlbnQud2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kaWFsb2cuc2l6ZS53aWR0aCA9IGAke2V2ZW50LndpZHRofXB4YDtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnRyYW5zbGF0ZVggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVYID0gZXZlbnQudHJhbnNsYXRlWDtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnRyYW5zbGF0ZVkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1UcmFuc2xhdGVZID0gZXZlbnQudHJhbnNsYXRlWTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25IZWFkZXJEaW1lbnNpb25DaGFuZ2UoZGltZW5zaW9uOiBTY2lEaW1lbnNpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJIZWlnaHQgPSBgJHtkaW1lbnNpb24ub2Zmc2V0SGVpZ2h0fXB4YDtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYW5pbWF0aW9uIG1ldGFkYXRhIHRvIHNsaWRlLWluIGEgbmV3IGRpYWxvZy5cbiAqL1xuZnVuY3Rpb24gcHJvdmlkZUVudGVyQW5pbWF0aW9uKCk6IEFuaW1hdGlvbk1ldGFkYXRhW10ge1xuICByZXR1cm4gW1xuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHtvcGFjaXR5OiAwLCBib3R0b206ICcxMDAlJywgdG9wOiAndW5zZXQnfSksXG4gICAgICBhbmltYXRlKCcuMXMgZWFzZS1vdXQnLCBzdHlsZSh7b3BhY2l0eTogMSwgYm90dG9tOiAnKid9KSksXG4gICAgXSksXG4gIF07XG59XG5cbi8qKlxuICogQmxvY2tzIHRoaXMgZGlhbG9nIHdoZW4gb3RoZXIgZGlhbG9nKHMpIG92ZXJsYXkgaXQuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZURpYWxvZ0dsYXNzUGFuZSgpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX0JMT0NLQUJMRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IMm1V29ya2JlbmNoRGlhbG9nKSwgLy8gcmVzb2x2ZSB7QGxpbmsgybVXb3JrYmVuY2hEaWFsb2d9IHZpYSBmb3J3YXJkUmVmIGJlY2F1c2Ugbm90IGRlZmluZWQgeWV0LCBpLmUuLCB7QGxpbmsgybVXb3JrYmVuY2hEaWFsb2d9IGNvbnN0cnVjdHMge0BsaW5rIFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudH0gaW4gaXRzIGNvbnN0cnVjdG9yLlxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9PUFRJT05TLFxuICAgICAgdXNlRmFjdG9yeTogKCk6IEdsYXNzUGFuZU9wdGlvbnMgPT4gKHthdHRyaWJ1dGVzOiB7J2RhdGEtZGlhbG9naWQnOiBpbmplY3QoybVXb3JrYmVuY2hEaWFsb2cpLmlkfX0pLFxuICAgIH0sXG4gIF07XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nIGUyZS1kaWFsb2dcIlxuICAgICBbY2xhc3MuYmxpbmtpbmddPVwiZGlhbG9nLmJsaW5raW5nJCB8IGFzeW5jXCJcbiAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgd2JNb3ZhYmxlIFt3YkhhbmRsZV09XCJoZWFkZXJcIiAod2JNb3ZhYmxlTW92ZSk9XCJvbk1vdmUoJGV2ZW50KVwiXG4gICAgIHdiUmVzaXphYmxlIFt3YlJlc2l6YWJsZUVuYWJsZWRdPVwiZGlhbG9nLnJlc2l6YWJsZSgpXCIgKHdiUmVzaXphYmxlUmVzaXplKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAgICBAZW50ZXJcbiAgICAgW0AuZGlzYWJsZWRdPVwiIWRpYWxvZy5hbmltYXRlXCJcbiAgICAgd2JHbGFzc1BhbmVcbiAgICAgI2RpYWxvZ19lbGVtZW50PlxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJveCBlMmUtZGlhbG9nLWJveFwiIGNka1RyYXBGb2N1cz5cbiAgICA8aGVhZGVyICNoZWFkZXJcbiAgICAgICAgICAgIGNsYXNzPVwiZTJlLWRpYWxvZy1oZWFkZXJcIlxuICAgICAgICAgICAgW2NsYXNzLmRpdmlkZXJdPVwiZGlhbG9nLmhlYWRlcj8uZGl2aWRlciA/PyB0cnVlXCJcbiAgICAgICAgICAgIHNjaURpbWVuc2lvbiAoc2NpRGltZW5zaW9uQ2hhbmdlKT1cIm9uSGVhZGVyRGltZW5zaW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFsb2cuaGVhZGVyPy50ZW1wbGF0ZSA/PyBkZWZhdWx0X2RpYWxvZ19oZWFkZXJcIi8+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8c2NpLXZpZXdwb3J0IGNsYXNzPVwiY29udGVudCBlMmUtZGlhbG9nLWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiZGlhbG9nLmNvbXBvbmVudDsgaW5wdXRzOiBkaWFsb2cuaW5wdXRzXCIvPlxuICAgIDwvc2NpLXZpZXdwb3J0PlxuXG4gICAgQGlmIChkaWFsb2cuZm9vdGVyIHx8IGRpYWxvZy5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgPGZvb3RlciBjbGFzcz1cImUyZS1kaWFsb2ctZm9vdGVyXCIgW2NsYXNzLmRpdmlkZXJdPVwiZGlhbG9nLmZvb3Rlcj8uZGl2aWRlciA/PyB0cnVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkaWFsb2cuZm9vdGVyPy50ZW1wbGF0ZSA/PyBkZWZhdWx0X2RpYWxvZ19mb290ZXJcIi8+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdF9kaWFsb2dfaGVhZGVyPlxuICA8d2ItZGlhbG9nLWhlYWRlci8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRfZGlhbG9nX2Zvb3Rlcj5cbiAgPHdiLWRpYWxvZy1mb290ZXIvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|