@scion/workbench 18.0.0-beta.9 → 19.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/design/_workbench-view-global-styles.scss +0 -1
- package/fesm2022/scion-workbench.mjs +8556 -8622
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/css-class.util.d.ts +5 -0
- package/lib/common/math.util.d.ts +7 -0
- package/lib/common/objects.util.d.ts +1 -1
- package/lib/dialog/workbench-dialog.component.d.ts +1 -2
- package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
- package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
- package/lib/layout/workbench-layout.model.d.ts +0 -1
- package/lib/layout/workbench-layout.service.d.ts +10 -12
- package/lib/layout/workench-layout-serializer.service.d.ts +1 -2
- package/lib/part/part-action-bar/part-action-bar.component.d.ts +2 -6
- package/lib/part/part-bar/part-bar.component.d.ts +66 -48
- package/lib/part/view-tab/view-tab.component.d.ts +3 -3
- package/lib/public_api.d.ts +0 -2
- package/lib/routing/routing.util.d.ts +2 -2
- package/lib/view/view-move-handler.service.d.ts +16 -14
- package/lib/view/view.component.d.ts +1 -2
- package/lib/view//311/265workbench-view.model.d.ts +1 -9
- package/lib/view-dnd/grid-drop-targets.util.d.ts +1 -1
- package/lib/view-dnd/view-drag.service.d.ts +72 -49
- package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +11 -36
- package/package.json +8 -10
- package/esm2022/lib/activation-instant.provider.mjs +0 -29
- package/esm2022/lib/common/animation-frame.observable.mjs +0 -37
- package/esm2022/lib/common/asserts.util.mjs +0 -31
- package/esm2022/lib/common/class-list.mjs +0 -99
- package/esm2022/lib/common/coerce-observable.pipe.mjs +0 -28
- package/esm2022/lib/common/disposable.mjs +0 -11
- package/esm2022/lib/common/dom.util.mjs +0 -100
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +0 -32
- package/esm2022/lib/common/instanceof.pipe.mjs +0 -26
- package/esm2022/lib/common/map-coerce.pipe.mjs +0 -28
- package/esm2022/lib/common/null-if-empty.pipe.mjs +0 -38
- package/esm2022/lib/common/objects.util.mjs +0 -40
- package/esm2022/lib/common/observables.mjs +0 -72
- package/esm2022/lib/common/operators.mjs +0 -27
- package/esm2022/lib/common/public_api.mjs +0 -11
- package/esm2022/lib/common/stringify-error.util.mjs +0 -19
- package/esm2022/lib/common/throw-error.util.mjs +0 -16
- package/esm2022/lib/common/typeof.pipe.mjs +0 -26
- package/esm2022/lib/common/uid.util.mjs +0 -22
- package/esm2022/lib/common//311/265destroy-ref.mjs +0 -36
- package/esm2022/lib/communication/workbench-broadcast-channel.mjs +0 -38
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +0 -114
- package/esm2022/lib/content-projection/workbench-element-references.mjs +0 -32
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +0 -26
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +0 -34
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +0 -51
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +0 -46
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +0 -33
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +0 -46
- package/esm2022/lib/dialog/movable.directive.mjs +0 -126
- package/esm2022/lib/dialog/public_api.mjs +0 -15
- package/esm2022/lib/dialog/resizable.directive.mjs +0 -392
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +0 -250
- package/esm2022/lib/dialog/workbench-dialog.mjs +0 -79
- package/esm2022/lib/dialog/workbench-dialog.options.mjs +0 -11
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +0 -73
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +0 -96
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +0 -310
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +0 -98
- package/esm2022/lib/executor/latest-task-executor.mjs +0 -55
- package/esm2022/lib/executor/single-task-executor.mjs +0 -72
- package/esm2022/lib/filter-field/filter-field.component.mjs +0 -130
- package/esm2022/lib/glass-pane/blockable.mjs +0 -11
- package/esm2022/lib/glass-pane/blocking.mjs +0 -11
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +0 -120
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +0 -111
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +0 -97
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +0 -11
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +0 -11
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +0 -11
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +0 -11
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +0 -117
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +0 -57
- package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +0 -67
- package/esm2022/lib/layout/public_api.mjs +0 -12
- package/esm2022/lib/layout/stringifier.mjs +0 -70
- package/esm2022/lib/layout/workbench-layout.component.mjs +0 -90
- package/esm2022/lib/layout/workbench-layout.factory.mjs +0 -24
- package/esm2022/lib/layout/workbench-layout.mjs +0 -16
- package/esm2022/lib/layout/workbench-layout.model.mjs +0 -62
- package/esm2022/lib/layout/workbench-layout.service.mjs +0 -68
- package/esm2022/lib/layout/workbench-layouts.util.mjs +0 -58
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +0 -109
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +0 -54
- package/esm2022/lib/layout//311/265workbench-layout.mjs +0 -876
- package/esm2022/lib/logging/console-appender.service.mjs +0 -46
- package/esm2022/lib/logging/index.mjs +0 -15
- package/esm2022/lib/logging/logger-names.mjs +0 -32
- package/esm2022/lib/logging/logger.mjs +0 -36
- package/esm2022/lib/logging/logging-support.mjs +0 -26
- package/esm2022/lib/logging/logging.model.mjs +0 -45
- package/esm2022/lib/logging/public_api.mjs +0 -12
- package/esm2022/lib/logging//311/265logger.mjs +0 -73
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +0 -69
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +0 -28
- package/esm2022/lib/message-box/public_api.mjs +0 -11
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +0 -102
- package/esm2022/lib/message-box/workbench-message-box.options.mjs +0 -2
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +0 -39
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +0 -45
- package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +0 -71
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +0 -126
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +0 -36
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +0 -84
- package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +0 -63
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +0 -54
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +0 -85
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +0 -140
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +0 -133
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +0 -113
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +0 -43
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +0 -101
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +0 -35
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +0 -88
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +0 -32
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +0 -121
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +0 -45
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +0 -39
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +0 -120
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +0 -55
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +0 -19
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +0 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-platform.config.mjs +0 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +0 -31
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +0 -132
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +0 -115
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +0 -21
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +0 -112
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +0 -313
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.mjs +0 -23
- package/esm2022/lib/microfrontend-platform/public_api.mjs +0 -13
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +0 -31
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +0 -127
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +0 -125
- package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +0 -32
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +0 -191
- package/esm2022/lib/migration/workbench-migration.mjs +0 -11
- package/esm2022/lib/migration/workbench-migrator.mjs +0 -38
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +0 -24
- package/esm2022/lib/notification/notification-list.component.mjs +0 -51
- package/esm2022/lib/notification/notification.component.mjs +0 -109
- package/esm2022/lib/notification/notification.config.mjs +0 -11
- package/esm2022/lib/notification/notification.mjs +0 -19
- package/esm2022/lib/notification/notification.service.mjs +0 -134
- package/esm2022/lib/notification/public_api.mjs +0 -12
- package/esm2022/lib/notification/text-notification.component.mjs +0 -23
- package/esm2022/lib/notification//311/265notification.mjs +0 -42
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +0 -26
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +0 -31
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +0 -77
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +0 -444
- package/esm2022/lib/part/part-portal.pipe.mjs +0 -35
- package/esm2022/lib/part/part.component.mjs +0 -135
- package/esm2022/lib/part/public_api.mjs +0 -13
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +0 -31
- package/esm2022/lib/part/view-context-menu/text.component.mjs +0 -38
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +0 -89
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +0 -76
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +0 -340
- package/esm2022/lib/part/view-list/view-list.component.mjs +0 -117
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +0 -82
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +0 -60
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +0 -218
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +0 -29
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +0 -81
- package/esm2022/lib/part/workbench-part-action.registry.mjs +0 -23
- package/esm2022/lib/part/workbench-part.model.mjs +0 -19
- package/esm2022/lib/part/workbench-part.registry.mjs +0 -23
- package/esm2022/lib/part//311/265workbench-part.model.mjs +0 -146
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +0 -11
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +0 -11
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +0 -57
- package/esm2022/lib/perspective/public_api.mjs +0 -11
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +0 -39
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +0 -72
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +0 -50
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +0 -2
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +0 -23
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +0 -180
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +0 -62
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +0 -210
- package/esm2022/lib/popup/popup.component.mjs +0 -124
- package/esm2022/lib/popup/popup.config.mjs +0 -100
- package/esm2022/lib/popup/popup.origin.mjs +0 -11
- package/esm2022/lib/popup/popup.service.mjs +0 -339
- package/esm2022/lib/popup/public_api.mjs +0 -12
- package/esm2022/lib/portal/wb-component-portal.mjs +0 -130
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +0 -68
- package/esm2022/lib/public_api.mjs +0 -32
- package/esm2022/lib/registry/workbench-object-registry.mjs +0 -104
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +0 -31
- package/esm2022/lib/routing/public_api.mjs +0 -14
- package/esm2022/lib/routing/routing.model.mjs +0 -11
- package/esm2022/lib/routing/routing.util.mjs +0 -215
- package/esm2022/lib/routing/url-segment-matcher.mjs +0 -46
- package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +0 -110
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +0 -51
- package/esm2022/lib/routing/workbench-layout-differ.mjs +0 -61
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +0 -51
- package/esm2022/lib/routing/workbench-navigational-states.mjs +0 -33
- package/esm2022/lib/routing/workbench-popup-differ.mjs +0 -51
- package/esm2022/lib/routing/workbench-route-data.mjs +0 -39
- package/esm2022/lib/routing/workbench-route-guards.mjs +0 -57
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +0 -124
- package/esm2022/lib/routing/workbench-router.service.mjs +0 -19
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +0 -305
- package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +0 -58
- package/esm2022/lib/routing//311/265location.mjs +0 -70
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +0 -359
- package/esm2022/lib/startup/public_api.mjs +0 -12
- package/esm2022/lib/startup/splash/splash.component.mjs +0 -24
- package/esm2022/lib/startup/workbench-initializer.mjs +0 -96
- package/esm2022/lib/startup/workbench-launcher.service.mjs +0 -173
- package/esm2022/lib/storage/public_api.mjs +0 -11
- package/esm2022/lib/storage/workbench-storage.mjs +0 -37
- package/esm2022/lib/testing/public_api.mjs +0 -12
- package/esm2022/lib/testing/workbench-testing.module.mjs +0 -49
- package/esm2022/lib/testing/workbench.provider.mjs +0 -60
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +0 -72
- package/esm2022/lib/view/public_api.mjs +0 -11
- package/esm2022/lib/view/view-context-provider.mjs +0 -31
- package/esm2022/lib/view/view-move-handler.service.mjs +0 -145
- package/esm2022/lib/view/view-portal.pipe.mjs +0 -33
- package/esm2022/lib/view/view.component.mjs +0 -128
- package/esm2022/lib/view/workbench-view.model.mjs +0 -12
- package/esm2022/lib/view/workbench-view.registry.mjs +0 -23
- package/esm2022/lib/view//311/265workbench-view.model.mjs +0 -375
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +0 -49
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +0 -58
- package/esm2022/lib/view-dnd/view-drag.service.mjs +0 -213
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +0 -89
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +0 -183
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +0 -224
- package/esm2022/lib/workbench-config.mjs +0 -15
- package/esm2022/lib/workbench-id.mjs +0 -21
- package/esm2022/lib/workbench.component.mjs +0 -146
- package/esm2022/lib/workbench.constants.mjs +0 -41
- package/esm2022/lib/workbench.model.mjs +0 -11
- package/esm2022/lib/workbench.module.mjs +0 -101
- package/esm2022/lib/workbench.provider.mjs +0 -111
- package/esm2022/lib/workbench.service.mjs +0 -29
- package/esm2022/lib//311/265workbench.service.mjs +0 -102
- package/esm2022/public-api.mjs +0 -14
- package/esm2022/scion-workbench.mjs +0 -5
- package/lib/common/animation-frame.observable.d.ts +0 -10
- package/lib/testing/public_api.d.ts +0 -2
- package/lib/testing/workbench-testing.module.d.ts +0 -40
- package/lib/testing/workbench.provider.d.ts +0 -31
- package/lib/workbench.module.d.ts +0 -65
|
@@ -1,54 +0,0 @@
|
|
|
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 { APP_IDENTITY } from '@scion/microfrontend-platform';
|
|
11
|
-
import { Injectable } from '@angular/core';
|
|
12
|
-
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
13
|
-
import { Beans } from '@scion/toolkit/bean-manager';
|
|
14
|
-
import { Objects } from '../../common/objects.util';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
/**
|
|
17
|
-
* Asserts dialog capabilities to have required properties.
|
|
18
|
-
*/
|
|
19
|
-
export class MicrofrontendDialogCapabilityValidator {
|
|
20
|
-
async intercept(capability) {
|
|
21
|
-
if (capability.type !== WorkbenchCapabilities.Dialog) {
|
|
22
|
-
return capability;
|
|
23
|
-
}
|
|
24
|
-
const dialogCapability = capability;
|
|
25
|
-
// Assert the dialog capability to have a qualifier.
|
|
26
|
-
if (!Object.keys(dialogCapability.qualifier ?? {}).length) {
|
|
27
|
-
throw Error(`[NullQualifierError] Dialog capability requires a qualifier [capability=${JSON.stringify(dialogCapability)}]`);
|
|
28
|
-
}
|
|
29
|
-
// Assert the dialog capability to have a path.
|
|
30
|
-
const path = dialogCapability.properties?.path;
|
|
31
|
-
if (path === undefined || path === null) {
|
|
32
|
-
throw Error(`[NullPathError] Dialog capability requires a path to the microfrontend in its properties [application="${dialogCapability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(dialogCapability.qualifier)}"]`);
|
|
33
|
-
}
|
|
34
|
-
// Assert the dialog capability to have a height and width, unless provided by the host application.
|
|
35
|
-
this.assertSize(dialogCapability);
|
|
36
|
-
return dialogCapability;
|
|
37
|
-
}
|
|
38
|
-
assertSize(capability) {
|
|
39
|
-
const isHostProvider = capability.metadata.appSymbolicName === Beans.get(APP_IDENTITY);
|
|
40
|
-
if (isHostProvider) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const size = capability.properties?.size;
|
|
44
|
-
if (!size?.width || !size?.height) {
|
|
45
|
-
throw Error(`[NullSizeError] Dialog capability requires width and height in its size properties [application="${capability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(capability.qualifier)}"]`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogCapabilityValidator }); }
|
|
50
|
-
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogCapabilityValidator, decorators: [{
|
|
52
|
-
type: Injectable
|
|
53
|
-
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1kaWFsb2ctY2FwYWJpbGl0eS12YWxpZGF0b3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtZGlhbG9nL21pY3JvZnJvbnRlbmQtZGlhbG9nLWNhcGFiaWxpdHktdmFsaWRhdG9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFlBQVksRUFBb0MsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxxQkFBcUIsRUFBNEIsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RixPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUVsRDs7R0FFRztBQUVILE1BQU0sT0FBTyxzQ0FBc0M7SUFFMUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFzQjtRQUMzQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckQsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsVUFBdUMsQ0FBQztRQUNqRSxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFELE1BQU0sS0FBSyxDQUFDLDJFQUEyRSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlILENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztRQUMvQyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxDQUFDLDBHQUEwRyxnQkFBZ0IsQ0FBQyxRQUFTLENBQUMsZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5TyxDQUFDO1FBRUQsb0dBQW9HO1FBQ3BHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVsQyxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyxVQUFVLENBQUMsVUFBcUM7UUFDdEQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFFBQVMsQ0FBQyxlQUFlLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEMsTUFBTSxLQUFLLENBQUMsb0dBQW9HLFVBQVUsQ0FBQyxRQUFTLENBQUMsZUFBZSxrQkFBa0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNU4sQ0FBQztJQUNILENBQUM7OEdBbkNVLHNDQUFzQztrSEFBdEMsc0NBQXNDOzsyRkFBdEMsc0NBQXNDO2tCQURsRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0FQUF9JREVOVElUWSwgQ2FwYWJpbGl0eSwgQ2FwYWJpbGl0eUludGVyY2VwdG9yfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDYXBhYmlsaXRpZXMsIFdvcmtiZW5jaERpYWxvZ0NhcGFiaWxpdHl9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7QmVhbnN9IGZyb20gJ0BzY2lvbi90b29sa2l0L2JlYW4tbWFuYWdlcic7XG5pbXBvcnQge09iamVjdHN9IGZyb20gJy4uLy4uL2NvbW1vbi9vYmplY3RzLnV0aWwnO1xuXG4vKipcbiAqIEFzc2VydHMgZGlhbG9nIGNhcGFiaWxpdGllcyB0byBoYXZlIHJlcXVpcmVkIHByb3BlcnRpZXMuXG4gKi9cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgb25seSByZWdpc3RlcmVkIGlmIG1pY3JvZnJvbnRlbmQgc3VwcG9ydCBpcyBlbmFibGVkLiAqLylcbmV4cG9ydCBjbGFzcyBNaWNyb2Zyb250ZW5kRGlhbG9nQ2FwYWJpbGl0eVZhbGlkYXRvciBpbXBsZW1lbnRzIENhcGFiaWxpdHlJbnRlcmNlcHRvciB7XG5cbiAgcHVibGljIGFzeW5jIGludGVyY2VwdChjYXBhYmlsaXR5OiBDYXBhYmlsaXR5KTogUHJvbWlzZTxDYXBhYmlsaXR5PiB7XG4gICAgaWYgKGNhcGFiaWxpdHkudHlwZSAhPT0gV29ya2JlbmNoQ2FwYWJpbGl0aWVzLkRpYWxvZykge1xuICAgICAgcmV0dXJuIGNhcGFiaWxpdHk7XG4gICAgfVxuXG4gICAgY29uc3QgZGlhbG9nQ2FwYWJpbGl0eSA9IGNhcGFiaWxpdHkgYXMgV29ya2JlbmNoRGlhbG9nQ2FwYWJpbGl0eTtcbiAgICAvLyBBc3NlcnQgdGhlIGRpYWxvZyBjYXBhYmlsaXR5IHRvIGhhdmUgYSBxdWFsaWZpZXIuXG4gICAgaWYgKCFPYmplY3Qua2V5cyhkaWFsb2dDYXBhYmlsaXR5LnF1YWxpZmllciA/PyB7fSkubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBFcnJvcihgW051bGxRdWFsaWZpZXJFcnJvcl0gRGlhbG9nIGNhcGFiaWxpdHkgcmVxdWlyZXMgYSBxdWFsaWZpZXIgW2NhcGFiaWxpdHk9JHtKU09OLnN0cmluZ2lmeShkaWFsb2dDYXBhYmlsaXR5KX1dYCk7XG4gICAgfVxuXG4gICAgLy8gQXNzZXJ0IHRoZSBkaWFsb2cgY2FwYWJpbGl0eSB0byBoYXZlIGEgcGF0aC5cbiAgICBjb25zdCBwYXRoID0gZGlhbG9nQ2FwYWJpbGl0eS5wcm9wZXJ0aWVzPy5wYXRoO1xuICAgIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtOdWxsUGF0aEVycm9yXSBEaWFsb2cgY2FwYWJpbGl0eSByZXF1aXJlcyBhIHBhdGggdG8gdGhlIG1pY3JvZnJvbnRlbmQgaW4gaXRzIHByb3BlcnRpZXMgW2FwcGxpY2F0aW9uPVwiJHtkaWFsb2dDYXBhYmlsaXR5Lm1ldGFkYXRhIS5hcHBTeW1ib2xpY05hbWV9XCIsIGNhcGFiaWxpdHk9XCIke09iamVjdHMudG9NYXRyaXhOb3RhdGlvbihkaWFsb2dDYXBhYmlsaXR5LnF1YWxpZmllcil9XCJdYCk7XG4gICAgfVxuXG4gICAgLy8gQXNzZXJ0IHRoZSBkaWFsb2cgY2FwYWJpbGl0eSB0byBoYXZlIGEgaGVpZ2h0IGFuZCB3aWR0aCwgdW5sZXNzIHByb3ZpZGVkIGJ5IHRoZSBob3N0IGFwcGxpY2F0aW9uLlxuICAgIHRoaXMuYXNzZXJ0U2l6ZShkaWFsb2dDYXBhYmlsaXR5KTtcblxuICAgIHJldHVybiBkaWFsb2dDYXBhYmlsaXR5O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NlcnRTaXplKGNhcGFiaWxpdHk6IFdvcmtiZW5jaERpYWxvZ0NhcGFiaWxpdHkpOiB2b2lkIHtcbiAgICBjb25zdCBpc0hvc3RQcm92aWRlciA9IGNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZSA9PT0gQmVhbnMuZ2V0KEFQUF9JREVOVElUWSk7XG4gICAgaWYgKGlzSG9zdFByb3ZpZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2l6ZSA9IGNhcGFiaWxpdHkucHJvcGVydGllcz8uc2l6ZTtcbiAgICBpZiAoIXNpemU/LndpZHRoIHx8ICFzaXplPy5oZWlnaHQpIHtcbiAgICAgIHRocm93IEVycm9yKGBbTnVsbFNpemVFcnJvcl0gRGlhbG9nIGNhcGFiaWxpdHkgcmVxdWlyZXMgd2lkdGggYW5kIGhlaWdodCBpbiBpdHMgc2l6ZSBwcm9wZXJ0aWVzIFthcHBsaWNhdGlvbj1cIiR7Y2FwYWJpbGl0eS5tZXRhZGF0YSEuYXBwU3ltYm9saWNOYW1lfVwiLCBjYXBhYmlsaXR5PVwiJHtPYmplY3RzLnRvTWF0cml4Tm90YXRpb24oY2FwYWJpbGl0eS5xdWFsaWZpZXIpfVwiXWApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,85 +0,0 @@
|
|
|
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 { Injectable } from '@angular/core';
|
|
11
|
-
import { APP_IDENTITY, MessageClient, MessageHeaders, ResponseStatusCodes } from '@scion/microfrontend-platform';
|
|
12
|
-
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
13
|
-
import { LoggerNames } from '../../logging';
|
|
14
|
-
import { Beans } from '@scion/toolkit/bean-manager';
|
|
15
|
-
import { stringifyError } from '../../common/stringify-error.util';
|
|
16
|
-
import { Arrays } from '@scion/toolkit/util';
|
|
17
|
-
import { MicrofrontendDialogComponent } from './microfrontend-dialog.component';
|
|
18
|
-
import { MicrofrontendHostDialogComponent } from '../microfrontend-host-dialog/microfrontend-host-dialog.component';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "../../dialog/workbench-dialog.service";
|
|
21
|
-
import * as i2 from "../../logging";
|
|
22
|
-
/**
|
|
23
|
-
* Handles dialog intents, instructing the workbench to open a dialog with the microfrontend declared on the resolved capability.
|
|
24
|
-
*
|
|
25
|
-
* Microfrontends of the host are displayed in {@link MicrofrontendHostDialogComponent}, microfrontends of other applications in {@link MicrofrontendDialogComponent}.
|
|
26
|
-
*
|
|
27
|
-
* Dialog intents are handled in this interceptor and are not transported to the providing application, enabling support for applications
|
|
28
|
-
* that are not connected to the SCION Workbench.
|
|
29
|
-
*/
|
|
30
|
-
export class MicrofrontendDialogIntentHandler {
|
|
31
|
-
constructor(_dialogService, _logger) {
|
|
32
|
-
this._dialogService = _dialogService;
|
|
33
|
-
this._logger = _logger;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Dialog intents are handled in this interceptor and then swallowed.
|
|
37
|
-
*/
|
|
38
|
-
intercept(intentMessage, next) {
|
|
39
|
-
if (intentMessage.intent.type === WorkbenchCapabilities.Dialog) {
|
|
40
|
-
// Do not block the call until the dialog is closed.
|
|
41
|
-
// Otherwise, the caller may receive a timeout error if not closing the dialog before delivery confirmation expires.
|
|
42
|
-
this.consumeDialogIntent(intentMessage).catch(error => this._logger.error('[DialogOpenError] Failed to open dialog.', LoggerNames.MICROFRONTEND, intentMessage, error));
|
|
43
|
-
// Swallow the intent and do not pass it to other interceptors or handlers down the chain.
|
|
44
|
-
return Promise.resolve();
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return next.handle(intentMessage);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async consumeDialogIntent(message) {
|
|
51
|
-
const replyTo = message.headers.get(MessageHeaders.ReplyTo);
|
|
52
|
-
try {
|
|
53
|
-
const result = await this.openDialog(message);
|
|
54
|
-
// Use 'Beans.opt' to not error if the platform is destroyed, e.g., in tests if not closing dialogs.
|
|
55
|
-
await Beans.opt(MessageClient)?.publish(replyTo, result, { headers: new Map().set(MessageHeaders.Status, ResponseStatusCodes.TERMINAL) });
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
// Use 'Beans.opt' to not error if the platform is destroyed, e.g., in tests if not closing dialogs.
|
|
59
|
-
await Beans.opt(MessageClient)?.publish(replyTo, stringifyError(error), { headers: new Map().set(MessageHeaders.Status, ResponseStatusCodes.ERROR) });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Opens the microfrontend declared by the resolved capability in a dialog.
|
|
64
|
-
*/
|
|
65
|
-
async openDialog(message) {
|
|
66
|
-
const options = message.body ?? {};
|
|
67
|
-
const capability = message.capability;
|
|
68
|
-
const params = message.intent.params ?? new Map();
|
|
69
|
-
const isHostProvider = capability.metadata.appSymbolicName === Beans.get(APP_IDENTITY);
|
|
70
|
-
this._logger.debug(() => 'Handling microfrontend dialog intent', LoggerNames.MICROFRONTEND, options);
|
|
71
|
-
return this._dialogService.open(isHostProvider ? MicrofrontendHostDialogComponent : MicrofrontendDialogComponent, {
|
|
72
|
-
inputs: { capability, params },
|
|
73
|
-
modality: options.modality,
|
|
74
|
-
context: options.context,
|
|
75
|
-
animate: options.animate,
|
|
76
|
-
cssClass: Arrays.coerce(capability.properties?.cssClass).concat(Arrays.coerce(options.cssClass)),
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogIntentHandler, deps: [{ token: i1.WorkbenchDialogService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogIntentHandler }); }
|
|
81
|
-
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogIntentHandler, decorators: [{
|
|
83
|
-
type: Injectable
|
|
84
|
-
}], ctorParameters: () => [{ type: i1.WorkbenchDialogService }, { type: i2.Logger }] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1kaWFsb2ctaW50ZW50LWhhbmRsZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtZGlhbG9nL21pY3JvZnJvbnRlbmQtZGlhbG9nLWludGVudC1oYW5kbGVyLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUE2QyxhQUFhLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUosT0FBTyxFQUFDLHFCQUFxQixFQUFvRCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pILE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0MsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sa0VBQWtFLENBQUM7Ozs7QUFFbEg7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyxnQ0FBZ0M7SUFFM0MsWUFBb0IsY0FBc0MsRUFBVSxPQUFlO1FBQS9ELG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLGFBQTRCLEVBQUUsSUFBNEI7UUFDekUsSUFB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VSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QVBQX0lERU5USVRZLCBIYW5kbGVyLCBJbnRlbnRJbnRlcmNlcHRvciwgSW50ZW50TWVzc2FnZSwgTWVzc2FnZUNsaWVudCwgTWVzc2FnZUhlYWRlcnMsIFJlc3BvbnNlU3RhdHVzQ29kZXN9IGZyb20gJ0BzY2lvbi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtJztcbmltcG9ydCB7V29ya2JlbmNoQ2FwYWJpbGl0aWVzLCBXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5LCBXb3JrYmVuY2hEaWFsb2dPcHRpb25zfSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHtCZWFuc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvYmVhbi1tYW5hZ2VyJztcbmltcG9ydCB7c3RyaW5naWZ5RXJyb3J9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHJpbmdpZnktZXJyb3IudXRpbCc7XG5pbXBvcnQge0FycmF5c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RpYWxvZy93b3JrYmVuY2gtZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL21pY3JvZnJvbnRlbmQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRIb3N0RGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi9taWNyb2Zyb250ZW5kLWhvc3QtZGlhbG9nL21pY3JvZnJvbnRlbmQtaG9zdC1kaWFsb2cuY29tcG9uZW50JztcblxuLyoqXG4gKiBIYW5kbGVzIGRpYWxvZyBpbnRlbnRzLCBpbnN0cnVjdGluZyB0aGUgd29ya2JlbmNoIHRvIG9wZW4gYSBkaWFsb2cgd2l0aCB0aGUgbWljcm9mcm9udGVuZCBkZWNsYXJlZCBvbiB0aGUgcmVzb2x2ZWQgY2FwYWJpbGl0eS5cbiAqXG4gKiBNaWNyb2Zyb250ZW5kcyBvZiB0aGUgaG9zdCBhcmUgZGlzcGxheWVkIGluIHtAbGluayBNaWNyb2Zyb250ZW5kSG9zdERpYWxvZ0NvbXBvbmVudH0sIG1pY3JvZnJvbnRlbmRzIG9mIG90aGVyIGFwcGxpY2F0aW9ucyBpbiB7QGxpbmsgTWljcm9mcm9udGVuZERpYWxvZ0NvbXBvbmVudH0uXG4gKlxuICogRGlhbG9nIGludGVudHMgYXJlIGhhbmRsZWQgaW4gdGhpcyBpbnRlcmNlcHRvciBhbmQgYXJlIG5vdCB0cmFuc3BvcnRlZCB0byB0aGUgcHJvdmlkaW5nIGFwcGxpY2F0aW9uLCBlbmFibGluZyBzdXBwb3J0IGZvciBhcHBsaWNhdGlvbnNcbiAqIHRoYXQgYXJlIG5vdCBjb25uZWN0ZWQgdG8gdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmREaWFsb2dJbnRlbnRIYW5kbGVyIGltcGxlbWVudHMgSW50ZW50SW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IFdvcmtiZW5jaERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyKSB7XG4gIH1cblxuICAvKipcbiAgICogRGlhbG9nIGludGVudHMgYXJlIGhhbmRsZWQgaW4gdGhpcyBpbnRlcmNlcHRvciBhbmQgdGhlbiBzd2FsbG93ZWQuXG4gICAqL1xuICBwdWJsaWMgaW50ZXJjZXB0KGludGVudE1lc3NhZ2U6IEludGVudE1lc3NhZ2UsIG5leHQ6IEhhbmRsZXI8SW50ZW50TWVzc2FnZT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoaW50ZW50TWVzc2FnZS5pbnRlbnQudHlwZSA9PT0gV29ya2JlbmNoQ2FwYWJpbGl0aWVzLkRpYWxvZykge1xuICAgICAgLy8gRG8gbm90IGJsb2NrIHRoZSBjYWxsIHVudGlsIHRoZSBkaWFsb2cgaXMgY2xvc2VkLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgY2FsbGVyIG1heSByZWNlaXZlIGEgdGltZW91dCBlcnJvciBpZiBub3QgY2xvc2luZyB0aGUgZGlhbG9nIGJlZm9yZSBkZWxpdmVyeSBjb25maXJtYXRpb24gZXhwaXJlcy5cbiAgICAgIHRoaXMuY29uc3VtZURpYWxvZ0ludGVudChpbnRlbnRNZXNzYWdlKS5jYXRjaChlcnJvciA9PiB0aGlzLl9sb2dnZXIuZXJyb3IoJ1tEaWFsb2dPcGVuRXJyb3JdIEZhaWxlZCB0byBvcGVuIGRpYWxvZy4nLCBMb2dnZXJOYW1lcy5NSUNST0ZST05URU5ELCBpbnRlbnRNZXNzYWdlLCBlcnJvcikpO1xuICAgICAgLy8gU3dhbGxvdyB0aGUgaW50ZW50IGFuZCBkbyBub3QgcGFzcyBpdCB0byBvdGhlciBpbnRlcmNlcHRvcnMgb3IgaGFuZGxlcnMgZG93biB0aGUgY2hhaW4uXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGludGVudE1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29uc3VtZURpYWxvZ0ludGVudChtZXNzYWdlOiBJbnRlbnRNZXNzYWdlPFdvcmtiZW5jaERpYWxvZ09wdGlvbnM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVwbHlUbyA9IG1lc3NhZ2UuaGVhZGVycy5nZXQoTWVzc2FnZUhlYWRlcnMuUmVwbHlUbyk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5vcGVuRGlhbG9nKG1lc3NhZ2UpO1xuICAgICAgLy8gVXNlICdCZWFucy5vcHQnIHRvIG5vdCBlcnJvciBpZiB0aGUgcGxhdGZvcm0gaXMgZGVzdHJveWVkLCBlLmcuLCBpbiB0ZXN0cyBpZiBub3QgY2xvc2luZyBkaWFsb2dzLlxuICAgICAgYXdhaXQgQmVhbnMub3B0KE1lc3NhZ2VDbGllbnQpPy5wdWJsaXNoKHJlcGx5VG8sIHJlc3VsdCwge2hlYWRlcnM6IG5ldyBNYXAoKS5zZXQoTWVzc2FnZUhlYWRlcnMuU3RhdHVzLCBSZXNwb25zZVN0YXR1c0NvZGVzLlRFUk1JTkFMKX0pO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIFVzZSAnQmVhbnMub3B0JyB0byBub3QgZXJyb3IgaWYgdGhlIHBsYXRmb3JtIGlzIGRlc3Ryb3llZCwgZS5nLiwgaW4gdGVzdHMgaWYgbm90IGNsb3NpbmcgZGlhbG9ncy5cbiAgICAgIGF3YWl0IEJlYW5zLm9wdChNZXNzYWdlQ2xpZW50KT8ucHVibGlzaChyZXBseVRvLCBzdHJpbmdpZnlFcnJvcihlcnJvciksIHtoZWFkZXJzOiBuZXcgTWFwKCkuc2V0KE1lc3NhZ2VIZWFkZXJzLlN0YXR1cywgUmVzcG9uc2VTdGF0dXNDb2Rlcy5FUlJPUil9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG1pY3JvZnJvbnRlbmQgZGVjbGFyZWQgYnkgdGhlIHJlc29sdmVkIGNhcGFiaWxpdHkgaW4gYSBkaWFsb2cuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIG9wZW5EaWFsb2cobWVzc2FnZTogSW50ZW50TWVzc2FnZTxXb3JrYmVuY2hEaWFsb2dPcHRpb25zPik6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBtZXNzYWdlLmJvZHkgPz8ge307XG4gICAgY29uc3QgY2FwYWJpbGl0eSA9IG1lc3NhZ2UuY2FwYWJpbGl0eSBhcyBXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5O1xuICAgIGNvbnN0IHBhcmFtcyA9IG1lc3NhZ2UuaW50ZW50LnBhcmFtcyA/PyBuZXcgTWFwKCk7XG4gICAgY29uc3QgaXNIb3N0UHJvdmlkZXIgPSBjYXBhYmlsaXR5Lm1ldGFkYXRhIS5hcHBTeW1ib2xpY05hbWUgPT09IEJlYW5zLmdldChBUFBfSURFTlRJVFkpO1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiAnSGFuZGxpbmcgbWljcm9mcm9udGVuZCBkaWFsb2cgaW50ZW50JywgTG9nZ2VyTmFtZXMuTUlDUk9GUk9OVEVORCwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGlzSG9zdFByb3ZpZGVyID8gTWljcm9mcm9udGVuZEhvc3REaWFsb2dDb21wb25lbnQgOiBNaWNyb2Zyb250ZW5kRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBpbnB1dHM6IHtjYXBhYmlsaXR5LCBwYXJhbXN9LFxuICAgICAgbW9kYWxpdHk6IG9wdGlvbnMubW9kYWxpdHksXG4gICAgICBjb250ZXh0OiBvcHRpb25zLmNvbnRleHQsXG4gICAgICBhbmltYXRlOiBvcHRpb25zLmFuaW1hdGUsXG4gICAgICBjc3NDbGFzczogQXJyYXlzLmNvZXJjZShjYXBhYmlsaXR5LnByb3BlcnRpZXM/LmNzc0NsYXNzKS5jb25jYXQoQXJyYXlzLmNvZXJjZShvcHRpb25zLmNzc0NsYXNzKSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
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 { Component, CUSTOM_ELEMENTS_SCHEMA, HostBinding, inject, Input, runInInjectionContext, ViewChild } from '@angular/core';
|
|
11
|
-
import { MicrofrontendPlatformConfig } from '@scion/microfrontend-platform';
|
|
12
|
-
import { LoggerNames } from '../../logging';
|
|
13
|
-
import { ɵDIALOG_CONTEXT, ɵWorkbenchCommands, ɵWorkbenchDialogMessageHeaders } from '@scion/workbench-client';
|
|
14
|
-
import { NgClass, NgComponentOutlet } from '@angular/common';
|
|
15
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
16
|
-
import { MicrofrontendSplashComponent } from '../microfrontend-splash/microfrontend-splash.component';
|
|
17
|
-
import { Microfrontends } from '../common/microfrontend.util';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "../../dialog/\u0275workbench-dialog";
|
|
20
|
-
import * as i2 from "@scion/microfrontend-platform";
|
|
21
|
-
import * as i3 from "../../layout/workbench-layout.service";
|
|
22
|
-
import * as i4 from "../../logging";
|
|
23
|
-
/**
|
|
24
|
-
* Displays the microfrontend of a given {@link WorkbenchDialogCapability}.
|
|
25
|
-
*
|
|
26
|
-
* This component is designed to be displayed in a workbench dialog.
|
|
27
|
-
*/
|
|
28
|
-
export class MicrofrontendDialogComponent {
|
|
29
|
-
constructor(dialog, _outletRouter, _manifestService, _messageClient, _workbenchLayoutService, _injector, _logger) {
|
|
30
|
-
this.dialog = dialog;
|
|
31
|
-
this._outletRouter = _outletRouter;
|
|
32
|
-
this._manifestService = _manifestService;
|
|
33
|
-
this._messageClient = _messageClient;
|
|
34
|
-
this._workbenchLayoutService = _workbenchLayoutService;
|
|
35
|
-
this._injector = _injector;
|
|
36
|
-
this._logger = _logger;
|
|
37
|
-
/**
|
|
38
|
-
* Indicates if a workbench drag operation is in progress, such as when dragging a view or moving a sash.
|
|
39
|
-
*/
|
|
40
|
-
this.isWorkbenchDrag = false;
|
|
41
|
-
this._logger.debug(() => 'Constructing MicrofrontendDialogComponent.', LoggerNames.MICROFRONTEND);
|
|
42
|
-
this.splash = inject(MicrofrontendPlatformConfig).splash ?? MicrofrontendSplashComponent;
|
|
43
|
-
this.installDialogTitleListener();
|
|
44
|
-
this.installDialogCloseListener();
|
|
45
|
-
this.installWorkbenchDragDetector();
|
|
46
|
-
}
|
|
47
|
-
ngOnInit() {
|
|
48
|
-
this.setDialogProperties();
|
|
49
|
-
this.propagateDialogContext();
|
|
50
|
-
this.propagateWorkbenchTheme();
|
|
51
|
-
this.navigate();
|
|
52
|
-
}
|
|
53
|
-
navigate() {
|
|
54
|
-
const application = this._manifestService.getApplication(this.capability.metadata.appSymbolicName);
|
|
55
|
-
this._logger.debug(() => `Loading microfrontend into workbench dialog [app=${this.capability.metadata.appSymbolicName}, baseUrl=${application.baseUrl}, path=${this.capability.properties.path}].`, LoggerNames.MICROFRONTEND, this.params, this.capability);
|
|
56
|
-
this._outletRouter.navigate(this.capability.properties.path, {
|
|
57
|
-
outlet: this.dialog.id,
|
|
58
|
-
relativeTo: application.baseUrl,
|
|
59
|
-
params: this.params,
|
|
60
|
-
pushStateToSessionHistoryStack: false,
|
|
61
|
-
showSplash: this.capability.properties.showSplash,
|
|
62
|
-
}).then();
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Make the dialog context available to embedded content.
|
|
66
|
-
*/
|
|
67
|
-
propagateDialogContext() {
|
|
68
|
-
const context = {
|
|
69
|
-
dialogId: this.dialog.id,
|
|
70
|
-
capability: this.capability,
|
|
71
|
-
params: this.params,
|
|
72
|
-
};
|
|
73
|
-
this.routerOutletElement.nativeElement.setContextValue(ɵDIALOG_CONTEXT, context);
|
|
74
|
-
}
|
|
75
|
-
setDialogProperties() {
|
|
76
|
-
this.dialog.size.width = this.capability.properties.size.width;
|
|
77
|
-
this.dialog.size.height = this.capability.properties.size.height;
|
|
78
|
-
this.dialog.size.minWidth = this.capability.properties.size.minWidth;
|
|
79
|
-
this.dialog.size.maxWidth = this.capability.properties.size.maxWidth;
|
|
80
|
-
this.dialog.size.minHeight = this.capability.properties.size.minHeight;
|
|
81
|
-
this.dialog.size.maxHeight = this.capability.properties.size.maxHeight;
|
|
82
|
-
this.dialog.title = Microfrontends.substituteNamedParameters(this.capability.properties.title, this.params);
|
|
83
|
-
this.dialog.closable = this.capability.properties.closable ?? true;
|
|
84
|
-
this.dialog.resizable = this.capability.properties.resizable ?? true;
|
|
85
|
-
this.dialog.padding = this.capability.properties.padding ?? false;
|
|
86
|
-
}
|
|
87
|
-
propagateWorkbenchTheme() {
|
|
88
|
-
runInInjectionContext(this._injector, () => Microfrontends.propagateTheme(this.routerOutletElement.nativeElement));
|
|
89
|
-
}
|
|
90
|
-
installDialogCloseListener() {
|
|
91
|
-
this._messageClient.observe$(ɵWorkbenchCommands.dialogCloseTopic(this.dialog.id))
|
|
92
|
-
.pipe(takeUntilDestroyed())
|
|
93
|
-
.subscribe(closeRequest => {
|
|
94
|
-
this.dialog.close(closeRequest.headers.get(ɵWorkbenchDialogMessageHeaders.CLOSE_WITH_ERROR) ? new Error(closeRequest.body) : closeRequest.body);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
installDialogTitleListener() {
|
|
98
|
-
this._messageClient.observe$(ɵWorkbenchCommands.dialogTitleTopic(this.dialog.id))
|
|
99
|
-
.pipe(takeUntilDestroyed())
|
|
100
|
-
.subscribe(message => {
|
|
101
|
-
this.dialog.title = message.body;
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Sets the {@link isWorkbenchDrag} property when a workbench drag operation is detected,
|
|
106
|
-
* such as when dragging a view or moving a sash.
|
|
107
|
-
*/
|
|
108
|
-
installWorkbenchDragDetector() {
|
|
109
|
-
this._workbenchLayoutService.dragging$
|
|
110
|
-
.pipe(takeUntilDestroyed())
|
|
111
|
-
.subscribe(event => {
|
|
112
|
-
this.isWorkbenchDrag = (event === 'start');
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
ngOnDestroy() {
|
|
116
|
-
this._outletRouter.navigate(null, { outlet: this.dialog.id }).then(); // Clear the outlet.
|
|
117
|
-
}
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogComponent, deps: [{ token: i1.ɵWorkbenchDialog }, { token: i2.OutletRouter }, { token: i2.ManifestService }, { token: i2.MessageClient }, { token: i3.WorkbenchLayoutService }, { token: i0.Injector }, { token: i4.Logger }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: MicrofrontendDialogComponent, isStandalone: true, selector: "wb-microfrontend-dialog", 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]=\"dialog.id\"\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"] }] }); }
|
|
120
|
-
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendDialogComponent, decorators: [{
|
|
122
|
-
type: Component,
|
|
123
|
-
args: [{ selector: 'wb-microfrontend-dialog', standalone: true, imports: [
|
|
124
|
-
NgClass,
|
|
125
|
-
NgComponentOutlet,
|
|
126
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<sci-router-outlet #router_outlet\n [name]=\"dialog.id\"\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"] }]
|
|
127
|
-
}], ctorParameters: () => [{ type: i1.ɵWorkbenchDialog }, { type: i2.OutletRouter }, { type: i2.ManifestService }, { type: i2.MessageClient }, { type: i3.WorkbenchLayoutService }, { type: i0.Injector }, { type: i4.Logger }], propDecorators: { capability: [{
|
|
128
|
-
type: Input,
|
|
129
|
-
args: [{ required: true }]
|
|
130
|
-
}], params: [{
|
|
131
|
-
type: Input,
|
|
132
|
-
args: [{ required: true }]
|
|
133
|
-
}], isWorkbenchDrag: [{
|
|
134
|
-
type: HostBinding,
|
|
135
|
-
args: ['class.workbench-drag']
|
|
136
|
-
}], routerOutletElement: [{
|
|
137
|
-
type: ViewChild,
|
|
138
|
-
args: ['router_outlet', { static: true }]
|
|
139
|
-
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvbWljcm9mcm9udGVuZC1wbGF0Zm9ybS9taWNyb2Zyb250ZW5kLWRpYWxvZy9taWNyb2Zyb250ZW5kLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtZGlhbG9nL21pY3JvZnJvbnRlbmQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBYyxXQUFXLEVBQUUsTUFBTSxFQUFZLEtBQUssRUFBcUIscUJBQXFCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZLLE9BQU8sRUFBaUMsMkJBQTJCLEVBQXVDLE1BQU0sK0JBQStCLENBQUM7QUFDaEosT0FBTyxFQUFTLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQTRCLGVBQWUsRUFBa0Isa0JBQWtCLEVBQUUsOEJBQThCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2SixPQUFPLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHOUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFFcEcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFFNUQ7Ozs7R0FJRztBQVlILE1BQU0sT0FBTyw0QkFBNEI7SUFzQnZDLFlBQXNCLE1B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QUFhLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxvQkFBb0I7SUFDMUYsQ0FBQzs4R0FuSFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIseVZDdEN6Qyw4VkFPQSw2TEQyQkksaUJBQWlCOzsyRkFJUiw0QkFBNEI7a0JBWHhDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjtxQkFDbEIsV0FDUSxDQUFDLHNCQUFzQixDQUFDOzJQQUsxQixVQUFVO3NCQURoQixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFJaEIsTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFPaEIsZUFBZTtzQkFEckIsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBSTVCLG1CQUFtQjtzQkFEekIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYW5pZmVzdFNlcnZpY2UsIE1lc3NhZ2VDbGllbnQsIE1pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZywgT3V0bGV0Um91dGVyLCBTY2lSb3V0ZXJPdXRsZXRFbGVtZW50fSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5LCDJtURJQUxPR19DT05URVhULCDJtURpYWxvZ0NvbnRleHQsIMm1V29ya2JlbmNoQ29tbWFuZHMsIMm1V29ya2JlbmNoRGlhbG9nTWVzc2FnZUhlYWRlcnN9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7TmdDbGFzcywgTmdDb21wb25lbnRPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRTcGxhc2hDb21wb25lbnR9IGZyb20gJy4uL21pY3JvZnJvbnRlbmQtc3BsYXNoL21pY3JvZnJvbnRlbmQtc3BsYXNoLmNvbXBvbmVudCc7XG5pbXBvcnQge8m1V29ya2JlbmNoRGlhbG9nfSBmcm9tICcuLi8uLi9kaWFsb2cvybV3b3JrYmVuY2gtZGlhbG9nJztcbmltcG9ydCB7TWljcm9mcm9udGVuZHN9IGZyb20gJy4uL2NvbW1vbi9taWNyb2Zyb250ZW5kLnV0aWwnO1xuXG4vKipcbiAqIERpc3BsYXlzIHRoZSBtaWNyb2Zyb250ZW5kIG9mIGEgZ2l2ZW4ge0BsaW5rIFdvcmtiZW5jaERpYWxvZ0NhcGFiaWxpdHl9LlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIGRlc2lnbmVkIHRvIGJlIGRpc3BsYXllZCBpbiBhIHdvcmtiZW5jaCBkaWFsb2cuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLW1pY3JvZnJvbnRlbmQtZGlhbG9nJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWljcm9mcm9udGVuZC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21pY3JvZnJvbnRlbmQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSwgLy8gcmVxdWlyZWQgYmVjYXVzZSA8c2NpLXJvdXRlci1vdXRsZXQ+IGlzIGEgY3VzdG9tIGVsZW1lbnRcbn0pXG5leHBvcnQgY2xhc3MgTWljcm9mcm9udGVuZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSlcbiAgcHVibGljIGNhcGFiaWxpdHkhOiBXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5O1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KVxuICBwdWJsaWMgcGFyYW1zITogTWFwPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHdvcmtiZW5jaCBkcmFnIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcywgc3VjaCBhcyB3aGVuIGRyYWdnaW5nIGEgdmlldyBvciBtb3ZpbmcgYSBzYXNoLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53b3JrYmVuY2gtZHJhZycpXG4gIHB1YmxpYyBpc1dvcmtiZW5jaERyYWcgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdyb3V0ZXJfb3V0bGV0Jywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyByb3V0ZXJPdXRsZXRFbGVtZW50ITogRWxlbWVudFJlZjxTY2lSb3V0ZXJPdXRsZXRFbGVtZW50PjtcblxuICAvKipcbiAgICogU3BsYXNoIHRvIGRpc3BsYXkgdW50aWwgdGhlIG1pY3JvZnJvbnRlbmQgc2lnbmFscyByZWFkaW5lc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3BsYXNoOiBDb21wb25lbnRUeXBlPHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2c6IMm1V29ya2JlbmNoRGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIF9vdXRsZXRSb3V0ZXI6IE91dGxldFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbWFuaWZlc3RTZXJ2aWNlOiBNYW5pZmVzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX21lc3NhZ2VDbGllbnQ6IE1lc3NhZ2VDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExheW91dFNlcnZpY2U6IFdvcmtiZW5jaExheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gJ0NvbnN0cnVjdGluZyBNaWNyb2Zyb250ZW5kRGlhbG9nQ29tcG9uZW50LicsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkQpO1xuICAgIHRoaXMuc3BsYXNoID0gaW5qZWN0KE1pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZykuc3BsYXNoID8/IE1pY3JvZnJvbnRlbmRTcGxhc2hDb21wb25lbnQ7XG4gICAgdGhpcy5pbnN0YWxsRGlhbG9nVGl0bGVMaXN0ZW5lcigpO1xuICAgIHRoaXMuaW5zdGFsbERpYWxvZ0Nsb3NlTGlzdGVuZXIoKTtcbiAgICB0aGlzLmluc3RhbGxXb3JrYmVuY2hEcmFnRGV0ZWN0b3IoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldERpYWxvZ1Byb3BlcnRpZXMoKTtcbiAgICB0aGlzLnByb3BhZ2F0ZURpYWxvZ0NvbnRleHQoKTtcbiAgICB0aGlzLnByb3BhZ2F0ZVdvcmtiZW5jaFRoZW1lKCk7XG4gICAgdGhpcy5uYXZpZ2F0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvbiA9IHRoaXMuX21hbmlmZXN0U2VydmljZS5nZXRBcHBsaWNhdGlvbih0aGlzLmNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZSk7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+IGBMb2FkaW5nIG1pY3JvZnJvbnRlbmQgaW50byB3b3JrYmVuY2ggZGlhbG9nIFthcHA9JHt0aGlzLmNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZX0sIGJhc2VVcmw9JHthcHBsaWNhdGlvbi5iYXNlVXJsfSwgcGF0aD0ke3RoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnBhdGh9XS5gLCBMb2dnZXJOYW1lcy5NSUNST0ZST05URU5ELCB0aGlzLnBhcmFtcywgdGhpcy5jYXBhYmlsaXR5KTtcbiAgICB0aGlzLl9vdXRsZXRSb3V0ZXIubmF2aWdhdGUodGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMucGF0aCwge1xuICAgICAgb3V0bGV0OiB0aGlzLmRpYWxvZy5pZCxcbiAgICAgIHJlbGF0aXZlVG86IGFwcGxpY2F0aW9uLmJhc2VVcmwsXG4gICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxuICAgICAgcHVzaFN0YXRlVG9TZXNzaW9uSGlzdG9yeVN0YWNrOiBmYWxzZSxcbiAgICAgIHNob3dTcGxhc2g6IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNob3dTcGxhc2gsXG4gICAgfSkudGhlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhlIGRpYWxvZyBjb250ZXh0IGF2YWlsYWJsZSB0byBlbWJlZGRlZCBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBwcm9wYWdhdGVEaWFsb2dDb250ZXh0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQ6IMm1RGlhbG9nQ29udGV4dCA9IHtcbiAgICAgIGRpYWxvZ0lkOiB0aGlzLmRpYWxvZy5pZCxcbiAgICAgIGNhcGFiaWxpdHk6IHRoaXMuY2FwYWJpbGl0eSxcbiAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXG4gICAgfTtcbiAgICB0aGlzLnJvdXRlck91dGxldEVsZW1lbnQubmF0aXZlRWxlbWVudC5zZXRDb250ZXh0VmFsdWUoybVESUFMT0dfQ09OVEVYVCwgY29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIHNldERpYWxvZ1Byb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2cuc2l6ZS53aWR0aCA9IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemUhLndpZHRoO1xuICAgIHRoaXMuZGlhbG9nLnNpemUuaGVpZ2h0ID0gdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuc2l6ZSEuaGVpZ2h0O1xuICAgIHRoaXMuZGlhbG9nLnNpemUubWluV2lkdGggPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplIS5taW5XaWR0aDtcbiAgICB0aGlzLmRpYWxvZy5zaXplLm1heFdpZHRoID0gdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuc2l6ZSEubWF4V2lkdGg7XG4gICAgdGhpcy5kaWFsb2cuc2l6ZS5taW5IZWlnaHQgPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplIS5taW5IZWlnaHQ7XG4gICAgdGhpcy5kaWFsb2cuc2l6ZS5tYXhIZWlnaHQgPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplIS5tYXhIZWlnaHQ7XG5cbiAgICB0aGlzLmRpYWxvZy50aXRsZSA9IE1pY3JvZnJvbnRlbmRzLnN1YnN0aXR1dGVOYW1lZFBhcmFtZXRlcnModGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMudGl0bGUsIHRoaXMucGFyYW1zKTtcbiAgICB0aGlzLmRpYWxvZy5jbG9zYWJsZSA9IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLmNsb3NhYmxlID8/IHRydWU7XG4gICAgdGhpcy5kaWFsb2cucmVzaXphYmxlID0gdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMucmVzaXphYmxlID8/IHRydWU7XG4gICAgdGhpcy5kaWFsb2cucGFkZGluZyA9IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnBhZGRpbmcgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHByb3BhZ2F0ZVdvcmtiZW5jaFRoZW1lKCk6IHZvaWQge1xuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLl9pbmplY3RvciwgKCkgPT4gTWljcm9mcm9udGVuZHMucHJvcGFnYXRlVGhlbWUodGhpcy5yb3V0ZXJPdXRsZXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbERpYWxvZ0Nsb3NlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVzc2FnZUNsaWVudC5vYnNlcnZlJDx1bmtub3duPijJtVdvcmtiZW5jaENvbW1hbmRzLmRpYWxvZ0Nsb3NlVG9waWModGhpcy5kaWFsb2cuaWQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGNsb3NlUmVxdWVzdCA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKGNsb3NlUmVxdWVzdC5oZWFkZXJzLmdldCjJtVdvcmtiZW5jaERpYWxvZ01lc3NhZ2VIZWFkZXJzLkNMT1NFX1dJVEhfRVJST1IpID8gbmV3IEVycm9yKGNsb3NlUmVxdWVzdC5ib2R5IGFzIHN0cmluZykgOiBjbG9zZVJlcXVlc3QuYm9keSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbERpYWxvZ1RpdGxlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVzc2FnZUNsaWVudC5vYnNlcnZlJDxzdHJpbmc+KMm1V29ya2JlbmNoQ29tbWFuZHMuZGlhbG9nVGl0bGVUb3BpYyh0aGlzLmRpYWxvZy5pZCkpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUobWVzc2FnZSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLnRpdGxlID0gbWVzc2FnZS5ib2R5O1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUge0BsaW5rIGlzV29ya2JlbmNoRHJhZ30gcHJvcGVydHkgd2hlbiBhIHdvcmtiZW5jaCBkcmFnIG9wZXJhdGlvbiBpcyBkZXRlY3RlZCxcbiAgICogc3VjaCBhcyB3aGVuIGRyYWdnaW5nIGEgdmlldyBvciBtb3ZpbmcgYSBzYXNoLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsV29ya2JlbmNoRHJhZ0RldGVjdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2UuZHJhZ2dpbmckXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2JlbmNoRHJhZyA9IChldmVudCA9PT0gJ3N0YXJ0Jyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdXRsZXRSb3V0ZXIubmF2aWdhdGUobnVsbCwge291dGxldDogdGhpcy5kaWFsb2cuaWR9KS50aGVuKCk7IC8vIENsZWFyIHRoZSBvdXRsZXQuXG4gIH1cbn1cbiIsIjxzY2ktcm91dGVyLW91dGxldCAjcm91dGVyX291dGxldFxuICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImRpYWxvZy5pZFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXBhYmlsaXR5aWRdPVwiY2FwYWJpbGl0eS5tZXRhZGF0YSEuaWRcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXBwXT1cImNhcGFiaWxpdHkubWV0YWRhdGEhLmFwcFN5bWJvbGljTmFtZVwiXG4gICAgICAgICAgICAgICAgICAga2V5c3Ryb2tlcz1cImtleWRvd24uZXNjYXBlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwic3BsYXNoXCIvPlxuPC9zY2ktcm91dGVyLW91dGxldD5cbiJdfQ==
|
|
@@ -1,133 +0,0 @@
|
|
|
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 { Component, DestroyRef, inject, Injector, Input, runInInjectionContext } from '@angular/core';
|
|
11
|
-
import { WorkbenchDialog as WorkbenchClientDialog } from '@scion/workbench-client';
|
|
12
|
-
import { Routing } from '../../routing/routing.util';
|
|
13
|
-
import { RouterOutlet } from '@angular/router';
|
|
14
|
-
import { ɵWorkbenchDialog } from '../../dialog/ɵworkbench-dialog';
|
|
15
|
-
import { WorkbenchDialog } from '../../dialog/workbench-dialog';
|
|
16
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
17
|
-
import { DIALOG_ID_PREFIX } from '../../workbench.constants';
|
|
18
|
-
import { Subject } from 'rxjs';
|
|
19
|
-
import { throwError } from '../../common/throw-error.util';
|
|
20
|
-
import { Microfrontends } from '../common/microfrontend.util';
|
|
21
|
-
import { ANGULAR_ROUTER_MUTEX } from '../../executor/single-task-executor';
|
|
22
|
-
import { Observables } from '@scion/toolkit/util';
|
|
23
|
-
import { filter, takeUntil } from 'rxjs/operators';
|
|
24
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
25
|
-
import * as i0 from "@angular/core";
|
|
26
|
-
import * as i1 from "../../dialog/\u0275workbench-dialog";
|
|
27
|
-
import * as i2 from "@angular/router";
|
|
28
|
-
/**
|
|
29
|
-
* Navigates to the microfrontend of a given {@link WorkbenchDialogCapability} via {@link Router}.
|
|
30
|
-
*
|
|
31
|
-
* Unlike {@link MicrofrontendDialogComponent}, this component uses a `<router-outlet>` instead of a `<sci-router-outlet>`
|
|
32
|
-
* to allow direct integration of the content provided by the workbench host application via the Angular router.
|
|
33
|
-
*
|
|
34
|
-
* This component is designed to be displayed in a workbench dialog.
|
|
35
|
-
*/
|
|
36
|
-
export class MicrofrontendHostDialogComponent {
|
|
37
|
-
constructor(_dialog, _injector, _router) {
|
|
38
|
-
this._dialog = _dialog;
|
|
39
|
-
this._injector = _injector;
|
|
40
|
-
this._router = _router;
|
|
41
|
-
/** Mutex to serialize Angular Router navigation requests, preventing the cancellation of previously initiated asynchronous navigations. */
|
|
42
|
-
this._angularRouterMutex = inject(ANGULAR_ROUTER_MUTEX);
|
|
43
|
-
this.outletName = DIALOG_ID_PREFIX.concat(this._dialog.id);
|
|
44
|
-
}
|
|
45
|
-
ngOnInit() {
|
|
46
|
-
this.setDialogProperties();
|
|
47
|
-
this.createOutletInjector();
|
|
48
|
-
this.navigate(this.capability.properties.path, { params: this.params }).then(success => {
|
|
49
|
-
if (!success) {
|
|
50
|
-
this._dialog.close(Error('[DialogNavigateError] Navigation canceled, most likely by a route guard or a parallel navigation.'));
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Performs navigation in the named outlet, substituting path params if any. To clear navigation, pass `null` as the path.
|
|
56
|
-
*/
|
|
57
|
-
navigate(path, extras) {
|
|
58
|
-
path = Microfrontends.substituteNamedParameters(path, extras?.params);
|
|
59
|
-
const outletCommands = (path !== null ? runInInjectionContext(this._injector, () => Routing.pathToCommands(path)) : null);
|
|
60
|
-
const commands = [{ outlets: { [this.outletName]: outletCommands } }];
|
|
61
|
-
return this._angularRouterMutex.submit(() => this._router.navigate(commands, { skipLocationChange: true, queryParamsHandling: 'preserve' }));
|
|
62
|
-
}
|
|
63
|
-
createOutletInjector() {
|
|
64
|
-
this.outletInjector = Injector.create({
|
|
65
|
-
parent: this._injector,
|
|
66
|
-
providers: [provideWorkbenchClientDialogHandle(this.capability, this.params),
|
|
67
|
-
// Prevent injecting the dialog handle in host dialog component.
|
|
68
|
-
{ provide: WorkbenchDialog, useFactory: () => throwError(`[NullInjectorError] No provider for 'WorkbenchDialog'`) },
|
|
69
|
-
],
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
setDialogProperties() {
|
|
73
|
-
this._dialog.size.width = this.capability.properties.size?.width;
|
|
74
|
-
this._dialog.size.height = this.capability.properties.size?.height;
|
|
75
|
-
this._dialog.size.minWidth = this.capability.properties.size?.minWidth;
|
|
76
|
-
this._dialog.size.maxWidth = this.capability.properties.size?.maxWidth;
|
|
77
|
-
this._dialog.size.minHeight = this.capability.properties.size?.minHeight;
|
|
78
|
-
this._dialog.size.maxHeight = this.capability.properties.size?.maxHeight;
|
|
79
|
-
this._dialog.title = Microfrontends.substituteNamedParameters(this.capability.properties.title, this.params);
|
|
80
|
-
this._dialog.closable = this.capability.properties.closable ?? true;
|
|
81
|
-
this._dialog.resizable = this.capability.properties.resizable ?? true;
|
|
82
|
-
this._dialog.padding = this.capability.properties.padding ?? true;
|
|
83
|
-
}
|
|
84
|
-
ngOnDestroy() {
|
|
85
|
-
this.navigate(null).then(); // Remove the outlet from the URL
|
|
86
|
-
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendHostDialogComponent, deps: [{ token: i1.ɵWorkbenchDialog }, { token: i0.Injector }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: MicrofrontendHostDialogComponent, isStandalone: true, selector: "wb-microfrontend-host-dialog", inputs: { capability: "capability", params: "params" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"router_outlet; injector: outletInjector\"/>\n\n<ng-template #router_outlet>\n <router-outlet [name]=\"outletName\"/>\n</ng-template>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendHostDialogComponent, decorators: [{
|
|
91
|
-
type: Component,
|
|
92
|
-
args: [{ selector: 'wb-microfrontend-host-dialog', standalone: true, imports: [
|
|
93
|
-
RouterOutlet,
|
|
94
|
-
NgTemplateOutlet,
|
|
95
|
-
], template: "<ng-container *ngTemplateOutlet=\"router_outlet; injector: outletInjector\"/>\n\n<ng-template #router_outlet>\n <router-outlet [name]=\"outletName\"/>\n</ng-template>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"] }]
|
|
96
|
-
}], ctorParameters: () => [{ type: i1.ɵWorkbenchDialog }, { type: i0.Injector }, { type: i2.Router }], propDecorators: { capability: [{
|
|
97
|
-
type: Input,
|
|
98
|
-
args: [{ required: true }]
|
|
99
|
-
}], params: [{
|
|
100
|
-
type: Input,
|
|
101
|
-
args: [{ required: true }]
|
|
102
|
-
}] } });
|
|
103
|
-
/**
|
|
104
|
-
* Provides the {WorkbenchDialog} handle to the routed component.
|
|
105
|
-
*/
|
|
106
|
-
function provideWorkbenchClientDialogHandle(capability, params) {
|
|
107
|
-
return {
|
|
108
|
-
provide: WorkbenchClientDialog,
|
|
109
|
-
useFactory: () => {
|
|
110
|
-
const dialog = inject(ɵWorkbenchDialog);
|
|
111
|
-
const propertyChange$ = new Subject();
|
|
112
|
-
return new class {
|
|
113
|
-
constructor() {
|
|
114
|
-
this.capability = capability;
|
|
115
|
-
this.params = params;
|
|
116
|
-
}
|
|
117
|
-
setTitle(title) {
|
|
118
|
-
propertyChange$.next('title');
|
|
119
|
-
Observables.coerce(title)
|
|
120
|
-
.pipe(takeUntil(propertyChange$.pipe(filter(prop => prop === 'title'))), takeUntilDestroyed(dialog.injector.get(DestroyRef)))
|
|
121
|
-
.subscribe(title => dialog.title = title);
|
|
122
|
-
}
|
|
123
|
-
close(result) {
|
|
124
|
-
dialog.close(result);
|
|
125
|
-
}
|
|
126
|
-
signalReady() {
|
|
127
|
-
// nothing to do since not an iframe-based microfrontend
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1ob3N0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtaG9zdC1kaWFsb2cvbWljcm9mcm9udGVuZC1ob3N0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtaG9zdC1kaWFsb2cvbWljcm9mcm9udGVuZC1ob3N0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixxQkFBcUIsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFDLGVBQWUsSUFBSSxxQkFBcUIsRUFBNEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFTLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMs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QixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQ3BEO3lCQUNBLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLENBQUM7Z0JBRU0sS0FBSyxDQUFDLE1BQWtCO29CQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2dCQUVNLFdBQVc7b0JBQ2hCLHdEQUF3RDtnQkFDMUQsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgU3RhdGljUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2cgYXMgV29ya2JlbmNoQ2xpZW50RGlhbG9nLCBXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5fSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge1JvdXRpbmd9IGZyb20gJy4uLy4uL3JvdXRpbmcvcm91dGluZy51dGlsJztcbmltcG9ydCB7Q29tbWFuZHN9IGZyb20gJy4uLy4uL3JvdXRpbmcvcm91dGluZy5tb2RlbCc7XG5pbXBvcnQge1JvdXRlciwgUm91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHvJtVdvcmtiZW5jaERpYWxvZ30gZnJvbSAnLi4vLi4vZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ30gZnJvbSAnLi4vLi4vZGlhbG9nL3dvcmtiZW5jaC1kaWFsb2cnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtESUFMT0dfSURfUFJFRklYfSBmcm9tICcuLi8uLi93b3JrYmVuY2guY29uc3RhbnRzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJy4uLy4uL2NvbW1vbi90aHJvdy1lcnJvci51dGlsJztcbmltcG9ydCB7TWljcm9mcm9udGVuZHN9IGZyb20gJy4uL2NvbW1vbi9taWNyb2Zyb250ZW5kLnV0aWwnO1xuaW1wb3J0IHtBTkdVTEFSX1JPVVRFUl9NVVRFWH0gZnJvbSAnLi4vLi4vZXhlY3V0b3Ivc2luZ2xlLXRhc2stZXhlY3V0b3InO1xuaW1wb3J0IHtPYnNlcnZhYmxlc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIE5hdmlnYXRlcyB0byB0aGUgbWljcm9mcm9udGVuZCBvZiBhIGdpdmVuIHtAbGluayBXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5fSB2aWEge0BsaW5rIFJvdXRlcn0uXG4gKlxuICogVW5saWtlIHtAbGluayBNaWNyb2Zyb250ZW5kRGlhbG9nQ29tcG9uZW50fSwgdGhpcyBjb21wb25lbnQgdXNlcyBhIGA8cm91dGVyLW91dGxldD5gIGluc3RlYWQgb2YgYSBgPHNjaS1yb3V0ZXItb3V0bGV0PmBcbiAqIHRvIGFsbG93IGRpcmVjdCBpbnRlZ3JhdGlvbiBvZiB0aGUgY29udGVudCBwcm92aWRlZCBieSB0aGUgd29ya2JlbmNoIGhvc3QgYXBwbGljYXRpb24gdmlhIHRoZSBBbmd1bGFyIHJvdXRlci5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBkZXNpZ25lZCB0byBiZSBkaXNwbGF5ZWQgaW4gYSB3b3JrYmVuY2ggZGlhbG9nLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi1taWNyb2Zyb250ZW5kLWhvc3QtZGlhbG9nJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWljcm9mcm9udGVuZC1ob3N0LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWljcm9mcm9udGVuZC1ob3N0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWljcm9mcm9udGVuZEhvc3REaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG5cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBjYXBhYmlsaXR5ITogV29ya2JlbmNoRGlhbG9nQ2FwYWJpbGl0eTtcblxuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSlcbiAgcHVibGljIHBhcmFtcyE6IE1hcDxzdHJpbmcsIHVua25vd24+O1xuXG4gIHByb3RlY3RlZCBvdXRsZXROYW1lOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBvdXRsZXRJbmplY3RvciE6IEluamVjdG9yO1xuXG4gIC8qKiBNdXRleCB0byBzZXJpYWxpemUgQW5ndWxhciBSb3V0ZXIgbmF2aWdhdGlvbiByZXF1ZXN0cywgcHJldmVudGluZyB0aGUgY2FuY2VsbGF0aW9uIG9mIHByZXZpb3VzbHkgaW5pdGlhdGVkIGFzeW5jaHJvbm91cyBuYXZpZ2F0aW9ucy4gKi9cbiAgcHJpdmF0ZSBfYW5ndWxhclJvdXRlck11dGV4ID0gaW5qZWN0KEFOR1VMQVJfUk9VVEVSX01VVEVYKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2c6IMm1V29ya2JlbmNoRGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5vdXRsZXROYW1lID0gRElBTE9HX0lEX1BSRUZJWC5jb25jYXQodGhpcy5fZGlhbG9nLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldERpYWxvZ1Byb3BlcnRpZXMoKTtcbiAgICB0aGlzLmNyZWF0ZU91dGxldEluamVjdG9yKCk7XG4gICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5wYXRoLCB7cGFyYW1zOiB0aGlzLnBhcmFtc30pLnRoZW4oc3VjY2VzcyA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nLmNsb3NlKEVycm9yKCdbRGlhbG9nTmF2aWdhdGVFcnJvcl0gTmF2aWdhdGlvbiBjYW5jZWxlZCwgbW9zdCBsaWtlbHkgYnkgYSByb3V0ZSBndWFyZCBvciBhIHBhcmFsbGVsIG5hdmlnYXRpb24uJykpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIG5hdmlnYXRpb24gaW4gdGhlIG5hbWVkIG91dGxldCwgc3Vic3RpdHV0aW5nIHBhdGggcGFyYW1zIGlmIGFueS4gVG8gY2xlYXIgbmF2aWdhdGlvbiwgcGFzcyBgbnVsbGAgYXMgdGhlIHBhdGguXG4gICAqL1xuICBwcml2YXRlIG5hdmlnYXRlKHBhdGg6IHN0cmluZyB8IG51bGwsIGV4dHJhcz86IHtwYXJhbXM/OiBNYXA8c3RyaW5nLCBhbnk+fSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHBhdGggPSBNaWNyb2Zyb250ZW5kcy5zdWJzdGl0dXRlTmFtZWRQYXJhbWV0ZXJzKHBhdGgsIGV4dHJhcz8ucGFyYW1zKTtcblxuICAgIGNvbnN0IG91dGxldENvbW1hbmRzOiBDb21tYW5kcyB8IG51bGwgPSAocGF0aCAhPT0gbnVsbCA/IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLl9pbmplY3RvciwgKCkgPT4gUm91dGluZy5wYXRoVG9Db21tYW5kcyhwYXRoISkpIDogbnVsbCk7XG4gICAgY29uc3QgY29tbWFuZHM6IENvbW1hbmRzID0gW3tvdXRsZXRzOiB7W3RoaXMub3V0bGV0TmFtZV06IG91dGxldENvbW1hbmRzfX1dO1xuICAgIHJldHVybiB0aGlzLl9hbmd1bGFyUm91dGVyTXV0ZXguc3VibWl0KCgpID0+IHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShjb21tYW5kcywge3NraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJ30pKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3V0bGV0SW5qZWN0b3IoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRsZXRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZVdvcmtiZW5jaENsaWVudERpYWxvZ0hhbmRsZSh0aGlzLmNhcGFiaWxpdHksIHRoaXMucGFyYW1zKSxcbiAgICAgICAgLy8gUHJldmVudCBpbmplY3RpbmcgdGhlIGRpYWxvZyBoYW5kbGUgaW4gaG9zdCBkaWFsb2cgY29tcG9uZW50LlxuICAgICAgICB7cHJvdmlkZTogV29ya2JlbmNoRGlhbG9nLCB1c2VGYWN0b3J5OiAoKSA9PiB0aHJvd0Vycm9yKGBbTnVsbEluamVjdG9yRXJyb3JdIE5vIHByb3ZpZGVyIGZvciAnV29ya2JlbmNoRGlhbG9nJ2ApfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERpYWxvZ1Byb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLnNpemUud2lkdGggPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy53aWR0aDtcbiAgICB0aGlzLl9kaWFsb2cuc2l6ZS5oZWlnaHQgPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy5oZWlnaHQ7XG4gICAgdGhpcy5fZGlhbG9nLnNpemUubWluV2lkdGggPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy5taW5XaWR0aDtcbiAgICB0aGlzLl9kaWFsb2cuc2l6ZS5tYXhXaWR0aCA9IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/Lm1heFdpZHRoO1xuICAgIHRoaXMuX2RpYWxvZy5zaXplLm1pbkhlaWdodCA9IHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnNpemU/Lm1pbkhlaWdodDtcbiAgICB0aGlzLl9kaWFsb2cuc2l6ZS5tYXhIZWlnaHQgPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5zaXplPy5tYXhIZWlnaHQ7XG5cbiAgICB0aGlzLl9kaWFsb2cudGl0bGUgPSBNaWNyb2Zyb250ZW5kcy5zdWJzdGl0dXRlTmFtZWRQYXJhbWV0ZXJzKHRoaXMuY2FwYWJpbGl0eS5wcm9wZXJ0aWVzLnRpdGxlLCB0aGlzLnBhcmFtcyk7XG4gICAgdGhpcy5fZGlhbG9nLmNsb3NhYmxlID0gdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMuY2xvc2FibGUgPz8gdHJ1ZTtcbiAgICB0aGlzLl9kaWFsb2cucmVzaXphYmxlID0gdGhpcy5jYXBhYmlsaXR5LnByb3BlcnRpZXMucmVzaXphYmxlID8/IHRydWU7XG4gICAgdGhpcy5fZGlhbG9nLnBhZGRpbmcgPSB0aGlzLmNhcGFiaWxpdHkucHJvcGVydGllcy5wYWRkaW5nID8/IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uYXZpZ2F0ZShudWxsKS50aGVuKCk7IC8vIFJlbW92ZSB0aGUgb3V0bGV0IGZyb20gdGhlIFVSTFxuICB9XG59XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIHtXb3JrYmVuY2hEaWFsb2d9IGhhbmRsZSB0byB0aGUgcm91dGVkIGNvbXBvbmVudC5cbiAqL1xuZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaENsaWVudERpYWxvZ0hhbmRsZShjYXBhYmlsaXR5OiBXb3JrYmVuY2hEaWFsb2dDYXBhYmlsaXR5LCBwYXJhbXM6IE1hcDxzdHJpbmcsIHVua25vd24+KTogU3RhdGljUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFdvcmtiZW5jaENsaWVudERpYWxvZyxcbiAgICB1c2VGYWN0b3J5OiAoKTogV29ya2JlbmNoQ2xpZW50RGlhbG9nID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZyA9IGluamVjdCjJtVdvcmtiZW5jaERpYWxvZyk7XG4gICAgICBjb25zdCBwcm9wZXJ0eUNoYW5nZSQgPSBuZXcgU3ViamVjdDwndGl0bGUnPigpO1xuXG4gICAgICByZXR1cm4gbmV3IGNsYXNzPFIgPSB1bmtub3duPiBpbXBsZW1lbnRzIFdvcmtiZW5jaENsaWVudERpYWxvZzxSPiB7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjYXBhYmlsaXR5ID0gY2FwYWJpbGl0eTtcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHBhcmFtcyA9IHBhcmFtcztcblxuICAgICAgICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlJC5uZXh0KCd0aXRsZScpO1xuXG4gICAgICAgICAgT2JzZXJ2YWJsZXMuY29lcmNlKHRpdGxlKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbChwcm9wZXJ0eUNoYW5nZSQucGlwZShmaWx0ZXIocHJvcCA9PiBwcm9wID09PSAndGl0bGUnKSkpLFxuICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoZGlhbG9nLmluamVjdG9yLmdldChEZXN0cm95UmVmKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRpdGxlID0+IGRpYWxvZy50aXRsZSA9IHRpdGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBjbG9zZShyZXN1bHQ/OiBSIHwgRXJyb3IpOiB2b2lkIHtcbiAgICAgICAgICBkaWFsb2cuY2xvc2UocmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzaWduYWxSZWFkeSgpOiB2b2lkIHtcbiAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvIHNpbmNlIG5vdCBhbiBpZnJhbWUtYmFzZWQgbWljcm9mcm9udGVuZFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm91dGVyX291dGxldDsgaW5qZWN0b3I6IG91dGxldEluamVjdG9yXCIvPlxuXG48bmctdGVtcGxhdGUgI3JvdXRlcl9vdXRsZXQ+XG4gIDxyb3V0ZXItb3V0bGV0IFtuYW1lXT1cIm91dGxldE5hbWVcIi8+XG48L25nLXRlbXBsYXRlPlxuIl19
|