@scion/workbench 18.0.0-beta.9 → 19.0.0-beta.2
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/README.md +1 -1
- package/design/_workbench-dark-theme-design-tokens.scss +8 -2
- package/design/_workbench-light-theme-design-tokens.scss +8 -2
- package/design/_workbench-view-global-styles.scss +0 -1
- package/fesm2022/scion-workbench.mjs +12009 -11413
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/css-class.util.d.ts +5 -0
- package/lib/common/instanceof.pipe.d.ts +1 -1
- package/lib/common/math.util.d.ts +7 -0
- package/lib/common/objects.util.d.ts +1 -1
- package/lib/desktop/desktop.directive.d.ts +37 -0
- package/lib/desktop/public_api.d.ts +1 -0
- package/lib/dialog/workbench-dialog.component.d.ts +1 -2
- package/lib/dialog/workbench-dialog.options.d.ts +1 -2
- package/lib/layout/grid-element/grid-element.component.d.ts +3 -5
- package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
- package/lib/layout/migration/model/workbench-layout-migration-v7.model.d.ts +37 -0
- package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
- package/lib/layout/migration/workbench-layout-migration-v7.service.d.ts +10 -0
- package/lib/layout/public_api.d.ts +1 -0
- package/lib/layout/stringifier.d.ts +12 -5
- package/lib/layout/workbench-layout.component.d.ts +8 -10
- package/lib/layout/workbench-layout.d.ts +104 -16
- package/lib/layout/workbench-layout.model.d.ts +11 -4
- package/lib/layout/workbench-layout.service.d.ts +10 -12
- package/lib/layout/workbench-layouts.util.d.ts +5 -0
- package/lib/layout/workench-layout-serializer.service.d.ts +31 -7
- package/lib/layout//311/265workbench-layout.d.ts +73 -42
- package/lib/layout//311/265workbench-layout.factory.d.ts +2 -2
- package/lib/logging//311/265logger.d.ts +11 -6
- package/lib/message-box/workbench-message-box.options.d.ts +1 -2
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +5 -7
- package/lib/page-not-found/page-not-found.component.d.ts +5 -3
- package/lib/{layout/main-area-layout/main-area-layout.component.d.ts → part/main-area-part/main-area-part.component.d.ts} +12 -12
- package/lib/part/part-action/part-action.component.d.ts +39 -0
- package/lib/part/part-action-bar/part-action.directive.d.ts +41 -34
- package/lib/part/part-bar/part-bar.component.d.ts +16 -140
- package/lib/part/part-portal.pipe.d.ts +3 -2
- package/lib/part/part.component.d.ts +13 -10
- package/lib/part/public_api.d.ts +2 -2
- package/lib/part/view-context-menu/accelerator-format.pipe.d.ts +1 -1
- package/lib/part/view-context-menu/menu-item/menu-item.component.d.ts +39 -0
- package/lib/part/view-context-menu/text/text.component.d.ts +6 -0
- package/lib/part/view-context-menu/view-menu-item.directive.d.ts +75 -0
- package/lib/part/view-context-menu/view-menu.component.d.ts +13 -16
- package/lib/part/view-context-menu/view-menu.service.d.ts +10 -6
- package/lib/part/view-list/view-list.component.d.ts +2 -1
- package/lib/part/view-tab/view-tab.component.d.ts +4 -4
- package/lib/part/view-tab-bar/view-tab-bar.component.d.ts +163 -0
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +5 -1
- package/lib/part/workbench-part-action.registry.d.ts +3 -3
- package/lib/part/workbench-part.model.d.ts +57 -2
- package/lib/part/workbench-part.registry.d.ts +1 -1
- package/lib/part//311/265workbench-part.model.d.ts +26 -11
- package/lib/perspective/migration/model/workbench-perspective-migration-v3.model.d.ts +10 -0
- package/lib/perspective/migration/workbench-perspective-migration-v3.service.d.ts +12 -0
- package/lib/perspective/workbench-perspective.model.d.ts +8 -8
- package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
- package/lib/perspective//311/265workbench-perspective.model.d.ts +2 -3
- package/lib/public_api.d.ts +2 -3
- package/lib/registry/workbench-object-registry.d.ts +4 -7
- package/lib/routing/public_api.d.ts +1 -1
- package/lib/routing/router-outlet-root-context.directive.d.ts +10 -0
- package/lib/routing/routing.model.d.ts +44 -30
- package/lib/routing/routing.util.d.ts +35 -10
- package/lib/routing/workbench-auxiliary-route-installer.service.d.ts +3 -2
- package/lib/routing/workbench-layout-differ.d.ts +4 -3
- package/lib/routing/workbench-outlet-differ.d.ts +48 -0
- package/lib/routing/workbench-route-data.d.ts +2 -2
- package/lib/routing/workbench-route-guards.d.ts +39 -19
- package/lib/routing/workbench-router.service.d.ts +2 -2
- package/lib/routing/workbench-url-observer.service.d.ts +1 -4
- package/lib/view/public_api.d.ts +1 -1
- package/lib/view/view-move-handler.service.d.ts +16 -14
- package/lib/view/view.component.d.ts +10 -15
- package/lib/view/workbench-view-menu-item.registry.d.ts +7 -0
- package/lib/view/workbench-view.model.d.ts +40 -27
- package/lib/view/workbench-view.registry.d.ts +1 -1
- package/lib/view//311/265workbench-view.model.d.ts +18 -28
- package/lib/view-dnd/grid-drop-targets.util.d.ts +3 -3
- package/lib/view-dnd/view-drag.service.d.ts +81 -63
- package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +9 -21
- package/lib/view-dnd/view-drop-zone.directive.d.ts +69 -30
- package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +11 -36
- package/lib/workbench-config.d.ts +18 -11
- package/lib/{content-projection/workbench-element-references.d.ts → workbench-element-references.d.ts} +5 -1
- package/lib/workbench.constants.d.ts +30 -0
- package/lib/workbench.model.d.ts +113 -37
- package/lib/workbench.provider.d.ts +1 -1
- package/lib/workbench.service.d.ts +32 -27
- package/lib//311/265workbench.service.d.ts +6 -6
- 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/common/map-coerce.pipe.d.ts +0 -12
- package/lib/part/part-action-bar/part-action-bar.component.d.ts +0 -11
- package/lib/part/view-context-menu/text.component.d.ts +0 -11
- package/lib/part/view-context-menu/view-menu.directive.d.ts +0 -55
- package/lib/routing/workbench-dialog-differ.d.ts +0 -25
- package/lib/routing/workbench-message-box-differ.d.ts +0 -25
- package/lib/routing/workbench-popup-differ.d.ts +0 -25
- package/lib/routing/workbench-view-outlet-differ.d.ts +0 -32
- 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
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* Tests if the object is of the specified type. If so, returns the object, otherwise returns `null`.
|
|
5
5
|
*/
|
|
6
6
|
export declare class InstanceofPipe implements PipeTransform {
|
|
7
|
-
transform<T>(object:
|
|
7
|
+
transform<T>(object: unknown | undefined, type: Type<T>): T | null;
|
|
8
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<InstanceofPipe, never>;
|
|
9
9
|
static ɵpipe: i0.ɵɵPipeDeclaration<InstanceofPipe, "wbInstanceof", true>;
|
|
10
10
|
}
|
|
@@ -13,7 +13,7 @@ export declare const Objects: {
|
|
|
13
13
|
/**
|
|
14
14
|
* Like {@link Dictionaries.withoutUndefinedEntries}, but preserving the object data type.
|
|
15
15
|
*/
|
|
16
|
-
readonly withoutUndefinedEntries: <
|
|
16
|
+
readonly withoutUndefinedEntries: <T>(object: T & Record<string, unknown>) => T;
|
|
17
17
|
/**
|
|
18
18
|
* Stringifies given object to matrix notation: a=b;c=d;e=f
|
|
19
19
|
*/
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Directive to add a desktop to the workbench.
|
|
4
|
+
*
|
|
5
|
+
* The desktop is displayed when no view is open and the layout does not contain a navigated part.
|
|
6
|
+
*
|
|
7
|
+
* A desktop can provide instructions for working with the application, display a welcome page, or provide links to open views.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* Add this directive to an `<ng-template>` child of the `<wb-workbench>` component. The template content will be used as desktop content.
|
|
11
|
+
*
|
|
12
|
+
* ```html
|
|
13
|
+
* <wb-workbench>
|
|
14
|
+
* <ng-template wbDesktop>
|
|
15
|
+
* Welcome
|
|
16
|
+
* </ng-template>
|
|
17
|
+
* </wb-workbench>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* > Using `@if` allows displaying the desktop based on a condition, e.g. the active perspective.
|
|
21
|
+
*
|
|
22
|
+
* For layouts with a main area, it is recommended to navigate the main area part instead:
|
|
23
|
+
* ```ts
|
|
24
|
+
* import {MAIN_AREA, provideWorkbench} from '@scion/workbench';
|
|
25
|
+
*
|
|
26
|
+
* provideWorkbench({
|
|
27
|
+
* layout: factory => factory
|
|
28
|
+
* .addPart(MAIN_AREA)
|
|
29
|
+
* .navigatePart(MAIN_AREA, ['path/to/desktop'])
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class WorkbenchDesktopDirective {
|
|
34
|
+
constructor();
|
|
35
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchDesktopDirective, never>;
|
|
36
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<WorkbenchDesktopDirective, "ng-template[wbDesktop]", never, {}, {}, never, never, true, never>;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { WorkbenchDesktopDirective } from './desktop.directive';
|
|
@@ -4,7 +4,6 @@ import { WbMoveEvent } from './movable.directive';
|
|
|
4
4
|
import { WbResizeEvent } from './resizable.directive';
|
|
5
5
|
import { SciDimension } from '@scion/components/dimension';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
7
|
/**
|
|
9
8
|
* Renders the workbench dialog.
|
|
10
9
|
*
|
|
@@ -57,5 +56,5 @@ export declare class WorkbenchDialogComponent implements OnInit {
|
|
|
57
56
|
onResize(event: WbResizeEvent): void;
|
|
58
57
|
protected onHeaderDimensionChange(dimension: SciDimension): void;
|
|
59
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchDialogComponent, never>;
|
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WorkbenchDialogComponent, "wb-dialog", never, {}, {}, never, never, true,
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WorkbenchDialogComponent, "wb-dialog", never, {}, {}, never, never, true, never>;
|
|
61
60
|
}
|
|
@@ -2,6 +2,7 @@ import { OnChanges, SimpleChanges } from '@angular/core';
|
|
|
2
2
|
import { MPart, MTreeNode } from '../workbench-layout.model';
|
|
3
3
|
import { ɵWorkbenchRouter } from '../../routing/ɵworkbench-router.service';
|
|
4
4
|
import { WorkbenchLayoutService } from '../workbench-layout.service';
|
|
5
|
+
import { PartId } from '../../part/workbench-part.model';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* Renders a {@link MTreeNode} or {@link MPart}.
|
|
@@ -10,10 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
10
11
|
* Each node has two children, which can be either another node or a part (leaf). A node defines
|
|
11
12
|
* a split layout in which the two children are arranged vertically or horizontally.
|
|
12
13
|
*
|
|
13
|
-
* Nodes are rendered as {@link SciSashboxComponent} and parts as {@link PartComponent} or
|
|
14
|
-
* {@link MainAreaLayoutComponent}.
|
|
15
|
-
*
|
|
16
|
-
* @see WorkbenchLayoutComponent
|
|
14
|
+
* Nodes are rendered as {@link SciSashboxComponent} and parts as {@link PartComponent} or {@link MainAreaPartComponent}.
|
|
17
15
|
*/
|
|
18
16
|
export declare class GridElementComponent implements OnChanges {
|
|
19
17
|
private _workbenchRouter;
|
|
@@ -23,7 +21,7 @@ export declare class GridElementComponent implements OnChanges {
|
|
|
23
21
|
children: ChildElement[];
|
|
24
22
|
parentNodeId: string | undefined;
|
|
25
23
|
nodeId: string | undefined;
|
|
26
|
-
partId:
|
|
24
|
+
partId: PartId | undefined;
|
|
27
25
|
element: MTreeNode | MPart;
|
|
28
26
|
constructor(_workbenchRouter: ɵWorkbenchRouter, _workbenchLayoutService: WorkbenchLayoutService);
|
|
29
27
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface MPartV6 {
|
|
2
|
+
type: 'MPart';
|
|
3
|
+
id: string;
|
|
4
|
+
views: MViewV6[];
|
|
5
|
+
activeViewId?: ViewIdV6;
|
|
6
|
+
structural: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface MTreeNodeV6 {
|
|
9
|
+
type: 'MTreeNode';
|
|
10
|
+
id: string;
|
|
11
|
+
child1: MTreeNodeV6 | MPartV6;
|
|
12
|
+
child2: MTreeNodeV6 | MPartV6;
|
|
13
|
+
ratio: number;
|
|
14
|
+
direction: 'column' | 'row';
|
|
15
|
+
}
|
|
16
|
+
export interface MPartGridV6 {
|
|
17
|
+
root: MTreeNodeV6 | MPartV6;
|
|
18
|
+
activePartId: string;
|
|
19
|
+
}
|
|
20
|
+
export interface MViewV6 {
|
|
21
|
+
id: ViewIdV6;
|
|
22
|
+
alternativeId?: string;
|
|
23
|
+
cssClass?: string[];
|
|
24
|
+
markedForRemoval?: true;
|
|
25
|
+
navigation?: {
|
|
26
|
+
id: string;
|
|
27
|
+
hint?: string;
|
|
28
|
+
data?: NavigationDataV6;
|
|
29
|
+
cssClass?: string[];
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export type ViewIdV6 = `view.${number}`;
|
|
33
|
+
export type NavigationDataV6 = {
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface MPartV7 {
|
|
2
|
+
type: 'MPart';
|
|
3
|
+
id: PartIdV7;
|
|
4
|
+
alternativeId?: string;
|
|
5
|
+
views: MViewV7[];
|
|
6
|
+
activeViewId?: ViewIdV7;
|
|
7
|
+
structural: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MTreeNodeV7 {
|
|
10
|
+
type: 'MTreeNode';
|
|
11
|
+
id: string;
|
|
12
|
+
child1: MTreeNodeV7 | MPartV7;
|
|
13
|
+
child2: MTreeNodeV7 | MPartV7;
|
|
14
|
+
ratio: number;
|
|
15
|
+
direction: 'column' | 'row';
|
|
16
|
+
}
|
|
17
|
+
export interface MPartGridV7 {
|
|
18
|
+
root: MTreeNodeV7 | MPartV7;
|
|
19
|
+
activePartId: PartIdV7;
|
|
20
|
+
}
|
|
21
|
+
export interface MViewV7 {
|
|
22
|
+
id: ViewIdV7;
|
|
23
|
+
alternativeId?: string;
|
|
24
|
+
cssClass?: string[];
|
|
25
|
+
markedForRemoval?: true;
|
|
26
|
+
navigation?: {
|
|
27
|
+
id: string;
|
|
28
|
+
hint?: string;
|
|
29
|
+
data?: NavigationDataV7;
|
|
30
|
+
cssClass?: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export type PartIdV7 = `part.${string}`;
|
|
34
|
+
export type ViewIdV7 = `view.${number}`;
|
|
35
|
+
export type NavigationDataV7 = {
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WorkbenchMigration } from '../../migration/workbench-migration';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Migrates the workbench layout from version 5 to version 6.
|
|
5
|
+
*
|
|
6
|
+
* TODO [Angular 20] Remove migrator.
|
|
7
|
+
*/
|
|
8
|
+
export declare class WorkbenchLayoutMigrationV6 implements WorkbenchMigration {
|
|
9
|
+
migrate(json: string): string;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutMigrationV6, never>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutMigrationV6>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WorkbenchMigration } from '../../migration/workbench-migration';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Migrates the workbench layout from version 6 to version 7.
|
|
5
|
+
*/
|
|
6
|
+
export declare class WorkbenchLayoutMigrationV7 implements WorkbenchMigration {
|
|
7
|
+
migrate(json: string): string;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutMigrationV7, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutMigrationV7>;
|
|
10
|
+
}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Stringifies given data, exluding specified fields from serialization.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* @param data - Data to serialize to json.
|
|
5
|
+
* @param options - Controls how to serialize data.
|
|
6
|
+
* @param options.exclusions - Controls which fields to exclude from serialization.\
|
|
7
|
+
* To exclude a field, specify the path to the field in the object tree,
|
|
8
|
+
* using the slash as delimiter. The path supports the asterisk (`*`) to match a
|
|
9
|
+
* single segment or the globstar (`**`) to match multiple segments.
|
|
10
|
+
* @param options.sort - Controls if to sort the fields by name. Defaults to `false`.
|
|
7
11
|
*/
|
|
8
|
-
export declare function stringify(data: unknown,
|
|
12
|
+
export declare function stringify(data: unknown, options?: {
|
|
13
|
+
exclusions?: Array<string | Exclusion>;
|
|
14
|
+
sort?: true;
|
|
15
|
+
}): string;
|
|
9
16
|
/**
|
|
10
17
|
* Describes a field to exclude from serialization.
|
|
11
18
|
*/
|
|
@@ -19,7 +26,7 @@ export interface Exclusion {
|
|
|
19
26
|
* Tests if to exclude the resolved field, enabling extended checks if the field cannot be uniquely identified via the path.
|
|
20
27
|
*
|
|
21
28
|
* @param objectPath - path to the field in the object tree.
|
|
22
|
-
* @param key - key under
|
|
29
|
+
* @param key - key under which the field is associated in the parent object.
|
|
23
30
|
* @param value - value of the field.
|
|
24
31
|
*/
|
|
25
32
|
predicate: (objectPath: unknown[], key: string, value: unknown) => boolean;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ɵWorkbenchLayout } from './ɵworkbench-layout';
|
|
2
|
-
import { MPartGrid } from './workbench-layout.model';
|
|
3
1
|
import { WbViewDropEvent } from '../view-dnd/view-drop-zone.directive';
|
|
2
|
+
import { MPartGrid } from './workbench-layout.model';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
/**
|
|
6
5
|
* Renders the layout of the workbench.
|
|
@@ -23,17 +22,16 @@ import * as i0 from "@angular/core";
|
|
|
23
22
|
* | | +--------+-----------------------+
|
|
24
23
|
* MPart MPart
|
|
25
24
|
* (left) (right)
|
|
26
|
-
*
|
|
27
|
-
* @see MainAreaLayoutComponent
|
|
28
25
|
*/
|
|
29
26
|
export declare class WorkbenchLayoutComponent {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
private readonly _workbenchId;
|
|
28
|
+
private readonly _viewDragService;
|
|
29
|
+
private readonly _workbenchLayoutService;
|
|
30
|
+
private readonly _logger;
|
|
31
|
+
protected readonly desktop: import("@angular/core").WritableSignal<import("@angular/core").TemplateRef<void> | undefined>;
|
|
32
|
+
protected readonly grid: import("@angular/core").Signal<MPartGrid | undefined>;
|
|
36
33
|
protected onViewDrop(event: WbViewDropEvent): void;
|
|
34
|
+
protected onLegacyStartPageActivate(): void;
|
|
37
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutComponent, never>;
|
|
38
36
|
static ɵcmp: i0.ɵɵComponentDeclaration<WorkbenchLayoutComponent, "wb-workbench-layout", never, {}, {}, never, never, true, never>;
|
|
39
37
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Commands, NavigationData, NavigationState } from '../routing/routing.model';
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
3
|
/**
|
|
4
|
-
* The workbench layout is a grid of parts. Parts are aligned relative to each other.
|
|
5
|
-
* displayed in views.
|
|
4
|
+
* The workbench layout is a grid of parts. Parts are aligned relative to each other. Each part is a stack of views. Content is
|
|
5
|
+
* displayed in views or parts.
|
|
6
6
|
*
|
|
7
7
|
* The layout can be divided into a main and a peripheral area, with the main area as the primary place for opening views.
|
|
8
8
|
* The peripheral area arranges parts around the main area to provide navigation or context-sensitive assistance to support
|
|
@@ -19,7 +19,7 @@ export interface WorkbenchLayout {
|
|
|
19
19
|
/**
|
|
20
20
|
* Adds a part with the given id to this layout. Position and size are expressed relative to a reference part.
|
|
21
21
|
*
|
|
22
|
-
* @param id -
|
|
22
|
+
* @param id - The id of the part to add. Use {@link MAIN_AREA} to add the main area.
|
|
23
23
|
* @param relativeTo - Specifies the reference part to lay out the part.
|
|
24
24
|
* @param options - Controls how to add the part to the layout.
|
|
25
25
|
* @param options.activate - Controls whether to activate the part. Default is `false`.
|
|
@@ -28,6 +28,64 @@ export interface WorkbenchLayout {
|
|
|
28
28
|
addPart(id: string | MAIN_AREA, relativeTo: ReferencePart, options?: {
|
|
29
29
|
activate?: boolean;
|
|
30
30
|
}): WorkbenchLayout;
|
|
31
|
+
/**
|
|
32
|
+
* Navigates the specified part based on the provided array of commands and extras.
|
|
33
|
+
*
|
|
34
|
+
* Navigating a part displays content when its view stack is empty. A navigated part can still have views but won't display
|
|
35
|
+
* navigated content unless its view stack is empty. Views cannot be dragged into parts displaying navigated content, except
|
|
36
|
+
* for the main area part.
|
|
37
|
+
*
|
|
38
|
+
* A command can be a string or an object literal. A string represents a path segment, an object literal associates matrix parameters with the preceding segment.
|
|
39
|
+
* Multiple segments can be combined into a single command, separated by a forward slash.
|
|
40
|
+
*
|
|
41
|
+
* By default, navigation is absolute. Set `relativeTo` in extras for relative navigation.
|
|
42
|
+
*
|
|
43
|
+
* Usage:
|
|
44
|
+
* ```
|
|
45
|
+
* layout.navigatePart(partId, ['path', 'to', 'part', {param 'value'}]);
|
|
46
|
+
* layout.navigatePart(partId, ['path/to/part', {param: 'value'}]);
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @param id - Identifies the part for navigation.
|
|
50
|
+
* @param commands - Instructs the router which route to navigate to.
|
|
51
|
+
* @param extras - Controls navigation:
|
|
52
|
+
* @param extras.hint - Allows differentiation between routes with identical paths.
|
|
53
|
+
* Multiple parts can navigate to the same path but still resolve to different routes, e.g., the empty path route to maintain a clean URL.
|
|
54
|
+
*
|
|
55
|
+
* Example:
|
|
56
|
+
* ```ts
|
|
57
|
+
* import {canMatchWorkbenchPart} from '@scion/workbench';
|
|
58
|
+
*
|
|
59
|
+
* const routes = [
|
|
60
|
+
* {
|
|
61
|
+
* path: '',
|
|
62
|
+
* component: Part1Component,
|
|
63
|
+
* canMatch: [canMatchWorkbenchPart('hint-1')], // matches navigations with hint 'hint-1'
|
|
64
|
+
* },
|
|
65
|
+
* {
|
|
66
|
+
* path: '',
|
|
67
|
+
* component: Part2Component,
|
|
68
|
+
* canMatch: [canMatchWorkbenchPart('hint-2')], // matches navigations with hint 'hint-1'
|
|
69
|
+
* },
|
|
70
|
+
* ];
|
|
71
|
+
* ```
|
|
72
|
+
* @param extras.relativeTo - Specifies the route for relative navigation, supporting navigational symbols such as '/', './', or '../' in the commands.
|
|
73
|
+
* @param extras.data - Associates data with the navigation.
|
|
74
|
+
* Unlike matrix parameters, navigation data is stored in the layout and not added to the URL, allowing data to be passed to empty path navigations.
|
|
75
|
+
* Data must be JSON serializable. Data can be read from {@link WorkbenchPart.navigation.data}.
|
|
76
|
+
* @param extras.state - Passes state to the navigation.
|
|
77
|
+
* State is not persistent, unlike {@link data}; however, state is added to the browser's session history to support back/forward browser navigation.
|
|
78
|
+
* State can be read from {@link WorkbenchPart.navigation.state} or from the browser's session history via `history.state`.
|
|
79
|
+
* @param extras.cssClass - Specifies CSS class(es) to add to the part, e.g., to locate the part in tests.
|
|
80
|
+
* @return a copy of this layout with the part navigated.
|
|
81
|
+
*/
|
|
82
|
+
navigatePart(id: string, commands: Commands, extras?: {
|
|
83
|
+
hint?: string;
|
|
84
|
+
relativeTo?: ActivatedRoute;
|
|
85
|
+
data?: NavigationData;
|
|
86
|
+
state?: NavigationState;
|
|
87
|
+
cssClass?: string | string[];
|
|
88
|
+
}): WorkbenchLayout;
|
|
31
89
|
/**
|
|
32
90
|
* Adds a view to the specified part.
|
|
33
91
|
*
|
|
@@ -56,24 +114,41 @@ export interface WorkbenchLayout {
|
|
|
56
114
|
*
|
|
57
115
|
* Usage:
|
|
58
116
|
* ```
|
|
59
|
-
* layout.navigateView(viewId, ['path', 'to', 'view', {
|
|
60
|
-
* layout.navigateView(viewId, ['path/to/view', {
|
|
117
|
+
* layout.navigateView(viewId, ['path', 'to', 'view', {param 'value'}]);
|
|
118
|
+
* layout.navigateView(viewId, ['path/to/view', {param: 'value'}]);
|
|
61
119
|
* ```
|
|
62
120
|
*
|
|
63
121
|
* @param id - Identifies the view for navigation.
|
|
64
122
|
* @param commands - Instructs the router which route to navigate to.
|
|
65
|
-
* @param extras - Controls navigation
|
|
66
|
-
* @param extras.hint -
|
|
67
|
-
*
|
|
68
|
-
* requiring a navigation hint to differentiate between the routes. See {@link canMatchWorkbenchView} for an example.
|
|
123
|
+
* @param extras - Controls navigation:
|
|
124
|
+
* @param extras.hint - Allows differentiation between routes with identical paths.
|
|
125
|
+
* Multiple views can navigate to the same path but still resolve to different routes, e.g., the empty path route to maintain a clean URL.
|
|
69
126
|
* Like the path, a hint affects view resolution. If set, the router will only navigate views with an equivalent hint, or if not set, views without a hint.
|
|
127
|
+
*
|
|
128
|
+
* Example route config matching routes based on the hint passed to the navigation:
|
|
129
|
+
* ```ts
|
|
130
|
+
* import {canMatchWorkbenchView} from '@scion/workbench';
|
|
131
|
+
*
|
|
132
|
+
* const routes = [
|
|
133
|
+
* {
|
|
134
|
+
* path: '',
|
|
135
|
+
* component: View1Component,
|
|
136
|
+
* canMatch: [canMatchWorkbenchView('hint-1')], // matches navigations with hint 'hint-1'
|
|
137
|
+
* },
|
|
138
|
+
* {
|
|
139
|
+
* path: '',
|
|
140
|
+
* component: View2Component,
|
|
141
|
+
* canMatch: [canMatchWorkbenchView('hint-2')], // matches navigations with hint 'hint-2'
|
|
142
|
+
* },
|
|
143
|
+
* ];
|
|
144
|
+
* ```
|
|
70
145
|
* @param extras.relativeTo - Specifies the route for relative navigation, supporting navigational symbols such as '/', './', or '../' in the commands.
|
|
71
|
-
* @param extras.data - Associates data with
|
|
72
|
-
* Unlike matrix parameters, navigation data is stored in the layout and not added to the
|
|
73
|
-
* Data must be JSON serializable. Data can be read from {@link WorkbenchView.
|
|
74
|
-
* @param extras.state - Passes state to
|
|
75
|
-
* State is not persistent, unlike {@link data},
|
|
76
|
-
* State can be read from {@link WorkbenchView.
|
|
146
|
+
* @param extras.data - Associates data with the navigation.
|
|
147
|
+
* Unlike matrix parameters, navigation data is stored in the layout and not added to the URL, allowing data to be passed to empty path navigations.
|
|
148
|
+
* Data must be JSON serializable. Data can be read from {@link WorkbenchView.navigation.data}.
|
|
149
|
+
* @param extras.state - Passes state to the navigation.
|
|
150
|
+
* State is not persistent, unlike {@link data}; however, state is added to the browser's session history to support back/forward browser navigation.
|
|
151
|
+
* State can be read from {@link WorkbenchView.navigation.state} or from the browser's session history via `history.state`.
|
|
77
152
|
* @param extras.cssClass - Specifies CSS class(es) to add to the view, e.g., to locate the view in tests.
|
|
78
153
|
* @return a copy of this layout with the view navigated.
|
|
79
154
|
*/
|
|
@@ -137,6 +212,13 @@ export interface WorkbenchLayout {
|
|
|
137
212
|
* @return a copy of this layout with the part activated.
|
|
138
213
|
*/
|
|
139
214
|
activatePart(id: string): WorkbenchLayout;
|
|
215
|
+
/**
|
|
216
|
+
* Applies a modification function to this layout, enabling conditional changes while maintaining method chaining.
|
|
217
|
+
*
|
|
218
|
+
* @param modifyFn - A function that takes the current layout and returns a modified layout.
|
|
219
|
+
* @return The modified layout returned by the modify function.
|
|
220
|
+
*/
|
|
221
|
+
modify(modifyFn: (layout: WorkbenchLayout) => WorkbenchLayout): WorkbenchLayout;
|
|
140
222
|
}
|
|
141
223
|
/**
|
|
142
224
|
* Describes how to lay out a part relative to another part.
|
|
@@ -166,4 +248,10 @@ export declare const MAIN_AREA: MAIN_AREA;
|
|
|
166
248
|
/**
|
|
167
249
|
* Represents the type of the constant {@link MAIN_AREA}.
|
|
168
250
|
*/
|
|
169
|
-
export type MAIN_AREA = 'main-area';
|
|
251
|
+
export type MAIN_AREA = 'part.main-area';
|
|
252
|
+
/**
|
|
253
|
+
* Represents the alternative id of the main area part.
|
|
254
|
+
*
|
|
255
|
+
* @see MAIN_AREA
|
|
256
|
+
*/
|
|
257
|
+
export declare const MAIN_AREA_ALTERNATIVE_ID = "main-area";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ViewId } from '../view/workbench-view.model';
|
|
2
2
|
import { NavigationData } from '../routing/routing.model';
|
|
3
|
+
import { PartId } from '../part/workbench-part.model';
|
|
3
4
|
/**
|
|
4
5
|
* Represents the arrangement of parts as grid.
|
|
5
6
|
*
|
|
@@ -7,7 +8,7 @@ import { NavigationData } from '../routing/routing.model';
|
|
|
7
8
|
*/
|
|
8
9
|
export interface MPartGrid {
|
|
9
10
|
root: MTreeNode | MPart;
|
|
10
|
-
activePartId:
|
|
11
|
+
activePartId: PartId;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* {@link MPartGrid} with additional fields not serialized into the URL.
|
|
@@ -31,7 +32,7 @@ export declare class MTreeNode {
|
|
|
31
32
|
* Discriminator to unmarshall {@link MTreeNode} to its class type.
|
|
32
33
|
*/
|
|
33
34
|
readonly type = "MTreeNode";
|
|
34
|
-
|
|
35
|
+
id: string;
|
|
35
36
|
child1: MTreeNode | MPart;
|
|
36
37
|
child2: MTreeNode | MPart;
|
|
37
38
|
ratio: number;
|
|
@@ -55,11 +56,18 @@ export declare class MPart {
|
|
|
55
56
|
* Discriminator to unmarshall {@link MPart} to its class type.
|
|
56
57
|
*/
|
|
57
58
|
readonly type = "MPart";
|
|
58
|
-
|
|
59
|
+
id: PartId;
|
|
60
|
+
alternativeId?: string;
|
|
59
61
|
parent?: MTreeNode;
|
|
60
62
|
views: MView[];
|
|
61
63
|
activeViewId?: ViewId;
|
|
62
64
|
structural: boolean;
|
|
65
|
+
navigation?: {
|
|
66
|
+
id: string;
|
|
67
|
+
hint?: string;
|
|
68
|
+
data?: NavigationData;
|
|
69
|
+
cssClass?: string[];
|
|
70
|
+
};
|
|
63
71
|
constructor(part: Omit<MPart, 'type'>);
|
|
64
72
|
/**
|
|
65
73
|
* Tests if the given object is a {@link MPart}.
|
|
@@ -74,7 +82,6 @@ export declare class MPart {
|
|
|
74
82
|
export interface MView {
|
|
75
83
|
id: ViewId;
|
|
76
84
|
alternativeId?: string;
|
|
77
|
-
uid: string;
|
|
78
85
|
cssClass?: string[];
|
|
79
86
|
markedForRemoval?: true;
|
|
80
87
|
navigation?: {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { ViewDragService } from '../view-dnd/view-drag.service';
|
|
3
2
|
import { ɵWorkbenchLayout } from './ɵworkbench-layout';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
/**
|
|
6
5
|
* Provides access to the workbench layout.
|
|
7
6
|
*/
|
|
8
7
|
export declare class WorkbenchLayoutService {
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
8
|
+
private readonly _viewDragService;
|
|
9
|
+
private readonly _layout$;
|
|
10
|
+
private readonly _moving;
|
|
11
|
+
private readonly _resizing;
|
|
12
12
|
/**
|
|
13
13
|
* Provides the current {@link WorkbenchLayout}, or `null` until Angular has performed the initial navigation.
|
|
14
14
|
*/
|
|
@@ -26,19 +26,17 @@ export declare class WorkbenchLayoutService {
|
|
|
26
26
|
*/
|
|
27
27
|
readonly onLayoutChange$: Observable<ɵWorkbenchLayout>;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
30
|
-
* moving a message box, or moving a view.
|
|
29
|
+
* Indicates if a drag operation is active, such as moving a view or dialog, or resizing a part.
|
|
31
30
|
*/
|
|
32
|
-
readonly dragging
|
|
33
|
-
constructor(viewDragService: ViewDragService);
|
|
31
|
+
readonly dragging: import("@angular/core").Signal<boolean>;
|
|
34
32
|
/**
|
|
35
|
-
*
|
|
33
|
+
* Signals moving a workbench element, such as moving a dialog.
|
|
36
34
|
*/
|
|
37
|
-
|
|
35
|
+
signalMoving(moving: boolean): void;
|
|
38
36
|
/**
|
|
39
|
-
*
|
|
37
|
+
* Signals resizing a workbench element, such as resizing a dialog or part.
|
|
40
38
|
*/
|
|
41
|
-
|
|
39
|
+
signalResizing(resizing: boolean): void;
|
|
42
40
|
/**
|
|
43
41
|
* Sets the given {@link WorkbenchLayout}.
|
|
44
42
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MPart, MTreeNode } from './workbench-layout.model';
|
|
2
2
|
import { ViewId } from '../view/workbench-view.model';
|
|
3
|
+
import { PartId } from '../part/workbench-part.model';
|
|
3
4
|
/**
|
|
4
5
|
* Provides helper functions for operating on a workbench layout.
|
|
5
6
|
*/
|
|
@@ -19,4 +20,8 @@ export declare const WorkbenchLayouts: {
|
|
|
19
20
|
* Computes the next available view id.
|
|
20
21
|
*/
|
|
21
22
|
readonly computeNextViewId: (viewIds: Iterable<ViewId>) => ViewId;
|
|
23
|
+
/**
|
|
24
|
+
* Computes a random part id.
|
|
25
|
+
*/
|
|
26
|
+
readonly computePartId: () => PartId;
|
|
22
27
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MPartGrid, ɵMPartGrid } from './workbench-layout.model';
|
|
2
|
-
import {
|
|
2
|
+
import { Outlets } from '../routing/routing.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Serializes and deserializes a base64-encoded JSON into a {@link MPartGrid}.
|
|
@@ -10,7 +10,7 @@ export declare class WorkbenchLayoutSerializer {
|
|
|
10
10
|
* Serializes the given grid into a URL-safe base64 string.
|
|
11
11
|
*
|
|
12
12
|
* @param grid - Specifies the grid to be serialized.
|
|
13
|
-
* @param flags - Controls
|
|
13
|
+
* @param flags - Controls how to serialize the grid.
|
|
14
14
|
*/
|
|
15
15
|
serializeGrid(grid: MPartGrid, flags?: GridSerializationFlags): string;
|
|
16
16
|
serializeGrid(grid: MPartGrid | undefined | null, flags?: GridSerializationFlags): null | string;
|
|
@@ -21,11 +21,11 @@ export declare class WorkbenchLayoutSerializer {
|
|
|
21
21
|
/**
|
|
22
22
|
* Serializes the given outlets.
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
serializeOutlets(outlets: Outlets): string;
|
|
25
25
|
/**
|
|
26
26
|
* Deserializes the given outlets.
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
deserializeOutlets(serialized: string): Outlets;
|
|
29
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutSerializer, never>;
|
|
30
30
|
static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutSerializer>;
|
|
31
31
|
}
|
|
@@ -36,13 +36,37 @@ export declare class WorkbenchLayoutSerializer {
|
|
|
36
36
|
*
|
|
37
37
|
* @see WorkbenchMigrator
|
|
38
38
|
*/
|
|
39
|
-
export declare const WORKBENCH_LAYOUT_VERSION =
|
|
39
|
+
export declare const WORKBENCH_LAYOUT_VERSION = 7;
|
|
40
40
|
/**
|
|
41
|
-
* Controls
|
|
41
|
+
* Controls how to serialize the grid.
|
|
42
42
|
*/
|
|
43
43
|
export interface GridSerializationFlags {
|
|
44
|
+
/**
|
|
45
|
+
* Excludes the node id from the serialization.
|
|
46
|
+
*/
|
|
44
47
|
excludeTreeNodeId?: true;
|
|
45
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Excludes views marked for removal from the serialization.
|
|
50
|
+
*/
|
|
46
51
|
excludeViewMarkedForRemoval?: true;
|
|
52
|
+
/**
|
|
53
|
+
* Excludes the view navigation id from the serialization.
|
|
54
|
+
*/
|
|
47
55
|
excludeViewNavigationId?: true;
|
|
56
|
+
/**
|
|
57
|
+
* Excludes the part navigation id from the serialization.
|
|
58
|
+
*/
|
|
59
|
+
excludePartNavigationId?: true;
|
|
60
|
+
/**
|
|
61
|
+
* Assigns each part a stable id based on its position in the grid.
|
|
62
|
+
*
|
|
63
|
+
* Stable part identifiers are required to compare the initial grid with the user-modified grid to detect layout changes.
|
|
64
|
+
*/
|
|
65
|
+
assignStablePartIdentifier?: true;
|
|
66
|
+
/**
|
|
67
|
+
* Controls if to sort the fields of the grid by name. Defaults to `false`.
|
|
68
|
+
*
|
|
69
|
+
* Stable sort order is required to compare the initial grid with the user-modified grid to detect layout changes.
|
|
70
|
+
*/
|
|
71
|
+
sort?: true;
|
|
48
72
|
}
|