@scion/workbench 18.0.0-beta.2 → 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/objects.util.mjs +7 -1
- package/esm2022/lib/common/operators.mjs +1 -12
- package/esm2022/lib/common/uid.util.mjs +22 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +16 -17
- 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/filter-field/filter-field.component.mjs +5 -5
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +6 -16
- 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 +11 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +4 -4
- package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +67 -0
- package/esm2022/lib/layout/stringifier.mjs +70 -0
- 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/workench-layout-serializer.service.mjs +16 -25
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +2 -2
- package/esm2022/lib/layout//311/265workbench-layout.mjs +45 -48
- 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 +22 -6
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +28 -21
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +11 -1
- package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +63 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +5 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +4 -4
- 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-message-box/text-message/text-message.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +7 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +3 -2
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +39 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +120 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +55 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +19 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +4 -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 +4 -15
- 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 -27
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +49 -22
- package/esm2022/lib/microfrontend-platform/public_api.mjs +2 -1
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +5 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +18 -16
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +28 -6
- package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +25 -7
- 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/format-url.pipe.mjs +2 -2
- 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 -42
- 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-grid-merger.service.mjs +3 -3
- 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 +71 -62
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +40 -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 +3 -1
- package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
- package/esm2022/lib/routing/public_api.mjs +1 -2
- 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 +110 -0
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-layout-differ.mjs +3 -10
- 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 +138 -147
- package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +58 -0
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +42 -32
- 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 +11 -11
- package/esm2022/lib/view/view-portal.pipe.mjs +7 -7
- package/esm2022/lib/view/view.component.mjs +42 -41
- package/esm2022/lib/view/workbench-view-route-guards.mjs +5 -5
- 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 -144
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +2 -2
- 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-config.mjs +1 -1
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +2 -2
- package/esm2022/lib/workbench.constants.mjs +1 -5
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.provider.mjs +3 -9
- package/esm2022/lib/workbench.service.mjs +1 -1
- package/esm2022/lib//311/265workbench.service.mjs +31 -42
- package/fesm2022/scion-workbench.mjs +2586 -1996
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/class-list.d.ts +35 -22
- package/lib/common/objects.util.d.ts +4 -0
- package/lib/common/operators.d.ts +1 -6
- package/lib/common/uid.util.d.ts +9 -0
- 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/filter-field/filter-field.component.d.ts +1 -1
- package/lib/layout/grid-element/grid-element.component.d.ts +1 -8
- package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +36 -0
- package/lib/layout/migration/workbench-layout-migration-v5.service.d.ts +12 -0
- package/lib/layout/stringifier.d.ts +26 -0
- package/lib/layout/workbench-layout.d.ts +9 -6
- package/lib/layout/workbench-layout.model.d.ts +5 -3
- package/lib/layout/workbench-layout.service.d.ts +4 -4
- package/lib/layout/workench-layout-serializer.service.d.ts +13 -15
- package/lib/layout//311/265workbench-layout.d.ts +13 -16
- package/lib/layout//311/265workbench-layout.factory.d.ts +2 -2
- package/lib/microfrontend-platform/common/microfrontend.util.d.ts +5 -1
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -3
- package/lib/microfrontend-platform/manifest-object-cache.service.d.ts +33 -0
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -5
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +1 -1
- package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.d.ts +24 -0
- package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.d.ts +20 -0
- package/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.d.ts +9 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +0 -4
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -12
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +7 -2
- package/lib/microfrontend-platform/public_api.d.ts +1 -0
- package/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.d.ts +1 -1
- package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
- package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +9 -2
- package/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.d.ts +11 -0
- 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 +18 -25
- package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
- package/lib/perspective/workbench-perspective.service.d.ts +16 -14
- package/lib/perspective//311/265workbench-perspective.model.d.ts +30 -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 -2
- 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-routes-registrator.service.d.ts → workbench-auxiliary-route-installer.service.d.ts} +10 -3
- package/lib/routing/workbench-layout-differ.d.ts +1 -2
- package/lib/routing/workbench-navigational-states.d.ts +3 -3
- package/lib/routing/workbench-url-observer.service.d.ts +31 -55
- package/lib/routing/workbench-view-outlet-differ.d.ts +32 -0
- 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 +9 -10
- 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 +58 -64
- package/lib/view-dnd/view-drag.service.d.ts +5 -2
- package/lib/workbench-config.d.ts +2 -2
- package/lib/workbench.constants.d.ts +0 -5
- 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 +3 -3
- 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/common/uuid.util.mjs +0 -17
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +0 -41
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
- package/esm2022/lib/routing/router.util.mjs +0 -126
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +0 -94
- package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
- package/lib/common/filter-by-text.pipe.d.ts +0 -12
- package/lib/common/uuid.util.d.ts +0 -8
- package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +0 -10
- package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
|
@@ -49,7 +49,7 @@ export class MicrofrontendMessageBoxComponent {
|
|
|
49
49
|
this.navigate();
|
|
50
50
|
}
|
|
51
51
|
navigate() {
|
|
52
|
-
const application = this._manifestService.
|
|
52
|
+
const application = this._manifestService.getApplication(this.capability.metadata.appSymbolicName);
|
|
53
53
|
this._logger.debug(() => `Loading microfrontend into workbench message box [app=${this.capability.metadata.appSymbolicName}, baseUrl=${application.baseUrl}, path=${this.capability.properties.path}].`, LoggerNames.MICROFRONTEND, this.params, this.capability);
|
|
54
54
|
this._outletRouter.navigate(this.capability.properties.path, {
|
|
55
55
|
outlet: this.outletName,
|
|
@@ -97,14 +97,14 @@ export class MicrofrontendMessageBoxComponent {
|
|
|
97
97
|
this._outletRouter.navigate(null, { outlet: this.outletName }).then(); // Clear the outlet.
|
|
98
98
|
}
|
|
99
99
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendMessageBoxComponent, deps: [{ token: i1.OutletRouter }, { token: i1.ManifestService }, { token: i2.WorkbenchLayoutService }, { token: i0.Injector }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: MicrofrontendMessageBoxComponent, isStandalone: true, selector: "wb-microfrontend-message-box", inputs: { capability: "capability", params: "params" }, host: { properties: { "class.workbench-drag": "this.isWorkbenchDrag" } }, viewQueries: [{ propertyName: "routerOutletElement", first: true, predicate: ["router_outlet"], descendants: true, static: true }], ngImport: i0, template: "<sci-router-outlet #router_outlet\n [name]=\"outletName\"\n [attr.data-capabilityid]=\"capability.metadata!.id\"\n [attr.data-app]=\"capability.metadata!.appSymbolicName\"\n keystrokes=\"keydown.escape\">\n <ng-container *ngComponentOutlet=\"splash\"
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: MicrofrontendMessageBoxComponent, isStandalone: true, selector: "wb-microfrontend-message-box", inputs: { capability: "capability", params: "params" }, host: { properties: { "class.workbench-drag": "this.isWorkbenchDrag" } }, viewQueries: [{ propertyName: "routerOutletElement", first: true, predicate: ["router_outlet"], descendants: true, static: true }], ngImport: i0, template: "<sci-router-outlet #router_outlet\n [name]=\"outletName\"\n [attr.data-capabilityid]=\"capability.metadata!.id\"\n [attr.data-app]=\"capability.metadata!.appSymbolicName\"\n keystrokes=\"keydown.escape\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n</sci-router-outlet>\n", styles: [":host{display:grid}:host.workbench-drag>sci-router-outlet{pointer-events:none}:host>sci-router-outlet::part(splash){display:grid}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] }); }
|
|
101
101
|
}
|
|
102
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendMessageBoxComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
args: [{ selector: 'wb-microfrontend-message-box', standalone: true, imports: [
|
|
105
105
|
NgClass,
|
|
106
106
|
NgComponentOutlet,
|
|
107
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<sci-router-outlet #router_outlet\n [name]=\"outletName\"\n [attr.data-capabilityid]=\"capability.metadata!.id\"\n [attr.data-app]=\"capability.metadata!.appSymbolicName\"\n keystrokes=\"keydown.escape\">\n <ng-container *ngComponentOutlet=\"splash\"
|
|
107
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<sci-router-outlet #router_outlet\n [name]=\"outletName\"\n [attr.data-capabilityid]=\"capability.metadata!.id\"\n [attr.data-app]=\"capability.metadata!.appSymbolicName\"\n keystrokes=\"keydown.escape\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n</sci-router-outlet>\n", styles: [":host{display:grid}:host.workbench-drag>sci-router-outlet{pointer-events:none}:host>sci-router-outlet::part(splash){display:grid}\n"] }]
|
|
108
108
|
}], ctorParameters: () => [{ type: i1.OutletRouter }, { type: i1.ManifestService }, { type: i2.WorkbenchLayoutService }, { type: i0.Injector }, { type: i3.Logger }], propDecorators: { capability: [{
|
|
109
109
|
type: Input,
|
|
110
110
|
args: [{ required: true }]
|
|
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
118
118
|
type: ViewChild,
|
|
119
119
|
args: ['router_outlet', { static: true }]
|
|
120
120
|
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtbWVzc2FnZS1ib3gvbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtbWVzc2FnZS1ib3gvbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQWMsV0FBVyxFQUFFLE1BQU0sRUFBWSxLQUFLLEVBQXFCLHFCQUFxQixFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2SyxPQUFPLEVBQWtCLDJCQUEyQixFQUF1QyxNQUFNLCtCQUErQixDQUFDO0FBQ2pJLE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQyxvQkFBb0IsRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoSCxPQUFPLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHOUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDcEcsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFP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RzVCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjtxQkFDbEIsV0FDUSxDQUFDLHNCQUFzQixDQUFDO2dNQU8xQixVQUFVO3NCQURoQixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFJaEIsTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFPaEIsZUFBZTtzQkFEckIsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBSTVCLG1CQUFtQjtzQkFEekIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYW5pZmVzdFNlcnZpY2UsIE1pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZywgT3V0bGV0Um91dGVyLCBTY2lSb3V0ZXJPdXRsZXRFbGVtZW50fSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHtXb3JrYmVuY2hNZXNzYWdlQm94Q2FwYWJpbGl0eSwgybVNRVNTQUdFX0JPWF9DT05URVhULCDJtU1lc3NhZ2VCb3hDb250ZXh0fSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge05nQ2xhc3MsIE5nQ29tcG9uZW50T3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kU3BsYXNoQ29tcG9uZW50fSBmcm9tICcuLi9taWNyb2Zyb250ZW5kLXNwbGFzaC9taWNyb2Zyb250ZW5kLXNwbGFzaC5jb21wb25lbnQnO1xuaW1wb3J0IHtVVUlEfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dWlkJztcbmltcG9ydCB7c2V0U3R5bGV9IGZyb20gJy4uLy4uL2NvbW1vbi9kb20udXRpbCc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRzfSBmcm9tICcuLi9jb21tb24vbWljcm9mcm9udGVuZC51dGlsJztcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUgbWljcm9mcm9udGVuZCBvZiBhIGdpdmVuIHtAbGluayBXb3JrYmVuY2hNZXNzYWdlQm94Q2FwYWJpbGl0eX0uXG4gKlxuICogVGhpcyBjb21wb25lbnQgaXMgZGVzaWduZWQgdG8gYmUgZGlzcGxheWVkIGluIGEgd29ya2JlbmNoIG1lc3NhZ2UgYm94LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi1taWNyb2Zyb250ZW5kLW1lc3NhZ2UtYm94JyxcbiAgc3R5bGVVcmxzOiBbJy4vbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sIC8vIHJlcXVpcmVkIGJlY2F1c2UgPHNjaS1yb3V0ZXItb3V0bGV0PiBpcyBhIGN1c3RvbSBlbGVtZW50XG59KVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRNZXNzYWdlQm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBvdXRsZXROYW1lID0gVVVJRC5yYW5kb21VVUlEKCk7XG5cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBjYXBhYmlsaXR5ITogV29ya2JlbmNoTWVzc2FnZUJveENhcGFiaWxpdHk7XG5cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBwYXJhbXMhOiBNYXA8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgd29ya2JlbmNoIGRyYWcgb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLCBzdWNoIGFzIHdoZW4gZHJhZ2dpbmcgYSB2aWV3IG9yIG1vdmluZyBhIHNhc2guXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndvcmtiZW5jaC1kcmFnJylcbiAgcHVibGljIGlzV29ya2JlbmNoRHJhZyA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3JvdXRlcl9vdXRsZXQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHJvdXRlck91dGxldEVsZW1lbnQhOiBFbGVtZW50UmVmPFNjaVJvdXRlck91dGxldEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBTcGxhc2ggdG8gZGlzcGxheSB1bnRpbCB0aGUgbWljcm9mcm9udGVuZCBzaWduYWxzIHJlYWRpbmVzcy5cbiAgICovXG4gIHByb3RlY3RlZCBzcGxhc2g6IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfb3V0bGV0Um91dGVyOiBPdXRsZXRSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX21hbmlmZXN0U2VydmljZTogTWFuaWZlc3RTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlOiBXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyKSB7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+ICdDb25zdHJ1Y3RpbmcgTWljcm9mcm9udGVuZE1lc3NhZ2VCb3hDb21wb25lbnQuJywgTG9nZ2VyTmFtZXMuTUlDUk9GUk9OVEVORCk7XG4gICAgdGhpcy5zcGxhc2ggPSBpbmplY3QoTWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnKS5zcGxhc2ggPz8gTWljcm9mcm9udGVuZFNwbGFzaENvbXBvbmVudDtcbiAgICB0aGlzLmluc3RhbGxXb3JrYmVuY2hEcmFnRGV0ZWN0b3IoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNpemVQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5wcm9wYWdhdGVNZXNzYWdlQm94Q29udGV4dCgpO1xuICAgIHRoaXMucHJvcGFnYXRlV29ya2JlbmNoVGhlbWUoKTtcbiAgICB0aGlzLm5hdmlnYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gdGhpcy5fbWFuaWZlc3RTZXJ2aWNlLmFwcGxpY2F0aW9ucy5maW5kKGFwcCA9PiBhcHAuc3ltYm9saWNOYW1lID09PSB0aGlzLmNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZSkhO1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiBgTG9hZGluZyBtaWNyb2Zyb250ZW5kIGludG8gd29ya2JlbmNoIG1lc3NhZ2UgYm94IFthcHA9JHt0aGlzLmNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZX0sIGJhc2VVcmw9JHthcHBsaWNhdGlvbi5iYXNlVXJsfSwgcGF0aD0ke3RoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnBhdGh9XS5gLCBMb2dnZXJOYW1lcy5NSUNST0ZST05URU5ELCB0aGlzLnBhcmFtcywgdGhpcy5jYXBhYmlsaXR5KTtcbiAgICB0aGlzLl9vdXRsZXRSb3V0ZXIubmF2aWdhdGUodGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMucGF0aCwge1xuICAgICAgb3V0bGV0OiB0aGlzLm91dGxldE5hbWUsXG4gICAgICByZWxhdGl2ZVRvOiBhcHBsaWNhdGlvbi5iYXNlVXJsLFxuICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcbiAgICAgIHB1c2hTdGF0ZVRvU2Vzc2lvbkhpc3RvcnlTdGFjazogZmFsc2UsXG4gICAgICBzaG93U3BsYXNoOiB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaG93U3BsYXNoLFxuICAgIH0pLnRoZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHRoZSBtZXNzYWdlIGJveCBjb250ZXh0IGF2YWlsYWJsZSB0byBlbWJlZGRlZCBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBwcm9wYWdhdGVNZXNzYWdlQm94Q29udGV4dCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0OiDJtU1lc3NhZ2VCb3hDb250ZXh0ID0ge1xuICAgICAgY2FwYWJpbGl0eTogdGhpcy5jYXBhYmlsaXR5LFxuICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcbiAgICB9O1xuICAgIHRoaXMucm91dGVyT3V0bGV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldENvbnRleHRWYWx1ZSjJtU1FU1NBR0VfQk9YX0NPTlRFWFQsIGNvbnRleHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTaXplUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBzZXRTdHlsZSh0aGlzLnJvdXRlck91dGxldEVsZW1lbnQsIHtcbiAgICAgICd3aWR0aCc6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/LndpZHRoID8/ICcwJywgLy8gYWxsb3cgY29udGVudCBzaXplIHRvIGdvIGJlbGxvdyB0aGUgZGVmYXVsdCBpZnJhbWUgc2l6ZSB3aGVuIHJlcG9ydGluZyBwcmVmZXJyZWQgc2l6ZVxuICAgICAgJ21pbi13aWR0aCc6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/Lm1pbldpZHRoID8/IG51bGwsXG4gICAgICAnbWF4LXdpZHRoJzogdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuc2l6ZT8ubWF4V2lkdGggPz8gbnVsbCxcbiAgICAgICdoZWlnaHQnOiB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy5oZWlnaHQgPz8gJzAnLCAvLyBhbGxvdyBjb250ZW50IHNpemUgdG8gZ28gYmVsbG93IHRoZSBkZWZhdWx0IGlmcmFtZSBzaXplIHdoZW4gcmVwb3J0aW5nIHByZWZlcnJlZCBzaXplXG4gICAgICAnbWluLWhlaWdodCc6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/Lm1pbkhlaWdodCA/PyBudWxsLFxuICAgICAgJ21heC1oZWlnaHQnOiB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy5tYXhIZWlnaHQgPz8gbnVsbCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcGFnYXRlV29ya2JlbmNoVGhlbWUoKTogdm9pZCB7XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuX2luamVjdG9yLCAoKSA9PiBNaWNyb2Zyb250ZW5kcy5wcm9wYWdhdGVUaGVtZSh0aGlzLnJvdXRlck91dGxldEVsZW1lbnQubmF0aXZlRWxlbWVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHtAbGluayBpc1dvcmtiZW5jaERyYWd9IHByb3BlcnR5IHdoZW4gYSB3b3JrYmVuY2ggZHJhZyBvcGVyYXRpb24gaXMgZGV0ZWN0ZWQsXG4gICAqIHN1Y2ggYXMgd2hlbiBkcmFnZ2luZyBhIHZpZXcgb3IgbW92aW5nIGEgc2FzaC5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFdvcmtiZW5jaERyYWdEZXRlY3RvcigpOiB2b2lkIHtcbiAgICB0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmRyYWdnaW5nJFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtiZW5jaERyYWcgPSAoZXZlbnQgPT09ICdzdGFydCcpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb3V0bGV0Um91dGVyLm5hdmlnYXRlKG51bGwsIHtvdXRsZXQ6IHRoaXMub3V0bGV0TmFtZX0pLnRoZW4oKTsgLy8gQ2xlYXIgdGhlIG91dGxldC5cbiAgfVxufVxuIiwiPHNjaS1yb3V0ZXItb3V0bGV0ICNyb3V0ZXJfb3V0bGV0XG4gICAgICAgICAgICAgICAgICAgW25hbWVdPVwib3V0bGV0TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXBhYmlsaXR5aWRdPVwiY2FwYWJpbGl0eS5tZXRhZGF0YSEuaWRcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXBwXT1cImNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZVwiXG4gICAgICAgICAgICAgICAgICAga2V5c3Ryb2tlcz1cImtleWRvd24uZXNjYXBlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwic3BsYXNoXCI+PC9uZy1jb250YWluZXI+XG48L3NjaS1yb3V0ZXItb3V0bGV0PlxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtbWVzc2FnZS1ib3gvbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtbWVzc2FnZS1ib3gvbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQWMsV0FBVyxFQUFFLE1BQU0sRUFBWSxLQUFLLEVBQXFCLHFCQUFxQixFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2SyxPQUFPLEVBQWtCLDJCQUEyQixFQUF1QyxNQUFNLCtCQUErQixDQUFDO0FBQ2pJLE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQyxvQkFBb0IsRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoSCxPQUFPLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHOUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDcEcsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFP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Q0FBQyxzQkFBc0IsQ0FBQztnTUFPMUIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBSWhCLE1BQU07c0JBRFosS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBT2hCLGVBQWU7c0JBRHJCLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUk1QixtQkFBbUI7c0JBRHpCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWFuaWZlc3RTZXJ2aWNlLCBNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWcsIE91dGxldFJvdXRlciwgU2NpUm91dGVyT3V0bGV0RWxlbWVudH0gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtMb2dnZXIsIExvZ2dlck5hbWVzfSBmcm9tICcuLi8uLi9sb2dnaW5nJztcbmltcG9ydCB7V29ya2JlbmNoTWVzc2FnZUJveENhcGFiaWxpdHksIMm1TUVTU0FHRV9CT1hfQ09OVEVYVCwgybVNZXNzYWdlQm94Q29udGV4dH0gZnJvbSAnQHNjaW9uL3dvcmtiZW5jaC1jbGllbnQnO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7TWljcm9mcm9udGVuZFNwbGFzaENvbXBvbmVudH0gZnJvbSAnLi4vbWljcm9mcm9udGVuZC1zcGxhc2gvbWljcm9mcm9udGVuZC1zcGxhc2guY29tcG9uZW50JztcbmltcG9ydCB7VVVJRH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXVpZCc7XG5pbXBvcnQge3NldFN0eWxlfSBmcm9tICcuLi8uLi9jb21tb24vZG9tLnV0aWwnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kc30gZnJvbSAnLi4vY29tbW9uL21pY3JvZnJvbnRlbmQudXRpbCc7XG5cbi8qKlxuICogRGlzcGxheXMgdGhlIG1pY3JvZnJvbnRlbmQgb2YgYSBnaXZlbiB7QGxpbmsgV29ya2JlbmNoTWVzc2FnZUJveENhcGFiaWxpdHl9LlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIGRlc2lnbmVkIHRvIGJlIGRpc3BsYXllZCBpbiBhIHdvcmtiZW5jaCBtZXNzYWdlIGJveC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2ItbWljcm9mcm9udGVuZC1tZXNzYWdlLWJveCcsXG4gIHN0eWxlVXJsczogWycuL21pY3JvZnJvbnRlbmQtbWVzc2FnZS1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21pY3JvZnJvbnRlbmQtbWVzc2FnZS1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLCAvLyByZXF1aXJlZCBiZWNhdXNlIDxzY2ktcm91dGVyLW91dGxldD4gaXMgYSBjdXN0b20gZWxlbWVudFxufSlcbmV4cG9ydCBjbGFzcyBNaWNyb2Zyb250ZW5kTWVzc2FnZUJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3V0bGV0TmFtZSA9IFVVSUQucmFuZG9tVVVJRCgpO1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KVxuICBwdWJsaWMgY2FwYWJpbGl0eSE6IFdvcmtiZW5jaE1lc3NhZ2VCb3hDYXBhYmlsaXR5O1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KVxuICBwdWJsaWMgcGFyYW1zITogTWFwPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHdvcmtiZW5jaCBkcmFnIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcywgc3VjaCBhcyB3aGVuIGRyYWdnaW5nIGEgdmlldyBvciBtb3ZpbmcgYSBzYXNoLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53b3JrYmVuY2gtZHJhZycpXG4gIHB1YmxpYyBpc1dvcmtiZW5jaERyYWcgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdyb3V0ZXJfb3V0bGV0Jywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyByb3V0ZXJPdXRsZXRFbGVtZW50ITogRWxlbWVudFJlZjxTY2lSb3V0ZXJPdXRsZXRFbGVtZW50PjtcblxuICAvKipcbiAgICogU3BsYXNoIHRvIGRpc3BsYXkgdW50aWwgdGhlIG1pY3JvZnJvbnRlbmQgc2lnbmFscyByZWFkaW5lc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3BsYXNoOiBDb21wb25lbnRUeXBlPHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX291dGxldFJvdXRlcjogT3V0bGV0Um91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tYW5pZmVzdFNlcnZpY2U6IE1hbmlmZXN0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoTGF5b3V0U2VydmljZTogV29ya2JlbmNoTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcikge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiAnQ29uc3RydWN0aW5nIE1pY3JvZnJvbnRlbmRNZXNzYWdlQm94Q29tcG9uZW50LicsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQpO1xuICAgIHRoaXMuc3BsYXNoID0gaW5qZWN0KE1pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZykuc3BsYXNoID8/IE1pY3JvZnJvbnRlbmRTcGxhc2hDb21wb25lbnQ7XG4gICAgdGhpcy5pbnN0YWxsV29ya2JlbmNoRHJhZ0RldGVjdG9yKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTaXplUHJvcGVydGllcygpO1xuICAgIHRoaXMucHJvcGFnYXRlTWVzc2FnZUJveENvbnRleHQoKTtcbiAgICB0aGlzLnByb3BhZ2F0ZVdvcmtiZW5jaFRoZW1lKCk7XG4gICAgdGhpcy5uYXZpZ2F0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvbiA9IHRoaXMuX21hbmlmZXN0U2VydmljZS5nZXRBcHBsaWNhdGlvbih0aGlzLmNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZSk7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+IGBMb2FkaW5nIG1pY3JvZnJvbnRlbmQgaW50byB3b3JrYmVuY2ggbWVzc2FnZSBib3ggW2FwcD0ke3RoaXMuY2FwYWJpbGl0eS5tZXRhZGF0YSEuYXBwU3ltYm9saWNOYW1lfSwgYmFzZVVybD0ke2FwcGxpY2F0aW9uLmJhc2VVcmx9LCBwYXRoPSR7dGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMucGF0aH1dLmAsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQsIHRoaXMucGFyYW1zLCB0aGlzLmNhcGFiaWxpdHkpO1xuICAgIHRoaXMuX291dGxldFJvdXRlci5uYXZpZ2F0ZSh0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5wYXRoLCB7XG4gICAgICBvdXRsZXQ6IHRoaXMub3V0bGV0TmFtZSxcbiAgICAgIHJlbGF0aXZlVG86IGFwcGxpY2F0aW9uLmJhc2VVcmwsXG4gICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxuICAgICAgcHVzaFN0YXRlVG9TZXNzaW9uSGlzdG9yeVN0YWNrOiBmYWxzZSxcbiAgICAgIHNob3dTcGxhc2g6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNob3dTcGxhc2gsXG4gICAgfSkudGhlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhlIG1lc3NhZ2UgYm94IGNvbnRleHQgYXZhaWxhYmxlIHRvIGVtYmVkZGVkIGNvbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIHByb3BhZ2F0ZU1lc3NhZ2VCb3hDb250ZXh0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQ6IMm1TWVzc2FnZUJveENvbnRleHQgPSB7XG4gICAgICBjYXBhYmlsaXR5OiB0aGlzLmNhcGFiaWxpdHksXG4gICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxuICAgIH07XG4gICAgdGhpcy5yb3V0ZXJPdXRsZXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2V0Q29udGV4dFZhbHVlKMm1TUVTU0FHRV9CT1hfQ09OVEVYVCwgY29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIHNldFNpemVQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIHNldFN0eWxlKHRoaXMucm91dGVyT3V0bGV0RWxlbWVudCwge1xuICAgICAgJ3dpZHRoJzogdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuc2l6ZT8ud2lkdGggPz8gJzAnLCAvLyBhbGxvdyBjb250ZW50IHNpemUgdG8gZ28gYmVsbG93IHRoZSBkZWZhdWx0IGlmcmFtZSBzaXplIHdoZW4gcmVwb3J0aW5nIHByZWZlcnJlZCBzaXplXG4gICAgICAnbWluLXdpZHRoJzogdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuc2l6ZT8ubWluV2lkdGggPz8gbnVsbCxcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy5tYXhXaWR0aCA/PyBudWxsLFxuICAgICAgJ2hlaWdodCc6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/LmhlaWdodCA/PyAnMCcsIC8vIGFsbG93IGNvbnRlbnQgc2l6ZSB0byBnbyBiZWxsb3cgdGhlIGRlZmF1bHQgaWZyYW1lIHNpemUgd2hlbiByZXBvcnRpbmcgcHJlZmVycmVkIHNpemVcbiAgICAgICdtaW4taGVpZ2h0JzogdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuc2l6ZT8ubWluSGVpZ2h0ID8/IG51bGwsXG4gICAgICAnbWF4LWhlaWdodCc6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/Lm1heEhlaWdodCA/PyBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVXb3JrYmVuY2hUaGVtZSgpOiB2b2lkIHtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IE1pY3JvZnJvbnRlbmRzLnByb3BhZ2F0ZVRoZW1lKHRoaXMucm91dGVyT3V0bGV0RWxlbWVudC5uYXRpdmVFbGVtZW50KSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUge0BsaW5rIGlzV29ya2JlbmNoRHJhZ30gcHJvcGVydHkgd2hlbiBhIHdvcmtiZW5jaCBkcmFnIG9wZXJhdGlvbiBpcyBkZXRlY3RlZCxcbiAgICogc3VjaCBhcyB3aGVuIGRyYWdnaW5nIGEgdmlldyBvciBtb3ZpbmcgYSBzYXNoLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsV29ya2JlbmNoRHJhZ0RldGVjdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2UuZHJhZ2dpbmckXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2JlbmNoRHJhZyA9IChldmVudCA9PT0gJ3N0YXJ0Jyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdXRsZXRSb3V0ZXIubmF2aWdhdGUobnVsbCwge291dGxldDogdGhpcy5vdXRsZXROYW1lfSkudGhlbigpOyAvLyBDbGVhciB0aGUgb3V0bGV0LlxuICB9XG59XG4iLCI8c2NpLXJvdXRlci1vdXRsZXQgI3JvdXRlcl9vdXRsZXRcbiAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJvdXRsZXROYW1lXCJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhcGFiaWxpdHlpZF09XCJjYXBhYmlsaXR5Lm1ldGFkYXRhIS5pZFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hcHBdPVwiY2FwYWJpbGl0eS5tZXRhZGF0YSEuYXBwU3ltYm9saWNOYW1lXCJcbiAgICAgICAgICAgICAgICAgICBrZXlzdHJva2VzPVwia2V5ZG93bi5lc2NhcGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJzcGxhc2hcIi8+XG48L3NjaS1yb3V0ZXItb3V0bGV0PlxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
3
|
+
import { Objects } from '../../common/objects.util';
|
|
4
|
+
import { MAIN_AREA } from '../../layout/workbench-layout';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Asserts perspective capabilities to have required properties.
|
|
8
|
+
*/
|
|
9
|
+
export class MicrofrontendPerspectiveCapabilityValidator {
|
|
10
|
+
async intercept(capability) {
|
|
11
|
+
if (capability.type !== WorkbenchCapabilities.Perspective) {
|
|
12
|
+
return capability;
|
|
13
|
+
}
|
|
14
|
+
const perspectiveCapability = capability;
|
|
15
|
+
// Assert the perspective capability to have a qualifier set.
|
|
16
|
+
if (!Object.keys(perspectiveCapability.qualifier ?? {}).length) {
|
|
17
|
+
throw Error(`[NullQualifierError] Perspective capability requires a qualifier [capability=${JSON.stringify(perspectiveCapability)}]`);
|
|
18
|
+
}
|
|
19
|
+
// Assert the perspective capability to have a layout set.
|
|
20
|
+
if (!perspectiveCapability.properties?.layout) {
|
|
21
|
+
throw Error(`[NullLayoutError] Perspective capability requires a layout [application="${perspectiveCapability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(perspectiveCapability.qualifier)}"]`);
|
|
22
|
+
}
|
|
23
|
+
// Assert the perspective capability to define parts.
|
|
24
|
+
if (!perspectiveCapability.properties.layout.length) {
|
|
25
|
+
throw Error(`[NullLayoutError] Perspective capability requires parts [application="${perspectiveCapability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(perspectiveCapability.qualifier)}"]`);
|
|
26
|
+
}
|
|
27
|
+
// Assert no views to be added to the main area.
|
|
28
|
+
if (perspectiveCapability.properties.layout.find(part => part.id === MAIN_AREA)?.views?.length) {
|
|
29
|
+
throw Error(`[PerspectiveLayoutError] Perspective capability cannot add views to the main area [application="${perspectiveCapability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(perspectiveCapability.qualifier)}"]`);
|
|
30
|
+
}
|
|
31
|
+
return capability;
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveCapabilityValidator }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveCapabilityValidator, decorators: [{
|
|
37
|
+
type: Injectable
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1wZXJzcGVjdGl2ZS1jYXBhYmlsaXR5LXZhbGlkYXRvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wZXJzcGVjdGl2ZS9taWNyb2Zyb250ZW5kLXBlcnNwZWN0aXZlLWNhcGFiaWxpdHktdmFsaWRhdG9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHFCQUFxQixFQUFpQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sK0JBQStCLENBQUM7O0FBRXhEOztHQUVHO0FBRUgsTUFBTSxPQUFPLDJDQUEyQztJQUUvQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQXNCO1FBQzNDLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsTUFBTSxxQkFBcUIsR0FBRyxVQUE0QyxDQUFDO1FBQzNFLDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsTUFBTSxLQUFLLENBQUMsZ0ZBQWdGLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEksQ0FBQztRQUVELDBEQUEwRDtRQUMxRCxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlDLE1BQU0sS0FBSyxDQUFDLDRFQUE0RSxxQkFBcUIsQ0FBQyxRQUFTLENBQUMsZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxTixDQUFDO1FBRUQscURBQXFEO1FBQ3JELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BELE1BQU0sS0FBSyxDQUFDLHlFQUF5RSxxQkFBcUIsQ0FBQyxRQUFTLENBQUMsZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2TixDQUFDO1FBRUQsZ0RBQWdEO1FBQ2hELElBQUkscUJBQXFCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMvRixNQUFNLEtBQUssQ0FBQyxtR0FBbUcscUJBQXFCLENBQUMsUUFBUyxDQUFDLGVBQWUsa0JBQWtCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDalAsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OEdBN0JVLDJDQUEyQztrSEFBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQUR2RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NhcGFiaWxpdHksIENhcGFiaWxpdHlJbnRlcmNlcHRvcn0gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoQ2FwYWJpbGl0aWVzLCBXb3JrYmVuY2hQZXJzcGVjdGl2ZUNhcGFiaWxpdHl9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnLi4vLi4vY29tbW9uL29iamVjdHMudXRpbCc7XG5pbXBvcnQge01BSU5fQVJFQX0gZnJvbSAnLi4vLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQnO1xuXG4vKipcbiAqIEFzc2VydHMgcGVyc3BlY3RpdmUgY2FwYWJpbGl0aWVzIHRvIGhhdmUgcmVxdWlyZWQgcHJvcGVydGllcy5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRQZXJzcGVjdGl2ZUNhcGFiaWxpdHlWYWxpZGF0b3IgaW1wbGVtZW50cyBDYXBhYmlsaXR5SW50ZXJjZXB0b3Ige1xuXG4gIHB1YmxpYyBhc3luYyBpbnRlcmNlcHQoY2FwYWJpbGl0eTogQ2FwYWJpbGl0eSk6IFByb21pc2U8Q2FwYWJpbGl0eT4ge1xuICAgIGlmIChjYXBhYmlsaXR5LnR5cGUgIT09IFdvcmtiZW5jaENhcGFiaWxpdGllcy5QZXJzcGVjdGl2ZSkge1xuICAgICAgcmV0dXJuIGNhcGFiaWxpdHk7XG4gICAgfVxuXG4gICAgY29uc3QgcGVyc3BlY3RpdmVDYXBhYmlsaXR5ID0gY2FwYWJpbGl0eSBhcyBXb3JrYmVuY2hQZXJzcGVjdGl2ZUNhcGFiaWxpdHk7XG4gICAgLy8gQXNzZXJ0IHRoZSBwZXJzcGVjdGl2ZSBjYXBhYmlsaXR5IHRvIGhhdmUgYSBxdWFsaWZpZXIgc2V0LlxuICAgIGlmICghT2JqZWN0LmtleXMocGVyc3BlY3RpdmVDYXBhYmlsaXR5LnF1YWxpZmllciA/PyB7fSkubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBFcnJvcihgW051bGxRdWFsaWZpZXJFcnJvcl0gUGVyc3BlY3RpdmUgY2FwYWJpbGl0eSByZXF1aXJlcyBhIHF1YWxpZmllciBbY2FwYWJpbGl0eT0ke0pTT04uc3RyaW5naWZ5KHBlcnNwZWN0aXZlQ2FwYWJpbGl0eSl9XWApO1xuICAgIH1cblxuICAgIC8vIEFzc2VydCB0aGUgcGVyc3BlY3RpdmUgY2FwYWJpbGl0eSB0byBoYXZlIGEgbGF5b3V0IHNldC5cbiAgICBpZiAoIXBlcnNwZWN0aXZlQ2FwYWJpbGl0eS5wcm9wZXJ0aWVzPy5sYXlvdXQpIHtcbiAgICAgIHRocm93IEVycm9yKGBbTnVsbExheW91dEVycm9yXSBQZXJzcGVjdGl2ZSBjYXBhYmlsaXR5IHJlcXVpcmVzIGEgbGF5b3V0IFthcHBsaWNhdGlvbj1cIiR7cGVyc3BlY3RpdmVDYXBhYmlsaXR5Lm1ldGFkYXRhIS5hcHBTeW1ib2xpY05hbWV9XCIsIGNhcGFiaWxpdHk9XCIke09iamVjdHMudG9NYXRyaXhOb3RhdGlvbihwZXJzcGVjdGl2ZUNhcGFiaWxpdHkucXVhbGlmaWVyKX1cIl1gKTtcbiAgICB9XG5cbiAgICAvLyBBc3NlcnQgdGhlIHBlcnNwZWN0aXZlIGNhcGFiaWxpdHkgdG8gZGVmaW5lIHBhcnRzLlxuICAgIGlmICghcGVyc3BlY3RpdmVDYXBhYmlsaXR5LnByb3BlcnRpZXMubGF5b3V0Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtOdWxsTGF5b3V0RXJyb3JdIFBlcnNwZWN0aXZlIGNhcGFiaWxpdHkgcmVxdWlyZXMgcGFydHMgW2FwcGxpY2F0aW9uPVwiJHtwZXJzcGVjdGl2ZUNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZX1cIiwgY2FwYWJpbGl0eT1cIiR7T2JqZWN0cy50b01hdHJpeE5vdGF0aW9uKHBlcnNwZWN0aXZlQ2FwYWJpbGl0eS5xdWFsaWZpZXIpfVwiXWApO1xuICAgIH1cblxuICAgIC8vIEFzc2VydCBubyB2aWV3cyB0byBiZSBhZGRlZCB0byB0aGUgbWFpbiBhcmVhLlxuICAgIGlmIChwZXJzcGVjdGl2ZUNhcGFiaWxpdHkucHJvcGVydGllcy5sYXlvdXQuZmluZChwYXJ0ID0+IHBhcnQuaWQgPT09IE1BSU5fQVJFQSk/LnZpZXdzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IEVycm9yKGBbUGVyc3BlY3RpdmVMYXlvdXRFcnJvcl0gUGVyc3BlY3RpdmUgY2FwYWJpbGl0eSBjYW5ub3QgYWRkIHZpZXdzIHRvIHRoZSBtYWluIGFyZWEgW2FwcGxpY2F0aW9uPVwiJHtwZXJzcGVjdGl2ZUNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZX1cIiwgY2FwYWJpbGl0eT1cIiR7T2JqZWN0cy50b01hdHJpeE5vdGF0aW9uKHBlcnNwZWN0aXZlQ2FwYWJpbGl0eS5xdWFsaWZpZXIpfVwiXWApO1xuICAgIH1cblxuICAgIHJldHVybiBjYXBhYmlsaXR5O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,120 @@
|
|
|
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 { inject, Injectable, IterableDiffers } from '@angular/core';
|
|
11
|
+
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
12
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
|
+
import { firstValueFrom } from 'rxjs';
|
|
14
|
+
import { MicrofrontendViewRoutes } from '../routing/microfrontend-view-routes';
|
|
15
|
+
import { LoggerNames } from '../../logging';
|
|
16
|
+
import { filterArray } from '@scion/toolkit/operators';
|
|
17
|
+
import { Objects } from '../../common/objects.util';
|
|
18
|
+
import { WorkbenchPerspectiveData } from './workbench-perspective-data';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "@scion/microfrontend-platform";
|
|
21
|
+
import * as i2 from "../../workbench.service";
|
|
22
|
+
import * as i3 from "../../logging";
|
|
23
|
+
/**
|
|
24
|
+
* Registers perspectives for workbench perspective capabilities.
|
|
25
|
+
*/
|
|
26
|
+
export class MicrofrontendPerspectiveInstaller {
|
|
27
|
+
constructor(_manifestService, _workbenchService, _logger) {
|
|
28
|
+
this._manifestService = _manifestService;
|
|
29
|
+
this._workbenchService = _workbenchService;
|
|
30
|
+
this._logger = _logger;
|
|
31
|
+
this.installPerspectiveCapabilityListener();
|
|
32
|
+
}
|
|
33
|
+
installPerspectiveCapabilityListener() {
|
|
34
|
+
const differ = inject(IterableDiffers).find([]).create((_index, perspectiveCapability) => perspectiveCapability.metadata.id);
|
|
35
|
+
this._manifestService.lookupCapabilities$({ type: WorkbenchCapabilities.Perspective })
|
|
36
|
+
.pipe(takeUntilDestroyed())
|
|
37
|
+
.subscribe(perspectiveCapabilities => {
|
|
38
|
+
const changes = differ.diff(perspectiveCapabilities);
|
|
39
|
+
changes?.forEachAddedItem(({ item: perspectiveCapability }) => this.registerPerspective(perspectiveCapability));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async registerPerspective(perspectiveCapability) {
|
|
43
|
+
return this._workbenchService.registerPerspective({
|
|
44
|
+
id: perspectiveCapability.metadata.id,
|
|
45
|
+
layout: this.createLayout(perspectiveCapability),
|
|
46
|
+
data: {
|
|
47
|
+
...perspectiveCapability.properties?.data,
|
|
48
|
+
[WorkbenchPerspectiveData.capability]: perspectiveCapability,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
createLayout(perspectiveCapability) {
|
|
53
|
+
return async (factory) => {
|
|
54
|
+
const [initialPart, ...parts] = perspectiveCapability.properties.layout;
|
|
55
|
+
// Add parts to the layout.
|
|
56
|
+
let layout = factory.addPart(initialPart.id);
|
|
57
|
+
for (const part of parts) {
|
|
58
|
+
layout = layout.addPart(part.id, {
|
|
59
|
+
relativeTo: part.relativeTo,
|
|
60
|
+
align: part.align,
|
|
61
|
+
ratio: part.ratio,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Add views to the layout.
|
|
65
|
+
for (const part of [initialPart, ...parts]) {
|
|
66
|
+
if (!part.views?.length) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
for (const [viewIndex, view] of part.views.entries()) {
|
|
70
|
+
const viewCapabilities = await this.lookupViewCapabilities(view.qualifier, {
|
|
71
|
+
perspectiveProvider: perspectiveCapability.metadata.appSymbolicName,
|
|
72
|
+
perspectiveQualifier: perspectiveCapability.qualifier,
|
|
73
|
+
});
|
|
74
|
+
viewCapabilities
|
|
75
|
+
.map(viewCapability => viewCapability.metadata.id)
|
|
76
|
+
.sort() // Ensure stable view order in case multiple capabilities match the qualifier.
|
|
77
|
+
.forEach(viewCapabilityId => {
|
|
78
|
+
const commands = MicrofrontendViewRoutes.createMicrofrontendNavigateCommands(viewCapabilityId, view.params ?? {});
|
|
79
|
+
const alternativeViewId = `${part.id}-${viewCapabilityId}-${viewIndex}`;
|
|
80
|
+
layout = layout
|
|
81
|
+
.addView(alternativeViewId, { partId: part.id, activateView: view.active })
|
|
82
|
+
.navigateView(alternativeViewId, commands, { cssClass: view.cssClass });
|
|
83
|
+
});
|
|
84
|
+
// Navigate to the "~" route if not finding a view capability, e.g., because the perspective provider references a private view capability
|
|
85
|
+
// or has not declared an intention. Since there is no route registered under /~ the "Not Found" page will be displayed.
|
|
86
|
+
if (!viewCapabilities.length) {
|
|
87
|
+
this._logger.warn(() => `[NullCapabilityError] The perspective '${Objects.toMatrixNotation(perspectiveCapability.qualifier)}' cannot find the view '${Objects.toMatrixNotation(view.qualifier)}'. Verify the application is available and the view exists.`, LoggerNames.MICROFRONTEND);
|
|
88
|
+
const alternativeViewId = `${part.id}-${viewIndex}`;
|
|
89
|
+
layout = layout
|
|
90
|
+
.addView(alternativeViewId, { partId: part.id, activateView: view.active })
|
|
91
|
+
.navigateView(alternativeViewId, ['~', view.qualifier], { cssClass: view.cssClass });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return layout;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Searches for views that match the specified qualifier and are accessible to the perspective provider,
|
|
100
|
+
* i.e., its own view capabilities or public view capabilities of other applications the perspective provider
|
|
101
|
+
* has an intention for.
|
|
102
|
+
*/
|
|
103
|
+
async lookupViewCapabilities(qualifier, perspective) {
|
|
104
|
+
const viewCapabilities$ = this._manifestService.lookupCapabilities$({ type: WorkbenchCapabilities.View, qualifier })
|
|
105
|
+
.pipe(filterArray(async (viewCapability) => {
|
|
106
|
+
const allowed = await firstValueFrom(this._manifestService.isApplicationQualified$(perspective.perspectiveProvider, { capabilityId: viewCapability.metadata.id }));
|
|
107
|
+
if (!allowed) {
|
|
108
|
+
this._logger.warn(`[NotQualifiedError] Application '${(perspective.perspectiveProvider)}' is not allowed to reference the view '${Objects.toMatrixNotation(viewCapability.qualifier)}' in the perspective '${Objects.toMatrixNotation(perspective.perspectiveQualifier)}'. Ensure you have specified an intention and that the view is public.`, LoggerNames.MICROFRONTEND);
|
|
109
|
+
}
|
|
110
|
+
return allowed;
|
|
111
|
+
}));
|
|
112
|
+
return firstValueFrom(viewCapabilities$);
|
|
113
|
+
}
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveInstaller, deps: [{ token: i1.ManifestService }, { token: i2.WorkbenchService }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
115
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveInstaller }); }
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveInstaller, decorators: [{
|
|
118
|
+
type: Injectable
|
|
119
|
+
}], ctorParameters: () => [{ type: i1.ManifestService }, { type: i2.WorkbenchService }, { type: i3.Logger }] });
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1wZXJzcGVjdGl2ZS1pbnN0YWxsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wZXJzcGVjdGl2ZS9taWNyb2Zyb250ZW5kLXBlcnNwZWN0aXZlLWluc3RhbGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxxQkFBcUIsRUFBMEQsTUFBTSx5QkFBeUIsQ0FBQztBQUV2SCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUc5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFFdEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUNBQWlDO0lBRTVDLFlBQW9CLGdCQUFpQyxFQUNqQyxpQkFBbUMsRUFDbkMsT0FBZTtRQUZmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2pDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxDQUFD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OzJGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlLCBJdGVyYWJsZURpZmZlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYW5pZmVzdFNlcnZpY2UsIFF1YWxpZmllcn0gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtXb3JrYmVuY2hDYXBhYmlsaXRpZXMsIFdvcmtiZW5jaFBlcnNwZWN0aXZlQ2FwYWJpbGl0eSwgV29ya2JlbmNoVmlld0NhcGFiaWxpdHl9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7V29ya2JlbmNoU2VydmljZX0gZnJvbSAnLi4vLi4vd29ya2JlbmNoLnNlcnZpY2UnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0fSBmcm9tICcuLi8uLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dEZufSBmcm9tICcuLi8uLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUubW9kZWwnO1xuaW1wb3J0IHtmaXJzdFZhbHVlRnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dEZhY3Rvcnl9IGZyb20gJy4uLy4uL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kVmlld1JvdXRlc30gZnJvbSAnLi4vcm91dGluZy9taWNyb2Zyb250ZW5kLXZpZXctcm91dGVzJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vLi4vbG9nZ2luZyc7XG5pbXBvcnQge2ZpbHRlckFycmF5fSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYmplY3RzfSBmcm9tICcuLi8uLi9jb21tb24vb2JqZWN0cy51dGlsJztcbmltcG9ydCB7V29ya2JlbmNoUGVyc3BlY3RpdmVEYXRhfSBmcm9tICcuL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS1kYXRhJztcblxuLyoqXG4gKiBSZWdpc3RlcnMgcGVyc3BlY3RpdmVzIGZvciB3b3JrYmVuY2ggcGVyc3BlY3RpdmUgY2FwYWJpbGl0aWVzLlxuICovXG5ASW5qZWN0YWJsZSgvKiBETyBOT1QgUFJPVklERSB2aWEgJ3Byb3ZpZGVkSW4nIG1ldGFkYXRhIGFzIG9ubHkgcmVnaXN0ZXJlZCBpZiBtaWNyb2Zyb250ZW5kIHN1cHBvcnQgaXMgZW5hYmxlZC4gKi8pXG5leHBvcnQgY2xhc3MgTWljcm9mcm9udGVuZFBlcnNwZWN0aXZlSW5zdGFsbGVyIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tYW5pZmVzdFNlcnZpY2U6IE1hbmlmZXN0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoU2VydmljZTogV29ya2JlbmNoU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICB0aGlzLmluc3RhbGxQZXJzcGVjdGl2ZUNhcGFiaWxpdHlMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsUGVyc3BlY3RpdmVDYXBhYmlsaXR5TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgY29uc3QgZGlmZmVyID0gaW5qZWN0KEl0ZXJhYmxlRGlmZmVycykuZmluZChbXSkuY3JlYXRlPFdvcmtiZW5jaFBlcnNwZWN0aXZlQ2FwYWJpbGl0eT4oKF9pbmRleCwgcGVyc3BlY3RpdmVDYXBhYmlsaXR5KSA9PiBwZXJzcGVjdGl2ZUNhcGFiaWxpdHkubWV0YWRhdGEhLmlkKTtcbiAgICB0aGlzLl9tYW5pZmVzdFNlcnZpY2UubG9va3VwQ2FwYWJpbGl0aWVzJDxXb3JrYmVuY2hQZXJzcGVjdGl2ZUNhcGFiaWxpdHk+KHt0eXBlOiBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuUGVyc3BlY3RpdmV9KVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKHBlcnNwZWN0aXZlQ2FwYWJpbGl0aWVzID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IGRpZmZlci5kaWZmKHBlcnNwZWN0aXZlQ2FwYWJpbGl0aWVzKTtcbiAgICAgICAgY2hhbmdlcz8uZm9yRWFjaEFkZGVkSXRlbSgoe2l0ZW06IHBlcnNwZWN0aXZlQ2FwYWJpbGl0eX0pID0+IHRoaXMucmVnaXN0ZXJQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZUNhcGFiaWxpdHkpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWdpc3RlclBlcnNwZWN0aXZlKHBlcnNwZWN0aXZlQ2FwYWJpbGl0eTogV29ya2JlbmNoUGVyc3BlY3RpdmVDYXBhYmlsaXR5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UucmVnaXN0ZXJQZXJzcGVjdGl2ZSh7XG4gICAgICBpZDogcGVyc3BlY3RpdmVDYXBhYmlsaXR5Lm1ldGFkYXRhIS5pZCxcbiAgICAgIGxheW91dDogdGhpcy5jcmVhdGVMYXlvdXQocGVyc3BlY3RpdmVDYXBhYmlsaXR5KSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucGVyc3BlY3RpdmVDYXBhYmlsaXR5LnByb3BlcnRpZXM/LmRhdGEsXG4gICAgICAgIFtXb3JrYmVuY2hQZXJzcGVjdGl2ZURhdGEuY2FwYWJpbGl0eV06IHBlcnNwZWN0aXZlQ2FwYWJpbGl0eSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxheW91dChwZXJzcGVjdGl2ZUNhcGFiaWxpdHk6IFdvcmtiZW5jaFBlcnNwZWN0aXZlQ2FwYWJpbGl0eSk6IFdvcmtiZW5jaExheW91dEZuIHtcbiAgICByZXR1cm4gYXN5bmMgKGZhY3Rvcnk6IFdvcmtiZW5jaExheW91dEZhY3RvcnkpOiBQcm9taXNlPFdvcmtiZW5jaExheW91dD4gPT4ge1xuICAgICAgY29uc3QgW2luaXRpYWxQYXJ0LCAuLi5wYXJ0c10gPSBwZXJzcGVjdGl2ZUNhcGFiaWxpdHkucHJvcGVydGllcy5sYXlvdXQ7XG5cbiAgICAgIC8vIEFkZCBwYXJ0cyB0byB0aGUgbGF5b3V0LlxuICAgICAgbGV0IGxheW91dCA9IGZhY3RvcnkuYWRkUGFydChpbml0aWFsUGFydC5pZCk7XG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgICAgbGF5b3V0ID0gbGF5b3V0LmFkZFBhcnQocGFydC5pZCwge1xuICAgICAgICAgIHJlbGF0aXZlVG86IHBhcnQucmVsYXRpdmVUbyxcbiAgICAgICAgICBhbGlnbjogcGFydC5hbGlnbixcbiAgICAgICAgICByYXRpbzogcGFydC5yYXRpbyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCB2aWV3cyB0byB0aGUgbGF5b3V0LlxuICAgICAgZm9yIChjb25zdCBwYXJ0IG9mIFtpbml0aWFsUGFydCwgLi4ucGFydHNdKSB7XG4gICAgICAgIGlmICghcGFydC52aWV3cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IFt2aWV3SW5kZXgsIHZpZXddIG9mIHBhcnQudmlld3MuZW50cmllcygpKSB7XG4gICAgICAgICAgY29uc3Qgdmlld0NhcGFiaWxpdGllcyA9IGF3YWl0IHRoaXMubG9va3VwVmlld0NhcGFiaWxpdGllcyh2aWV3LnF1YWxpZmllciwge1xuICAgICAgICAgICAgcGVyc3BlY3RpdmVQcm92aWRlcjogcGVyc3BlY3RpdmVDYXBhYmlsaXR5Lm1ldGFkYXRhIS5hcHBTeW1ib2xpY05hbWUsXG4gICAgICAgICAgICBwZXJzcGVjdGl2ZVF1YWxpZmllcjogcGVyc3BlY3RpdmVDYXBhYmlsaXR5LnF1YWxpZmllcixcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHZpZXdDYXBhYmlsaXRpZXNcbiAgICAgICAgICAgIC5tYXAodmlld0NhcGFiaWxpdHkgPT4gdmlld0NhcGFiaWxpdHkubWV0YWRhdGEhLmlkKVxuICAgICAgICAgICAgLnNvcnQoKSAvLyBFbnN1cmUgc3RhYmxlIHZpZXcgb3JkZXIgaW4gY2FzZSBtdWx0aXBsZSBjYXBhYmlsaXRpZXMgbWF0Y2ggdGhlIHF1YWxpZmllci5cbiAgICAgICAgICAgIC5mb3JFYWNoKHZpZXdDYXBhYmlsaXR5SWQgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjb21tYW5kcyA9IE1pY3JvZnJvbnRlbmRWaWV3Um91dGVzLmNyZWF0ZU1pY3JvZnJvbnRlbmROYXZpZ2F0ZUNvbW1hbmRzKHZpZXdDYXBhYmlsaXR5SWQsIHZpZXcucGFyYW1zID8/IHt9KTtcbiAgICAgICAgICAgICAgY29uc3QgYWx0ZXJuYXRpdmVWaWV3SWQgPSBgJHtwYXJ0LmlkfS0ke3ZpZXdDYXBhYmlsaXR5SWR9LSR7dmlld0luZGV4fWA7XG4gICAgICAgICAgICAgIGxheW91dCA9IGxheW91dFxuICAgICAgICAgICAgICAgIC5hZGRWaWV3KGFsdGVybmF0aXZlVmlld0lkLCB7cGFydElkOiBwYXJ0LmlkLCBhY3RpdmF0ZVZpZXc6IHZpZXcuYWN0aXZlfSlcbiAgICAgICAgICAgICAgICAubmF2aWdhdGVWaWV3KGFsdGVybmF0aXZlVmlld0lkLCBjb21tYW5kcywge2Nzc0NsYXNzOiB2aWV3LmNzc0NsYXNzfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIE5hdmlnYXRlIHRvIHRoZSBcIn5cIiByb3V0ZSBpZiBub3QgZmluZGluZyBhIHZpZXcgY2FwYWJpbGl0eSwgZS5nLiwgYmVjYXVzZSB0aGUgcGVyc3BlY3RpdmUgcHJvdmlkZXIgcmVmZXJlbmNlcyBhIHByaXZhdGUgdmlldyBjYXBhYmlsaXR5XG4gICAgICAgICAgLy8gb3IgaGFzIG5vdCBkZWNsYXJlZCBhbiBpbnRlbnRpb24uIFNpbmNlIHRoZXJlIGlzIG5vIHJvdXRlIHJlZ2lzdGVyZWQgdW5kZXIgL34gdGhlIFwiTm90IEZvdW5kXCIgcGFnZSB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICAgICAgICBpZiAoIXZpZXdDYXBhYmlsaXRpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIud2FybigoKSA9PiBgW051bGxDYXBhYmlsaXR5RXJyb3JdIFRoZSBwZXJzcGVjdGl2ZSAnJHtPYmplY3RzLnRvTWF0cml4Tm90YXRpb24ocGVyc3BlY3RpdmVDYXBhYmlsaXR5LnF1YWxpZmllcil9JyBjYW5ub3QgZmluZCB0aGUgdmlldyAnJHtPYmplY3RzLnRvTWF0cml4Tm90YXRpb24odmlldy5xdWFsaWZpZXIpfScuIFZlcmlmeSB0aGUgYXBwbGljYXRpb24gaXMgYXZhaWxhYmxlIGFuZCB0aGUgdmlldyBleGlzdHMuYCwgTG9nZ2VyTmFtZXMuTUlDUk9GUk9OVEVORCk7XG4gICAgICAgICAgICBjb25zdCBhbHRlcm5hdGl2ZVZpZXdJZCA9IGAke3BhcnQuaWR9LSR7dmlld0luZGV4fWA7XG4gICAgICAgICAgICBsYXlvdXQgPSBsYXlvdXRcbiAgICAgICAgICAgICAgLmFkZFZpZXcoYWx0ZXJuYXRpdmVWaWV3SWQsIHtwYXJ0SWQ6IHBhcnQuaWQsIGFjdGl2YXRlVmlldzogdmlldy5hY3RpdmV9KVxuICAgICAgICAgICAgICAubmF2aWdhdGVWaWV3KGFsdGVybmF0aXZlVmlld0lkLCBbJ34nLCB2aWV3LnF1YWxpZmllcl0sIHtjc3NDbGFzczogdmlldy5jc3NDbGFzc30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGF5b3V0O1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoZXMgZm9yIHZpZXdzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBxdWFsaWZpZXIgYW5kIGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBwZXJzcGVjdGl2ZSBwcm92aWRlcixcbiAgICogaS5lLiwgaXRzIG93biB2aWV3IGNhcGFiaWxpdGllcyBvciBwdWJsaWMgdmlldyBjYXBhYmlsaXRpZXMgb2Ygb3RoZXIgYXBwbGljYXRpb25zIHRoZSBwZXJzcGVjdGl2ZSBwcm92aWRlclxuICAgKiBoYXMgYW4gaW50ZW50aW9uIGZvci5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9va3VwVmlld0NhcGFiaWxpdGllcyhxdWFsaWZpZXI6IFF1YWxpZmllciwgcGVyc3BlY3RpdmU6IHtwZXJzcGVjdGl2ZVByb3ZpZGVyOiBzdHJpbmc7IHBlcnNwZWN0aXZlUXVhbGlmaWVyOiBRdWFsaWZpZXJ9KTogUHJvbWlzZTxXb3JrYmVuY2hWaWV3Q2FwYWJpbGl0eVtdPiB7XG4gICAgY29uc3Qgdmlld0NhcGFiaWxpdGllcyQgPSB0aGlzLl9tYW5pZmVzdFNlcnZpY2UubG9va3VwQ2FwYWJpbGl0aWVzJDxXb3JrYmVuY2hWaWV3Q2FwYWJpbGl0eT4oe3R5cGU6IFdvcmtiZW5jaENhcGFiaWxpdGllcy5WaWV3LCBxdWFsaWZpZXJ9KVxuICAgICAgLnBpcGUoZmlsdGVyQXJyYXkoYXN5bmMgdmlld0NhcGFiaWxpdHkgPT4ge1xuICAgICAgICBjb25zdCBhbGxvd2VkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fbWFuaWZlc3RTZXJ2aWNlLmlzQXBwbGljYXRpb25RdWFsaWZpZWQkKHBlcnNwZWN0aXZlLnBlcnNwZWN0aXZlUHJvdmlkZXIsIHtjYXBhYmlsaXR5SWQ6IHZpZXdDYXBhYmlsaXR5Lm1ldGFkYXRhIS5pZH0pKTtcbiAgICAgICAgaWYgKCFhbGxvd2VkKSB7XG4gICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oYFtOb3RRdWFsaWZpZWRFcnJvcl0gQXBwbGljYXRpb24gJyR7KHBlcnNwZWN0aXZlLnBlcnNwZWN0aXZlUHJvdmlkZXIpfScgaXMgbm90IGFsbG93ZWQgdG8gcmVmZXJlbmNlIHRoZSB2aWV3ICcke09iamVjdHMudG9NYXRyaXhOb3RhdGlvbih2aWV3Q2FwYWJpbGl0eS5xdWFsaWZpZXIpfScgaW4gdGhlIHBlcnNwZWN0aXZlICcke09iamVjdHMudG9NYXRyaXhOb3RhdGlvbihwZXJzcGVjdGl2ZS5wZXJzcGVjdGl2ZVF1YWxpZmllcil9Jy4gRW5zdXJlIHlvdSBoYXZlIHNwZWNpZmllZCBhbiBpbnRlbnRpb24gYW5kIHRoYXQgdGhlIHZpZXcgaXMgcHVibGljLmAsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhbGxvd2VkO1xuICAgICAgfSkpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh2aWV3Q2FwYWJpbGl0aWVzJCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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 { MessageClient, MessageHeaders, ResponseStatusCodes } from '@scion/microfrontend-platform';
|
|
11
|
+
import { Injectable } from '@angular/core';
|
|
12
|
+
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
13
|
+
import { LoggerNames } from '../../logging';
|
|
14
|
+
import { Beans } from '@scion/toolkit/bean-manager';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "../../workbench.service";
|
|
17
|
+
import * as i2 from "../../logging";
|
|
18
|
+
/**
|
|
19
|
+
* Handles perspective intents, instructing the workbench to switch perspective.
|
|
20
|
+
*/
|
|
21
|
+
export class MicrofrontendPerspectiveIntentHandler {
|
|
22
|
+
constructor(_workbenchService, _logger) {
|
|
23
|
+
this._workbenchService = _workbenchService;
|
|
24
|
+
this._logger = _logger;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Perspective intents are handled in this interceptor and then swallowed.
|
|
28
|
+
*/
|
|
29
|
+
intercept(intentMessage, next) {
|
|
30
|
+
if (intentMessage.intent.type === WorkbenchCapabilities.Perspective) {
|
|
31
|
+
return this.consumePerspectiveIntent(intentMessage);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return next.handle(intentMessage);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async consumePerspectiveIntent(message) {
|
|
38
|
+
const replyTo = message.headers.get(MessageHeaders.ReplyTo);
|
|
39
|
+
const success = await this.switchPerspective(message);
|
|
40
|
+
if (replyTo) {
|
|
41
|
+
await Beans.get(MessageClient).publish(replyTo, success, { headers: new Map().set(MessageHeaders.Status, ResponseStatusCodes.TERMINAL) });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
switchPerspective(message) {
|
|
45
|
+
const perspectiveId = message.capability.metadata.id;
|
|
46
|
+
this._logger.debug(() => `Switching to perspective ${perspectiveId}.`, LoggerNames.MICROFRONTEND);
|
|
47
|
+
return this._workbenchService.switchPerspective(perspectiveId);
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveIntentHandler, deps: [{ token: i1.WorkbenchService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
50
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveIntentHandler }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPerspectiveIntentHandler, decorators: [{
|
|
53
|
+
type: Injectable
|
|
54
|
+
}], ctorParameters: () => [{ type: i1.WorkbenchService }, { type: i2.Logger }] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1wZXJzcGVjdGl2ZS1pbnRlbnQtaGFuZGxlci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wZXJzcGVjdGl2ZS9taWNyb2Zyb250ZW5kLXBlcnNwZWN0aXZlLWludGVudC1oYW5kbGVyLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUE0QyxhQUFhLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDNUksT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUdsRDs7R0FFRztBQUVILE1BQU0sT0FBTyxxQ0FBcUM7SUFFaEQsWUFBb0IsaUJBQW1DLEVBQVUsT0FBZTtRQUE1RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsYUFBNEIsRUFBRSxJQUE0QjtRQUN6RSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLHdCQUF3QixDQUFDLE9BQTRCO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUMsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQzFJLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBNEI7UUFDcEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixhQUFhLEdBQUcsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakUsQ0FBQzs4R0E3QlUscUNBQXFDO2tIQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7SGFuZGxlciwgSW50ZW50SW50ZXJjZXB0b3IsIEludGVudE1lc3NhZ2UsIE1lc3NhZ2VDbGllbnQsIE1lc3NhZ2VIZWFkZXJzLCBSZXNwb25zZVN0YXR1c0NvZGVzfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDYXBhYmlsaXRpZXN9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vLi4vbG9nZ2luZyc7XG5pbXBvcnQge0JlYW5zfSBmcm9tICdAc2Npb24vdG9vbGtpdC9iZWFuLW1hbmFnZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi93b3JrYmVuY2guc2VydmljZSc7XG5cbi8qKlxuICogSGFuZGxlcyBwZXJzcGVjdGl2ZSBpbnRlbnRzLCBpbnN0cnVjdGluZyB0aGUgd29ya2JlbmNoIHRvIHN3aXRjaCBwZXJzcGVjdGl2ZS5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRQZXJzcGVjdGl2ZUludGVudEhhbmRsZXIgaW1wbGVtZW50cyBJbnRlbnRJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya2JlbmNoU2VydmljZTogV29ya2JlbmNoU2VydmljZSwgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJzcGVjdGl2ZSBpbnRlbnRzIGFyZSBoYW5kbGVkIGluIHRoaXMgaW50ZXJjZXB0b3IgYW5kIHRoZW4gc3dhbGxvd2VkLlxuICAgKi9cbiAgcHVibGljIGludGVyY2VwdChpbnRlbnRNZXNzYWdlOiBJbnRlbnRNZXNzYWdlLCBuZXh0OiBIYW5kbGVyPEludGVudE1lc3NhZ2U+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGludGVudE1lc3NhZ2UuaW50ZW50LnR5cGUgPT09IFdvcmtiZW5jaENhcGFiaWxpdGllcy5QZXJzcGVjdGl2ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZVBlcnNwZWN0aXZlSW50ZW50KGludGVudE1lc3NhZ2UpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShpbnRlbnRNZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbnN1bWVQZXJzcGVjdGl2ZUludGVudChtZXNzYWdlOiBJbnRlbnRNZXNzYWdlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVwbHlUbyA9IG1lc3NhZ2UuaGVhZGVycy5nZXQoTWVzc2FnZUhlYWRlcnMuUmVwbHlUbyk7XG4gICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc3dpdGNoUGVyc3BlY3RpdmUobWVzc2FnZSk7XG4gICAgaWYgKHJlcGx5VG8pIHtcbiAgICAgIGF3YWl0IEJlYW5zLmdldChNZXNzYWdlQ2xpZW50KS5wdWJsaXNoKHJlcGx5VG8sIHN1Y2Nlc3MsIHtoZWFkZXJzOiBuZXcgTWFwKCkuc2V0KE1lc3NhZ2VIZWFkZXJzLlN0YXR1cywgUmVzcG9uc2VTdGF0dXNDb2Rlcy5URVJNSU5BTCl9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN3aXRjaFBlcnNwZWN0aXZlKG1lc3NhZ2U6IEludGVudE1lc3NhZ2U8dm9pZD4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwZXJzcGVjdGl2ZUlkID0gbWVzc2FnZS5jYXBhYmlsaXR5Lm1ldGFkYXRhIS5pZDtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYFN3aXRjaGluZyB0byBwZXJzcGVjdGl2ZSAke3BlcnNwZWN0aXZlSWR9LmAsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQpO1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnN3aXRjaFBlcnNwZWN0aXZlKHBlcnNwZWN0aXZlSWQpO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
/**
|
|
11
|
+
* Keys for associating workbench-specific data with a perspective.
|
|
12
|
+
*/
|
|
13
|
+
export const WorkbenchPerspectiveData = {
|
|
14
|
+
/**
|
|
15
|
+
* Property to get the capability providing the perspective.
|
|
16
|
+
*/
|
|
17
|
+
capability: 'ɵcapability',
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXBlcnNwZWN0aXZlLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBRXRDOztPQUVHO0lBQ0gsVUFBVSxFQUFFLGFBQWE7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuLyoqXG4gKiBLZXlzIGZvciBhc3NvY2lhdGluZyB3b3JrYmVuY2gtc3BlY2lmaWMgZGF0YSB3aXRoIGEgcGVyc3BlY3RpdmUuXG4gKi9cbmV4cG9ydCBjb25zdCBXb3JrYmVuY2hQZXJzcGVjdGl2ZURhdGEgPSB7XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IHRvIGdldCB0aGUgY2FwYWJpbGl0eSBwcm92aWRpbmcgdGhlIHBlcnNwZWN0aXZlLlxuICAgKi9cbiAgY2FwYWJpbGl0eTogJ8m1Y2FwYWJpbGl0eScsXG59IGFzIGNvbnN0O1xuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
3
|
+
import { Objects } from '../../common/objects.util';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Asserts popup capabilities to have required properties.
|
|
@@ -11,13 +12,13 @@ export class MicrofrontendPopupCapabilityValidator {
|
|
|
11
12
|
}
|
|
12
13
|
const popupCapability = capability;
|
|
13
14
|
// Assert the popup capability to have a qualifier set.
|
|
14
|
-
if (!
|
|
15
|
+
if (!Object.keys(popupCapability.qualifier ?? {}).length) {
|
|
15
16
|
throw Error(`[NullQualifierError] Popup capability requires a qualifier [capability=${JSON.stringify(popupCapability)}]`);
|
|
16
17
|
}
|
|
17
18
|
// Assert the popup capability to have a path set.
|
|
18
19
|
const path = popupCapability.properties?.path;
|
|
19
20
|
if (path === undefined || path === null) {
|
|
20
|
-
throw Error(`[NullPathError] Popup capability requires a path to the microfrontend in its properties [capability
|
|
21
|
+
throw Error(`[NullPathError] Popup capability requires a path to the microfrontend in its properties [application="${popupCapability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(popupCapability.qualifier)}"]`);
|
|
21
22
|
}
|
|
22
23
|
return popupCapability;
|
|
23
24
|
}
|
|
@@ -27,4 +28,4 @@ export class MicrofrontendPopupCapabilityValidator {
|
|
|
27
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPopupCapabilityValidator, decorators: [{
|
|
28
29
|
type: Injectable
|
|
29
30
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1wb3B1cC1jYXBhYmlsaXR5LXZhbGlkYXRvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wb3B1cC9taWNyb2Zyb250ZW5kLXBvcHVwLWNhcGFiaWxpdHktdmFsaWRhdG9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHFCQUFxQixFQUEyQixNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUNBQXFDO0lBRXpDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBc0I7UUFDM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxVQUFzQyxDQUFDO1FBQy9ELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pELE1BQU0sS0FBSyxDQUFDLDBFQUEwRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1SCxDQUFDO1FBRUQsa0RBQWtEO1FBQ2xELE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO1FBQzlDLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxLQUFLLENBQUMseUdBQXlHLGVBQWUsQ0FBQyxRQUFTLENBQUMsZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM08sQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7OEdBcEJVLHFDQUFxQztrSEFBckMscUNBQXFDOzsyRkFBckMscUNBQXFDO2tCQURqRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NhcGFiaWxpdHksIENhcGFiaWxpdHlJbnRlcmNlcHRvcn0gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoQ2FwYWJpbGl0aWVzLCBXb3JrYmVuY2hQb3B1cENhcGFiaWxpdHl9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnLi4vLi4vY29tbW9uL29iamVjdHMudXRpbCc7XG5cbi8qKlxuICogQXNzZXJ0cyBwb3B1cCBjYXBhYmlsaXRpZXMgdG8gaGF2ZSByZXF1aXJlZCBwcm9wZXJ0aWVzLlxuICovXG5ASW5qZWN0YWJsZSgvKiBETyBOT1QgUFJPVklERSB2aWEgJ3Byb3ZpZGVkSW4nIG1ldGFkYXRhIGFzIG9ubHkgcmVnaXN0ZXJlZCBpZiBtaWNyb2Zyb250ZW5kIHN1cHBvcnQgaXMgZW5hYmxlZC4gKi8pXG5leHBvcnQgY2xhc3MgTWljcm9mcm9udGVuZFBvcHVwQ2FwYWJpbGl0eVZhbGlkYXRvciBpbXBsZW1lbnRzIENhcGFiaWxpdHlJbnRlcmNlcHRvciB7XG5cbiAgcHVibGljIGFzeW5jIGludGVyY2VwdChjYXBhYmlsaXR5OiBDYXBhYmlsaXR5KTogUHJvbWlzZTxDYXBhYmlsaXR5PiB7XG4gICAgaWYgKGNhcGFiaWxpdHkudHlwZSAhPT0gV29ya2JlbmNoQ2FwYWJpbGl0aWVzLlBvcHVwKSB7XG4gICAgICByZXR1cm4gY2FwYWJpbGl0eTtcbiAgICB9XG5cbiAgICBjb25zdCBwb3B1cENhcGFiaWxpdHkgPSBjYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFBvcHVwQ2FwYWJpbGl0eTtcbiAgICAvLyBBc3NlcnQgdGhlIHBvcHVwIGNhcGFiaWxpdHkgdG8gaGF2ZSBhIHF1YWxpZmllciBzZXQuXG4gICAgaWYgKCFPYmplY3Qua2V5cyhwb3B1cENhcGFiaWxpdHkucXVhbGlmaWVyID8/IHt9KS5sZW5ndGgpIHtcbiAgICAgIHRocm93IEVycm9yKGBbTnVsbFF1YWxpZmllckVycm9yXSBQb3B1cCBjYXBhYmlsaXR5IHJlcXVpcmVzIGEgcXVhbGlmaWVyIFtjYXBhYmlsaXR5PSR7SlNPTi5zdHJpbmdpZnkocG9wdXBDYXBhYmlsaXR5KX1dYCk7XG4gICAgfVxuXG4gICAgLy8gQXNzZXJ0IHRoZSBwb3B1cCBjYXBhYmlsaXR5IHRvIGhhdmUgYSBwYXRoIHNldC5cbiAgICBjb25zdCBwYXRoID0gcG9wdXBDYXBhYmlsaXR5LnByb3BlcnRpZXM/LnBhdGg7XG4gICAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcihgW051bGxQYXRoRXJyb3JdIFBvcHVwIGNhcGFiaWxpdHkgcmVxdWlyZXMgYSBwYXRoIHRvIHRoZSBtaWNyb2Zyb250ZW5kIGluIGl0cyBwcm9wZXJ0aWVzIFthcHBsaWNhdGlvbj1cIiR7cG9wdXBDYXBhYmlsaXR5Lm1ldGFkYXRhIS5hcHBTeW1ib2xpY05hbWV9XCIsIGNhcGFiaWxpdHk9XCIke09iamVjdHMudG9NYXRyaXhOb3RhdGlvbihwb3B1cENhcGFiaWxpdHkucXVhbGlmaWVyKX1cIl1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9wdXBDYXBhYmlsaXR5O1xuICB9XG59XG4iXX0=
|
|
@@ -7,20 +7,19 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import { Injectable } from '@angular/core';
|
|
10
|
+
import { inject, Injectable } from '@angular/core';
|
|
11
11
|
import { APP_IDENTITY, mapToBody, MessageClient, MessageHeaders, ResponseStatusCodes } from '@scion/microfrontend-platform';
|
|
12
12
|
import { WorkbenchCapabilities, ɵWorkbenchCommands } from '@scion/workbench-client';
|
|
13
13
|
import { MicrofrontendPopupComponent } from './microfrontend-popup.component';
|
|
14
|
-
import { LoggerNames } from '../../logging';
|
|
14
|
+
import { Logger, LoggerNames } from '../../logging';
|
|
15
15
|
import { Beans } from '@scion/toolkit/bean-manager';
|
|
16
16
|
import { stringifyError } from '../../common/stringify-error.util';
|
|
17
17
|
import { Arrays, Maps } from '@scion/toolkit/util';
|
|
18
|
+
import { PopupService } from '../../popup/popup.service';
|
|
19
|
+
import { WORKBENCH_VIEW_REGISTRY } from '../../view/workbench-view.registry';
|
|
18
20
|
import { MicrofrontendHostPopupComponent } from '../microfrontend-host-popup/microfrontend-host-popup.component';
|
|
19
21
|
import { MicrofrontendWorkbenchView } from '../microfrontend-view/microfrontend-workbench-view.model';
|
|
20
22
|
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "../../popup/popup.service";
|
|
22
|
-
import * as i2 from "../../view/workbench-view.registry";
|
|
23
|
-
import * as i3 from "../../logging";
|
|
24
23
|
/**
|
|
25
24
|
* Handles popup intents, instructing the workbench to open a popup with the microfrontend declared on the resolved capability.
|
|
26
25
|
*
|
|
@@ -30,10 +29,10 @@ import * as i3 from "../../logging";
|
|
|
30
29
|
* that are not connected to the SCION Workbench.
|
|
31
30
|
*/
|
|
32
31
|
export class MicrofrontendPopupIntentHandler {
|
|
33
|
-
constructor(
|
|
34
|
-
this._popupService =
|
|
35
|
-
this._viewRegistry =
|
|
36
|
-
this._logger =
|
|
32
|
+
constructor() {
|
|
33
|
+
this._popupService = inject(PopupService);
|
|
34
|
+
this._viewRegistry = inject(WORKBENCH_VIEW_REGISTRY);
|
|
35
|
+
this._logger = inject(Logger);
|
|
37
36
|
this._openedPopups = new Set();
|
|
38
37
|
}
|
|
39
38
|
/**
|
|
@@ -124,10 +123,10 @@ export class MicrofrontendPopupIntentHandler {
|
|
|
124
123
|
viewCapabilityId: view.adapt(MicrofrontendWorkbenchView)?.capability.metadata.id,
|
|
125
124
|
};
|
|
126
125
|
}
|
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPopupIntentHandler, deps: [
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPopupIntentHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
128
127
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPopupIntentHandler }); }
|
|
129
128
|
}
|
|
130
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendPopupIntentHandler, decorators: [{
|
|
131
130
|
type: Injectable
|
|
132
|
-
}]
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1wb3B1cC1pbnRlbnQtaGFuZGxlci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wb3B1cC9taWNyb2Zyb250ZW5kLXBvcHVwLWludGVudC1oYW5kbGVyLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUE2QyxTQUFTLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JLLE9BQU8sRUFBQyxxQkFBcUIsRUFBbUUsa0JBQWtCLEVBQXlCLE1BQU0seUJBQXlCLENBQUM7QUFDM0ssT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxFQUFTLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJakQsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7Ozs7O0FBRXBHOzs7Ozs7O0dBT0c7QUFFSCxNQUFNLE9BQU8sK0JBQStCO0lBSTFDLFlBQW9CLGFBQTJCLEVBQzNCLGFBQW9DLEVBQ3BDLE9BQWU7UUFGZixrQkFBYSxHQUFiLGFBQWEsQ0FBYztR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QUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2pHLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLE9BQStCO1FBQ3pELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQWMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLE9BQStCO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNmLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUyxDQUFDLEVBQUU7U0FDbEYsQ0FBQztJQUNKLENBQUM7OEdBekdVLCtCQUErQjtrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBUFBfSURFTlRJVFksIEhhbmRsZXIsIEludGVudEludGVyY2VwdG9yLCBJbnRlbnRNZXNzYWdlLCBtYXBUb0JvZHksIE1lc3NhZ2VDbGllbnQsIE1lc3NhZ2VIZWFkZXJzLCBSZXNwb25zZVN0YXR1c0NvZGVzfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge1dvcmtiZW5jaENhcGFiaWxpdGllcywgV29ya2JlbmNoUG9wdXBDYXBhYmlsaXR5LCBXb3JrYmVuY2hQb3B1cFJlZmVycmVyLCDJtVBvcHVwQ29udGV4dCwgybVXb3JrYmVuY2hDb21tYW5kcywgybVXb3JrYmVuY2hQb3B1cENvbW1hbmR9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7TWljcm9mcm9udGVuZFBvcHVwQ29tcG9uZW50fSBmcm9tICcuL21pY3JvZnJvbnRlbmQtcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHtCZWFuc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvYmVhbi1tYW5hZ2VyJztcbmltcG9ydCB7c3RyaW5naWZ5RXJyb3J9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHJpbmdpZnktZXJyb3IudXRpbCc7XG5pbXBvcnQge0FycmF5cywgTWFwc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge1BvcHVwU2VydmljZX0gZnJvbSAnLi4vLi4vcG9wdXAvcG9wdXAuc2VydmljZSc7XG5pbXBvcnQge1BvcHVwT3JpZ2lufSBmcm9tICcuLi8uLi9wb3B1cC9wb3B1cC5vcmlnaW4nO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4uLy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kSG9zdFBvcHVwQ29tcG9uZW50fSBmcm9tICcuLi9taWNyb2Zyb250ZW5kLWhvc3QtcG9wdXAvbWljcm9mcm9udGVuZC1ob3N0LXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRXb3JrYmVuY2hWaWV3fSBmcm9tICcuLi9taWNyb2Zyb250ZW5kLXZpZXcvbWljcm9mcm9udGVuZC13b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5cbi8qKlxuICogSGFuZGxlcyBwb3B1cCBpbnRlbnRzLCBpbnN0cnVjdGluZyB0aGUgd29ya2JlbmNoIHRvIG9wZW4gYSBwb3B1cCB3aXRoIHRoZSBtaWNyb2Zyb250ZW5kIGRlY2xhcmVkIG9uIHRoZSByZXNvbHZlZCBjYXBhYmlsaXR5LlxuICpcbiAqIE1pY3JvZnJvbnRlbmRzIG9mIHRoZSBob3N0IGFyZSBkaXNwbGF5ZWQgaW4ge0BsaW5rIE1pY3JvZnJvbnRlbmRIb3N0UG9wdXBDb21wb25lbnR9LCBtaWNyb2Zyb250ZW5kcyBvZiBvdGhlciBhcHBsaWNhdGlvbnMgaW4ge0BsaW5rIE1pY3JvZnJvbnRlbmRQb3B1cENvbXBvbmVudH0uXG4gKlxuICogUG9wdXAgaW50ZW50cyBhcmUgaGFuZGxlZCBpbiB0aGlzIGludGVyY2VwdG9yIGFuZCBhcmUgbm90IHRyYW5zcG9ydGVkIHRvIHRoZSBwcm92aWRpbmcgYXBwbGljYXRpb24sIGVuYWJsaW5nIHN1cHBvcnQgZm9yIGFwcGxpY2F0aW9uc1xuICogdGhhdCBhcmUgbm90IGNvbm5lY3RlZCB0byB0aGUgU0NJT04gV29ya2JlbmNoLlxuICovXG5ASW5qZWN0YWJsZSgvKiBETyBOT1QgUFJPVklERSB2aWEgJ3Byb3ZpZGVkSW4nIG1ldGFkYXRhIGFzIG9ubHkgcmVnaXN0ZXJlZCBpZiBtaWNyb2Zyb250ZW5kIHN1cHBvcnQgaXMgZW5hYmxlZC4gKi8pXG5leHBvcnQgY2xhc3MgTWljcm9mcm9udGVuZFBvcHVwSW50ZW50SGFuZGxlciBpbXBsZW1lbnRzIEludGVudEludGVyY2VwdG9yIHtcblxuICBwcml2YXRlIF9vcGVuZWRQb3B1cHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wb3B1cFNlcnZpY2U6IFBvcHVwU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld1JlZ2lzdHJ5OiBXb3JrYmVuY2hWaWV3UmVnaXN0cnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyKSB7XG4gIH1cblxuICAvKipcbiAgICogUG9wdXAgaW50ZW50cyBhcmUgaGFuZGxlZCBpbiB0aGlzIGludGVyY2VwdG9yIGFuZCB0aGVuIHN3YWxsb3dlZC5cbiAgICovXG4gIHB1YmxpYyBpbnRlcmNlcHQoaW50ZW50TWVzc2FnZTogSW50ZW50TWVzc2FnZSwgbmV4dDogSGFuZGxlcjxJbnRlbnRNZXNzYWdlPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpbnRlbnRNZXNzYWdlLmludGVudC50eXBlID09PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuUG9wdXApIHtcbiAgICAgIC8vIERvIG5vdCBibG9jayB0aGUgY2FsbCB1bnRpbCB0aGUgcG9wdXAgaXMgY2xvc2VkLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgY2FsbGVyIG1heSByZWNlaXZlIGEgdGltZW91dCBlcnJvciBpZiBub3QgY2xvc2luZyB0aGUgcG9wdXAgYmVmb3JlIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBleHBpcmVzLlxuICAgICAgdGhpcy5jb25zdW1lUG9wdXBJbnRlbnQoaW50ZW50TWVzc2FnZSkuY2F0Y2goZXJyb3IgPT4gdGhpcy5fbG9nZ2VyLmVycm9yKCdbUG9wdXBPcGVuRXJyb3JdIEZhaWxlZCB0byBvcGVuIHBvcHVwLicsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQsIGludGVudE1lc3NhZ2UsIGVycm9yKSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGludGVudE1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29uc3VtZVBvcHVwSW50ZW50KG1lc3NhZ2U6IEludGVudE1lc3NhZ2U8ybVXb3JrYmVuY2hQb3B1cENvbW1hbmQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcG9wdXBJZCA9IG1lc3NhZ2UuYm9keSEucG9wdXBJZDtcbiAgICBjb25zdCByZXBseVRvID0gbWVzc2FnZS5oZWFkZXJzLmdldChNZXNzYWdlSGVhZGVycy5SZXBseVRvKTtcblxuICAgIC8vIElnbm9yZSBzdWJzZXF1ZW50IGludGVudHMgaWYgYSBwb3B1cCBpcyBhbHJlYWR5IG9wZW4sIGFzIGl0IHdvdWxkIGxlYWQgdG8gdGhlIGZpcnN0IHBvcHVwIGJlaW5nIGNsb3NlZC5cbiAgICBpZiAodGhpcy5fb3BlbmVkUG9wdXBzLmhhcyhwb3B1cElkKSkge1xuICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oJ0lnbm9yaW5nIHBvcHVwIGludGVudCBiZWNhdXNlIG11bHRpcGxlIHBvcHVwIHByb3ZpZGVycyBmb3VuZCB0aGF0IG1hdGNoIHRoZSBwb3B1cCBpbnRlbnQuIE1vc3QgbGlrZWx5IHRoaXMgaXMgbm90IGludGVuZGVkIGFuZCBtYXkgaW5kaWNhdGUgYW4gaW5jb3JyZWN0IG1hbmlmZXN0IGNvbmZpZ3VyYXRpb24uJywgbWVzc2FnZS5pbnRlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX29wZW5lZFBvcHVwcy5hZGQocG9wdXBJZCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMub3BlblBvcHVwKG1lc3NhZ2UpO1xuICAgICAgLy8gVXNlICdCZWFucy5vcHQnIHRvIG5vdCBlcnJvciBpZiB0aGUgcGxhdGZvcm0gaXMgZGVzdHJveWVkLCBlLmcuLCBpbiB0ZXN0cyBpZiBub3QgY2xvc2luZyBwb3B1cHMuXG4gICAgICBhd2FpdCBCZWFucy5vcHQoTWVzc2FnZUNsaWVudCk/LnB1Ymxpc2gocmVwbHlUbywgcmVzdWx0LCB7aGVhZGVyczogbmV3IE1hcCgpLnNldChNZXNzYWdlSGVhZGVycy5TdGF0dXMsIFJlc3BvbnNlU3RhdHVzQ29kZXMuVEVSTUlOQUwpfSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gVXNlICdCZWFucy5vcHQnIHRvIG5vdCBlcnJvciBpZiB0aGUgcGxhdGZvcm0gaXMgZGVzdHJveWVkLCBlLmcuLCBpbiB0ZXN0cyBpZiBub3QgY2xvc2luZyBwb3B1cHMuXG4gICAgICBhd2FpdCBCZWFucy5vcHQoTWVzc2FnZUNsaWVudCk/LnB1Ymxpc2gocmVwbHlUbywgc3RyaW5naWZ5RXJyb3IoZXJyb3IpLCB7aGVhZGVyczogbmV3IE1hcCgpLnNldChNZXNzYWdlSGVhZGVycy5TdGF0dXMsIFJlc3BvbnNlU3RhdHVzQ29kZXMuRVJST1IpfSk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5fb3BlbmVkUG9wdXBzLmRlbGV0ZShwb3B1cElkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG1pY3JvZnJvbnRlbmQgZGVjbGFyZWQgYnkgdGhlIHJlc29sdmVkIGNhcGFiaWxpdHkgaW4gYSBwb3B1cC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgb3BlblBvcHVwKG1lc3NhZ2U6IEludGVudE1lc3NhZ2U8ybVXb3JrYmVuY2hQb3B1cENvbW1hbmQ+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBjb21tYW5kID0gbWVzc2FnZS5ib2R5ITtcbiAgICBjb25zdCBjYXBhYmlsaXR5ID0gbWVzc2FnZS5jYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFBvcHVwQ2FwYWJpbGl0eTtcbiAgICBjb25zdCBpc0hvc3RQcm92aWRlciA9IGNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZSA9PT0gQmVhbnMuZ2V0KEFQUF9JREVOVElUWSk7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+ICdIYW5kbGluZyBtaWNyb2Zyb250ZW5kIHBvcHVwIGNvbW1hbmQnLCBMb2dnZXJOYW1lcy5NSUNST0ZST05URU5ELCBjb21tYW5kKTtcblxuICAgIGNvbnN0IHBvcHVwQ29udGV4dDogybVQb3B1cENvbnRleHQgPSB7XG4gICAgICBwb3B1cElkOiBjb21tYW5kLnBvcHVwSWQsXG4gICAgICBjYXBhYmlsaXR5OiBjYXBhYmlsaXR5LFxuICAgICAgcGFyYW1zOiBuZXcgTWFwKFtcbiAgICAgICAgLi4uTWFwcy5jb2VyY2UobWVzc2FnZS5pbnRlbnQucGFyYW1zKSxcbiAgICAgICAgLi4uTWFwcy5jb2VyY2UobWVzc2FnZS5pbnRlbnQucXVhbGlmaWVyKSxcbiAgICAgIF0pLFxuICAgICAgY2xvc2VPbkZvY3VzTG9zdDogY29tbWFuZC5jbG9zZVN0cmF0ZWd5Py5vbkZvY3VzTG9zdCA/PyB0cnVlLFxuICAgICAgcmVmZXJyZXI6IHRoaXMuZ2V0UmVmZXJyZXIoY29tbWFuZCksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9wb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBpZDogY29tbWFuZC5wb3B1cElkLFxuICAgICAgY29tcG9uZW50OiBpc0hvc3RQcm92aWRlciA/IE1pY3JvZnJvbnRlbmRIb3N0UG9wdXBDb21wb25lbnQgOiBNaWNyb2Zyb250ZW5kUG9wdXBDb21wb25lbnQsXG4gICAgICBpbnB1dDogcG9wdXBDb250ZXh0LFxuICAgICAgYW5jaG9yOiB0aGlzLm9ic2VydmVQb3B1cE9yaWdpbiQoY29tbWFuZCksXG4gICAgICBjb250ZXh0OiBjb21tYW5kLmNvbnRleHQsXG4gICAgICBhbGlnbjogY29tbWFuZC5hbGlnbixcbiAgICAgIHNpemU6IGNhcGFiaWxpdHkucHJvcGVydGllcz8uc2l6ZSxcbiAgICAgIGNsb3NlU3RyYXRlZ3k6IGlzSG9zdFByb3ZpZGVyID8gY29tbWFuZC5jbG9zZVN0cmF0ZWd5IDoge1xuICAgICAgICAuLi5jb21tYW5kLmNsb3NlU3RyYXRlZ3ksXG4gICAgICAgIG9uRm9jdXNMb3N0OiBmYWxzZSwgLy8gQ2xvc2luZyB0aGUgcG9wdXAgb24gZm9jdXMgbG9zcyBpcyBoYW5kbGVkIGluIHtNaWNyb2Zyb250ZW5kUG9wdXBDb21wb25lbnR9XG4gICAgICB9LFxuICAgICAgY3NzQ2xhc3M6IEFycmF5cy5jb2VyY2UoY2FwYWJpbGl0eS5wcm9wZXJ0aWVzPy5jc3NDbGFzcykuY29uY2F0KEFycmF5cy5jb2VyY2UoY29tbWFuZC5jc3NDbGFzcykpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gT2JzZXJ2YWJsZSB0aGF0LCB1cG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBhbmNob3IsIGFuZCB0aGVuIGVhY2ggdGltZSBpdCBpcyByZXBvc2l0aW9uZWQuXG4gICAqL1xuICBwcml2YXRlIG9ic2VydmVQb3B1cE9yaWdpbiQoY29tbWFuZDogybVXb3JrYmVuY2hQb3B1cENvbW1hbmQpOiBPYnNlcnZhYmxlPFBvcHVwT3JpZ2luPiB7XG4gICAgcmV0dXJuIEJlYW5zLmdldChNZXNzYWdlQ2xpZW50KS5vYnNlcnZlJDxQb3B1cE9yaWdpbj4oybVXb3JrYmVuY2hDb21tYW5kcy5wb3B1cE9yaWdpblRvcGljKGNvbW1hbmQucG9wdXBJZCkpLnBpcGUobWFwVG9Cb2R5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRleHQgaW4gd2hpY2ggYSBwb3B1cCB3YXMgb3BlbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRSZWZlcnJlcihjb21tYW5kOiDJtVdvcmtiZW5jaFBvcHVwQ29tbWFuZCk6IFdvcmtiZW5jaFBvcHVwUmVmZXJyZXIge1xuICAgIGlmICghY29tbWFuZC5jb250ZXh0Py52aWV3SWQpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3ID0gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldChjb21tYW5kLmNvbnRleHQudmlld0lkKTtcbiAgICByZXR1cm4ge1xuICAgICAgdmlld0lkOiB2aWV3LmlkLFxuICAgICAgdmlld0NhcGFiaWxpdHlJZDogdmlldy5hZGFwdChNaWNyb2Zyb250ZW5kV29ya2JlbmNoVmlldyk/LmNhcGFiaWxpdHkubWV0YWRhdGEhLmlkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
131
|
+
}] });
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1wb3B1cC1pbnRlbnQtaGFuZGxlci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wb3B1cC9taWNyb2Zyb250ZW5kLXBvcHVwLWludGVudC1oYW5kbGVyLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBNkMsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNySyxPQUFPLEVBQUMscUJBQXFCLEVBQW1FLGtCQUFrQixFQUF5QixNQUFNLHlCQUF5QixDQUFDO0FBQzNLLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7O0FB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QUFFLDhFQUE4RTthQUNuRztZQUNELFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2pHLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLE9BQStCO1FBQ3pELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQWMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLE9BQStCO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNmLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUyxDQUFDLEVBQUU7U0FDbEYsQ0FBQztJQUNKLENBQUM7OEdBdkdVLCtCQUErQjtrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FQUF9JREVOVElUWSwgSGFuZGxlciwgSW50ZW50SW50ZXJjZXB0b3IsIEludGVudE1lc3NhZ2UsIG1hcFRvQm9keSwgTWVzc2FnZUNsaWVudCwgTWVzc2FnZUhlYWRlcnMsIFJlc3BvbnNlU3RhdHVzQ29kZXN9IGZyb20gJ0BzY2lvbi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtJztcbmltcG9ydCB7V29ya2JlbmNoQ2FwYWJpbGl0aWVzLCBXb3JrYmVuY2hQb3B1cENhcGFiaWxpdHksIFdvcmtiZW5jaFBvcHVwUmVmZXJyZXIsIMm1UG9wdXBDb250ZXh0LCDJtVdvcmtiZW5jaENvbW1hbmRzLCDJtVdvcmtiZW5jaFBvcHVwQ29tbWFuZH0gZnJvbSAnQHNjaW9uL3dvcmtiZW5jaC1jbGllbnQnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kUG9wdXBDb21wb25lbnR9IGZyb20gJy4vbWljcm9mcm9udGVuZC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vLi4vbG9nZ2luZyc7XG5pbXBvcnQge0JlYW5zfSBmcm9tICdAc2Npb24vdG9vbGtpdC9iZWFuLW1hbmFnZXInO1xuaW1wb3J0IHtzdHJpbmdpZnlFcnJvcn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0cmluZ2lmeS1lcnJvci51dGlsJztcbmltcG9ydCB7QXJyYXlzLCBNYXBzfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7UG9wdXBTZXJ2aWNlfSBmcm9tICcuLi8uLi9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcbmltcG9ydCB7UG9wdXBPcmlnaW59IGZyb20gJy4uLy4uL3BvcHVwL3BvcHVwLm9yaWdpbic7XG5pbXBvcnQge1dPUktCRU5DSF9WSUVXX1JFR0lTVFJZfSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7TWljcm9mcm9udGVuZEhvc3RQb3B1cENvbXBvbmVudH0gZnJvbSAnLi4vbWljcm9mcm9udGVuZC1ob3N0LXBvcHVwL21pY3JvZnJvbnRlbmQtaG9zdC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kV29ya2JlbmNoVmlld30gZnJvbSAnLi4vbWljcm9mcm9udGVuZC12aWV3L21pY3JvZnJvbnRlbmQtd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuXG4vKipcbiAqIEhhbmRsZXMgcG9wdXAgaW50ZW50cywgaW5zdHJ1Y3RpbmcgdGhlIHdvcmtiZW5jaCB0byBvcGVuIGEgcG9wdXAgd2l0aCB0aGUgbWljcm9mcm9udGVuZCBkZWNsYXJlZCBvbiB0aGUgcmVzb2x2ZWQgY2FwYWJpbGl0eS5cbiAqXG4gKiBNaWNyb2Zyb250ZW5kcyBvZiB0aGUgaG9zdCBhcmUgZGlzcGxheWVkIGluIHtAbGluayBNaWNyb2Zyb250ZW5kSG9zdFBvcHVwQ29tcG9uZW50fSwgbWljcm9mcm9udGVuZHMgb2Ygb3RoZXIgYXBwbGljYXRpb25zIGluIHtAbGluayBNaWNyb2Zyb250ZW5kUG9wdXBDb21wb25lbnR9LlxuICpcbiAqIFBvcHVwIGludGVudHMgYXJlIGhhbmRsZWQgaW4gdGhpcyBpbnRlcmNlcHRvciBhbmQgYXJlIG5vdCB0cmFuc3BvcnRlZCB0byB0aGUgcHJvdmlkaW5nIGFwcGxpY2F0aW9uLCBlbmFibGluZyBzdXBwb3J0IGZvciBhcHBsaWNhdGlvbnNcbiAqIHRoYXQgYXJlIG5vdCBjb25uZWN0ZWQgdG8gdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRQb3B1cEludGVudEhhbmRsZXIgaW1wbGVtZW50cyBJbnRlbnRJbnRlcmNlcHRvciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcG9wdXBTZXJ2aWNlID0gaW5qZWN0KFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdSZWdpc3RyeSA9IGluamVjdChXT1JLQkVOQ0hfVklFV19SRUdJU1RSWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlciA9IGluamVjdChMb2dnZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuZWRQb3B1cHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogUG9wdXAgaW50ZW50cyBhcmUgaGFuZGxlZCBpbiB0aGlzIGludGVyY2VwdG9yIGFuZCB0aGVuIHN3YWxsb3dlZC5cbiAgICovXG4gIHB1YmxpYyBpbnRlcmNlcHQoaW50ZW50TWVzc2FnZTogSW50ZW50TWVzc2FnZSwgbmV4dDogSGFuZGxlcjxJbnRlbnRNZXNzYWdlPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpbnRlbnRNZXNzYWdlLmludGVudC50eXBlID09PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuUG9wdXApIHtcbiAgICAgIC8vIERvIG5vdCBibG9jayB0aGUgY2FsbCB1bnRpbCB0aGUgcG9wdXAgaXMgY2xvc2VkLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgY2FsbGVyIG1heSByZWNlaXZlIGEgdGltZW91dCBlcnJvciBpZiBub3QgY2xvc2luZyB0aGUgcG9wdXAgYmVmb3JlIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbiBleHBpcmVzLlxuICAgICAgdGhpcy5jb25zdW1lUG9wdXBJbnRlbnQoaW50ZW50TWVzc2FnZSkuY2F0Y2goZXJyb3IgPT4gdGhpcy5fbG9nZ2VyLmVycm9yKCdbUG9wdXBPcGVuRXJyb3JdIEZhaWxlZCB0byBvcGVuIHBvcHVwLicsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQsIGludGVudE1lc3NhZ2UsIGVycm9yKSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGludGVudE1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29uc3VtZVBvcHVwSW50ZW50KG1lc3NhZ2U6IEludGVudE1lc3NhZ2U8ybVXb3JrYmVuY2hQb3B1cENvbW1hbmQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcG9wdXBJZCA9IG1lc3NhZ2UuYm9keSEucG9wdXBJZDtcbiAgICBjb25zdCByZXBseVRvID0gbWVzc2FnZS5oZWFkZXJzLmdldChNZXNzYWdlSGVhZGVycy5SZXBseVRvKTtcblxuICAgIC8vIElnbm9yZSBzdWJzZXF1ZW50IGludGVudHMgaWYgYSBwb3B1cCBpcyBhbHJlYWR5IG9wZW4sIGFzIGl0IHdvdWxkIGxlYWQgdG8gdGhlIGZpcnN0IHBvcHVwIGJlaW5nIGNsb3NlZC5cbiAgICBpZiAodGhpcy5fb3BlbmVkUG9wdXBzLmhhcyhwb3B1cElkKSkge1xuICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oJ0lnbm9yaW5nIHBvcHVwIGludGVudCBiZWNhdXNlIG11bHRpcGxlIHBvcHVwIHByb3ZpZGVycyBmb3VuZCB0aGF0IG1hdGNoIHRoZSBwb3B1cCBpbnRlbnQuIE1vc3QgbGlrZWx5IHRoaXMgaXMgbm90IGludGVuZGVkIGFuZCBtYXkgaW5kaWNhdGUgYW4gaW5jb3JyZWN0IG1hbmlmZXN0IGNvbmZpZ3VyYXRpb24uJywgbWVzc2FnZS5pbnRlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX29wZW5lZFBvcHVwcy5hZGQocG9wdXBJZCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMub3BlblBvcHVwKG1lc3NhZ2UpO1xuICAgICAgLy8gVXNlICdCZWFucy5vcHQnIHRvIG5vdCBlcnJvciBpZiB0aGUgcGxhdGZvcm0gaXMgZGVzdHJveWVkLCBlLmcuLCBpbiB0ZXN0cyBpZiBub3QgY2xvc2luZyBwb3B1cHMuXG4gICAgICBhd2FpdCBCZWFucy5vcHQoTWVzc2FnZUNsaWVudCk/LnB1Ymxpc2gocmVwbHlUbywgcmVzdWx0LCB7aGVhZGVyczogbmV3IE1hcCgpLnNldChNZXNzYWdlSGVhZGVycy5TdGF0dXMsIFJlc3BvbnNlU3RhdHVzQ29kZXMuVEVSTUlOQUwpfSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gVXNlICdCZWFucy5vcHQnIHRvIG5vdCBlcnJvciBpZiB0aGUgcGxhdGZvcm0gaXMgZGVzdHJveWVkLCBlLmcuLCBpbiB0ZXN0cyBpZiBub3QgY2xvc2luZyBwb3B1cHMuXG4gICAgICBhd2FpdCBCZWFucy5vcHQoTWVzc2FnZUNsaWVudCk/LnB1Ymxpc2gocmVwbHlUbywgc3RyaW5naWZ5RXJyb3IoZXJyb3IpLCB7aGVhZGVyczogbmV3IE1hcCgpLnNldChNZXNzYWdlSGVhZGVycy5TdGF0dXMsIFJlc3BvbnNlU3RhdHVzQ29kZXMuRVJST1IpfSk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5fb3BlbmVkUG9wdXBzLmRlbGV0ZShwb3B1cElkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG1pY3JvZnJvbnRlbmQgZGVjbGFyZWQgYnkgdGhlIHJlc29sdmVkIGNhcGFiaWxpdHkgaW4gYSBwb3B1cC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgb3BlblBvcHVwKG1lc3NhZ2U6IEludGVudE1lc3NhZ2U8ybVXb3JrYmVuY2hQb3B1cENvbW1hbmQ+KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBjb21tYW5kID0gbWVzc2FnZS5ib2R5ITtcbiAgICBjb25zdCBjYXBhYmlsaXR5ID0gbWVzc2FnZS5jYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFBvcHVwQ2FwYWJpbGl0eTtcbiAgICBjb25zdCBpc0hvc3RQcm92aWRlciA9IGNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZSA9PT0gQmVhbnMuZ2V0KEFQUF9JREVOVElUWSk7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+ICdIYW5kbGluZyBtaWNyb2Zyb250ZW5kIHBvcHVwIGNvbW1hbmQnLCBMb2dnZXJOYW1lcy5NSUNST0ZST05URU5ELCBjb21tYW5kKTtcblxuICAgIGNvbnN0IHBvcHVwQ29udGV4dDogybVQb3B1cENvbnRleHQgPSB7XG4gICAgICBwb3B1cElkOiBjb21tYW5kLnBvcHVwSWQsXG4gICAgICBjYXBhYmlsaXR5OiBjYXBhYmlsaXR5LFxuICAgICAgcGFyYW1zOiBuZXcgTWFwKFtcbiAgICAgICAgLi4uTWFwcy5jb2VyY2UobWVzc2FnZS5pbnRlbnQucGFyYW1zKSxcbiAgICAgICAgLi4uTWFwcy5jb2VyY2UobWVzc2FnZS5pbnRlbnQucXVhbGlmaWVyKSxcbiAgICAgIF0pLFxuICAgICAgY2xvc2VPbkZvY3VzTG9zdDogY29tbWFuZC5jbG9zZVN0cmF0ZWd5Py5vbkZvY3VzTG9zdCA/PyB0cnVlLFxuICAgICAgcmVmZXJyZXI6IHRoaXMuZ2V0UmVmZXJyZXIoY29tbWFuZCksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLl9wb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBpZDogY29tbWFuZC5wb3B1cElkLFxuICAgICAgY29tcG9uZW50OiBpc0hvc3RQcm92aWRlciA/IE1pY3JvZnJvbnRlbmRIb3N0UG9wdXBDb21wb25lbnQgOiBNaWNyb2Zyb250ZW5kUG9wdXBDb21wb25lbnQsXG4gICAgICBpbnB1dDogcG9wdXBDb250ZXh0LFxuICAgICAgYW5jaG9yOiB0aGlzLm9ic2VydmVQb3B1cE9yaWdpbiQoY29tbWFuZCksXG4gICAgICBjb250ZXh0OiBjb21tYW5kLmNvbnRleHQsXG4gICAgICBhbGlnbjogY29tbWFuZC5hbGlnbixcbiAgICAgIHNpemU6IGNhcGFiaWxpdHkucHJvcGVydGllcz8uc2l6ZSxcbiAgICAgIGNsb3NlU3RyYXRlZ3k6IGlzSG9zdFByb3ZpZGVyID8gY29tbWFuZC5jbG9zZVN0cmF0ZWd5IDoge1xuICAgICAgICAuLi5jb21tYW5kLmNsb3NlU3RyYXRlZ3ksXG4gICAgICAgIG9uRm9jdXNMb3N0OiBmYWxzZSwgLy8gQ2xvc2luZyB0aGUgcG9wdXAgb24gZm9jdXMgbG9zcyBpcyBoYW5kbGVkIGluIHtNaWNyb2Zyb250ZW5kUG9wdXBDb21wb25lbnR9XG4gICAgICB9LFxuICAgICAgY3NzQ2xhc3M6IEFycmF5cy5jb2VyY2UoY2FwYWJpbGl0eS5wcm9wZXJ0aWVzPy5jc3NDbGFzcykuY29uY2F0KEFycmF5cy5jb2VyY2UoY29tbWFuZC5jc3NDbGFzcykpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gT2JzZXJ2YWJsZSB0aGF0LCB1cG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb3B1cCBhbmNob3IsIGFuZCB0aGVuIGVhY2ggdGltZSBpdCBpcyByZXBvc2l0aW9uZWQuXG4gICAqL1xuICBwcml2YXRlIG9ic2VydmVQb3B1cE9yaWdpbiQoY29tbWFuZDogybVXb3JrYmVuY2hQb3B1cENvbW1hbmQpOiBPYnNlcnZhYmxlPFBvcHVwT3JpZ2luPiB7XG4gICAgcmV0dXJuIEJlYW5zLmdldChNZXNzYWdlQ2xpZW50KS5vYnNlcnZlJDxQb3B1cE9yaWdpbj4oybVXb3JrYmVuY2hDb21tYW5kcy5wb3B1cE9yaWdpblRvcGljKGNvbW1hbmQucG9wdXBJZCkpLnBpcGUobWFwVG9Cb2R5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRleHQgaW4gd2hpY2ggYSBwb3B1cCB3YXMgb3BlbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRSZWZlcnJlcihjb21tYW5kOiDJtVdvcmtiZW5jaFBvcHVwQ29tbWFuZCk6IFdvcmtiZW5jaFBvcHVwUmVmZXJyZXIge1xuICAgIGlmICghY29tbWFuZC5jb250ZXh0Py52aWV3SWQpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3ID0gdGhpcy5fdmlld1JlZ2lzdHJ5LmdldChjb21tYW5kLmNvbnRleHQudmlld0lkKTtcbiAgICByZXR1cm4ge1xuICAgICAgdmlld0lkOiB2aWV3LmlkLFxuICAgICAgdmlld0NhcGFiaWxpdHlJZDogdmlldy5hZGFwdChNaWNyb2Zyb250ZW5kV29ya2JlbmNoVmlldyk/LmNhcGFiaWxpdHkubWV0YWRhdGEhLmlkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|