@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,62 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2023 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 { assertType } from '../common/asserts.util';
|
|
11
|
-
import { Defined } from '@scion/toolkit/util';
|
|
12
|
-
/**
|
|
13
|
-
* Represents a node in the grid.
|
|
14
|
-
*
|
|
15
|
-
* A node contains two children, which are either a {@link MPart} or a {@link MTreeNode}, respectively.
|
|
16
|
-
* The ratio together with the direction describes how to arrange the two children.
|
|
17
|
-
*
|
|
18
|
-
* The M-prefix indicates this object is a model object that is serialized and stored, requiring migration on breaking change.
|
|
19
|
-
*/
|
|
20
|
-
export class MTreeNode {
|
|
21
|
-
constructor(treeNode) {
|
|
22
|
-
/**
|
|
23
|
-
* Discriminator to unmarshall {@link MTreeNode} to its class type.
|
|
24
|
-
*/
|
|
25
|
-
this.type = 'MTreeNode';
|
|
26
|
-
treeNode.parent && assertType(treeNode.parent, { toBeOneOf: MTreeNode }); // assert not to be an object literal
|
|
27
|
-
assertType(treeNode.child1, { toBeOneOf: [MTreeNode, MPart] }); // assert not to be an object literal
|
|
28
|
-
assertType(treeNode.child2, { toBeOneOf: [MTreeNode, MPart] }); // assert not to be an object literal
|
|
29
|
-
Object.assign(this, treeNode);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Tests if the given object is a {@link MTreeNode}.
|
|
33
|
-
*/
|
|
34
|
-
static isMTreeNode(object) {
|
|
35
|
-
return object && object.type === 'MTreeNode';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Represents a part in the grid.
|
|
40
|
-
*
|
|
41
|
-
* A part is a container for views.
|
|
42
|
-
*
|
|
43
|
-
* The M-prefix indicates this object is a model object that is serialized and stored, requiring migration on breaking change.
|
|
44
|
-
*/
|
|
45
|
-
export class MPart {
|
|
46
|
-
constructor(part) {
|
|
47
|
-
/**
|
|
48
|
-
* Discriminator to unmarshall {@link MPart} to its class type.
|
|
49
|
-
*/
|
|
50
|
-
this.type = 'MPart';
|
|
51
|
-
Defined.orElseThrow(part.id, () => Error('MPart requires an id'));
|
|
52
|
-
part.parent && assertType(part.parent, { toBeOneOf: MTreeNode }); // assert not to be an object literal
|
|
53
|
-
Object.assign(this, part);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Tests if the given object is a {@link MPart}.
|
|
57
|
-
*/
|
|
58
|
-
static isMPart(object) {
|
|
59
|
-
return object && object.type === 'MPart';
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC93b3JrYmVuY2gtbGF5b3V0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQXdCNUM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBYXBCLFlBQVksUUFBaUM7UUFYN0M7O1dBRUc7UUFDYSxTQUFJLEdBQUcsV0FBVyxDQUFDO1FBU2pDLFFBQVEsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztRQUM3RyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDbkcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDO1FBQ25HLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBVztRQUNuQyxPQUFPLE1BQU0sSUFBSyxNQUFvQixDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFZaEIsWUFBWSxJQUF5QjtRQVZyQzs7V0FFRztRQUNhLFNBQUksR0FBRyxPQUFPLENBQUM7UUFRN0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDO1FBQ3JHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBVztRQUMvQixPQUFPLE1BQU0sSUFBSyxNQUFnQixDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge2Fzc2VydFR5cGV9IGZyb20gJy4uL2NvbW1vbi9hc3NlcnRzLnV0aWwnO1xuaW1wb3J0IHtEZWZpbmVkfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7Vmlld0lkfSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7TmF2aWdhdGlvbkRhdGF9IGZyb20gJy4uL3JvdXRpbmcvcm91dGluZy5tb2RlbCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYXJyYW5nZW1lbnQgb2YgcGFydHMgYXMgZ3JpZC5cbiAqXG4gKiBUaGUgTS1wcmVmaXggaW5kaWNhdGVzIHRoaXMgb2JqZWN0IGlzIGEgbW9kZWwgb2JqZWN0IHRoYXQgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkLCByZXF1aXJpbmcgbWlncmF0aW9uIG9uIGJyZWFraW5nIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNUGFydEdyaWQge1xuICByb290OiBNVHJlZU5vZGUgfCBNUGFydDtcbiAgYWN0aXZlUGFydElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICoge0BsaW5rIE1QYXJ0R3JpZH0gd2l0aCBhZGRpdGlvbmFsIGZpZWxkcyBub3Qgc2VyaWFsaXplZCBpbnRvIHRoZSBVUkwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgybVNUGFydEdyaWQgZXh0ZW5kcyBNUGFydEdyaWQge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoaXMgZ3JpZCB3YXMgbWlncmF0ZWQgZnJvbSBhbiBvbGRlciB2ZXJzaW9uLlxuICAgKi9cbiAgbWlncmF0ZWQ/OiB0cnVlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub2RlIGluIHRoZSBncmlkLlxuICpcbiAqIEEgbm9kZSBjb250YWlucyB0d28gY2hpbGRyZW4sIHdoaWNoIGFyZSBlaXRoZXIgYSB7QGxpbmsgTVBhcnR9IG9yIGEge0BsaW5rIE1UcmVlTm9kZX0sIHJlc3BlY3RpdmVseS5cbiAqIFRoZSByYXRpbyB0b2dldGhlciB3aXRoIHRoZSBkaXJlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byBhcnJhbmdlIHRoZSB0d28gY2hpbGRyZW4uXG4gKlxuICogVGhlIE0tcHJlZml4IGluZGljYXRlcyB0aGlzIG9iamVjdCBpcyBhIG1vZGVsIG9iamVjdCB0aGF0IGlzIHNlcmlhbGl6ZWQgYW5kIHN0b3JlZCwgcmVxdWlyaW5nIG1pZ3JhdGlvbiBvbiBicmVha2luZyBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBNVHJlZU5vZGUge1xuXG4gIC8qKlxuICAgKiBEaXNjcmltaW5hdG9yIHRvIHVubWFyc2hhbGwge0BsaW5rIE1UcmVlTm9kZX0gdG8gaXRzIGNsYXNzIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdNVHJlZU5vZGUnO1xuICBwdWJsaWMgcmVhZG9ubHkgaWQhOiBzdHJpbmc7XG4gIHB1YmxpYyBjaGlsZDEhOiBNVHJlZU5vZGUgfCBNUGFydDtcbiAgcHVibGljIGNoaWxkMiE6IE1UcmVlTm9kZSB8IE1QYXJ0O1xuICBwdWJsaWMgcmF0aW8hOiBudW1iZXI7XG4gIHB1YmxpYyBkaXJlY3Rpb24hOiAnY29sdW1uJyB8ICdyb3cnO1xuICBwdWJsaWMgcGFyZW50PzogTVRyZWVOb2RlO1xuXG4gIGNvbnN0cnVjdG9yKHRyZWVOb2RlOiBPbWl0PE1UcmVlTm9kZSwgJ3R5cGUnPikge1xuICAgIHRyZWVOb2RlLnBhcmVudCAmJiBhc3NlcnRUeXBlKHRyZWVOb2RlLnBhcmVudCwge3RvQmVPbmVPZjogTVRyZWVOb2RlfSk7IC8vIGFzc2VydCBub3QgdG8gYmUgYW4gb2JqZWN0IGxpdGVyYWxcbiAgICBhc3NlcnRUeXBlKHRyZWVOb2RlLmNoaWxkMSwge3RvQmVPbmVPZjogW01UcmVlTm9kZSwgTVBhcnRdfSk7IC8vIGFzc2VydCBub3QgdG8gYmUgYW4gb2JqZWN0IGxpdGVyYWxcbiAgICBhc3NlcnRUeXBlKHRyZWVOb2RlLmNoaWxkMiwge3RvQmVPbmVPZjogW01UcmVlTm9kZSwgTVBhcnRdfSk7IC8vIGFzc2VydCBub3QgdG8gYmUgYW4gb2JqZWN0IGxpdGVyYWxcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHRyZWVOb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEge0BsaW5rIE1UcmVlTm9kZX0uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTVRyZWVOb2RlKG9iamVjdDogYW55KTogb2JqZWN0IGlzIE1UcmVlTm9kZSB7XG4gICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0IGFzIE1UcmVlTm9kZSkudHlwZSA9PT0gJ01UcmVlTm9kZSc7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGFydCBpbiB0aGUgZ3JpZC5cbiAqXG4gKiBBIHBhcnQgaXMgYSBjb250YWluZXIgZm9yIHZpZXdzLlxuICpcbiAqIFRoZSBNLXByZWZpeCBpbmRpY2F0ZXMgdGhpcyBvYmplY3QgaXMgYSBtb2RlbCBvYmplY3QgdGhhdCBpcyBzZXJpYWxpemVkIGFuZCBzdG9yZWQsIHJlcXVpcmluZyBtaWdyYXRpb24gb24gYnJlYWtpbmcgY2hhbmdlLlxuICovXG5leHBvcnQgY2xhc3MgTVBhcnQge1xuXG4gIC8qKlxuICAgKiBEaXNjcmltaW5hdG9yIHRvIHVubWFyc2hhbGwge0BsaW5rIE1QYXJ0fSB0byBpdHMgY2xhc3MgdHlwZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ01QYXJ0JztcbiAgcHVibGljIHJlYWRvbmx5IGlkITogc3RyaW5nO1xuICBwdWJsaWMgcGFyZW50PzogTVRyZWVOb2RlO1xuICBwdWJsaWMgdmlld3MhOiBNVmlld1tdO1xuICBwdWJsaWMgYWN0aXZlVmlld0lkPzogVmlld0lkO1xuICBwdWJsaWMgc3RydWN0dXJhbCE6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocGFydDogT21pdDxNUGFydCwgJ3R5cGUnPikge1xuICAgIERlZmluZWQub3JFbHNlVGhyb3cocGFydC5pZCwgKCkgPT4gRXJyb3IoJ01QYXJ0IHJlcXVpcmVzIGFuIGlkJykpO1xuICAgIHBhcnQucGFyZW50ICYmIGFzc2VydFR5cGUocGFydC5wYXJlbnQsIHt0b0JlT25lT2Y6IE1UcmVlTm9kZX0pOyAvLyBhc3NlcnQgbm90IHRvIGJlIGFuIG9iamVjdCBsaXRlcmFsXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBwYXJ0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEge0BsaW5rIE1QYXJ0fS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNNUGFydChvYmplY3Q6IGFueSk6IG9iamVjdCBpcyBNUGFydCB7XG4gICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0IGFzIE1QYXJ0KS50eXBlID09PSAnTVBhcnQnO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHZpZXcgY29udGFpbmVkIGluIGEge0BsaW5rIE1QYXJ0fS5cbiAqXG4gKiBUaGUgTS1wcmVmaXggaW5kaWNhdGVzIHRoaXMgb2JqZWN0IGlzIGEgbW9kZWwgb2JqZWN0IHRoYXQgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkLCByZXF1aXJpbmcgbWlncmF0aW9uIG9uIGJyZWFraW5nIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNVmlldyB7XG4gIGlkOiBWaWV3SWQ7XG4gIGFsdGVybmF0aXZlSWQ/OiBzdHJpbmc7XG4gIHVpZDogc3RyaW5nO1xuICBjc3NDbGFzcz86IHN0cmluZ1tdO1xuICBtYXJrZWRGb3JSZW1vdmFsPzogdHJ1ZTtcbiAgbmF2aWdhdGlvbj86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGhpbnQ/OiBzdHJpbmc7XG4gICAgZGF0YT86IE5hdmlnYXRpb25EYXRhO1xuICAgIGNzc0NsYXNzPzogc3RyaW5nW107XG4gIH07XG59XG4iXX0=
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 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 { BehaviorSubject, merge, skip, Subject } from 'rxjs';
|
|
11
|
-
import { Injectable } from '@angular/core';
|
|
12
|
-
import { map } from 'rxjs/operators';
|
|
13
|
-
import { filterNull } from '../common/operators';
|
|
14
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "../view-dnd/view-drag.service";
|
|
17
|
-
/**
|
|
18
|
-
* Provides access to the workbench layout.
|
|
19
|
-
*/
|
|
20
|
-
export class WorkbenchLayoutService {
|
|
21
|
-
constructor(viewDragService) {
|
|
22
|
-
this._layout$ = new BehaviorSubject(null);
|
|
23
|
-
this._dragStart$ = new Subject();
|
|
24
|
-
this._dragEnd$ = new Subject();
|
|
25
|
-
/**
|
|
26
|
-
* Provides the current {@link WorkbenchLayout}, or `null` until Angular has performed the initial navigation.
|
|
27
|
-
*/
|
|
28
|
-
this.layout = toSignal(this._layout$, { requireSync: true });
|
|
29
|
-
/**
|
|
30
|
-
* Emits the current {@link WorkbenchLayout}.
|
|
31
|
-
*
|
|
32
|
-
* Upon subscription, emits the current layout, and then emits the updated layout every time it changes.
|
|
33
|
-
*
|
|
34
|
-
* The Observable will not emit until Angular has performed the initial navigation.
|
|
35
|
-
*/
|
|
36
|
-
this.layout$ = this._layout$.pipe(filterNull());
|
|
37
|
-
/**
|
|
38
|
-
* Notifies when the workbench layout has changed.
|
|
39
|
-
*/
|
|
40
|
-
this.onLayoutChange$ = this._layout$.pipe(skip(1), filterNull());
|
|
41
|
-
this.dragging$ = merge(merge(this._dragStart$, viewDragService.viewDragStart$).pipe(map(() => 'start')), merge(this._dragEnd$, viewDragService.viewDragEnd$).pipe(map(() => 'end')));
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Invoke to inform the layout when about to start a drag operation, like when start moving the splitter between parts.
|
|
45
|
-
*/
|
|
46
|
-
notifyDragStarting() {
|
|
47
|
-
this._dragStart$.next();
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Invoke to inform the layout when about to end a drag operation, like when end moving the splitter between parts.
|
|
51
|
-
*/
|
|
52
|
-
notifyDragEnding() {
|
|
53
|
-
this._dragEnd$.next();
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Sets the given {@link WorkbenchLayout}.
|
|
57
|
-
*/
|
|
58
|
-
setLayout(layout) {
|
|
59
|
-
this._layout$.next(layout);
|
|
60
|
-
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutService, deps: [{ token: i1.ViewDragService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
62
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutService, providedIn: 'root' }); }
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutService, decorators: [{
|
|
65
|
-
type: Injectable,
|
|
66
|
-
args: [{ providedIn: 'root' }]
|
|
67
|
-
}], ctorParameters: () => [{ type: i1.ViewDragService }] });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRXBEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQStCakMsWUFBWSxlQUFnQztRQTdCcEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFeEM7O1dBRUc7UUFDSSxXQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUU3RDs7Ozs7O1dBTUc7UUFDYSxZQUFPLEdBQWlDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFekY7O1dBRUc7UUFDYSxvQkFBZSxHQUFpQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQVN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBWSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDekYsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDbEYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxNQUF3QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXpEVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQURWLE1BQU07OzJGQUNsQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUsIHNraXAsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaExheW91dH0gZnJvbSAnLi/JtXdvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtmaWx0ZXJOdWxsfSBmcm9tICcuLi9jb21tb24vb3BlcmF0b3JzJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHdvcmtiZW5jaCBsYXlvdXQuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaExheW91dFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX2xheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PMm1V29ya2JlbmNoTGF5b3V0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgX2RyYWdTdGFydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kcmFnRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBjdXJyZW50IHtAbGluayBXb3JrYmVuY2hMYXlvdXR9LCBvciBgbnVsbGAgdW50aWwgQW5ndWxhciBoYXMgcGVyZm9ybWVkIHRoZSBpbml0aWFsIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgbGF5b3V0ID0gdG9TaWduYWwodGhpcy5fbGF5b3V0JCwge3JlcXVpcmVTeW5jOiB0cnVlfSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IHtAbGluayBXb3JrYmVuY2hMYXlvdXR9LlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIGN1cnJlbnQgbGF5b3V0LCBhbmQgdGhlbiBlbWl0cyB0aGUgdXBkYXRlZCBsYXlvdXQgZXZlcnkgdGltZSBpdCBjaGFuZ2VzLlxuICAgKlxuICAgKiBUaGUgT2JzZXJ2YWJsZSB3aWxsIG5vdCBlbWl0IHVudGlsIEFuZ3VsYXIgaGFzIHBlcmZvcm1lZCB0aGUgaW5pdGlhbCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxheW91dCQ6IE9ic2VydmFibGU8ybVXb3JrYmVuY2hMYXlvdXQ+ID0gdGhpcy5fbGF5b3V0JC5waXBlKGZpbHRlck51bGwoKSk7XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHdoZW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25MYXlvdXRDaGFuZ2UkOiBPYnNlcnZhYmxlPMm1V29ya2JlbmNoTGF5b3V0PiA9IHRoaXMuX2xheW91dCQucGlwZShza2lwKDEpLCBmaWx0ZXJOdWxsKCkpO1xuXG4gIC8qKlxuICAgKiBOb3RpZmllcyB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBvciBlbmRzIG1vZGlmeWluZyB0aGUgbGF5b3V0IHVzaW5nIGRyYWcgYW5kIGRyb3AsIGUuZy4sIG1vdmluZyB0aGUgc3BsaXR0ZXIgYmV0d2VlbiBwYXJ0cyxcbiAgICogbW92aW5nIGEgbWVzc2FnZSBib3gsIG9yIG1vdmluZyBhIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZHJhZ2dpbmckOiBPYnNlcnZhYmxlPCdzdGFydCcgfCAnZW5kJz47XG5cbiAgY29uc3RydWN0b3Iodmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UpIHtcbiAgICB0aGlzLmRyYWdnaW5nJCA9IG1lcmdlKFxuICAgICAgbWVyZ2UodGhpcy5fZHJhZ1N0YXJ0JCwgdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnU3RhcnQkKS5waXBlKG1hcCgoKTogJ3N0YXJ0JyA9PiAnc3RhcnQnKSksXG4gICAgICBtZXJnZSh0aGlzLl9kcmFnRW5kJCwgdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRW5kJCkucGlwZShtYXAoKCk6ICdlbmQnID0+ICdlbmQnKSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdG8gaW5mb3JtIHRoZSBsYXlvdXQgd2hlbiBhYm91dCB0byBzdGFydCBhIGRyYWcgb3BlcmF0aW9uLCBsaWtlIHdoZW4gc3RhcnQgbW92aW5nIHRoZSBzcGxpdHRlciBiZXR3ZWVuIHBhcnRzLlxuICAgKi9cbiAgcHVibGljIG5vdGlmeURyYWdTdGFydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnU3RhcnQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdG8gaW5mb3JtIHRoZSBsYXlvdXQgd2hlbiBhYm91dCB0byBlbmQgYSBkcmFnIG9wZXJhdGlvbiwgbGlrZSB3aGVuIGVuZCBtb3ZpbmcgdGhlIHNwbGl0dGVyIGJldHdlZW4gcGFydHMuXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5RHJhZ0VuZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnRW5kJC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZ2l2ZW4ge0BsaW5rIFdvcmtiZW5jaExheW91dH0uXG4gICAqL1xuICBwdWJsaWMgc2V0TGF5b3V0KGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXQkLm5leHQobGF5b3V0KTtcbiAgfVxufVxuIl19
|
|
@@ -1,58 +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 { MPart } from './workbench-layout.model';
|
|
11
|
-
import { MAIN_AREA } from './workbench-layout';
|
|
12
|
-
import { VIEW_ID_PREFIX } from '../workbench.constants';
|
|
13
|
-
/**
|
|
14
|
-
* Provides helper functions for operating on a workbench layout.
|
|
15
|
-
*/
|
|
16
|
-
export const WorkbenchLayouts = {
|
|
17
|
-
/**
|
|
18
|
-
* Recursively collects all parts of a given element and its descendants.
|
|
19
|
-
*/
|
|
20
|
-
collectParts: (element) => {
|
|
21
|
-
const parts = new Array();
|
|
22
|
-
if (element instanceof MPart) {
|
|
23
|
-
parts.push(element);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
parts.push(...WorkbenchLayouts.collectParts(element.child1));
|
|
27
|
-
parts.push(...WorkbenchLayouts.collectParts(element.child2));
|
|
28
|
-
}
|
|
29
|
-
return parts;
|
|
30
|
-
},
|
|
31
|
-
/**
|
|
32
|
-
* Tests if the given {@link MTreeNode} or {@link MPart} is visible.
|
|
33
|
-
*
|
|
34
|
-
* - A part is considered visible if it is the main area part or has at least one view.
|
|
35
|
-
* - A node is considered visible if it has at least one visible part in its child hierarchy.
|
|
36
|
-
*/
|
|
37
|
-
isGridElementVisible: (element) => {
|
|
38
|
-
if (element instanceof MPart) {
|
|
39
|
-
return element.id === MAIN_AREA || element.views.length > 0;
|
|
40
|
-
}
|
|
41
|
-
return WorkbenchLayouts.isGridElementVisible(element.child1) || WorkbenchLayouts.isGridElementVisible(element.child2);
|
|
42
|
-
},
|
|
43
|
-
/**
|
|
44
|
-
* Computes the next available view id.
|
|
45
|
-
*/
|
|
46
|
-
computeNextViewId: (viewIds) => {
|
|
47
|
-
const ids = Array.from(viewIds)
|
|
48
|
-
.map(viewId => Number(viewId.substring(VIEW_ID_PREFIX.length)))
|
|
49
|
-
.reduce((set, id) => set.add(id), new Set());
|
|
50
|
-
for (let i = 1; i <= ids.size; i++) {
|
|
51
|
-
if (!ids.has(i)) {
|
|
52
|
-
return VIEW_ID_PREFIX.concat(`${i}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return VIEW_ID_PREFIX.concat(`${ids.size + 1}`);
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC93b3JrYmVuY2gtbGF5b3V0cy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBQ0gsT0FBTyxFQUFDLEtBQUssRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUU5Qjs7T0FFRztJQUNILFlBQVksRUFBRSxDQUFDLE9BQTBCLEVBQVcsRUFBRTtRQUNwRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBUyxDQUFDO1FBQ2pDLElBQUksT0FBTyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUNJLENBQUM7WUFDSixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsb0JBQW9CLEVBQUUsQ0FBQyxPQUEwQixFQUFXLEVBQUU7UUFDNUQsSUFBSSxPQUFPLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDN0IsT0FBTyxPQUFPLENBQUMsRUFBRSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsRUFBRSxDQUFDLE9BQXlCLEVBQVUsRUFBRTtRQUN2RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM1QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUM5RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQztRQUV2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFXLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFXLENBQUM7SUFDNUQsQ0FBQztDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5pbXBvcnQge01QYXJ0LCBNVHJlZU5vZGV9IGZyb20gJy4vd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge01BSU5fQVJFQX0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Vmlld0lkfSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7VklFV19JRF9QUkVGSVh9IGZyb20gJy4uL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgZm9yIG9wZXJhdGluZyBvbiBhIHdvcmtiZW5jaCBsYXlvdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBXb3JrYmVuY2hMYXlvdXRzID0ge1xuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBjb2xsZWN0cyBhbGwgcGFydHMgb2YgYSBnaXZlbiBlbGVtZW50IGFuZCBpdHMgZGVzY2VuZGFudHMuXG4gICAqL1xuICBjb2xsZWN0UGFydHM6IChlbGVtZW50OiBNUGFydCB8IE1UcmVlTm9kZSk6IE1QYXJ0W10gPT4ge1xuICAgIGNvbnN0IHBhcnRzID0gbmV3IEFycmF5PE1QYXJ0PigpO1xuICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTVBhcnQpIHtcbiAgICAgIHBhcnRzLnB1c2goZWxlbWVudCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcGFydHMucHVzaCguLi5Xb3JrYmVuY2hMYXlvdXRzLmNvbGxlY3RQYXJ0cyhlbGVtZW50LmNoaWxkMSkpO1xuICAgICAgcGFydHMucHVzaCguLi5Xb3JrYmVuY2hMYXlvdXRzLmNvbGxlY3RQYXJ0cyhlbGVtZW50LmNoaWxkMikpO1xuICAgIH1cbiAgICByZXR1cm4gcGFydHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRlc3RzIGlmIHRoZSBnaXZlbiB7QGxpbmsgTVRyZWVOb2RlfSBvciB7QGxpbmsgTVBhcnR9IGlzIHZpc2libGUuXG4gICAqXG4gICAqIC0gQSBwYXJ0IGlzIGNvbnNpZGVyZWQgdmlzaWJsZSBpZiBpdCBpcyB0aGUgbWFpbiBhcmVhIHBhcnQgb3IgaGFzIGF0IGxlYXN0IG9uZSB2aWV3LlxuICAgKiAtIEEgbm9kZSBpcyBjb25zaWRlcmVkIHZpc2libGUgaWYgaXQgaGFzIGF0IGxlYXN0IG9uZSB2aXNpYmxlIHBhcnQgaW4gaXRzIGNoaWxkIGhpZXJhcmNoeS5cbiAgICovXG4gIGlzR3JpZEVsZW1lbnRWaXNpYmxlOiAoZWxlbWVudDogTVRyZWVOb2RlIHwgTVBhcnQpOiBib29sZWFuID0+IHtcbiAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIE1QYXJ0KSB7XG4gICAgICByZXR1cm4gZWxlbWVudC5pZCA9PT0gTUFJTl9BUkVBIHx8IGVsZW1lbnQudmlld3MubGVuZ3RoID4gMDtcbiAgICB9XG4gICAgcmV0dXJuIFdvcmtiZW5jaExheW91dHMuaXNHcmlkRWxlbWVudFZpc2libGUoZWxlbWVudC5jaGlsZDEpIHx8IFdvcmtiZW5jaExheW91dHMuaXNHcmlkRWxlbWVudFZpc2libGUoZWxlbWVudC5jaGlsZDIpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbmV4dCBhdmFpbGFibGUgdmlldyBpZC5cbiAgICovXG4gIGNvbXB1dGVOZXh0Vmlld0lkOiAodmlld0lkczogSXRlcmFibGU8Vmlld0lkPik6IFZpZXdJZCA9PiB7XG4gICAgY29uc3QgaWRzID0gQXJyYXkuZnJvbSh2aWV3SWRzKVxuICAgICAgLm1hcCh2aWV3SWQgPT4gTnVtYmVyKHZpZXdJZC5zdWJzdHJpbmcoVklFV19JRF9QUkVGSVgubGVuZ3RoKSkpXG4gICAgICAucmVkdWNlKChzZXQsIGlkKSA9PiBzZXQuYWRkKGlkKSwgbmV3IFNldDxudW1iZXI+KCkpO1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gaWRzLnNpemU7IGkrKykge1xuICAgICAgaWYgKCFpZHMuaGFzKGkpKSB7XG4gICAgICAgIHJldHVybiBWSUVXX0lEX1BSRUZJWC5jb25jYXQoYCR7aX1gKSBhcyBWaWV3SWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBWSUVXX0lEX1BSRUZJWC5jb25jYXQoYCR7aWRzLnNpemUgKyAxfWApIGFzIFZpZXdJZDtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2023 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 } from '@angular/core';
|
|
11
|
-
import { MPart, MTreeNode } from './workbench-layout.model';
|
|
12
|
-
import { UrlSegment } from '@angular/router';
|
|
13
|
-
import { WorkbenchLayoutMigrationV3 } from './migration/workbench-layout-migration-v3.service';
|
|
14
|
-
import { WorkbenchMigrator } from '../migration/workbench-migrator';
|
|
15
|
-
import { WorkbenchLayoutMigrationV4 } from './migration/workbench-layout-migration-v4.service';
|
|
16
|
-
import { WorkbenchLayoutMigrationV5 } from './migration/workbench-layout-migration-v5.service';
|
|
17
|
-
import { stringify } from './stringifier';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
/**
|
|
20
|
-
* Serializes and deserializes a base64-encoded JSON into a {@link MPartGrid}.
|
|
21
|
-
*/
|
|
22
|
-
export class WorkbenchLayoutSerializer {
|
|
23
|
-
constructor() {
|
|
24
|
-
this._workbenchLayoutMigrator = new WorkbenchMigrator()
|
|
25
|
-
.registerMigration(2, inject(WorkbenchLayoutMigrationV3))
|
|
26
|
-
.registerMigration(3, inject(WorkbenchLayoutMigrationV4))
|
|
27
|
-
.registerMigration(4, inject(WorkbenchLayoutMigrationV5));
|
|
28
|
-
}
|
|
29
|
-
serializeGrid(grid, flags) {
|
|
30
|
-
if (grid === null || grid === undefined) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
const json = stringify(grid, new Array()
|
|
34
|
-
.concat('**/parent')
|
|
35
|
-
.concat('migrated')
|
|
36
|
-
.concat(flags?.excludeTreeNodeId ? ({ path: '**/id', predicate: context => context.at(-1) instanceof MTreeNode }) : [])
|
|
37
|
-
.concat(flags?.excludeViewUid ? '**/views/*/uid' : [])
|
|
38
|
-
.concat(flags?.excludeViewMarkedForRemoval ? '**/views/*/markedForRemoval' : [])
|
|
39
|
-
.concat(flags?.excludeViewNavigationId ? '**/views/*/navigation/id' : []));
|
|
40
|
-
return window.btoa(`${json}${VERSION_SEPARATOR}${WORKBENCH_LAYOUT_VERSION}`);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Deserializes the given base64-serialized grid, applying necessary migrations if the serialized grid is outdated.
|
|
44
|
-
*/
|
|
45
|
-
deserializeGrid(serialized) {
|
|
46
|
-
const [jsonGrid, jsonGridVersion] = window.atob(serialized).split(VERSION_SEPARATOR, 2);
|
|
47
|
-
const gridVersion = Number.isNaN(Number(jsonGridVersion)) ? 1 : Number(jsonGridVersion);
|
|
48
|
-
const migratedJsonGrid = this._workbenchLayoutMigrator.migrate(jsonGrid, { from: gridVersion, to: WORKBENCH_LAYOUT_VERSION });
|
|
49
|
-
// Parse the JSON.
|
|
50
|
-
const grid = JSON.parse(migratedJsonGrid, (key, value) => {
|
|
51
|
-
if (MPart.isMPart(value)) {
|
|
52
|
-
return new MPart(value); // create a class object from the object literal
|
|
53
|
-
}
|
|
54
|
-
if (MTreeNode.isMTreeNode(value)) {
|
|
55
|
-
return new MTreeNode(value); // create a class object from the object literal
|
|
56
|
-
}
|
|
57
|
-
return value;
|
|
58
|
-
});
|
|
59
|
-
// Link parent tree nodes
|
|
60
|
-
(function linkParentNodes(node, parent) {
|
|
61
|
-
node.parent = parent;
|
|
62
|
-
if (node instanceof MTreeNode) {
|
|
63
|
-
linkParentNodes(node.child1, node);
|
|
64
|
-
linkParentNodes(node.child2, node);
|
|
65
|
-
}
|
|
66
|
-
})(grid.root, undefined);
|
|
67
|
-
return (gridVersion < WORKBENCH_LAYOUT_VERSION) ? { ...grid, migrated: true } : grid;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Serializes the given outlets.
|
|
71
|
-
*/
|
|
72
|
-
serializeViewOutlets(viewOutlets) {
|
|
73
|
-
return JSON.stringify(Object.fromEntries(Object.entries(viewOutlets)
|
|
74
|
-
.map(([viewId, segments]) => {
|
|
75
|
-
return [viewId, segments.map(segment => ({ path: segment.path, parameters: segment.parameters }))];
|
|
76
|
-
})));
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Deserializes the given outlets.
|
|
80
|
-
*/
|
|
81
|
-
deserializeViewOutlets(serialized) {
|
|
82
|
-
const viewOutlets = JSON.parse(serialized);
|
|
83
|
-
return Object.fromEntries(Object.entries(viewOutlets)
|
|
84
|
-
.map(([viewId, segments]) => {
|
|
85
|
-
return [viewId, segments.map(segment => new UrlSegment(segment.path, segment.parameters))];
|
|
86
|
-
}));
|
|
87
|
-
}
|
|
88
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
89
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutSerializer, providedIn: 'root' }); }
|
|
90
|
-
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutSerializer, decorators: [{
|
|
92
|
-
type: Injectable,
|
|
93
|
-
args: [{ providedIn: 'root' }]
|
|
94
|
-
}] });
|
|
95
|
-
/**
|
|
96
|
-
* Represents the current version of the workbench layout model.
|
|
97
|
-
*
|
|
98
|
-
* Increment this version and write a migrator when introducing a breaking layout model change.
|
|
99
|
-
*
|
|
100
|
-
* @see WorkbenchMigrator
|
|
101
|
-
*/
|
|
102
|
-
export const WORKBENCH_LAYOUT_VERSION = 5;
|
|
103
|
-
/**
|
|
104
|
-
* Separates the serialized JSON model and its version in the base64-encoded string.
|
|
105
|
-
*
|
|
106
|
-
* Format: <json>//<version>
|
|
107
|
-
*/
|
|
108
|
-
const VERSION_SEPARATOR = '//';
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VuY2gtbGF5b3V0LXNlcmlhbGl6ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC93b3JrZW5jaC1sYXlvdXQtc2VyaWFsaXplci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLEtBQUssRUFBYSxTQUFTLEVBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFZLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFbkQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBR1UsNkJBQXdCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTthQUN2RCxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDeEQsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2FBQ3hELGlCQUFpQixDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0tBOEU3RDtJQXBFUSxhQUFhLENBQUMsSUFBa0MsRUFBRSxLQUE4QjtRQUNyRixJQUFJLElBQUksS0FBSyxJ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QVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQXNGaEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRTFDOzs7O0dBSUc7QUFDSCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNUGFydCwgTVBhcnRHcmlkLCBNVHJlZU5vZGUsIMm1TVBhcnRHcmlkfSBmcm9tICcuL3dvcmtiZW5jaC1sYXlvdXQubW9kZWwnO1xuaW1wb3J0IHtWaWV3T3V0bGV0c30gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLm1vZGVsJztcbmltcG9ydCB7VXJsU2VnbWVudH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0TWlncmF0aW9uVjN9IGZyb20gJy4vbWlncmF0aW9uL3dvcmtiZW5jaC1sYXlvdXQtbWlncmF0aW9uLXYzLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hNaWdyYXRvcn0gZnJvbSAnLi4vbWlncmF0aW9uL3dvcmtiZW5jaC1taWdyYXRvcic7XG5pbXBvcnQge1ZpZXdJZH0gZnJvbSAnLi4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dE1pZ3JhdGlvblY0fSBmcm9tICcuL21pZ3JhdGlvbi93b3JrYmVuY2gtbGF5b3V0LW1pZ3JhdGlvbi12NC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0TWlncmF0aW9uVjV9IGZyb20gJy4vbWlncmF0aW9uL3dvcmtiZW5jaC1sYXlvdXQtbWlncmF0aW9uLXY1LnNlcnZpY2UnO1xuaW1wb3J0IHtFeGNsdXNpb24sIHN0cmluZ2lmeX0gZnJvbSAnLi9zdHJpbmdpZmllcic7XG5cbi8qKlxuICogU2VyaWFsaXplcyBhbmQgZGVzZXJpYWxpemVzIGEgYmFzZTY0LWVuY29kZWQgSlNPTiBpbnRvIGEge0BsaW5rIE1QYXJ0R3JpZH0uXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaExheW91dFNlcmlhbGl6ZXIge1xuXG4gIHByaXZhdGUgX3dvcmtiZW5jaExheW91dE1pZ3JhdG9yID0gbmV3IFdvcmtiZW5jaE1pZ3JhdG9yKClcbiAgICAucmVnaXN0ZXJNaWdyYXRpb24oMiwgaW5qZWN0KFdvcmtiZW5jaExheW91dE1pZ3JhdGlvblYzKSlcbiAgICAucmVnaXN0ZXJNaWdyYXRpb24oMywgaW5qZWN0KFdvcmtiZW5jaExheW91dE1pZ3JhdGlvblY0KSlcbiAgICAucmVnaXN0ZXJNaWdyYXRpb24oNCwgaW5qZWN0KFdvcmtiZW5jaExheW91dE1pZ3JhdGlvblY1KSk7XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIGdyaWQgaW50byBhIFVSTC1zYWZlIGJhc2U2NCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBncmlkIC0gU3BlY2lmaWVzIHRoZSBncmlkIHRvIGJlIHNlcmlhbGl6ZWQuXG4gICAqIEBwYXJhbSBmbGFncyAtIENvbnRyb2xzIHdoaWNoIGZpZWxkcyBub3QgdG8gc2VyaWFsaXplLiBCeSBkZWZhdWx0LCBhbGwgZmllbGRzIGFyZSBzZXJpYWxpemVkLlxuICAgKi9cbiAgcHVibGljIHNlcmlhbGl6ZUdyaWQoZ3JpZDogTVBhcnRHcmlkLCBmbGFncz86IEdyaWRTZXJpYWxpemF0aW9uRmxhZ3MpOiBzdHJpbmc7XG4gIHB1YmxpYyBzZXJpYWxpemVHcmlkKGdyaWQ6IE1QYXJ0R3JpZCB8IHVuZGVmaW5lZCB8IG51bGwsIGZsYWdzPzogR3JpZFNlcmlhbGl6YXRpb25GbGFncyk6IG51bGwgfCBzdHJpbmc7XG4gIHB1YmxpYyBzZXJpYWxpemVHcmlkKGdyaWQ6IE1QYXJ0R3JpZCB8IHVuZGVmaW5lZCB8IG51bGwsIGZsYWdzPzogR3JpZFNlcmlhbGl6YXRpb25GbGFncyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChncmlkID09PSBudWxsIHx8IGdyaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QganNvbiA9IHN0cmluZ2lmeShncmlkLCBuZXcgQXJyYXk8c3RyaW5nIHwgRXhjbHVzaW9uPigpXG4gICAgICAuY29uY2F0KCcqKi9wYXJlbnQnKVxuICAgICAgLmNvbmNhdCgnbWlncmF0ZWQnKVxuICAgICAgLmNvbmNhdChmbGFncz8uZXhjbHVkZVRyZWVOb2RlSWQgPyAoe3BhdGg6ICcqKi9pZCcsIHByZWRpY2F0ZTogY29udGV4dCA9PiBjb250ZXh0LmF0KC0xKSBpbnN0YW5jZW9mIE1UcmVlTm9kZX0pIDogW10pXG4gICAgICAuY29uY2F0KGZsYWdzPy5leGNsdWRlVmlld1VpZCA/ICcqKi92aWV3cy8qL3VpZCcgOiBbXSlcbiAgICAgIC5jb25jYXQoZmxhZ3M/LmV4Y2x1ZGVWaWV3TWFya2VkRm9yUmVtb3ZhbCA/ICcqKi92aWV3cy8qL21hcmtlZEZvclJlbW92YWwnIDogW10pXG4gICAgICAuY29uY2F0KGZsYWdzPy5leGNsdWRlVmlld05hdmlnYXRpb25JZCA/ICcqKi92aWV3cy8qL25hdmlnYXRpb24vaWQnIDogW10pKTtcbiAgICByZXR1cm4gd2luZG93LmJ0b2EoYCR7anNvbn0ke1ZFUlNJT05fU0VQQVJBVE9SfSR7V09SS0JFTkNIX0xBWU9VVF9WRVJTSU9OfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplcyB0aGUgZ2l2ZW4gYmFzZTY0LXNlcmlhbGl6ZWQgZ3JpZCwgYXBwbHlpbmcgbmVjZXNzYXJ5IG1pZ3JhdGlvbnMgaWYgdGhlIHNlcmlhbGl6ZWQgZ3JpZCBpcyBvdXRkYXRlZC5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZUdyaWQoc2VyaWFsaXplZDogc3RyaW5nKTogybVNUGFydEdyaWQge1xuICAgIGNvbnN0IFtqc29uR3JpZCwganNvbkdyaWRWZXJzaW9uXSA9IHdpbmRvdy5hdG9iKHNlcmlhbGl6ZWQpLnNwbGl0KFZFUlNJT05fU0VQQVJBVE9SLCAyKTtcbiAgICBjb25zdCBncmlkVmVyc2lvbiA9IE51bWJlci5pc05hTihOdW1iZXIoanNvbkdyaWRWZXJzaW9uKSkgPyAxIDogTnVtYmVyKGpzb25HcmlkVmVyc2lvbik7XG4gICAgY29uc3QgbWlncmF0ZWRKc29uR3JpZCA9IHRoaXMuX3dvcmtiZW5jaExheW91dE1pZ3JhdG9yLm1pZ3JhdGUoanNvbkdyaWQsIHtmcm9tOiBncmlkVmVyc2lvbiwgdG86IFdPUktCRU5DSF9MQVlPVVRfVkVSU0lPTn0pO1xuXG4gICAgLy8gUGFyc2UgdGhlIEpTT04uXG4gICAgY29uc3QgZ3JpZDogTVBhcnRHcmlkID0gSlNPTi5wYXJzZShtaWdyYXRlZEpzb25HcmlkLCAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKE1QYXJ0LmlzTVBhcnQodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTVBhcnQodmFsdWUpOyAvLyBjcmVhdGUgYSBjbGFzcyBvYmplY3QgZnJvbSB0aGUgb2JqZWN0IGxpdGVyYWxcbiAgICAgIH1cbiAgICAgIGlmIChNVHJlZU5vZGUuaXNNVHJlZU5vZGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTVRyZWVOb2RlKHZhbHVlKTsgLy8gY3JlYXRlIGEgY2xhc3Mgb2JqZWN0IGZyb20gdGhlIG9iamVjdCBsaXRlcmFsXG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG5cbiAgICAvLyBMaW5rIHBhcmVudCB0cmVlIG5vZGVzXG4gICAgKGZ1bmN0aW9uIGxpbmtQYXJlbnROb2Rlcyhub2RlOiBNVHJlZU5vZGUgfCBNUGFydCwgcGFyZW50OiBNVHJlZU5vZGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50O1xuXG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIE1UcmVlTm9kZSkge1xuICAgICAgICBsaW5rUGFyZW50Tm9kZXMobm9kZS5jaGlsZDEsIG5vZGUpO1xuICAgICAgICBsaW5rUGFyZW50Tm9kZXMobm9kZS5jaGlsZDIsIG5vZGUpO1xuICAgICAgfVxuICAgIH0pKGdyaWQucm9vdCwgdW5kZWZpbmVkKTtcblxuICAgIHJldHVybiAoZ3JpZFZlcnNpb24gPCBXT1JLQkVOQ0hfTEFZT1VUX1ZFUlNJT04pID8gey4uLmdyaWQsIG1pZ3JhdGVkOiB0cnVlfSA6IGdyaWQ7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gb3V0bGV0cy5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemVWaWV3T3V0bGV0cyh2aWV3T3V0bGV0czogVmlld091dGxldHMpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModmlld091dGxldHMpXG4gICAgICAubWFwKChbdmlld0lkLCBzZWdtZW50c106IFtzdHJpbmcsIFVybFNlZ21lbnRbXV0pOiBbc3RyaW5nLCBNVXJsU2VnbWVudFtdXSA9PiB7XG4gICAgICAgIHJldHVybiBbdmlld0lkLCBzZWdtZW50cy5tYXAoc2VnbWVudCA9PiAoe3BhdGg6IHNlZ21lbnQucGF0aCwgcGFyYW1ldGVyczogc2VnbWVudC5wYXJhbWV0ZXJzfSkpXTtcbiAgICAgIH0pKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVzZXJpYWxpemVzIHRoZSBnaXZlbiBvdXRsZXRzLlxuICAgKi9cbiAgcHVibGljIGRlc2VyaWFsaXplVmlld091dGxldHMoc2VyaWFsaXplZDogc3RyaW5nKTogVmlld091dGxldHMge1xuICAgIGNvbnN0IHZpZXdPdXRsZXRzOiB7W3ZpZXdJZDogVmlld0lkXTogTVVybFNlZ21lbnRbXX0gPSBKU09OLnBhcnNlKHNlcmlhbGl6ZWQpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh2aWV3T3V0bGV0cylcbiAgICAgIC5tYXAoKFt2aWV3SWQsIHNlZ21lbnRzXTogW3N0cmluZywgTVVybFNlZ21lbnRbXV0pOiBbc3RyaW5nLCBVcmxTZWdtZW50W11dID0+IHtcbiAgICAgICAgcmV0dXJuIFt2aWV3SWQsIHNlZ21lbnRzLm1hcChzZWdtZW50ID0+IG5ldyBVcmxTZWdtZW50KHNlZ21lbnQucGF0aCwgc2VnbWVudC5wYXJhbWV0ZXJzKSldO1xuICAgICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSB3b3JrYmVuY2ggbGF5b3V0IG1vZGVsLlxuICpcbiAqIEluY3JlbWVudCB0aGlzIHZlcnNpb24gYW5kIHdyaXRlIGEgbWlncmF0b3Igd2hlbiBpbnRyb2R1Y2luZyBhIGJyZWFraW5nIGxheW91dCBtb2RlbCBjaGFuZ2UuXG4gKlxuICogQHNlZSBXb3JrYmVuY2hNaWdyYXRvclxuICovXG5leHBvcnQgY29uc3QgV09SS0JFTkNIX0xBWU9VVF9WRVJTSU9OID0gNTtcblxuLyoqXG4gKiBTZXBhcmF0ZXMgdGhlIHNlcmlhbGl6ZWQgSlNPTiBtb2RlbCBhbmQgaXRzIHZlcnNpb24gaW4gdGhlIGJhc2U2NC1lbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBGb3JtYXQ6IDxqc29uPi8vPHZlcnNpb24+XG4gKi9cbmNvbnN0IFZFUlNJT05fU0VQQVJBVE9SID0gJy8vJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VnbWVudCBpbiB0aGUgVVJMLlxuICpcbiAqIFRoZSBNLXByZWZpeCBpbmRpY2F0ZXMgdGhpcyBvYmplY3QgaXMgYSBtb2RlbCBvYmplY3QgdGhhdCBpcyBzZXJpYWxpemVkIGFuZCBzdG9yZWQsIHJlcXVpcmluZyBtaWdyYXRpb24gb24gYnJlYWtpbmcgY2hhbmdlLlxuICovXG5pbnRlcmZhY2UgTVVybFNlZ21lbnQge1xuICBwYXRoOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfTtcbn1cblxuLyoqXG4gKiBDb250cm9scyB3aGljaCBmaWVsZHMgbm90IHRvIHNlcmlhbGl6ZS4gQnkgZGVmYXVsdCwgYWxsIGZpZWxkcyBhcmUgc2VyaWFsaXplZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkU2VyaWFsaXphdGlvbkZsYWdzIHtcbiAgZXhjbHVkZVRyZWVOb2RlSWQ/OiB0cnVlO1xuICBleGNsdWRlVmlld1VpZD86IHRydWU7XG4gIGV4Y2x1ZGVWaWV3TWFya2VkRm9yUmVtb3ZhbD86IHRydWU7XG4gIGV4Y2x1ZGVWaWV3TmF2aWdhdGlvbklkPzogdHJ1ZTtcbn1cbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2023 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 { ɵWorkbenchLayout } from './ɵworkbench-layout';
|
|
11
|
-
import { MPart } from './workbench-layout.model';
|
|
12
|
-
import { Injectable, runInInjectionContext } from '@angular/core';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
/**
|
|
15
|
-
* @inheritDoc
|
|
16
|
-
*/
|
|
17
|
-
export class ɵWorkbenchLayoutFactory {
|
|
18
|
-
constructor(_environmentInjector) {
|
|
19
|
-
this._environmentInjector = _environmentInjector;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @inheritDoc
|
|
23
|
-
*/
|
|
24
|
-
addPart(id) {
|
|
25
|
-
return this.create({
|
|
26
|
-
workbenchGrid: { root: new MPart({ id, structural: true, views: [] }), activePartId: id },
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Creates a workbench layout that consists of the specified grids.
|
|
31
|
-
*
|
|
32
|
-
* - If not specifying the workbench grid, creates a workbench grid with a main area.
|
|
33
|
-
* - If not specifying the main area grid, but the workbench grid has a main area part, creates a main area grid with an initial part.
|
|
34
|
-
* To control the identity of the initial part, pass an injector and set the DI token {@link MAIN_AREA_INITIAL_PART_ID}.
|
|
35
|
-
* - Grids and outlets can be passed in serialized or deserialized form.
|
|
36
|
-
*/
|
|
37
|
-
create(options) {
|
|
38
|
-
return runInInjectionContext(options?.injector ?? this._environmentInjector, () => new ɵWorkbenchLayout({
|
|
39
|
-
workbenchGrid: options?.workbenchGrid,
|
|
40
|
-
mainAreaGrid: options?.mainAreaGrid,
|
|
41
|
-
perspectiveId: options?.perspectiveId,
|
|
42
|
-
maximized: options?.maximized,
|
|
43
|
-
viewOutlets: options?.viewOutlets,
|
|
44
|
-
navigationStates: options?.navigationStates,
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchLayoutFactory, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchLayoutFactory, providedIn: 'root' }); }
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchLayoutFactory, decorators: [{
|
|
51
|
-
type: Injectable,
|
|
52
|
-
args: [{ providedIn: 'root' }]
|
|
53
|
-
}], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsS0FBSyxFQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFzQixVQUFVLEVBQVkscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBSS9GOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixvQkFBeUM7UUFBekMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUMsRUFBc0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUM7U0FDdEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsT0FBME87UUFDdFAsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDO1lBQ3RHLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYTtZQUNyQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVk7WUFDbkMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhO1lBQ3JDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUztZQUM3QixXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVc7WUFDakMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQjtTQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OEdBL0JVLHVCQUF1QjtrSEFBdkIsdUJBQXVCLGNBRFgsTUFBTTs7MkZBQ2xCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4vybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7TVBhcnQsIE1QYXJ0R3JpZH0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0RmFjdG9yeX0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHtFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFJTl9BUkVBfSBmcm9tICcuL3dvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU3RhdGVzLCBWaWV3T3V0bGV0c30gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLm1vZGVsJztcblxuLyoqXG4gKiBAaW5oZXJpdERvY1xuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaExheW91dEZhY3RvcnkgaW1wbGVtZW50cyBXb3JrYmVuY2hMYXlvdXRGYWN0b3J5IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yKSB7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIHB1YmxpYyBhZGRQYXJ0KGlkOiBzdHJpbmcgfCBNQUlOX0FSRUEpOiDJtVdvcmtiZW5jaExheW91dCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtcbiAgICAgIHdvcmtiZW5jaEdyaWQ6IHtyb290OiBuZXcgTVBhcnQoe2lkLCBzdHJ1Y3R1cmFsOiB0cnVlLCB2aWV3czogW119KSwgYWN0aXZlUGFydElkOiBpZH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHdvcmtiZW5jaCBsYXlvdXQgdGhhdCBjb25zaXN0cyBvZiB0aGUgc3BlY2lmaWVkIGdyaWRzLlxuICAgKlxuICAgKiAtIElmIG5vdCBzcGVjaWZ5aW5nIHRoZSB3b3JrYmVuY2ggZ3JpZCwgY3JlYXRlcyBhIHdvcmtiZW5jaCBncmlkIHdpdGggYSBtYWluIGFyZWEuXG4gICAqIC0gSWYgbm90IHNwZWNpZnlpbmcgdGhlIG1haW4gYXJlYSBncmlkLCBidXQgdGhlIHdvcmtiZW5jaCBncmlkIGhhcyBhIG1haW4gYXJlYSBwYXJ0LCBjcmVhdGVzIGEgbWFpbiBhcmVhIGdyaWQgd2l0aCBhbiBpbml0aWFsIHBhcnQuXG4gICAqICAgVG8gY29udHJvbCB0aGUgaWRlbnRpdHkgb2YgdGhlIGluaXRpYWwgcGFydCwgcGFzcyBhbiBpbmplY3RvciBhbmQgc2V0IHRoZSBESSB0b2tlbiB7QGxpbmsgTUFJTl9BUkVBX0lOSVRJQUxfUEFSVF9JRH0uXG4gICAqIC0gR3JpZHMgYW5kIG91dGxldHMgY2FuIGJlIHBhc3NlZCBpbiBzZXJpYWxpemVkIG9yIGRlc2VyaWFsaXplZCBmb3JtLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZShvcHRpb25zPzoge3dvcmtiZW5jaEdyaWQ/OiBzdHJpbmcgfCBNUGFydEdyaWQgfCBudWxsOyBtYWluQXJlYUdyaWQ/OiBzdHJpbmcgfCBNUGFydEdyaWQgfCBudWxsOyBwZXJzcGVjdGl2ZUlkPzogc3RyaW5nOyB2aWV3T3V0bGV0cz86IFZpZXdPdXRsZXRzIHwgc3RyaW5nOyBuYXZpZ2F0aW9uU3RhdGVzPzogTmF2aWdhdGlvblN0YXRlczsgaW5qZWN0b3I/OiBJbmplY3RvcjsgbWF4aW1pemVkPzogYm9vbGVhbn0pOiDJtVdvcmtiZW5jaExheW91dCB7XG4gICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChvcHRpb25zPy5pbmplY3RvciA/PyB0aGlzLl9lbnZpcm9ubWVudEluamVjdG9yLCAoKSA9PiBuZXcgybVXb3JrYmVuY2hMYXlvdXQoe1xuICAgICAgd29ya2JlbmNoR3JpZDogb3B0aW9ucz8ud29ya2JlbmNoR3JpZCxcbiAgICAgIG1haW5BcmVhR3JpZDogb3B0aW9ucz8ubWFpbkFyZWFHcmlkLFxuICAgICAgcGVyc3BlY3RpdmVJZDogb3B0aW9ucz8ucGVyc3BlY3RpdmVJZCxcbiAgICAgIG1heGltaXplZDogb3B0aW9ucz8ubWF4aW1pemVkLFxuICAgICAgdmlld091dGxldHM6IG9wdGlvbnM/LnZpZXdPdXRsZXRzLFxuICAgICAgbmF2aWdhdGlvblN0YXRlczogb3B0aW9ucz8ubmF2aWdhdGlvblN0YXRlcyxcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
|