@scion/workbench 18.0.0-beta.3 → 18.0.0-beta.4
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 +67 -29
- package/esm2022/lib/common/operators.mjs +1 -12
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -8
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +22 -20
- package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +71 -26
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +25 -23
- package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
- package/esm2022/lib/executor/single-task-executor.mjs +7 -17
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +5 -6
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +1 -1
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +3 -3
- package/esm2022/lib/layout/stringifier.mjs +2 -2
- package/esm2022/lib/layout/workbench-layout.component.mjs +4 -5
- package/esm2022/lib/layout/workbench-layout.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.service.mjs +6 -7
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +2 -2
- package/esm2022/lib/layout//311/265workbench-layout.mjs +32 -31
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +3 -3
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +5 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +14 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +11 -12
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +11 -12
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +18 -16
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -14
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +4 -8
- package/esm2022/lib/notification/notification.component.mjs +4 -5
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +7 -13
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +56 -75
- package/esm2022/lib/part/part-portal.pipe.mjs +8 -8
- package/esm2022/lib/part/part.component.mjs +32 -40
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -6
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +2 -2
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +27 -28
- package/esm2022/lib/part/view-list/view-list.component.mjs +41 -48
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +20 -24
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +15 -17
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +77 -88
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -4
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +14 -15
- package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
- package/esm2022/lib/part/workbench-part.model.mjs +10 -1
- package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
- package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +27 -28
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +31 -28
- package/esm2022/lib/popup/popup.component.mjs +3 -3
- package/esm2022/lib/popup/popup.config.mjs +23 -13
- package/esm2022/lib/popup/popup.service.mjs +48 -45
- package/esm2022/lib/portal/wb-component-portal.mjs +2 -2
- package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
- package/esm2022/lib/routing/public_api.mjs +1 -1
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/routing.util.mjs +210 -0
- package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +19 -3
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-navigational-states.mjs +1 -1
- package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +130 -143
- package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +41 -31
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/testing/workbench.provider.mjs +2 -2
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +15 -19
- package/esm2022/lib/view/view-move-handler.service.mjs +7 -7
- package/esm2022/lib/view/view-portal.pipe.mjs +7 -7
- package/esm2022/lib/view/view.component.mjs +22 -34
- package/esm2022/lib/view/workbench-view-route-guards.mjs +4 -4
- package/esm2022/lib/view/workbench-view.model.mjs +1 -1
- package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
- package/esm2022/lib/view//311/265workbench-view.model.mjs +136 -150
- package/esm2022/lib/view-dnd/view-drag.service.mjs +1 -1
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +18 -20
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.service.mjs +1 -1
- package/esm2022/lib//311/265workbench.service.mjs +31 -42
- package/fesm2022/scion-workbench.mjs +1942 -1881
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/class-list.d.ts +35 -22
- package/lib/common/operators.d.ts +1 -6
- package/lib/dialog/workbench-dialog.component.d.ts +3 -2
- package/lib/dialog/workbench-dialog.d.ts +57 -13
- package/lib/dialog//311/265workbench-dialog.d.ts +36 -17
- package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
- package/lib/executor/latest-task-executor.d.ts +26 -0
- package/lib/executor/single-task-executor.d.ts +3 -6
- package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +4 -0
- package/lib/layout/workbench-layout.d.ts +9 -6
- package/lib/layout/workbench-layout.model.d.ts +2 -0
- package/lib/layout/workbench-layout.service.d.ts +4 -4
- package/lib/layout//311/265workbench-layout.d.ts +10 -13
- package/lib/layout//311/265workbench-layout.factory.d.ts +2 -2
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -5
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -8
- package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
- package/lib/notification/notification-list.component.d.ts +0 -2
- package/lib/part/part-action-bar/part-action-bar.component.d.ts +4 -1
- package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
- package/lib/part/part-bar/part-bar.component.d.ts +8 -12
- package/lib/part/part-portal.pipe.d.ts +3 -5
- package/lib/part/part.component.d.ts +9 -12
- package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
- package/lib/part/view-context-menu/view-menu.service.d.ts +8 -12
- package/lib/part/view-list/view-list.component.d.ts +8 -21
- package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
- package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
- package/lib/part/view-tab/view-tab.component.d.ts +17 -28
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
- package/lib/part/workbench-part-action.registry.d.ts +3 -23
- package/lib/part/workbench-part.model.d.ts +8 -27
- package/lib/part/workbench-part.registry.d.ts +3 -26
- package/lib/part//311/265workbench-part.model.d.ts +24 -17
- package/lib/perspective/workbench-perspective.model.d.ts +2 -8
- package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
- package/lib/perspective/workbench-perspective.service.d.ts +8 -14
- package/lib/perspective//311/265workbench-perspective.model.d.ts +26 -20
- package/lib/popup/popup.config.d.ts +2 -0
- package/lib/popup/popup.service.d.ts +12 -14
- package/lib/registry/workbench-object-registry.d.ts +10 -6
- package/lib/routing/public_api.d.ts +1 -1
- package/lib/routing/routing.model.d.ts +25 -13
- package/lib/routing/{router.util.d.ts → routing.util.d.ts} +24 -1
- package/lib/routing/workbench-auxiliary-route-installer.service.d.ts +7 -0
- package/lib/routing/workbench-navigational-states.d.ts +3 -3
- package/lib/routing/workbench-url-observer.service.d.ts +31 -57
- package/lib/routing//311/265workbench-router.service.d.ts +10 -16
- package/lib/testing/workbench.provider.d.ts +3 -1
- package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
- package/lib/view/view-portal.pipe.d.ts +1 -3
- package/lib/view/view.component.d.ts +2 -4
- package/lib/view/workbench-view-route-guards.d.ts +2 -2
- package/lib/view/workbench-view.model.d.ts +49 -35
- package/lib/view/workbench-view.registry.d.ts +3 -27
- package/lib/view//311/265workbench-view.model.d.ts +51 -61
- package/lib/view-dnd/view-drag.service.d.ts +5 -2
- package/lib/workbench.model.d.ts +6 -2
- package/lib/workbench.service.d.ts +58 -56
- package/lib//311/265workbench.service.d.ts +18 -31
- package/package.json +1 -1
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
- package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
- package/esm2022/lib/routing/router.util.mjs +0 -126
- package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
- package/lib/common/filter-by-text.pipe.d.ts +0 -12
- package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
+
import { signal } from '@angular/core';
|
|
10
11
|
/**
|
|
11
12
|
* Handle to interact with a dialog opened via {@link WorkbenchDialogService}.
|
|
12
13
|
*
|
|
@@ -16,4 +17,63 @@
|
|
|
16
17
|
*/
|
|
17
18
|
export class WorkbenchDialog {
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
/** @inheritDoc */
|
|
21
|
+
export class ɵWorkbenchDialogSize {
|
|
22
|
+
constructor() {
|
|
23
|
+
this._minHeight = signal(undefined);
|
|
24
|
+
this._height = signal(undefined);
|
|
25
|
+
this._maxHeight = signal(undefined);
|
|
26
|
+
this._minWidth = signal(undefined);
|
|
27
|
+
this._width = signal(undefined);
|
|
28
|
+
this._maxWidth = signal(undefined);
|
|
29
|
+
}
|
|
30
|
+
/** @inheritDoc */
|
|
31
|
+
get minHeight() {
|
|
32
|
+
return this._minHeight;
|
|
33
|
+
}
|
|
34
|
+
/** @inheritDoc */
|
|
35
|
+
set minHeight(minHeight) {
|
|
36
|
+
this._minHeight.set(minHeight);
|
|
37
|
+
}
|
|
38
|
+
/** @inheritDoc */
|
|
39
|
+
get height() {
|
|
40
|
+
return this._height;
|
|
41
|
+
}
|
|
42
|
+
/** @inheritDoc */
|
|
43
|
+
set height(height) {
|
|
44
|
+
this._height.set(height);
|
|
45
|
+
}
|
|
46
|
+
/** @inheritDoc */
|
|
47
|
+
get maxHeight() {
|
|
48
|
+
return this._maxHeight;
|
|
49
|
+
}
|
|
50
|
+
/** @inheritDoc */
|
|
51
|
+
set maxHeight(maxHeight) {
|
|
52
|
+
this._maxHeight.set(maxHeight);
|
|
53
|
+
}
|
|
54
|
+
/** @inheritDoc */
|
|
55
|
+
get minWidth() {
|
|
56
|
+
return this._minWidth;
|
|
57
|
+
}
|
|
58
|
+
/** @inheritDoc */
|
|
59
|
+
set minWidth(minWidth) {
|
|
60
|
+
this._minWidth.set(minWidth);
|
|
61
|
+
}
|
|
62
|
+
/** @inheritDoc */
|
|
63
|
+
get width() {
|
|
64
|
+
return this._width;
|
|
65
|
+
}
|
|
66
|
+
/** @inheritDoc */
|
|
67
|
+
set width(width) {
|
|
68
|
+
this._width.set(width);
|
|
69
|
+
}
|
|
70
|
+
/** @inheritDoc */
|
|
71
|
+
get maxWidth() {
|
|
72
|
+
return this._maxWidth;
|
|
73
|
+
}
|
|
74
|
+
/** @inheritDoc */
|
|
75
|
+
set maxWidth(maxWidth) {
|
|
76
|
+
this._maxWidth.set(maxWidth);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2RpYWxvZy93b3JrYmVuY2gtZGlhbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUU3Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQWdCLGVBQWU7Q0E2Q3BDO0FBb0RELGtCQUFrQjtBQUNsQixNQUFNLE9BQU8sb0JBQW9CO0lBQWpDO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELGVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELGNBQVMsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELFdBQU0sR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBNkRyRSxDQUFDO0lBM0RDLGtCQUFrQjtJQUNsQixJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxTQUFTLENBQUMsU0FBNkI7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLE1BQU0sQ0FBQyxNQUEwQjtRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLFNBQVMsQ0FBQyxTQUE2QjtRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLFFBQVEsQ0FBQyxRQUE0QjtRQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsUUFBUSxDQUFDLFFBQTRCO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtzaWduYWwsIFNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogSGFuZGxlIHRvIGludGVyYWN0IHdpdGggYSBkaWFsb2cgb3BlbmVkIHZpYSB7QGxpbmsgV29ya2JlbmNoRGlhbG9nU2VydmljZX0uXG4gKlxuICogVGhlIGRpYWxvZyBjb21wb25lbnQgY2FuIGluamVjdCB0aGlzIGhhbmRsZSB0byBpbnRlcmFjdCB3aXRoIHRoZSBkaWFsb2csIHN1Y2ggYXMgc2V0dGluZyB0aGUgdGl0bGUgb3IgY2xvc2luZyB0aGUgZGlhbG9nLlxuICpcbiAqIERpYWxvZyBpbnB1dHMgYXJlIGF2YWlsYWJsZSBhcyBpbnB1dCBwcm9wZXJ0aWVzIGluIHRoZSBkaWFsb2cgY29tcG9uZW50LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya2JlbmNoRGlhbG9nPFIgPSB1bmtub3duPiB7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRpdGxlIG9mIHRoZSBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHRpdGxlKCk6IFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwdWJsaWMgYWJzdHJhY3Qgc2V0IHRpdGxlKHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHByZWZlcnJlZCBkaWFsb2cgc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzaXplOiBXb3JrYmVuY2hEaWFsb2dTaXplO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBpZiB0byBhcHBseSBhIHBhZGRpbmcgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGRpYWxvZy4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBkb2VzIG5vdCBhZmZlY3QgdGhlIHBhZGRpbmcgb2YgdGhlIGRpYWxvZyBoZWFkZXIgYW5kIGZvb3Rlci5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgcGFkZGluZyBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlIENTUyB2YXJpYWJsZSBgLS1zY2ktd29ya2JlbmNoLWRpYWxvZy1wYWRkaW5nYC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgcGFkZGluZygpOiBTaWduYWw8Ym9vbGVhbj47XG4gIHB1YmxpYyBhYnN0cmFjdCBzZXQgcGFkZGluZyhwYWRkaW5nOiBib29sZWFuKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHRvIGRpc3BsYXkgYSBjbG9zZSBidXR0b24gaW4gdGhlIGRpYWxvZyBoZWFkZXIuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldCBjbG9zYWJsZSgpOiBTaWduYWw8Ym9vbGVhbj47XG4gIHB1YmxpYyBhYnN0cmFjdCBzZXQgY2xvc2FibGUoY2xvc2FibGU6IGJvb2xlYW4pO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIHVzZXIgY2FuIHJlc2l6ZSB0aGUgZGlhbG9nLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgcmVzaXphYmxlKCk6IFNpZ25hbDxib29sZWFuPjtcbiAgcHVibGljIGFic3RyYWN0IHNldCByZXNpemFibGUocmVzaXphYmxlOiBib29sZWFuKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBkaWFsb2csIGUuZy4sIHRvIGxvY2F0ZSB0aGUgZGlhbG9nIGluIHRlc3RzLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldCBjc3NDbGFzcygpOiBTaWduYWw8c3RyaW5nW10+O1xuICBwdWJsaWMgYWJzdHJhY3Qgc2V0IGNzc0NsYXNzKGNzc0NsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXSk7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZGlhbG9nLiBPcHRpb25hbGx5LCBwYXNzIGEgcmVzdWx0IG9yIGFuIGVycm9yIHRvIHRoZSBkaWFsb2cgb3BlbmVyLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKHJlc3VsdD86IFIgfCBFcnJvcik6IHZvaWQ7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgcHJlZmVycmVkIGRpYWxvZyBzaXplLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaERpYWxvZ1NpemUge1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIHRoZSBkaWFsb2cuXG4gICAqL1xuICBnZXQgbWluSGVpZ2h0KCk6IFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG4gIHNldCBtaW5IZWlnaHQobWluSGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGhlaWdodCBvZiB0aGUgZGlhbG9nLCBkaXNwbGF5aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGlmIGl0cyBjb250ZW50IG92ZXJmbG93cy5cbiAgICogSWYgbm90IHNwZWNpZmllZCwgdGhlIGRpYWxvZyBhZGFwdHMgaXRzIGhlaWdodCB0byBpdHMgY29udGV4dCBoZWlnaHQsIHJlc3BlY3RpbmcgYW55IGBtaW5IZWlnaHQnIG9yIGBtYXhIZWlnaHQnIGNvbnN0cmFpbnQuXG4gICAqL1xuICBnZXQgaGVpZ2h0KCk6IFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG4gIHNldCBoZWlnaHQoaGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBkaWFsb2cuXG4gICAqL1xuICBnZXQgbWF4SGVpZ2h0KCk6IFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG4gIHNldCBtYXhIZWlnaHQobWF4SGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltdW0gd2lkdGggb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIGdldCBtaW5XaWR0aCgpOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICBzZXQgbWluV2lkdGgobWluV2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgd2lkdGggb2YgdGhlIGRpYWxvZywgZGlzcGxheWluZyBhIGhvcml6b250YWwgc2Nyb2xsYmFyIGlmIGl0cyBjb250ZW50IG92ZXJmbG93cy5cbiAgICogSWYgbm90IHNwZWNpZmllZCwgdGhlIGRpYWxvZyBhZGFwdHMgaXRzIHdpZHRoIHRvIGl0cyBjb250ZXh0IHdpZHRoLCByZXNwZWN0aW5nIGFueSBgbWluV2lkdGgnIG9yIGBtYXhXaWR0aCcgY29uc3RyYWludC5cbiAgICovXG4gIGdldCB3aWR0aCgpOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICBzZXQgd2lkdGgod2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgZGlhbG9nLlxuICAgKi9cbiAgZ2V0IG1heFdpZHRoKCk6IFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG4gIHNldCBtYXhXaWR0aChtYXhXaWR0aDogc3RyaW5nIHwgdW5kZWZpbmVkKTtcbn1cblxuLyoqIEBpbmhlcml0RG9jICovXG5leHBvcnQgY2xhc3MgybVXb3JrYmVuY2hEaWFsb2dTaXplIGltcGxlbWVudHMgV29ya2JlbmNoRGlhbG9nU2l6ZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWluSGVpZ2h0ID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGVpZ2h0ID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWF4SGVpZ2h0ID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWluV2lkdGggPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93aWR0aCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21heFdpZHRoID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBtaW5IZWlnaHQoKTogU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl9taW5IZWlnaHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBtaW5IZWlnaHQobWluSGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9taW5IZWlnaHQuc2V0KG1pbkhlaWdodCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBoZWlnaHQoKTogU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBoZWlnaHQoaGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9oZWlnaHQuc2V0KGhlaWdodCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBtYXhIZWlnaHQoKTogU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXhIZWlnaHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBtYXhIZWlnaHQobWF4SGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9tYXhIZWlnaHQuc2V0KG1heEhlaWdodCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBtaW5XaWR0aCgpOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21pbldpZHRoO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgbWluV2lkdGgobWluV2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21pbldpZHRoLnNldChtaW5XaWR0aCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCB3aWR0aCgpOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgd2lkdGgod2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3dpZHRoLnNldCh3aWR0aCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBtYXhXaWR0aCgpOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21heFdpZHRoO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgbWF4V2lkdGgobWF4V2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21heFdpZHRoLnNldChtYXhXaWR0aCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
import { BehaviorSubject, combineLatest, concatWith, delay, EMPTY, firstValueFrom, map, merge, of, Subject, switchMap } from 'rxjs';
|
|
11
|
-
import { inject, Injector, NgZone } from '@angular/core';
|
|
12
|
-
import { WorkbenchDialog } from './workbench-dialog';
|
|
11
|
+
import { ApplicationRef, EnvironmentInjector, inject, Injector, NgZone, signal } from '@angular/core';
|
|
12
|
+
import { WorkbenchDialog, ɵWorkbenchDialogSize } from './workbench-dialog';
|
|
13
13
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
14
14
|
import { Overlay } from '@angular/cdk/overlay';
|
|
15
15
|
import { WorkbenchDialogComponent } from './workbench-dialog.component';
|
|
@@ -25,29 +25,29 @@ import { WORKBENCH_ELEMENT_REF } from '../content-projection/view-container.refe
|
|
|
25
25
|
import { Arrays } from '@scion/toolkit/util';
|
|
26
26
|
import { WorkbenchConfig } from '../workbench-config';
|
|
27
27
|
import { distinctUntilChanged, filter } from 'rxjs/operators';
|
|
28
|
-
import {
|
|
28
|
+
import { provideViewContext } from '../view/view-context-provider';
|
|
29
29
|
/** @inheritDoc */
|
|
30
30
|
export class ɵWorkbenchDialog {
|
|
31
|
-
constructor(component, _options) {
|
|
31
|
+
constructor(id, component, _options) {
|
|
32
|
+
this.id = id;
|
|
32
33
|
this.component = component;
|
|
33
34
|
this._options = _options;
|
|
35
|
+
this._dialogEnvironmentInjector = inject(EnvironmentInjector);
|
|
34
36
|
this._workbenchDialogRegistry = inject(WorkbenchDialogRegistry);
|
|
35
37
|
this._zone = inject(NgZone);
|
|
36
38
|
this._workbenchConfig = inject(WorkbenchConfig);
|
|
37
39
|
this._destroyRef = new ɵDestroyRef();
|
|
38
40
|
this._blink$ = new Subject();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.
|
|
41
|
+
this._title = signal(undefined);
|
|
42
|
+
this._closable = signal(true);
|
|
43
|
+
this._resizable = signal(true);
|
|
44
|
+
this._padding = signal(true);
|
|
45
|
+
this._cssClass = signal([]);
|
|
43
46
|
/**
|
|
44
47
|
* Indicates whether this dialog is blocked by other dialog(s) that overlay this dialog.
|
|
45
48
|
*/
|
|
46
49
|
this.blockedBy$ = new BehaviorSubject(null);
|
|
47
|
-
this.size =
|
|
48
|
-
this.closable = true;
|
|
49
|
-
this.resizable = true;
|
|
50
|
-
this.padding = true;
|
|
50
|
+
this.size = new ɵWorkbenchDialogSize();
|
|
51
51
|
this.actions = new Array();
|
|
52
52
|
this.blinking$ = new BehaviorSubject(false);
|
|
53
53
|
this.context = {
|
|
@@ -55,7 +55,7 @@ export class ɵWorkbenchDialog {
|
|
|
55
55
|
};
|
|
56
56
|
this._overlayRef = this.createOverlay();
|
|
57
57
|
this._portal = this.createPortal();
|
|
58
|
-
this._cssClass
|
|
58
|
+
this._cssClass.set(Arrays.coerce(this._options.cssClass));
|
|
59
59
|
this._attached$ = this.monitorHostElementAttached$();
|
|
60
60
|
this.hideOnHostElementDetachOrViewDrag();
|
|
61
61
|
this.stickToHostElement();
|
|
@@ -138,28 +138,72 @@ export class ɵWorkbenchDialog {
|
|
|
138
138
|
dispose: () => this.actions = this.actions.filter(candidate => candidate !== action),
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
|
-
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
getPositionInDialogStack() {
|
|
145
|
-
return this._workbenchDialogRegistry.indexOf(this);
|
|
141
|
+
/** @inheritDoc */
|
|
142
|
+
get title() {
|
|
143
|
+
return this._title;
|
|
146
144
|
}
|
|
147
145
|
/** @inheritDoc */
|
|
148
|
-
set
|
|
149
|
-
this.
|
|
146
|
+
set title(title) {
|
|
147
|
+
this._title.set(title);
|
|
148
|
+
}
|
|
149
|
+
/** @inheritDoc */
|
|
150
|
+
get closable() {
|
|
151
|
+
return this._closable;
|
|
152
|
+
}
|
|
153
|
+
/** @inheritDoc */
|
|
154
|
+
set closable(closable) {
|
|
155
|
+
this._closable.set(closable);
|
|
156
|
+
}
|
|
157
|
+
/** @inheritDoc */
|
|
158
|
+
get resizable() {
|
|
159
|
+
return this._resizable;
|
|
160
|
+
}
|
|
161
|
+
/** @inheritDoc */
|
|
162
|
+
set resizable(resizable) {
|
|
163
|
+
this._resizable.set(resizable);
|
|
164
|
+
}
|
|
165
|
+
/** @inheritDoc */
|
|
166
|
+
get padding() {
|
|
167
|
+
return this._padding;
|
|
168
|
+
}
|
|
169
|
+
/** @inheritDoc */
|
|
170
|
+
set padding(padding) {
|
|
171
|
+
this._padding.set(padding);
|
|
150
172
|
}
|
|
151
173
|
/** @inheritDoc */
|
|
152
174
|
get cssClass() {
|
|
153
175
|
return this._cssClass;
|
|
154
176
|
}
|
|
155
177
|
/** @inheritDoc */
|
|
178
|
+
set cssClass(cssClass) {
|
|
179
|
+
this._cssClass.set(new Array().concat(this._options.cssClass ?? []).concat(cssClass));
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Returns the position of the dialog in the dialog stack.
|
|
183
|
+
*/
|
|
184
|
+
getPositionInDialogStack() {
|
|
185
|
+
return this._workbenchDialogRegistry.indexOf(this);
|
|
186
|
+
}
|
|
187
|
+
/** @inheritDoc */
|
|
156
188
|
blink() {
|
|
157
189
|
this._blink$.next();
|
|
158
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Reference to the handle's injector. The injector will be destroyed when closing the dialog.
|
|
193
|
+
*/
|
|
194
|
+
get injector() {
|
|
195
|
+
return this._dialogEnvironmentInjector;
|
|
196
|
+
}
|
|
159
197
|
createPortal() {
|
|
160
198
|
return new ComponentPortal(WorkbenchDialogComponent, null, Injector.create({
|
|
161
|
-
|
|
199
|
+
// Use the root environment injector instead of the dialog's environment injector.
|
|
200
|
+
// Otherwise, if an application-modal dialog opens a view-modal dialog, the view-modal dialog
|
|
201
|
+
// would not open because it uses the same environment injector, which, however, was destroyed
|
|
202
|
+
// when closed the application-modal dialog. View-modal dialogs are only opened after
|
|
203
|
+
// all application-modal dialogs have been closed.
|
|
204
|
+
parent: this._options.injector ?? inject(ApplicationRef).injector,
|
|
162
205
|
providers: [
|
|
206
|
+
provideViewContext(this.context.view),
|
|
163
207
|
{ provide: ɵWorkbenchDialog, useValue: this },
|
|
164
208
|
{ provide: WorkbenchDialog, useExisting: ɵWorkbenchDialog },
|
|
165
209
|
],
|
|
@@ -216,7 +260,7 @@ export class ɵWorkbenchDialog {
|
|
|
216
260
|
const viewDragService = inject(ViewDragService);
|
|
217
261
|
const viewDrag$ = merge(viewDragService.viewDragStart$.pipe(map(() => true)), viewDragService.viewDragEnd$.pipe(map(() => false)), of(false));
|
|
218
262
|
combineLatest([this._attached$, viewDrag$])
|
|
219
|
-
.pipe(subscribeInside(fn => this._zone.runOutsideAngular(fn)), takeUntilDestroyed(
|
|
263
|
+
.pipe(subscribeInside(fn => this._zone.runOutsideAngular(fn)), takeUntilDestroyed())
|
|
220
264
|
.subscribe(([attached, dragging]) => {
|
|
221
265
|
const hideDialog = !attached || dragging;
|
|
222
266
|
// Hide via `visibility: hidden` instead of `display: none` in order to preserve the dimension of the dialog.
|
|
@@ -235,7 +279,7 @@ export class ɵWorkbenchDialog {
|
|
|
235
279
|
const workbenchRootElement$ = () => inject(WORKBENCH_ELEMENT_REF).ref$.pipe(map(ref => ref?.element.nativeElement));
|
|
236
280
|
const hostElement$ = this.context.view ? workbenchViewElement$(this.context.view) : workbenchRootElement$();
|
|
237
281
|
hostElement$
|
|
238
|
-
.pipe(switchMap(hostElement => hostElement ? fromDimension$(hostElement) : EMPTY), map(({ element: hostElement }) => hostElement.getBoundingClientRect()), subscribeInside(fn => this._zone.runOutsideAngular(fn)), takeUntilDestroyed(
|
|
282
|
+
.pipe(switchMap(hostElement => hostElement ? fromDimension$(hostElement) : EMPTY), map(({ element: hostElement }) => hostElement.getBoundingClientRect()), subscribeInside(fn => this._zone.runOutsideAngular(fn)), takeUntilDestroyed())
|
|
239
283
|
.subscribe(({ top, left, width, height }) => {
|
|
240
284
|
setStyle(this._overlayRef.hostElement, {
|
|
241
285
|
top: `${top}px`,
|
|
@@ -251,12 +295,12 @@ export class ɵWorkbenchDialog {
|
|
|
251
295
|
*/
|
|
252
296
|
blockWhenNotOnTop() {
|
|
253
297
|
this._workbenchDialogRegistry.top$({ viewId: this.context.view?.id })
|
|
254
|
-
.pipe(map(top => top === this ? null : top), takeUntilDestroyed(
|
|
298
|
+
.pipe(map(top => top === this ? null : top), takeUntilDestroyed())
|
|
255
299
|
.subscribe(this.blockedBy$);
|
|
256
300
|
}
|
|
257
301
|
blinkOnRequest() {
|
|
258
302
|
this._blink$
|
|
259
|
-
.pipe(switchMap(() => of(true).pipe(concatWith(of(false).pipe(delay(300))))), distinctUntilChanged(), takeUntilDestroyed(
|
|
303
|
+
.pipe(switchMap(() => of(true).pipe(concatWith(of(false).pipe(delay(300))))), distinctUntilChanged(), takeUntilDestroyed())
|
|
260
304
|
.subscribe(this.blinking$);
|
|
261
305
|
}
|
|
262
306
|
/**
|
|
@@ -264,9 +308,10 @@ export class ɵWorkbenchDialog {
|
|
|
264
308
|
*/
|
|
265
309
|
destroy() {
|
|
266
310
|
if (!this._destroyRef.destroyed) {
|
|
311
|
+
this._dialogEnvironmentInjector.destroy();
|
|
267
312
|
this._destroyRef.destroy();
|
|
268
313
|
this._overlayRef.dispose();
|
|
269
314
|
}
|
|
270
315
|
}
|
|
271
316
|
}
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlJLE9BQU8sRUFBZSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBRXhFLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGVBQWUsRUFB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QztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQzthQUNoRSxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDckMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNyQzthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLE9BQU87YUFDVCxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3RFLG9CQUFvQixFQUFFLEVBQ3RCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDckM7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbmNhdFdpdGgsIGRlbGF5LCBFTVBUWSwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZywgV29ya2JlbmNoRGlhbG9nU2l6ZX0gZnJvbSAnLi93b3JrYmVuY2gtZGlhbG9nJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nT3B0aW9uc30gZnJvbSAnLi93b3JrYmVuY2gtZGlhbG9nLm9wdGlvbnMnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtPdmVybGF5LCBPdmVybGF5UmVmfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi93b3JrYmVuY2gtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge8m1V29ya2JlbmNoVmlld30gZnJvbSAnLi4vdmlldy/JtXdvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nUmVnaXN0cnl9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge8m1RGVzdHJveVJlZn0gZnJvbSAnLi4vY29tbW9uL8m1ZGVzdHJveS1yZWYnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7c2V0U3R5bGV9IGZyb20gJy4uL2NvbW1vbi9kb20udXRpbCc7XG5pbXBvcnQge2Zyb21EaW1lbnNpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7c3Vic2NyaWJlSW5zaWRlfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7V09SS0JFTkNIX0VMRU1FTlRfUkVGfSBmcm9tICcuLi9jb250ZW50LXByb2plY3Rpb24vdmlldy1jb250YWluZXIucmVmZXJlbmNlJztcbmltcG9ydCB7QXJyYXlzfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7V29ya2JlbmNoQ29uZmlnfSBmcm9tICcuLi93b3JrYmVuY2gtY29uZmlnJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dBY3Rpb25EaXJlY3RpdmV9IGZyb20gJy4vZGlhbG9nLWZvb3Rlci93b3JrYmVuY2gtZGlhbG9nLWFjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dGb290ZXJEaXJlY3RpdmV9IGZyb20gJy4vZGlhbG9nLWZvb3Rlci93b3JrYmVuY2gtZGlhbG9nLWZvb3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dIZWFkZXJEaXJlY3RpdmV9IGZyb20gJy4vZGlhbG9nLWhlYWRlci93b3JrYmVuY2gtZGlhbG9nLWhlYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi4vZ2xhc3MtcGFuZS9ibG9ja2FibGUnO1xuaW1wb3J0IHtCbG9ja2luZ30gZnJvbSAnLi4vZ2xhc3MtcGFuZS9ibG9ja2luZyc7XG5pbXBvcnQge1VVSUR9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V1aWQnO1xuXG4vKiogQGluaGVyaXREb2MgKi9cbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaERpYWxvZzxSID0gdW5rbm93bj4gaW1wbGVtZW50cyBXb3JrYmVuY2hEaWFsb2c8Uj4sIEJsb2NrYWJsZSwgQmxvY2tpbmcge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hDb25maWcgPSBpbmplY3QoV29ya2JlbmNoQ29uZmlnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IG5ldyDJtURlc3Ryb3lSZWYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXR0YWNoZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIF9ibGluayQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBSZXN1bHQgKG9yIGVycm9yKSB0byBiZSBwYXNzZWQgdG8gdGhlIGRpYWxvZyBvcGVuZXIuXG4gICAqL1xuICBwcml2YXRlIF9yZXN1bHQ6IFIgfCBFcnJvciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8V29ya2JlbmNoRGlhbG9nQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfY3NzQ2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIGlkZW50aXR5IG9mIHRoaXMgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlkID0gVVVJRC5yYW5kb21VVUlEKCk7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIGRpYWxvZyBpcyBibG9ja2VkIGJ5IG90aGVyIGRpYWxvZyhzKSB0aGF0IG92ZXJsYXkgdGhpcyBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tlZEJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8ybVXb3JrYmVuY2hEaWFsb2cgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpemU6IFdvcmtiZW5jaERpYWxvZ1NpemUgPSB7fTtcbiAgcHVibGljIHRpdGxlOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjbG9zYWJsZSA9IHRydWU7XG4gIHB1YmxpYyByZXNpemFibGUgPSB0cnVlO1xuICBwdWJsaWMgcGFkZGluZyA9IHRydWU7XG4gIHB1YmxpYyBoZWFkZXI6IFdvcmtiZW5jaERpYWxvZ0hlYWRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGZvb3RlcjogV29ya2JlbmNoRGlhbG9nRm9vdGVyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgYWN0aW9ucyA9IG5ldyBBcnJheTxXb3JrYmVuY2hEaWFsb2dBY3Rpb25EaXJlY3RpdmU+KCk7XG4gIHB1YmxpYyBibGlua2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGNvbnRleHQgPSB7XG4gICAgdmlldzogaW5qZWN0KMm1V29ya2JlbmNoVmlldywge29wdGlvbmFsOiB0cnVlfSksXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTx1bmtub3duPiwgcHVibGljIF9vcHRpb25zOiBXb3JrYmVuY2hEaWFsb2dPcHRpb25zKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgIHRoaXMuX3BvcnRhbCA9IHRoaXMuY3JlYXRlUG9ydGFsKCk7XG4gICAgdGhpcy5fY3NzQ2xhc3MgPSBBcnJheXMuY29lcmNlKHRoaXMuX29wdGlvbnMuY3NzQ2xhc3MpLmpvaW4oJyAnKTtcbiAgICB0aGlzLl9hdHRhY2hlZCQgPSB0aGlzLm1vbml0b3JIb3N0RWxlbWVudEF0dGFjaGVkJCgpO1xuXG4gICAgdGhpcy5oaWRlT25Ib3N0RWxlbWVudERldGFjaE9yVmlld0RyYWcoKTtcbiAgICB0aGlzLnN0aWNrVG9Ib3N0RWxlbWVudCgpO1xuICAgIHRoaXMuYmxvY2tXaGVuTm90T25Ub3AoKTtcbiAgICB0aGlzLnJlc3RvcmVGb2N1c09uQXR0YWNoKCk7XG4gICAgdGhpcy5yZXN0b3JlRm9jdXNPblVuYmxvY2soKTtcbiAgICB0aGlzLmJsaW5rT25SZXF1ZXN0KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb3BlbigpOiBQcm9taXNlPFIgfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBXYWl0IGZvciB0aGUgb3ZlcmxheSB0byBiZSBpbml0aWFsbHkgcG9zaXRpb25lZCB0byBoYXZlIGEgc21vb3RoIHNsaWRlLWluIGFuaW1hdGlvbi5cbiAgICBpZiAodGhpcy5hbmltYXRlKSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShmcm9tRGltZW5zaW9uJCh0aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50KSk7XG4gICAgfVxuXG4gICAgLy8gQXR0YWNoIHRoZSBkaWFsb2cgcG9ydGFsIHRvIHRoZSBvdmVybGF5LlxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG5cbiAgICAvLyBFbnN1cmUgdG8gZGVzdHJveSB0aGlzIGhhbmRsZSBvbiBicm93c2VyIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5kZXN0cm95KCkpO1xuXG4gICAgLy8gVHJpZ2dlciBhIG1hbnVhbCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIHRvIGF2b2lkICdFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yJ1xuICAgIC8vIHdoZW4gdGhlIGRpYWxvZyBzZXRzIGRpYWxvZy1zcGVjaWZpYyBwcm9wZXJ0aWVzIHN1Y2ggYXMgdGl0bGUgb3Igc2l6ZSBkdXJpbmcgY29uc3RydWN0aW9uLlxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAvLyBXYWl0IGZvciB0aGUgZGlhbG9nIHRvIGNsb3NlLCByZXNvbHZpbmcgdG8gaXRzIHJlc3VsdCBvciByZWplY3RpbmcgaWYgY2xvc2VkIHdpdGggYW4gZXJyb3IuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFIgfCB1bmRlZmluZWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Rlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVzdWx0IGluc3RhbmNlb2YgRXJyb3IgPyByZWplY3QodGhpcy5fcmVzdWx0KSA6IHJlc29sdmUodGhpcy5fcmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBjbG9zZShyZXN1bHQ/OiBSIHwgRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgdGhpcy5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogSW5wdXRzIHBhc3NlZCB0byB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIGdldCBpbnB1dHMoKToge1tuYW1lOiBzdHJpbmddOiB1bmtub3dufSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnMuaW5wdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0byBhbmltYXRlIHRoZSBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFuaW1hdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnMuYW5pbWF0ZSA/PyBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmJsb2NrZWRCeSQudmFsdWUpIHtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZj8uaW5zdGFuY2UuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJIZWFkZXIoaGVhZGVyOiBXb3JrYmVuY2hEaWFsb2dIZWFkZXJEaXJlY3RpdmUpOiBEaXNwb3NhYmxlIHtcbiAgICB0aGlzLmhlYWRlciA9IGhlYWRlcjtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXIgPT09IGhlYWRlcikge1xuICAgICAgICAgIHRoaXMuaGVhZGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJGb290ZXIoZm9vdGVyOiBXb3JrYmVuY2hEaWFsb2dGb290ZXJEaXJlY3RpdmUpOiBEaXNwb3NhYmxlIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1tEaWFsb2dJbml0RXJyb3JdIEN1c3RvbSBkaWFsb2cgZm9vdGVyIG5vdCBzdXBwb3J0ZWQgaWYgdXNpbmcgZGlhbG9nIGFjdGlvbnMuJyk7XG4gICAgfVxuICAgIHRoaXMuZm9vdGVyID0gZm9vdGVyO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwb3NlOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZvb3RlciA9PT0gZm9vdGVyKSB7XG4gICAgICAgICAgdGhpcy5mb290ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckFjdGlvbihhY3Rpb246IFdvcmtiZW5jaERpYWxvZ0FjdGlvbkRpcmVjdGl2ZSk6IERpc3Bvc2FibGUge1xuICAgIGlmICh0aGlzLmZvb3Rlcikge1xuICAgICAgdGhyb3cgRXJyb3IoJ1tEaWFsb2dJbml0RXJyb3JdIERpYWxvZyBhY3Rpb25zIG5vdCBzdXBwb3J0ZWQgaWYgdXNpbmcgYSBjdXN0b20gZGlhbG9nIGZvb3Rlci4nKTtcbiAgICB9XG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zLmNvbmNhdChhY3Rpb24pO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwb3NlOiAoKSA9PiB0aGlzLmFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKGNhbmRpZGF0ZSA9PiBjYW5kaWRhdGUgIT09IGFjdGlvbiksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nIGluIHRoZSBkaWFsb2cgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgZ2V0UG9zaXRpb25JbkRpYWxvZ1N0YWNrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5LmluZGV4T2YodGhpcyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBjc3NDbGFzcyhjc3NDbGFzczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0aGlzLl9jc3NDbGFzcyA9IG5ldyBBcnJheTxzdHJpbmc+KCkuY29uY2F0KHRoaXMuX29wdGlvbnMuY3NzQ2xhc3MgPz8gW10pLmNvbmNhdChjc3NDbGFzcykuam9pbignICcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgY3NzQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3NzQ2xhc3M7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGJsaW5rKCk6IHZvaWQge1xuICAgIHRoaXMuX2JsaW5rJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVBvcnRhbCgpOiBDb21wb25lbnRQb3J0YWw8V29ya2JlbmNoRGlhbG9nQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoV29ya2JlbmNoRGlhbG9nQ29tcG9uZW50LCBudWxsLCBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiBpbmplY3QoSW5qZWN0b3IpLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiDJtVdvcmtiZW5jaERpYWxvZywgdXNlVmFsdWU6IHRoaXN9LFxuICAgICAgICB7cHJvdmlkZTogV29ya2JlbmNoRGlhbG9nLCB1c2VFeGlzdGluZzogybVXb3JrYmVuY2hEaWFsb2d9LFxuICAgICAgXSxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRlZGljYXRlZCBvdmVybGF5IHBlciBkaWFsb2cgdG8gcGxhY2UgaXQgb24gdG9wIG9mIHByZXZpb3VzbHkgY3JlYXRlZCBvdmVybGF5cywgc3VjaCBhcyBkaWFsb2dzLCBwb3B1cHMsIGRyb3Bkb3ducywgZXRjLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gICAgcmV0dXJuIG92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsIC8vIGRpc3Bvc2UgZGlhbG9nIG9uIGJyb3dzZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb25cbiAgICAgIHBhbmVsQ2xhc3M6IFsnd2ItZGlhbG9nLW1vZGFsaXR5LWNvbnRleHQnXSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IG92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIGZvY3VzIHdoZW4gcmUtYXR0YWNoaW5nIHRoaXMgZGlhbG9nLlxuICAgKi9cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXNPbkF0dGFjaCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hdHRhY2hlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIGZvY3VzIHdoZW4gdW5ibG9ja2luZyB0aGlzIGRpYWxvZy5cbiAgICovXG4gIHByaXZhdGUgcmVzdG9yZUZvY3VzT25VbmJsb2NrKCk6IHZvaWQge1xuICAgIHRoaXMuYmxvY2tlZEJ5JFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihibG9ja2VkQnkgPT4gIWJsb2NrZWRCeSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3JzIGF0dGFjaG1lbnQgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgbW9uaXRvckhvc3RFbGVtZW50QXR0YWNoZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmNvbnRleHQudmlldykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC52aWV3LnBvcnRhbC5hdHRhY2hlZCQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl93b3JrYmVuY2hDb25maWcuZGlhbG9nPy5tb2RhbGl0eVNjb3BlID09PSAndmlld3BvcnQnKSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKS5yZWYkLnBpcGUobWFwKHJlZiA9PiAhIXJlZikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoaXMgZGlhbG9nIHdoZW4gZWl0aGVyIGl0cyBob3N0IGVsZW1lbnQgaXMgZGV0YWNoZWQgb3IgZHVyaW5nIHZpZXcgZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIGhpZGVPbkhvc3RFbGVtZW50RGV0YWNoT3JWaWV3RHJhZygpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3RHJhZ1NlcnZpY2UgPSBpbmplY3QoVmlld0RyYWdTZXJ2aWNlKTtcbiAgICBjb25zdCB2aWV3RHJhZyQgPSBtZXJnZShcbiAgICAgIHZpZXdEcmFnU2VydmljZS52aWV3RHJhZ1N0YXJ0JC5waXBlKG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICB2aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdFbmQkLnBpcGUobWFwKCgpID0+IGZhbHNlKSksXG4gICAgICBvZihmYWxzZSksIC8vIHRvIGluaXRpYWxpemUgYGNvbWJpbmVMYXRlc3RgXG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2F0dGFjaGVkJCwgdmlld0RyYWckXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoZm4gPT4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbYXR0YWNoZWQsIGRyYWdnaW5nXSkgPT4ge1xuICAgICAgICBjb25zdCBoaWRlRGlhbG9nID0gIWF0dGFjaGVkIHx8IGRyYWdnaW5nO1xuXG4gICAgICAgIC8vIEhpZGUgdmlhIGB2aXNpYmlsaXR5OiBoaWRkZW5gIGluc3RlYWQgb2YgYGRpc3BsYXk6IG5vbmVgIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBkaW1lbnNpb24gb2YgdGhlIGRpYWxvZy5cbiAgICAgICAgc2V0U3R5bGUodGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudCwge3Zpc2liaWxpdHk6IGhpZGVEaWFsb2cgPyAnaGlkZGVuJyA6IG51bGx9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsaWducyB0aGlzIGRpYWxvZyB3aXRoIHRoZSBib3VuZGFyaWVzIG9mIHRoZSBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIHN0aWNrVG9Ib3N0RWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3B0aW9ucy5tb2RhbGl0eSA9PT0gJ2FwcGxpY2F0aW9uJyAmJiB0aGlzLl93b3JrYmVuY2hDb25maWcuZGlhbG9nPy5tb2RhbGl0eVNjb3BlID09PSAndmlld3BvcnQnKSB7XG4gICAgICBzZXRTdHlsZSh0aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50LCB7aW5zZXQ6ICcwJ30pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHdvcmtiZW5jaFZpZXdFbGVtZW50JCA9ICh2aWV3OiDJtVdvcmtiZW5jaFZpZXcpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiA9PiBvZih2aWV3LnBvcnRhbC5jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICBjb25zdCB3b3JrYmVuY2hSb290RWxlbWVudCQgPSAoKTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4gPT4gaW5qZWN0KFdPUktCRU5DSF9FTEVNRU5UX1JFRikucmVmJC5waXBlKG1hcChyZWYgPT4gcmVmPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKTtcbiAgICAgIGNvbnN0IGhvc3RFbGVtZW50JCA9IHRoaXMuY29udGV4dC52aWV3ID8gd29ya2JlbmNoVmlld0VsZW1lbnQkKHRoaXMuY29udGV4dC52aWV3KSA6IHdvcmtiZW5jaFJvb3RFbGVtZW50JCgpO1xuXG4gICAgICBob3N0RWxlbWVudCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKGhvc3RFbGVtZW50ID0+IGhvc3RFbGVtZW50ID8gZnJvbURpbWVuc2lvbiQoaG9zdEVsZW1lbnQpIDogRU1QVFkpLFxuICAgICAgICAgIG1hcCgoe2VsZW1lbnQ6IGhvc3RFbGVtZW50fSkgPT4gaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLFxuICAgICAgICAgIHN1YnNjcmliZUluc2lkZShmbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGZuKSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHt0b3AsIGxlZnQsIHdpZHRoLCBoZWlnaHR9KSA9PiB7XG4gICAgICAgICAgc2V0U3R5bGUodGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudCwge1xuICAgICAgICAgICAgdG9wOiBgJHt0b3B9cHhgLFxuICAgICAgICAgICAgbGVmdDogYCR7bGVmdH1weGAsXG4gICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQmxvY2tzIHRoaXMgZGlhbG9nIGlmIG5vdCB0aGUgdG9wbW9zdCBkaWFsb2cgaW4gaXRzIGNvbnRleHQuXG4gICAqL1xuICBwcml2YXRlIGJsb2NrV2hlbk5vdE9uVG9wKCk6IHZvaWQge1xuICAgIHRoaXMuX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5LnRvcCQoe3ZpZXdJZDogdGhpcy5jb250ZXh0LnZpZXc/LmlkfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAodG9wID0+IHRvcCA9PT0gdGhpcyA/IG51bGwgOiB0b3ApLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYmxvY2tlZEJ5JCk7XG4gIH1cblxuICBwcml2YXRlIGJsaW5rT25SZXF1ZXN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2JsaW5rJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBvZih0cnVlKS5waXBlKGNvbmNhdFdpdGgob2YoZmFsc2UpLnBpcGUoZGVsYXkoMzAwKSkpKSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5ibGlua2luZyQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoaXMgZGlhbG9nIGFuZCBhc3NvY2lhdGVkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGVzdHJveVJlZi5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuX2Rlc3Ryb3lSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlJLE9BQU8sRUFBQyxjQUFjLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsZUFBZSxFQUF1QixvQkFBb0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxF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QUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGNvbmNhdFdpdGgsIGRlbGF5LCBFTVBUWSwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50UmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIFNpZ25hbCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nLCBXb3JrYmVuY2hEaWFsb2dTaXplLCDJtVdvcmtiZW5jaERpYWxvZ1NpemV9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ09wdGlvbnN9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5vcHRpb25zJztcbmltcG9ydCB7Q29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4uL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5fSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cucmVnaXN0cnknO1xuaW1wb3J0IHvJtURlc3Ryb3lSZWZ9IGZyb20gJy4uL2NvbW1vbi/JtWRlc3Ryb3ktcmVmJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge3NldFN0eWxlfSBmcm9tICcuLi9jb21tb24vZG9tLnV0aWwnO1xuaW1wb3J0IHtmcm9tRGltZW5zaW9uJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5pbXBvcnQge3N1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge1dPUktCRU5DSF9FTEVNRU5UX1JFRn0gZnJvbSAnLi4vY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZSc7XG5pbXBvcnQge0FycmF5c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge1dvcmtiZW5jaENvbmZpZ30gZnJvbSAnLi4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nQWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL2RpYWxvZy1mb290ZXIvd29ya2JlbmNoLWRpYWxvZy1hY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nRm9vdGVyRGlyZWN0aXZlfSBmcm9tICcuL2RpYWxvZy1mb290ZXIvd29ya2JlbmNoLWRpYWxvZy1mb290ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nSGVhZGVyRGlyZWN0aXZlfSBmcm9tICcuL2RpYWxvZy1oZWFkZXIvd29ya2JlbmNoLWRpYWxvZy1oZWFkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7RGlzcG9zYWJsZX0gZnJvbSAnLi4vY29tbW9uL2Rpc3Bvc2FibGUnO1xuaW1wb3J0IHtCbG9ja2FibGV9IGZyb20gJy4uL2dsYXNzLXBhbmUvYmxvY2thYmxlJztcbmltcG9ydCB7QmxvY2tpbmd9IGZyb20gJy4uL2dsYXNzLXBhbmUvYmxvY2tpbmcnO1xuaW1wb3J0IHtwcm92aWRlVmlld0NvbnRleHR9IGZyb20gJy4uL3ZpZXcvdmlldy1jb250ZXh0LXByb3ZpZGVyJztcblxuLyoqIEBpbmhlcml0RG9jICovXG5leHBvcnQgY2xhc3MgybVXb3JrYmVuY2hEaWFsb2c8UiA9IHVua25vd24+IGltcGxlbWVudHMgV29ya2JlbmNoRGlhbG9nPFI+LCBCbG9ja2FibGUsIEJsb2NraW5nIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dFbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hDb25maWcgPSBpbmplY3QoV29ya2JlbmNoQ29uZmlnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IG5ldyDJtURlc3Ryb3lSZWYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXR0YWNoZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9ibGluayQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aXRsZSA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NhYmxlID0gc2lnbmFsKHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemFibGUgPSBzaWduYWwodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhZGRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nzc0NsYXNzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgLyoqXG4gICAqIFJlc3VsdCAob3IgZXJyb3IpIHRvIGJlIHBhc3NlZCB0byB0aGUgZGlhbG9nIG9wZW5lci5cbiAgICovXG4gIHByaXZhdGUgX3Jlc3VsdDogUiB8IEVycm9yIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxXb3JrYmVuY2hEaWFsb2dDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIGRpYWxvZyBpcyBibG9ja2VkIGJ5IG90aGVyIGRpYWxvZyhzKSB0aGF0IG92ZXJsYXkgdGhpcyBkaWFsb2cuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tlZEJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8ybVXb3JrYmVuY2hEaWFsb2cgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpemU6IFdvcmtiZW5jaERpYWxvZ1NpemUgPSBuZXcgybVXb3JrYmVuY2hEaWFsb2dTaXplKCk7XG4gIHB1YmxpYyBoZWFkZXI6IFdvcmtiZW5jaERpYWxvZ0hlYWRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGZvb3RlcjogV29ya2JlbmNoRGlhbG9nRm9vdGVyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgYWN0aW9ucyA9IG5ldyBBcnJheTxXb3JrYmVuY2hEaWFsb2dBY3Rpb25EaXJlY3RpdmU+KCk7XG4gIHB1YmxpYyBibGlua2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGNvbnRleHQgPSB7XG4gICAgdmlldzogaW5qZWN0KMm1V29ya2JlbmNoVmlldywge29wdGlvbmFsOiB0cnVlfSksXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHB1YmxpYyBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8dW5rbm93bj4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX29wdGlvbnM6IFdvcmtiZW5jaERpYWxvZ09wdGlvbnMpIHtcbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy5fcG9ydGFsID0gdGhpcy5jcmVhdGVQb3J0YWwoKTtcbiAgICB0aGlzLl9jc3NDbGFzcy5zZXQoQXJyYXlzLmNvZXJjZSh0aGlzLl9vcHRpb25zLmNzc0NsYXNzKSk7XG4gICAgdGhpcy5fYXR0YWNoZWQkID0gdGhpcy5tb25pdG9ySG9zdEVsZW1lbnRBdHRhY2hlZCQoKTtcblxuICAgIHRoaXMuaGlkZU9uSG9zdEVsZW1lbnREZXRhY2hPclZpZXdEcmFnKCk7XG4gICAgdGhpcy5zdGlja1RvSG9zdEVsZW1lbnQoKTtcbiAgICB0aGlzLmJsb2NrV2hlbk5vdE9uVG9wKCk7XG4gICAgdGhpcy5yZXN0b3JlRm9jdXNPbkF0dGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzT25VbmJsb2NrKCk7XG4gICAgdGhpcy5ibGlua09uUmVxdWVzdCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4oKTogUHJvbWlzZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIG92ZXJsYXkgdG8gYmUgaW5pdGlhbGx5IHBvc2l0aW9uZWQgdG8gaGF2ZSBhIHNtb290aCBzbGlkZS1pbiBhbmltYXRpb24uXG4gICAgaWYgKHRoaXMuYW5pbWF0ZSkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oZnJvbURpbWVuc2lvbiQodGhpcy5fb3ZlcmxheVJlZi5ob3N0RWxlbWVudCkpO1xuICAgIH1cblxuICAgIC8vIEF0dGFjaCB0aGUgZGlhbG9nIHBvcnRhbCB0byB0aGUgb3ZlcmxheS5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuXG4gICAgLy8gRW5zdXJlIHRvIGRlc3Ryb3kgdGhpcyBoYW5kbGUgb24gYnJvd3NlciBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbi5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYub25EZXN0cm95KCgpID0+IHRoaXMuZGVzdHJveSgpKTtcblxuICAgIC8vIFRyaWdnZXIgYSBtYW51YWwgY2hhbmdlIGRldGVjdGlvbiBjeWNsZSB0byBhdm9pZCAnRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcidcbiAgICAvLyB3aGVuIHRoZSBkaWFsb2cgc2V0cyBkaWFsb2ctc3BlY2lmaWMgcHJvcGVydGllcyBzdWNoIGFzIHRpdGxlIG9yIHNpemUgZHVyaW5nIGNvbnN0cnVjdGlvbi5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gV2FpdCBmb3IgdGhlIGRpYWxvZyB0byBjbG9zZSwgcmVzb2x2aW5nIHRvIGl0cyByZXN1bHQgb3IgcmVqZWN0aW5nIGlmIGNsb3NlZCB3aXRoIGFuIGVycm9yLlxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSIHwgdW5kZWZpbmVkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3Jlc3VsdCBpbnN0YW5jZW9mIEVycm9yID8gcmVqZWN0KHRoaXMuX3Jlc3VsdCkgOiByZXNvbHZlKHRoaXMuX3Jlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgY2xvc2UocmVzdWx0PzogUiB8IEVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgIHRoaXMuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIElucHV0cyBwYXNzZWQgdG8gdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRzKCk6IHtbbmFtZTogc3RyaW5nXTogdW5rbm93bn0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmlucHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdG8gYW5pbWF0ZSB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIGdldCBhbmltYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmFuaW1hdGUgPz8gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ibG9ja2VkQnkkLnZhbHVlKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWY/Lmluc3RhbmNlLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySGVhZGVyKGhlYWRlcjogV29ya2JlbmNoRGlhbG9nSGVhZGVyRGlyZWN0aXZlKTogRGlzcG9zYWJsZSB7XG4gICAgdGhpcy5oZWFkZXIgPSBoZWFkZXI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3Bvc2U6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyID09PSBoZWFkZXIpIHtcbiAgICAgICAgICB0aGlzLmhlYWRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyRm9vdGVyKGZvb3RlcjogV29ya2JlbmNoRGlhbG9nRm9vdGVyRGlyZWN0aXZlKTogRGlzcG9zYWJsZSB7XG4gICAgaWYgKHRoaXMuYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IEVycm9yKCdbRGlhbG9nSW5pdEVycm9yXSBDdXN0b20gZGlhbG9nIGZvb3RlciBub3Qgc3VwcG9ydGVkIGlmIHVzaW5nIGRpYWxvZyBhY3Rpb25zLicpO1xuICAgIH1cbiAgICB0aGlzLmZvb3RlciA9IGZvb3RlcjtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb290ZXIgPT09IGZvb3Rlcikge1xuICAgICAgICAgIHRoaXMuZm9vdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJBY3Rpb24oYWN0aW9uOiBXb3JrYmVuY2hEaWFsb2dBY3Rpb25EaXJlY3RpdmUpOiBEaXNwb3NhYmxlIHtcbiAgICBpZiAodGhpcy5mb290ZXIpIHtcbiAgICAgIHRocm93IEVycm9yKCdbRGlhbG9nSW5pdEVycm9yXSBEaWFsb2cgYWN0aW9ucyBub3Qgc3VwcG9ydGVkIGlmIHVzaW5nIGEgY3VzdG9tIGRpYWxvZyBmb290ZXIuJyk7XG4gICAgfVxuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5jb25jYXQoYWN0aW9uKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcG9zZTogKCkgPT4gdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihjYW5kaWRhdGUgPT4gY2FuZGlkYXRlICE9PSBhY3Rpb24pLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCB0aXRsZSgpOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgdGl0bGUodGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3RpdGxlLnNldCh0aXRsZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBjbG9zYWJsZSgpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zYWJsZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc2V0IGNsb3NhYmxlKGNsb3NhYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xvc2FibGUuc2V0KGNsb3NhYmxlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IHJlc2l6YWJsZSgpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9yZXNpemFibGU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCByZXNpemFibGUocmVzaXphYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVzaXphYmxlLnNldChyZXNpemFibGUpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgcGFkZGluZygpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9wYWRkaW5nO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgcGFkZGluZyhwYWRkaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcGFkZGluZy5zZXQocGFkZGluZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBjc3NDbGFzcygpOiBTaWduYWw8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5fY3NzQ2xhc3M7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBjc3NDbGFzcyhjc3NDbGFzczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0aGlzLl9jc3NDbGFzcy5zZXQobmV3IEFycmF5PHN0cmluZz4oKS5jb25jYXQodGhpcy5fb3B0aW9ucy5jc3NDbGFzcyA/PyBbXSkuY29uY2F0KGNzc0NsYXNzKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGRpYWxvZyBpbiB0aGUgZGlhbG9nIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIGdldFBvc2l0aW9uSW5EaWFsb2dTdGFjaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hEaWFsb2dSZWdpc3RyeS5pbmRleE9mKHRoaXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBibGluaygpOiB2b2lkIHtcbiAgICB0aGlzLl9ibGluayQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgaGFuZGxlJ3MgaW5qZWN0b3IuIFRoZSBpbmplY3RvciB3aWxsIGJlIGRlc3Ryb3llZCB3aGVuIGNsb3NpbmcgdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5qZWN0b3IoKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiB0aGlzLl9kaWFsb2dFbnZpcm9ubWVudEluamVjdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQb3J0YWwoKTogQ29tcG9uZW50UG9ydGFsPFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudD4ge1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFdvcmtiZW5jaERpYWxvZ0NvbXBvbmVudCwgbnVsbCwgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIC8vIFVzZSB0aGUgcm9vdCBlbnZpcm9ubWVudCBpbmplY3RvciBpbnN0ZWFkIG9mIHRoZSBkaWFsb2cncyBlbnZpcm9ubWVudCBpbmplY3Rvci5cbiAgICAgIC8vIE90aGVyd2lzZSwgaWYgYW4gYXBwbGljYXRpb24tbW9kYWwgZGlhbG9nIG9wZW5zIGEgdmlldy1tb2RhbCBkaWFsb2csIHRoZSB2aWV3LW1vZGFsIGRpYWxvZ1xuICAgICAgLy8gd291bGQgbm90IG9wZW4gYmVjYXVzZSBpdCB1c2VzIHRoZSBzYW1lIGVudmlyb25tZW50IGluamVjdG9yLCB3aGljaCwgaG93ZXZlciwgd2FzIGRlc3Ryb3llZFxuICAgICAgLy8gd2hlbiBjbG9zZWQgdGhlIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZy4gVmlldy1tb2RhbCBkaWFsb2dzIGFyZSBvbmx5IG9wZW5lZCBhZnRlclxuICAgICAgLy8gYWxsIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3MgaGF2ZSBiZWVuIGNsb3NlZC5cbiAgICAgIHBhcmVudDogdGhpcy5fb3B0aW9ucy5pbmplY3RvciA/PyBpbmplY3QoQXBwbGljYXRpb25SZWYpLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVWaWV3Q29udGV4dCh0aGlzLmNvbnRleHQudmlldyksXG4gICAgICAgIHtwcm92aWRlOiDJtVdvcmtiZW5jaERpYWxvZywgdXNlVmFsdWU6IHRoaXN9LFxuICAgICAgICB7cHJvdmlkZTogV29ya2JlbmNoRGlhbG9nLCB1c2VFeGlzdGluZzogybVXb3JrYmVuY2hEaWFsb2d9LFxuICAgICAgXSxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRlZGljYXRlZCBvdmVybGF5IHBlciBkaWFsb2cgdG8gcGxhY2UgaXQgb24gdG9wIG9mIHByZXZpb3VzbHkgY3JlYXRlZCBvdmVybGF5cywgc3VjaCBhcyBkaWFsb2dzLCBwb3B1cHMsIGRyb3Bkb3ducywgZXRjLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gICAgcmV0dXJuIG92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsIC8vIGRpc3Bvc2UgZGlhbG9nIG9uIGJyb3dzZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb25cbiAgICAgIHBhbmVsQ2xhc3M6IFsnd2ItZGlhbG9nLW1vZGFsaXR5LWNvbnRleHQnXSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IG92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIGZvY3VzIHdoZW4gcmUtYXR0YWNoaW5nIHRoaXMgZGlhbG9nLlxuICAgKi9cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXNPbkF0dGFjaCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hdHRhY2hlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIGZvY3VzIHdoZW4gdW5ibG9ja2luZyB0aGlzIGRpYWxvZy5cbiAgICovXG4gIHByaXZhdGUgcmVzdG9yZUZvY3VzT25VbmJsb2NrKCk6IHZvaWQge1xuICAgIHRoaXMuYmxvY2tlZEJ5JFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihibG9ja2VkQnkgPT4gIWJsb2NrZWRCeSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3JzIGF0dGFjaG1lbnQgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgbW9uaXRvckhvc3RFbGVtZW50QXR0YWNoZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmNvbnRleHQudmlldykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC52aWV3LnBvcnRhbC5hdHRhY2hlZCQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl93b3JrYmVuY2hDb25maWcuZGlhbG9nPy5tb2RhbGl0eVNjb3BlID09PSAndmlld3BvcnQnKSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKS5yZWYkLnBpcGUobWFwKHJlZiA9PiAhIXJlZikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoaXMgZGlhbG9nIHdoZW4gZWl0aGVyIGl0cyBob3N0IGVsZW1lbnQgaXMgZGV0YWNoZWQgb3IgZHVyaW5nIHZpZXcgZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIGhpZGVPbkhvc3RFbGVtZW50RGV0YWNoT3JWaWV3RHJhZygpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3RHJhZ1NlcnZpY2UgPSBpbmplY3QoVmlld0RyYWdTZXJ2aWNlKTtcbiAgICBjb25zdCB2aWV3RHJhZyQgPSBtZXJnZShcbiAgICAgIHZpZXdEcmFnU2VydmljZS52aWV3RHJhZ1N0YXJ0JC5waXBlKG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICB2aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdFbmQkLnBpcGUobWFwKCgpID0+IGZhbHNlKSksXG4gICAgICBvZihmYWxzZSksIC8vIHRvIGluaXRpYWxpemUgYGNvbWJpbmVMYXRlc3RgXG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2F0dGFjaGVkJCwgdmlld0RyYWckXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoZm4gPT4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcihmbikpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFthdHRhY2hlZCwgZHJhZ2dpbmddKSA9PiB7XG4gICAgICAgIGNvbnN0IGhpZGVEaWFsb2cgPSAhYXR0YWNoZWQgfHwgZHJhZ2dpbmc7XG5cbiAgICAgICAgLy8gSGlkZSB2aWEgYHZpc2liaWxpdHk6IGhpZGRlbmAgaW5zdGVhZCBvZiBgZGlzcGxheTogbm9uZWAgaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGRpbWVuc2lvbiBvZiB0aGUgZGlhbG9nLlxuICAgICAgICBzZXRTdHlsZSh0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LCB7dmlzaWJpbGl0eTogaGlkZURpYWxvZyA/ICdoaWRkZW4nIDogbnVsbH0pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWxpZ25zIHRoaXMgZGlhbG9nIHdpdGggdGhlIGJvdW5kYXJpZXMgb2YgdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgc3RpY2tUb0hvc3RFbGVtZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vcHRpb25zLm1vZGFsaXR5ID09PSAnYXBwbGljYXRpb24nICYmIHRoaXMuX3dvcmtiZW5jaENvbmZpZy5kaWFsb2c/Lm1vZGFsaXR5U2NvcGUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgIHNldFN0eWxlKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsIHtpbnNldDogJzAnfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgd29ya2JlbmNoVmlld0VsZW1lbnQkID0gKHZpZXc6IMm1V29ya2JlbmNoVmlldyk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+ID0+IG9mKHZpZXcucG9ydGFsLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIGNvbnN0IHdvcmtiZW5jaFJvb3RFbGVtZW50JCA9ICgpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiA9PiBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKS5yZWYkLnBpcGUobWFwKHJlZiA9PiByZWY/LmVsZW1lbnQubmF0aXZlRWxlbWVudCkpO1xuICAgICAgY29uc3QgaG9zdEVsZW1lbnQkID0gdGhpcy5jb250ZXh0LnZpZXcgPyB3b3JrYmVuY2hWaWV3RWxlbWVudCQodGhpcy5jb250ZXh0LnZpZXcpIDogd29ya2JlbmNoUm9vdEVsZW1lbnQkKCk7XG5cbiAgICAgIGhvc3RFbGVtZW50JFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoaG9zdEVsZW1lbnQgPT4gaG9zdEVsZW1lbnQgPyBmcm9tRGltZW5zaW9uJChob3N0RWxlbWVudCkgOiBFTVBUWSksXG4gICAgICAgICAgbWFwKCh7ZWxlbWVudDogaG9zdEVsZW1lbnR9KSA9PiBob3N0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksXG4gICAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGZuID0+IHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZm4pKSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSkgPT4ge1xuICAgICAgICAgIHNldFN0eWxlKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQsIHtcbiAgICAgICAgICAgIHRvcDogYCR7dG9wfXB4YCxcbiAgICAgICAgICAgIGxlZnQ6IGAke2xlZnR9cHhgLFxuICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJsb2NrcyB0aGlzIGRpYWxvZyBpZiBub3QgdGhlIHRvcG1vc3QgZGlhbG9nIGluIGl0cyBjb250ZXh0LlxuICAgKi9cbiAgcHJpdmF0ZSBibG9ja1doZW5Ob3RPblRvcCgpOiB2b2lkIHtcbiAgICB0aGlzLl93b3JrYmVuY2hEaWFsb2dSZWdpc3RyeS50b3AkKHt2aWV3SWQ6IHRoaXMuY29udGV4dC52aWV3Py5pZH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRvcCA9PiB0b3AgPT09IHRoaXMgPyBudWxsIDogdG9wKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYmxvY2tlZEJ5JCk7XG4gIH1cblxuICBwcml2YXRlIGJsaW5rT25SZXF1ZXN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2JsaW5rJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBvZih0cnVlKS5waXBlKGNvbmNhdFdpdGgob2YoZmFsc2UpLnBpcGUoZGVsYXkoMzAwKSkpKSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmJsaW5raW5nJCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhpcyBkaWFsb2cgYW5kIGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kZXN0cm95UmVmLmRlc3Ryb3llZCkge1xuICAgICAgdGhpcy5fZGlhbG9nRW52aXJvbm1lbnRJbmplY3Rvci5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9kZXN0cm95UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -7,25 +7,26 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { createEnvironmentInjector, EnvironmentInjector, inject, Injectable, NgZone, runInInjectionContext } from '@angular/core';
|
|
11
11
|
import { ɵWorkbenchDialog } from './ɵworkbench-dialog';
|
|
12
|
+
import { ɵWorkbenchView } from '../view/ɵworkbench-view.model';
|
|
13
|
+
import { WORKBENCH_VIEW_REGISTRY } from '../view/workbench-view.registry';
|
|
12
14
|
import { firstValueFrom } from 'rxjs';
|
|
15
|
+
import { WorkbenchDialogRegistry } from './workbench-dialog.registry';
|
|
13
16
|
import { filter } from 'rxjs/operators';
|
|
14
17
|
import { DOCUMENT } from '@angular/common';
|
|
15
18
|
import { provideViewContext } from '../view/view-context-provider';
|
|
19
|
+
import { UUID } from '@scion/toolkit/uuid';
|
|
16
20
|
import * as i0 from "@angular/core";
|
|
17
|
-
import * as i1 from "../view/workbench-view.registry";
|
|
18
|
-
import * as i2 from "./workbench-dialog.registry";
|
|
19
|
-
import * as i3 from "../view/\u0275workbench-view.model";
|
|
20
21
|
/** @inheritDoc */
|
|
21
22
|
export class ɵWorkbenchDialogService {
|
|
22
|
-
constructor(
|
|
23
|
-
this._viewRegistry = _viewRegistry;
|
|
24
|
-
this._dialogRegistry = _dialogRegistry;
|
|
25
|
-
this._zone = _zone;
|
|
26
|
-
this._injector = _injector;
|
|
27
|
-
this._view = _view;
|
|
23
|
+
constructor() {
|
|
28
24
|
this._document = inject(DOCUMENT);
|
|
25
|
+
this._viewRegistry = inject(WORKBENCH_VIEW_REGISTRY);
|
|
26
|
+
this._dialogRegistry = inject(WorkbenchDialogRegistry);
|
|
27
|
+
this._zone = inject(NgZone);
|
|
28
|
+
this._environmentInjector = inject(EnvironmentInjector);
|
|
29
|
+
this._view = inject(ɵWorkbenchView, { optional: true });
|
|
29
30
|
}
|
|
30
31
|
/** @inheritDoc */
|
|
31
32
|
async open(component, options) {
|
|
@@ -40,14 +41,8 @@ export class ɵWorkbenchDialogService {
|
|
|
40
41
|
if (contextualView) {
|
|
41
42
|
await this.waitUntilApplicationModalDialogsClosed();
|
|
42
43
|
}
|
|
43
|
-
//
|
|
44
|
-
const
|
|
45
|
-
parent: options?.injector ?? this._injector,
|
|
46
|
-
providers: [
|
|
47
|
-
provideViewContext(contextualView),
|
|
48
|
-
],
|
|
49
|
-
});
|
|
50
|
-
const dialog = runInInjectionContext(injector, () => new ɵWorkbenchDialog(component, options ?? {}));
|
|
44
|
+
// Create the dialog.
|
|
45
|
+
const dialog = this.createDialog(component, { ...options, contextualView });
|
|
51
46
|
this._dialogRegistry.register(dialog);
|
|
52
47
|
// Capture focused element to restore focus when closing the dialog.
|
|
53
48
|
const previouslyFocusedElement = this._document.activeElement instanceof HTMLElement ? this._document.activeElement : undefined;
|
|
@@ -62,6 +57,15 @@ export class ɵWorkbenchDialogService {
|
|
|
62
57
|
}
|
|
63
58
|
}
|
|
64
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates the dialog handle.
|
|
62
|
+
*/
|
|
63
|
+
createDialog(component, options) {
|
|
64
|
+
// Construct the handle in an injection context that shares the dialog's lifecycle, allowing for automatic cleanup of effects and RxJS interop functions.
|
|
65
|
+
const dialogId = UUID.randomUUID();
|
|
66
|
+
const dialogEnvironmentInjector = createEnvironmentInjector([provideViewContext(options.contextualView)], this._environmentInjector, `Workbench Dialog ${dialogId}`);
|
|
67
|
+
return runInInjectionContext(dialogEnvironmentInjector, () => new ɵWorkbenchDialog(dialogId, component, options ?? {}));
|
|
68
|
+
}
|
|
65
69
|
/**
|
|
66
70
|
* Resolves the contextual view to stick the dialog to.
|
|
67
71
|
*/
|
|
@@ -83,13 +87,11 @@ export class ɵWorkbenchDialogService {
|
|
|
83
87
|
async waitUntilApplicationModalDialogsClosed() {
|
|
84
88
|
await firstValueFrom(this._dialogRegistry.top$().pipe(filter(top => !top)));
|
|
85
89
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchDialogService, deps: [
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
87
91
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchDialogService, providedIn: 'root' }); }
|
|
88
92
|
}
|
|
89
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchDialogService, decorators: [{
|
|
90
94
|
type: Injectable,
|
|
91
95
|
args: [{ providedIn: 'root' }]
|
|
92
|
-
}]
|
|
93
|
-
type: Optional
|
|
94
|
-
}] }] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvybV3b3JrYmVuY2gtZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBRWpFLGtCQUFrQjtBQUVsQixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQW9CLGFBQW9DLEVBQ3BDLGVBQXdDLEVBQ3hDLEtBQWEsRUFDYixTQUFtQixFQUNQLEtBQXNCO1FBSmxDLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBeUI7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDUCxVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQU5yQyxjQUFTLEdBQUcsTUFBTSxDQUFXLFFBQVEsQ0FBQyxDQUFDO0lBT3hELENBQUM7SUFFRCxrQkFBa0I7SUFDWCxLQUFLLENBQUMsSUFBSSxDQUFJLFNBQWlDLEVBQUUsT0FBZ0M7UUFDdEYsc0dBQXNHO1FBQ3RHLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELCtDQUErQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0QsMkZBQTJGO1FBQzNGLDJGQUEyRjtRQUMzRixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxDQUFDLHNDQUFzQyxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUVELDBCQUEwQjtRQUMxQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQzNDLFNBQVMsRUFBRTtnQkFDVCxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7YUFDbkM7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBSSxTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsb0VBQW9FO1FBQ3BFLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLFlBQVksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hJLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQztnQkFDTyxDQUFDO1lBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFeEMsbUdBQW1HO1lBQ25HLElBQUksd0JBQXdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4Rix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLHFCQUFxQixDQUFDLE9BQWdDO1FBQzVELElBQUksT0FBTyxFQUFFLFFBQVEsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUN4QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELENBQUM7YUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLHNDQUFzQztRQUNsRCxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOzhHQTFFVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQURYLE1BQU07OzJGQUNsQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFTakIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUsIE9wdGlvbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dPcHRpb25zfSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cub3B0aW9ucyc7XG5pbXBvcnQge8m1V29ya2JlbmNoRGlhbG9nfSBmcm9tICcuL8m1d29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge8m1V29ya2JlbmNoVmlld30gZnJvbSAnLi4vdmlldy/JtXdvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb219IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi93b3JrYmVuY2gtZGlhbG9nLnJlZ2lzdHJ5JztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dTZXJ2aWNlfSBmcm9tICcuL3dvcmtiZW5jaC1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtwcm92aWRlVmlld0NvbnRleHR9IGZyb20gJy4uL3ZpZXcvdmlldy1jb250ZXh0LXByb3ZpZGVyJztcblxuLyoqIEBpbmhlcml0RG9jICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaERpYWxvZ1NlcnZpY2UgaW1wbGVtZW50cyBXb3JrYmVuY2hEaWFsb2dTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3ZpZXdSZWdpc3RyeTogV29ya2JlbmNoVmlld1JlZ2lzdHJ5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWFsb2dSZWdpc3RyeTogV29ya2JlbmNoRGlhbG9nUmVnaXN0cnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF92aWV3PzogybVXb3JrYmVuY2hWaWV3KSB7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFzeW5jIG9wZW48Uj4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPHVua25vd24+LCBvcHRpb25zPzogV29ya2JlbmNoRGlhbG9nT3B0aW9ucyk6IFByb21pc2U8UiB8IHVuZGVmaW5lZD4ge1xuICAgIC8vIEVuc3VyZSB0byBydW4gaW4gQW5ndWxhciB6b25lIHRvIGRpc3BsYXkgdGhlIGRpYWxvZyBldmVuIHdoZW4gY2FsbGVkIGZyb20gb3V0c2lkZSB0aGUgQW5ndWxhciB6b25lLlxuICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5vcGVuKGNvbXBvbmVudCwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgdmlldyB0aGF0IG9wZW5lZCB0aGUgZGlhbG9nLCBpZiBhbnkuXG4gICAgY29uc3QgY29udGV4dHVhbFZpZXcgPSB0aGlzLnJlc29sdmVDb250ZXh0dWFsVmlldyhvcHRpb25zKTtcblxuICAgIC8vIERlbGF5IHRoZSBvcGVuaW5nIG9mIGEgdmlldy1tb2RhbCBkaWFsb2cgdW50aWwgYWxsIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3MgYXJlIGNsb3NlZC5cbiAgICAvLyBPdGhlcndpc2UsIHRoZSB2aWV3LW1vZGFsIGRpYWxvZyB3b3VsZCBvdmVybGFwIGFscmVhZHkgb3BlbmVkIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3MuXG4gICAgaWYgKGNvbnRleHR1YWxWaWV3KSB7XG4gICAgICBhd2FpdCB0aGlzLndhaXRVbnRpbEFwcGxpY2F0aW9uTW9kYWxEaWFsb2dzQ2xvc2VkKCk7XG4gICAgfVxuXG4gICAgLy8gUHJvcGFnYXRlIHZpZXcgY29udGV4dC5cbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IG9wdGlvbnM/LmluamVjdG9yID8/IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVWaWV3Q29udGV4dChjb250ZXh0dWFsVmlldyksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGlhbG9nID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiBuZXcgybVXb3JrYmVuY2hEaWFsb2c8Uj4oY29tcG9uZW50LCBvcHRpb25zID8/IHt9KSk7XG4gICAgdGhpcy5fZGlhbG9nUmVnaXN0cnkucmVnaXN0ZXIoZGlhbG9nKTtcblxuICAgIC8vIENhcHR1cmUgZm9jdXNlZCBlbGVtZW50IHRvIHJlc3RvcmUgZm9jdXMgd2hlbiBjbG9zaW5nIHRoZSBkaWFsb2cuXG4gICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGRpYWxvZy5vcGVuKCk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5fZGlhbG9nUmVnaXN0cnkudW5yZWdpc3RlcihkaWFsb2cpO1xuXG4gICAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IHdoZW4gY2xvc2luZyB0aGUgbGFzdCBkaWFsb2cgaW4gdGhlIGN1cnJlbnQgY29udGV4dC5cbiAgICAgIGlmIChwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgJiYgIXRoaXMuX2RpYWxvZ1JlZ2lzdHJ5LnRvcCh7dmlld0lkOiBjb250ZXh0dWFsVmlldz8uaWR9KSkge1xuICAgICAgICBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGNvbnRleHR1YWwgdmlldyB0byBzdGljayB0aGUgZGlhbG9nIHRvLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlQ29udGV4dHVhbFZpZXcob3B0aW9ucz86IFdvcmtiZW5jaERpYWxvZ09wdGlvbnMpOiDJtVdvcmtiZW5jaFZpZXcgfCBudWxsIHtcbiAgICBpZiAob3B0aW9ucz8ubW9kYWxpdHkgPT09ICdhcHBsaWNhdGlvbicpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8uY29udGV4dD8udmlld0lkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldChvcHRpb25zLmNvbnRleHQudmlld0lkKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5fdmlldykge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZpZXc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgYXBwbGljYXRpb24gbW9kYWwtZGlhbG9ncyBhcmUgY2xvc2VkLiBJZiBub25lIGFyZSBvcGVuZWQsIHRoZSBQcm9taXNlIHJlc29sdmVzIGltbWVkaWF0ZWx5LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3YWl0VW50aWxBcHBsaWNhdGlvbk1vZGFsRGlhbG9nc0Nsb3NlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl9kaWFsb2dSZWdpc3RyeS50b3AkKCkucGlwZShmaWx0ZXIodG9wID0+ICF0b3ApKSk7XG4gIH1cbn1cbiJdfQ==
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvybV3b3JrYmVuY2gtZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3RDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBRXpDLGtCQUFrQjtBQUVsQixNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBR21CLGNBQVMsR0FBRyxNQUFNLENBQVcsUUFBUSxDQUFDLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2xELFVBQUssR0FBRyxNQUFNLENBQUMsTUFB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LEtBQUssQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsc0NBQXNDO1FBQ2xELE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7OEdBM0VVLHVCQUF1QjtrSEFBdkIsdUJBQXVCLGNBRFgsTUFBTTs7MkZBQ2xCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Y3JlYXRlRW52aXJvbm1lbnRJbmplY3RvciwgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUsIHJ1bkluSW5qZWN0aW9uQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ09wdGlvbnN9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5vcHRpb25zJztcbmltcG9ydCB7ybVXb3JrYmVuY2hEaWFsb2d9IGZyb20gJy4vybV3b3JrYmVuY2gtZGlhbG9nJztcbmltcG9ydCB7ybVXb3JrYmVuY2hWaWV3fSBmcm9tICcuLi92aWV3L8m1d29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfVklFV19SRUdJU1RSWX0gZnJvbSAnLi4vdmlldy93b3JrYmVuY2gtdmlldy5yZWdpc3RyeSc7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tfSBmcm9tICdyeGpzJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nUmVnaXN0cnl9IGZyb20gJy4vd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nU2VydmljZX0gZnJvbSAnLi93b3JrYmVuY2gtZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7cHJvdmlkZVZpZXdDb250ZXh0fSBmcm9tICcuLi92aWV3L3ZpZXctY29udGV4dC1wcm92aWRlcic7XG5pbXBvcnQge1VVSUR9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V1aWQnO1xuXG4vKiogQGluaGVyaXREb2MgKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIMm1V29ya2JlbmNoRGlhbG9nU2VydmljZSBpbXBsZW1lbnRzIFdvcmtiZW5jaERpYWxvZ1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0PERvY3VtZW50PihET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdSZWdpc3RyeSA9IGluamVjdChXT1JLQkVOQ0hfVklFV19SRUdJU1RSWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZ1JlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3ID0gaW5qZWN0KMm1V29ya2JlbmNoVmlldywge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhc3luYyBvcGVuPFI+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTx1bmtub3duPiwgb3B0aW9ucz86IFdvcmtiZW5jaERpYWxvZ09wdGlvbnMpOiBQcm9taXNlPFIgfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBFbnN1cmUgdG8gcnVuIGluIEFuZ3VsYXIgem9uZSB0byBkaXNwbGF5IHRoZSBkaWFsb2cgZXZlbiB3aGVuIGNhbGxlZCBmcm9tIG91dHNpZGUgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICBpZiAoIU5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuKCgpID0+IHRoaXMub3Blbihjb21wb25lbnQsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIHZpZXcgdGhhdCBvcGVuZWQgdGhlIGRpYWxvZywgaWYgYW55LlxuICAgIGNvbnN0IGNvbnRleHR1YWxWaWV3ID0gdGhpcy5yZXNvbHZlQ29udGV4dHVhbFZpZXcob3B0aW9ucyk7XG5cbiAgICAvLyBEZWxheSB0aGUgb3BlbmluZyBvZiBhIHZpZXctbW9kYWwgZGlhbG9nIHVudGlsIGFsbCBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2dzIGFyZSBjbG9zZWQuXG4gICAgLy8gT3RoZXJ3aXNlLCB0aGUgdmlldy1tb2RhbCBkaWFsb2cgd291bGQgb3ZlcmxhcCBhbHJlYWR5IG9wZW5lZCBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2dzLlxuICAgIGlmIChjb250ZXh0dWFsVmlldykge1xuICAgICAgYXdhaXQgdGhpcy53YWl0VW50aWxBcHBsaWNhdGlvbk1vZGFsRGlhbG9nc0Nsb3NlZCgpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgZGlhbG9nLlxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuY3JlYXRlRGlhbG9nPFI+KGNvbXBvbmVudCwgey4uLm9wdGlvbnMsIGNvbnRleHR1YWxWaWV3fSk7XG4gICAgdGhpcy5fZGlhbG9nUmVnaXN0cnkucmVnaXN0ZXIoZGlhbG9nKTtcblxuICAgIC8vIENhcHR1cmUgZm9jdXNlZCBlbGVtZW50IHRvIHJlc3RvcmUgZm9jdXMgd2hlbiBjbG9zaW5nIHRoZSBkaWFsb2cuXG4gICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGRpYWxvZy5vcGVuKCk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5fZGlhbG9nUmVnaXN0cnkudW5yZWdpc3RlcihkaWFsb2cpO1xuXG4gICAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVtZW50IHdoZW4gY2xvc2luZyB0aGUgbGFzdCBkaWFsb2cgaW4gdGhlIGN1cnJlbnQgY29udGV4dC5cbiAgICAgIGlmIChwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgJiYgIXRoaXMuX2RpYWxvZ1JlZ2lzdHJ5LnRvcCh7dmlld0lkOiBjb250ZXh0dWFsVmlldz8uaWR9KSkge1xuICAgICAgICBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZGlhbG9nIGhhbmRsZS5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRGlhbG9nPFI+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTx1bmtub3duPiwgb3B0aW9uczogV29ya2JlbmNoRGlhbG9nT3B0aW9ucyAmIHtjb250ZXh0dWFsVmlldzogybVXb3JrYmVuY2hWaWV3IHwgbnVsbH0pOiDJtVdvcmtiZW5jaERpYWxvZzxSPiB7XG4gICAgLy8gQ29uc3RydWN0IHRoZSBoYW5kbGUgaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQgdGhhdCBzaGFyZXMgdGhlIGRpYWxvZydzIGxpZmVjeWNsZSwgYWxsb3dpbmcgZm9yIGF1dG9tYXRpYyBjbGVhbnVwIG9mIGVmZmVjdHMgYW5kIFJ4SlMgaW50ZXJvcCBmdW5jdGlvbnMuXG4gICAgY29uc3QgZGlhbG9nSWQgPSBVVUlELnJhbmRvbVVVSUQoKTtcbiAgICBjb25zdCBkaWFsb2dFbnZpcm9ubWVudEluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcihbcHJvdmlkZVZpZXdDb250ZXh0KG9wdGlvbnMuY29udGV4dHVhbFZpZXcpXSwgdGhpcy5fZW52aXJvbm1lbnRJbmplY3RvciwgYFdvcmtiZW5jaCBEaWFsb2cgJHtkaWFsb2dJZH1gKTtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGRpYWxvZ0Vudmlyb25tZW50SW5qZWN0b3IsICgpID0+IG5ldyDJtVdvcmtiZW5jaERpYWxvZzxSPihkaWFsb2dJZCwgY29tcG9uZW50LCBvcHRpb25zID8/IHt9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGNvbnRleHR1YWwgdmlldyB0byBzdGljayB0aGUgZGlhbG9nIHRvLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlQ29udGV4dHVhbFZpZXcob3B0aW9ucz86IFdvcmtiZW5jaERpYWxvZ09wdGlvbnMpOiDJtVdvcmtiZW5jaFZpZXcgfCBudWxsIHtcbiAgICBpZiAob3B0aW9ucz8ubW9kYWxpdHkgPT09ICdhcHBsaWNhdGlvbicpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8uY29udGV4dD8udmlld0lkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldChvcHRpb25zLmNvbnRleHQudmlld0lkKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5fdmlldykge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZpZXc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgYXBwbGljYXRpb24gbW9kYWwtZGlhbG9ncyBhcmUgY2xvc2VkLiBJZiBub25lIGFyZSBvcGVuZWQsIHRoZSBQcm9taXNlIHJlc29sdmVzIGltbWVkaWF0ZWx5LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3YWl0VW50aWxBcHBsaWNhdGlvbk1vZGFsRGlhbG9nc0Nsb3NlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl9kaWFsb2dSZWdpc3RyeS50b3AkKCkucGlwZShmaWx0ZXIodG9wID0+ICF0b3ApKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
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 { DestroyRef, inject } from '@angular/core';
|
|
11
|
+
/**
|
|
12
|
+
* Executes submitted tasks in serial order.
|
|
13
|
+
*
|
|
14
|
+
* Unlike {@link SingleTaskExecutor}, this executor has a queue size of 1, with only the most recently scheduled task being queued.
|
|
15
|
+
*
|
|
16
|
+
* Tasks are executed in serial order. At any one time, there is only one task executing and a maximum of one task pending.
|
|
17
|
+
* When a task is submitted and there is a task already executing, the submitted task will be queued for later execution.
|
|
18
|
+
* Any task previously placed in the queue is discarded.
|
|
19
|
+
*
|
|
20
|
+
* This executor must be constructed within an injection context. Destroying the injection context will also destroy the executor.
|
|
21
|
+
*/
|
|
22
|
+
export class LatestTaskExecutor {
|
|
23
|
+
constructor() {
|
|
24
|
+
this._executing = false;
|
|
25
|
+
// Clear pending tasks when the current injection context is destroyed.
|
|
26
|
+
inject(DestroyRef).onDestroy(() => this.onDestroy());
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Submits a task for serial execution.
|
|
30
|
+
*/
|
|
31
|
+
submit(task) {
|
|
32
|
+
this._latestTask = task;
|
|
33
|
+
this.executeLatestTask();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Executes the last task in the queue (if any).
|
|
37
|
+
* After completion, this process is repeated until the task queue is empty.
|
|
38
|
+
*/
|
|
39
|
+
executeLatestTask() {
|
|
40
|
+
if (this._executing || !this._latestTask) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const task = this._latestTask;
|
|
44
|
+
this._latestTask = undefined;
|
|
45
|
+
this._executing = true;
|
|
46
|
+
task().finally(() => {
|
|
47
|
+
this._executing = false;
|
|
48
|
+
this.executeLatestTask();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
onDestroy() {
|
|
52
|
+
this._latestTask = undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0ZXN0LXRhc2stZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9leGVjdXRvci9sYXRlc3QtdGFzay1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBSFEsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUl6Qix1RUFBdUU7UUFDdkUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBeUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBRTdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEZXN0cm95UmVmLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEV4ZWN1dGVzIHN1Ym1pdHRlZCB0YXNrcyBpbiBzZXJpYWwgb3JkZXIuXG4gKlxuICogVW5saWtlIHtAbGluayBTaW5nbGVUYXNrRXhlY3V0b3J9LCB0aGlzIGV4ZWN1dG9yIGhhcyBhIHF1ZXVlIHNpemUgb2YgMSwgd2l0aCBvbmx5IHRoZSBtb3N0IHJlY2VudGx5IHNjaGVkdWxlZCB0YXNrIGJlaW5nIHF1ZXVlZC5cbiAqXG4gKiBUYXNrcyBhcmUgZXhlY3V0ZWQgaW4gc2VyaWFsIG9yZGVyLiBBdCBhbnkgb25lIHRpbWUsIHRoZXJlIGlzIG9ubHkgb25lIHRhc2sgZXhlY3V0aW5nIGFuZCBhIG1heGltdW0gb2Ygb25lIHRhc2sgcGVuZGluZy5cbiAqIFdoZW4gYSB0YXNrIGlzIHN1Ym1pdHRlZCBhbmQgdGhlcmUgaXMgYSB0YXNrIGFscmVhZHkgZXhlY3V0aW5nLCB0aGUgc3VibWl0dGVkIHRhc2sgd2lsbCBiZSBxdWV1ZWQgZm9yIGxhdGVyIGV4ZWN1dGlvbi5cbiAqIEFueSB0YXNrIHByZXZpb3VzbHkgcGxhY2VkIGluIHRoZSBxdWV1ZSBpcyBkaXNjYXJkZWQuXG4gKlxuICogVGhpcyBleGVjdXRvciBtdXN0IGJlIGNvbnN0cnVjdGVkIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4gRGVzdHJveWluZyB0aGUgaW5qZWN0aW9uIGNvbnRleHQgd2lsbCBhbHNvIGRlc3Ryb3kgdGhlIGV4ZWN1dG9yLlxuICovXG5leHBvcnQgY2xhc3MgTGF0ZXN0VGFza0V4ZWN1dG9yIHtcblxuICBwcml2YXRlIF9leGVjdXRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGF0ZXN0VGFzazogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIENsZWFyIHBlbmRpbmcgdGFza3Mgd2hlbiB0aGUgY3VycmVudCBpbmplY3Rpb24gY29udGV4dCBpcyBkZXN0cm95ZWQuXG4gICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB0aGlzLm9uRGVzdHJveSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJtaXRzIGEgdGFzayBmb3Igc2VyaWFsIGV4ZWN1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdWJtaXQodGFzazogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICAgIHRoaXMuX2xhdGVzdFRhc2sgPSB0YXNrO1xuICAgIHRoaXMuZXhlY3V0ZUxhdGVzdFRhc2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgbGFzdCB0YXNrIGluIHRoZSBxdWV1ZSAoaWYgYW55KS5cbiAgICogQWZ0ZXIgY29tcGxldGlvbiwgdGhpcyBwcm9jZXNzIGlzIHJlcGVhdGVkIHVudGlsIHRoZSB0YXNrIHF1ZXVlIGlzIGVtcHR5LlxuICAgKi9cbiAgcHJpdmF0ZSBleGVjdXRlTGF0ZXN0VGFzaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZXhlY3V0aW5nIHx8ICF0aGlzLl9sYXRlc3RUYXNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFzayA9IHRoaXMuX2xhdGVzdFRhc2s7XG4gICAgdGhpcy5fbGF0ZXN0VGFzayA9IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuX2V4ZWN1dGluZyA9IHRydWU7XG4gICAgdGFzaygpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgdGhpcy5fZXhlY3V0aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmV4ZWN1dGVMYXRlc3RUYXNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXRlc3RUYXNrID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|