@scion/workbench 17.0.0-beta.7 → 17.0.0-beta.9
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/esm2022/lib/activation-instant.provider.mjs +3 -3
- package/esm2022/lib/common/asserts.util.mjs +2 -2
- package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +6 -6
- package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
- package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
- package/esm2022/lib/common/null-if-empty.pipe.mjs +3 -3
- package/esm2022/lib/common/objects.util.mjs +34 -0
- package/esm2022/lib/common/typeof.pipe.mjs +3 -3
- package/esm2022/lib/common/uuid.util.mjs +17 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +9 -6
- package/esm2022/lib/dialog/movable.directive.mjs +3 -3
- package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +53 -24
- package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +5 -5
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +7 -7
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/executor/single-task-executor.mjs +26 -7
- package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +15 -7
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -10
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +6 -4
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +11 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +59 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +117 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +57 -0
- package/esm2022/lib/layout/workbench-layout.component.mjs +6 -4
- package/esm2022/lib/layout/workbench-layout.factory.mjs +4 -4
- package/esm2022/lib/layout/workbench-layout.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.model.mjs +5 -6
- package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
- package/esm2022/lib/layout/workbench-layouts.util.mjs +37 -1
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +53 -21
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +8 -5
- package/esm2022/lib/layout//311/265workbench-layout.mjs +382 -195
- package/esm2022/lib/logging/console-appender.service.mjs +3 -3
- package/esm2022/lib/logging/logger.mjs +3 -3
- package/esm2022/lib/logging/logging-support.mjs +4 -4
- package/esm2022/lib/logging/logging.model.mjs +3 -3
- package/esm2022/lib/logging//311/265logger.mjs +3 -3
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +18 -20
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +15 -6
- package/esm2022/lib/message-box/workbench-message-box.options.mjs +1 -1
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +26 -13
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +25 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +11 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +11 -9
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +112 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +43 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +16 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +34 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +88 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +121 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +9 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +9 -15
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +37 -32
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -11
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +14 -9
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +54 -23
- package/esm2022/lib/migration/workbench-migration.mjs +11 -0
- package/esm2022/lib/migration/workbench-migrator.mjs +38 -0
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +3 -3
- package/esm2022/lib/notification/notification.component.mjs +3 -3
- package/esm2022/lib/notification/notification.config.mjs +1 -1
- package/esm2022/lib/notification/notification.mjs +1 -1
- package/esm2022/lib/notification/notification.service.mjs +9 -9
- package/esm2022/lib/notification/text-notification.component.mjs +3 -3
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +26 -0
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +28 -0
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +10 -8
- package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
- package/esm2022/lib/part/part.component.mjs +6 -4
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +18 -18
- package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +3 -3
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +9 -9
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +13 -11
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -5
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +9 -9
- package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
- package/esm2022/lib/part/workbench-part.model.mjs +1 -1
- package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
- package/esm2022/lib/part//311/265workbench-part.model.mjs +3 -3
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +57 -0
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +19 -51
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +23 -18
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +27 -42
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +15 -10
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +62 -0
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +98 -78
- package/esm2022/lib/popup/popup.component.mjs +22 -10
- package/esm2022/lib/popup/popup.config.mjs +3 -1
- package/esm2022/lib/popup/popup.service.mjs +4 -4
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +6 -6
- package/esm2022/lib/public_api.mjs +3 -2
- package/esm2022/lib/registry/workbench-object-registry.mjs +3 -3
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +31 -0
- package/esm2022/lib/routing/public_api.mjs +1 -1
- package/esm2022/lib/routing/router.util.mjs +89 -35
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -49
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-navigational-states.mjs +4 -28
- package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-route-data.mjs +14 -4
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -32
- package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +69 -82
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +314 -0
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-launcher.service.mjs +11 -11
- package/esm2022/lib/storage/workbench-storage.mjs +3 -3
- package/esm2022/lib/testing/public_api.mjs +2 -1
- package/esm2022/lib/testing/workbench-testing.module.mjs +13 -39
- package/esm2022/lib/testing/workbench.provider.mjs +60 -0
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +3 -3
- package/esm2022/lib/view/public_api.mjs +2 -1
- package/esm2022/lib/view/view-move-handler.service.mjs +42 -62
- package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
- package/esm2022/lib/view/view.component.mjs +20 -40
- package/esm2022/lib/view/workbench-view-route-guards.mjs +47 -0
- package/esm2022/lib/view/workbench-view.model.mjs +6 -4
- package/esm2022/lib/view/workbench-view.registry.mjs +4 -4
- package/esm2022/lib/view//311/265workbench-view.model.mjs +106 -27
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +7 -7
- package/esm2022/lib/view-dnd/view-drag.service.mjs +6 -6
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -4
- package/esm2022/lib/workbench-config.mjs +15 -0
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +20 -12
- package/esm2022/lib/workbench.constants.mjs +7 -9
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.module.mjs +15 -86
- package/esm2022/lib/workbench.provider.mjs +117 -0
- package/esm2022/lib/workbench.service.mjs +5 -5
- package/esm2022/lib//311/265workbench.service.mjs +15 -21
- package/fesm2022/scion-workbench.mjs +5490 -4166
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/objects.util.d.ts +17 -0
- package/lib/common/uuid.util.d.ts +8 -0
- package/lib/dialog/workbench-dialog.component.d.ts +16 -7
- package/lib/dialog/workbench-dialog.d.ts +1 -1
- package/lib/dialog/workbench-dialog.options.d.ts +4 -3
- package/lib/dialog/workbench-dialog.registry.d.ts +4 -3
- package/lib/dialog/workbench-dialog.service.d.ts +1 -1
- package/lib/dialog//311/265workbench-dialog.d.ts +2 -2
- package/lib/executor/single-task-executor.d.ts +6 -1
- package/lib/filter-field/filter-field.component.d.ts +1 -1
- package/lib/glass-pane/glass-pane.directive.d.ts +21 -0
- package/lib/layout/grid-element/grid-element.component.d.ts +2 -2
- package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +16 -0
- package/lib/layout/migration/model/workbench-layout-migration-v2.model.d.ts +22 -0
- package/lib/layout/migration/model/workbench-layout-migration-v3.model.d.ts +30 -0
- package/lib/layout/migration/model/workbench-layout-migration-v4.model.d.ts +31 -0
- package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +13 -0
- package/lib/layout/migration/workbench-layout-migration-v3.service.d.ts +16 -0
- package/lib/layout/migration/workbench-layout-migration-v4.service.d.ts +12 -0
- package/lib/layout/workbench-layout.d.ts +61 -7
- package/lib/layout/workbench-layout.factory.d.ts +1 -1
- package/lib/layout/workbench-layout.model.d.ts +19 -9
- package/lib/layout/workbench-layouts.util.d.ts +18 -0
- package/lib/layout/workench-layout-serializer.service.d.ts +28 -7
- package/lib/layout//311/265workbench-layout.d.ts +172 -98
- package/lib/layout//311/265workbench-layout.factory.d.ts +4 -0
- package/lib/logging/logging-support.d.ts +2 -2
- package/lib/message-box/workbench-message-box.component.d.ts +3 -0
- package/lib/message-box/workbench-message-box.options.d.ts +4 -3
- package/lib/message-box/workbench-message-box.service.d.ts +1 -1
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -1
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +39 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +25 -0
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +4 -2
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.d.ts +48 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +3 -7
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +4 -9
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -3
- package/lib/migration/workbench-migration.d.ts +9 -0
- package/lib/migration/workbench-migrator.d.ts +18 -0
- package/lib/notification/notification.config.d.ts +1 -1
- package/lib/notification/notification.d.ts +1 -3
- package/lib/page-not-found/format-url.pipe.d.ts +11 -0
- package/lib/page-not-found/page-not-found.component.d.ts +8 -0
- package/lib/part/part-action-bar/part-action.directive.d.ts +1 -1
- package/lib/part/part-bar/part-bar.component.d.ts +4 -3
- package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
- package/lib/part/view-context-menu/view-menu.service.d.ts +5 -4
- package/lib/part/view-list-item/view-list-item.component.d.ts +5 -4
- package/lib/part/view-tab/view-tab.component.d.ts +6 -5
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +3 -3
- package/lib/part/workbench-part.model.d.ts +5 -4
- package/lib/part//311/265workbench-part.model.d.ts +5 -4
- package/lib/perspective/migration/model/workbench-perspective-migration-v1.model.d.ts +8 -0
- package/lib/perspective/migration/model/workbench-perspective-migration-v2.model.d.ts +10 -0
- package/lib/perspective/migration/workbench-perspective-migration-v2.service.d.ts +13 -0
- package/lib/perspective/workbench-grid-merger.service.d.ts +9 -16
- package/lib/perspective/workbench-perspective-storage.service.d.ts +10 -28
- package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +8 -25
- package/lib/perspective/workbench-perspective.model.d.ts +123 -14
- package/lib/perspective/workbench-perspective.service.d.ts +10 -3
- package/lib/perspective/workench-perspective-serializer.service.d.ts +26 -0
- package/lib/perspective//311/265workbench-perspective.model.d.ts +16 -14
- package/lib/popup/popup.component.d.ts +1 -0
- package/lib/popup/popup.config.d.ts +4 -3
- package/lib/portal/workbench-portal-outlet.directive.d.ts +2 -2
- package/lib/public_api.d.ts +4 -3
- package/lib/registry/workbench-object-registry.d.ts +2 -2
- package/lib/routing/empty-outlet/empty-outlet.component.d.ts +15 -0
- package/lib/routing/public_api.d.ts +2 -2
- package/lib/routing/router.util.d.ts +45 -19
- package/lib/routing/routing.model.d.ts +107 -8
- package/lib/routing/url-segment-matcher.d.ts +20 -0
- package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -15
- package/lib/routing/workbench-layout-differ.d.ts +4 -7
- package/lib/routing/workbench-message-box-differ.d.ts +25 -0
- package/lib/routing/workbench-navigational-states.d.ts +6 -19
- package/lib/routing/workbench-route-data.d.ts +13 -3
- package/lib/routing/workbench-router-link.directive.d.ts +22 -7
- package/lib/routing/workbench-router.service.d.ts +42 -142
- package/lib/routing/workbench-url-observer.service.d.ts +10 -28
- package/lib/routing//311/265workbench-router.service.d.ts +74 -0
- package/lib/startup/workbench-launcher.service.d.ts +4 -4
- package/lib/testing/public_api.d.ts +1 -0
- package/lib/testing/workbench-testing.module.d.ts +7 -6
- package/lib/testing/workbench.provider.d.ts +29 -0
- package/lib/view/public_api.d.ts +2 -1
- package/lib/view/view-move-handler.service.d.ts +2 -4
- package/lib/view/view-portal.pipe.d.ts +2 -1
- package/lib/view/view.component.d.ts +1 -11
- package/lib/view/workbench-view-route-guards.d.ts +36 -0
- package/lib/view/workbench-view.model.d.ts +37 -5
- package/lib/view/workbench-view.registry.d.ts +4 -3
- package/lib/view//311/265workbench-view.model.d.ts +61 -15
- package/lib/view-dnd/view-drag.service.d.ts +9 -4
- package/lib/view-dnd/view-drop-zone.directive.d.ts +1 -1
- package/lib/{workbench-module-config.d.ts → workbench-config.d.ts} +29 -71
- package/lib/workbench.component.d.ts +2 -2
- package/lib/workbench.constants.d.ts +6 -8
- package/lib/workbench.model.d.ts +20 -8
- package/lib/workbench.module.d.ts +12 -7
- package/lib/workbench.provider.d.ts +38 -0
- package/lib/workbench.service.d.ts +32 -8
- package/lib//311/265workbench.service.d.ts +9 -3
- package/package.json +8 -8
- package/esm2022/lib/layout/migration/workbench-layout-migrator.service.mjs +0 -38
- package/esm2022/lib/layout/migration/workbench-layout-v1-migrator.service.mjs +0 -59
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +0 -46
- package/esm2022/lib/view/workbench-view-pre-destroy.guard.mjs +0 -36
- package/esm2022/lib/workbench-module-config.mjs +0 -15
- package/lib/layout/migration/workbench-layout-migrator.service.d.ts +0 -15
- package/lib/layout/migration/workbench-layout-v1-migrator.service.d.ts +0 -12
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.d.ts +0 -17
- package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NgZone, OnDestroy } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { UrlSegment } from '@angular/router';
|
|
4
|
+
import { ViewId } from '../view/workbench-view.model';
|
|
4
5
|
import { ClassListMap } from '../common/class-list';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
@@ -81,8 +82,8 @@ export declare class ViewDragService implements OnDestroy {
|
|
|
81
82
|
*
|
|
82
83
|
* @param target - Specifies the element on which to subscribe for drag events.
|
|
83
84
|
* @param options - Controls how to subscribe for drag events.
|
|
84
|
-
*
|
|
85
|
-
*
|
|
85
|
+
* @param options.eventType - Filters for specified drag events; defaults to any event.
|
|
86
|
+
* @param options.capture - Controls whether to subscribe for drag events in the capturing phase; defaults to `false`, i.e., `bubbling` phase.
|
|
86
87
|
*/
|
|
87
88
|
viewDrag$(target: Element | Window, options?: ViewDragEventListenerOptions): Observable<DragEvent>;
|
|
88
89
|
/**
|
|
@@ -121,9 +122,11 @@ export interface ViewDragData {
|
|
|
121
122
|
* Y-coordinate of the mouse pointer, relative to the view tab drag image.
|
|
122
123
|
*/
|
|
123
124
|
viewTabPointerOffsetY: number;
|
|
124
|
-
viewId:
|
|
125
|
+
viewId: ViewId;
|
|
126
|
+
alternativeViewId?: string;
|
|
125
127
|
viewTitle: string;
|
|
126
128
|
viewUrlSegments: UrlSegment[];
|
|
129
|
+
navigationHint?: string;
|
|
127
130
|
viewHeading: string;
|
|
128
131
|
viewClosable: boolean;
|
|
129
132
|
viewDirty: boolean;
|
|
@@ -144,8 +147,10 @@ export interface ViewMoveEvent {
|
|
|
144
147
|
* Describes a view to be moved to another location.
|
|
145
148
|
*/
|
|
146
149
|
export interface ViewMoveEventSource {
|
|
147
|
-
viewId:
|
|
150
|
+
viewId: ViewId;
|
|
148
151
|
partId: string;
|
|
152
|
+
navigationHint?: string;
|
|
153
|
+
alternativeViewId?: string;
|
|
149
154
|
viewUrlSegments: UrlSegment[];
|
|
150
155
|
workbenchId: string;
|
|
151
156
|
classList?: ClassListMap;
|
|
@@ -18,7 +18,7 @@ export declare class ViewDropZoneDirective implements OnInit {
|
|
|
18
18
|
*/
|
|
19
19
|
regions?: DropZoneRegion;
|
|
20
20
|
/**
|
|
21
|
-
* Specifies CSS class(es) to
|
|
21
|
+
* Specifies CSS class(es) to add to the drop zone.
|
|
22
22
|
*/
|
|
23
23
|
cssClass?: string | string[] | undefined;
|
|
24
24
|
/**
|
|
@@ -6,45 +6,29 @@ import { MicrofrontendPlatformConfigLoader } from './microfrontend-platform/micr
|
|
|
6
6
|
import { WorkbenchLayoutFn, WorkbenchPerspectives } from './perspective/workbench-perspective.model';
|
|
7
7
|
import { WorkbenchStorage } from './storage/workbench-storage';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Configuration of the SCION Workbench.
|
|
10
10
|
*/
|
|
11
|
-
export declare abstract class
|
|
11
|
+
export declare abstract class WorkbenchConfig {
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* Inject {@link WorkbenchView} and {@link VIEW_TAB_CONTEXT} token into the component to get a reference to the view and the rendering context.
|
|
13
|
+
* Specifies the component to display a view tab, enabling custom design or functionality.
|
|
16
14
|
*
|
|
15
|
+
* The component can inject {@link WorkbenchView} and {@link VIEW_TAB_RENDERING_CONTEXT} to get a reference to the view and the rendering context.
|
|
16
|
+
*/
|
|
17
|
+
abstract viewTabComponent?: ComponentType<unknown>;
|
|
18
|
+
/**
|
|
19
|
+
* Specifies the component to display if no route matches the requested URL.
|
|
17
20
|
*
|
|
18
|
-
*
|
|
19
|
-
* Example:
|
|
21
|
+
* This happens when navigating to a route that does not exist or when loading the application, and the routes have changed since the last use.
|
|
20
22
|
*
|
|
21
|
-
* @
|
|
22
|
-
* export class ViewTabContentComponent {
|
|
23
|
-
* constructor(view: WorkbenchView, @Inject(VIEW_TAB_CONTEXT) context: ViewTabContext) {}
|
|
24
|
-
* }
|
|
23
|
+
* The component can inject {@link WorkbenchView} to get a reference to the view, e.g., to obtain the requested URL.
|
|
25
24
|
*/
|
|
26
|
-
abstract
|
|
25
|
+
abstract pageNotFoundComponent?: ComponentType<unknown>;
|
|
27
26
|
/**
|
|
28
27
|
* Controls which built-in menu items to display in the view context menu.
|
|
29
28
|
*/
|
|
30
29
|
abstract viewMenuItems?: ViewMenuItemsConfig;
|
|
31
30
|
/**
|
|
32
|
-
* Configures
|
|
33
|
-
*/
|
|
34
|
-
abstract logging?: {
|
|
35
|
-
/**
|
|
36
|
-
* Sets the minimum severity level a log message must have in order to be logged. By default, if not specified, it is set to {@link LogLevel#INFO}.
|
|
37
|
-
*
|
|
38
|
-
* At runtime, you can change the minimum required log level by setting the `loglevel` query parameter.
|
|
39
|
-
*/
|
|
40
|
-
logLevel?: LogLevel;
|
|
41
|
-
/**
|
|
42
|
-
* Registers log appenders to output log messages. Multiple appenders are allowed. By default, if not specified, log messages are written to the console.
|
|
43
|
-
*/
|
|
44
|
-
logAppenders?: Type<LogAppender>[];
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Allows configuring the workbench startup.
|
|
31
|
+
* Configures the workbench startup.
|
|
48
32
|
*
|
|
49
33
|
* The {@link WorkbenchLauncher} is used to start the workbench. During startup, it runs registered workbench initializers
|
|
50
34
|
* and waits for them to complete. You can inject {@link WorkbenchStartup} to get notified when the startup is complete.
|
|
@@ -68,7 +52,7 @@ export declare abstract class WorkbenchModuleConfig {
|
|
|
68
52
|
*/
|
|
69
53
|
launcher?: 'APP_INITIALIZER' | 'LAZY';
|
|
70
54
|
/**
|
|
71
|
-
*
|
|
55
|
+
* Specifies the component to display when mounting the workbench root component `<wb-workbench>` to the DOM before the
|
|
72
56
|
* workbench startup has finished.
|
|
73
57
|
*
|
|
74
58
|
* Note that when launching the workbench in an Angular `APP_INITIALIZER`, no splash will display since the workbench
|
|
@@ -100,51 +84,10 @@ export declare abstract class WorkbenchModuleConfig {
|
|
|
100
84
|
*/
|
|
101
85
|
abstract microfrontendPlatform?: MicrofrontendPlatformConfig | Type<MicrofrontendPlatformConfigLoader>;
|
|
102
86
|
/**
|
|
103
|
-
*
|
|
104
87
|
* Defines the workbench layout. Multiple layouts can be defined in the form of perspectives.
|
|
105
88
|
* If not set, defaults to a layout with only a main area.
|
|
106
89
|
*
|
|
107
|
-
*
|
|
108
|
-
* displayed in views.
|
|
109
|
-
*
|
|
110
|
-
* The layout can be divided into a main and a peripheral area, with the main area as the primary place for opening views.
|
|
111
|
-
* The peripheral area arranges parts around the main area to provide navigation or context-sensitive assistance to support
|
|
112
|
-
* the user's workflow. Defining a main area is optional and recommended for applications requiring a dedicated and maximizable
|
|
113
|
-
* area for user interaction.
|
|
114
|
-
*
|
|
115
|
-
* Multiple layouts, called perspectives, are supported. Perspectives can be switched with one perspective active at a time.
|
|
116
|
-
* Perspectives share the same main area, if any.
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* ## Example of a layout that has a main area and three parts in the peripheral area:
|
|
120
|
-
*
|
|
121
|
-
* ```plain
|
|
122
|
-
* +--------+----------------+
|
|
123
|
-
* | top | |
|
|
124
|
-
* | left | |
|
|
125
|
-
* |--------+ main area |
|
|
126
|
-
* | bottom | |
|
|
127
|
-
* | left | |
|
|
128
|
-
* +--------+----------------+
|
|
129
|
-
* | bottom |
|
|
130
|
-
* +-------------------------+
|
|
131
|
-
* ```
|
|
132
|
-
*
|
|
133
|
-
* ```ts
|
|
134
|
-
* WorkbenchModule.forRoot({
|
|
135
|
-
* layout: (factory: WorkbenchLayoutFactory) => factory
|
|
136
|
-
* .addPart(MAIN_AREA)
|
|
137
|
-
* .addPart('topLeft', {align: 'left', ratio: .25})
|
|
138
|
-
* .addPart('bottomLeft', {relativeTo: 'topLeft', align: 'bottom', ratio: .5})
|
|
139
|
-
* .addPart('bottom', {align: 'bottom', ratio: .3})
|
|
140
|
-
* .addView('navigator', {partId: 'topLeft', activateView: true})
|
|
141
|
-
* .addView('explorer', {partId: 'topLeft'})
|
|
142
|
-
* .addView('repositories', {partId: 'bottomLeft', activateView: true})
|
|
143
|
-
* .addView('console', {partId: 'bottom', activateView: true})
|
|
144
|
-
* .addView('problems', {partId: 'bottom'})
|
|
145
|
-
* .addView('search', {partId: 'bottom'})
|
|
146
|
-
* });
|
|
147
|
-
* ```
|
|
90
|
+
* See {@link WorkbenchLayoutFn} for more information and an example.
|
|
148
91
|
*/
|
|
149
92
|
abstract layout?: WorkbenchLayoutFn | WorkbenchPerspectives;
|
|
150
93
|
/**
|
|
@@ -166,6 +109,21 @@ export declare abstract class WorkbenchModuleConfig {
|
|
|
166
109
|
*/
|
|
167
110
|
modalityScope?: 'workbench' | 'viewport';
|
|
168
111
|
};
|
|
112
|
+
/**
|
|
113
|
+
* Configures logging for the workbench.
|
|
114
|
+
*/
|
|
115
|
+
abstract logging?: {
|
|
116
|
+
/**
|
|
117
|
+
* Sets the minimum severity level a log message must have in order to be logged. By default, if not specified, it is set to {@link LogLevel#INFO}.
|
|
118
|
+
*
|
|
119
|
+
* At runtime, you can change the minimum required log level by setting the `loglevel` query parameter.
|
|
120
|
+
*/
|
|
121
|
+
logLevel?: LogLevel;
|
|
122
|
+
/**
|
|
123
|
+
* Registers log appenders to output log messages. Multiple appenders are allowed. By default, if not specified, log messages are written to the console.
|
|
124
|
+
*/
|
|
125
|
+
logAppenders?: Type<LogAppender>[];
|
|
126
|
+
};
|
|
169
127
|
}
|
|
170
128
|
/**
|
|
171
129
|
* Controls which built-in menu items to display in the view context menu.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnDestroy, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { WorkbenchLauncher, WorkbenchStartup } from './startup/workbench-launcher.service';
|
|
3
|
-
import {
|
|
3
|
+
import { WorkbenchConfig } from './workbench-config';
|
|
4
4
|
import { ComponentType } from '@angular/cdk/portal';
|
|
5
5
|
import { Logger } from './logging';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -29,7 +29,7 @@ export declare class WorkbenchComponent implements OnDestroy {
|
|
|
29
29
|
protected whenViewContainersInjected: Promise<true>;
|
|
30
30
|
protected set injectIframeHost(vcr: ViewContainerRef);
|
|
31
31
|
protected set injectViewDropPlaceholderHost(vcr: ViewContainerRef);
|
|
32
|
-
constructor(
|
|
32
|
+
constructor(workbenchConfig: WorkbenchConfig, _workbenchLauncher: WorkbenchLauncher, _logger: Logger, workbenchStartup: WorkbenchStartup);
|
|
33
33
|
/**
|
|
34
34
|
* Starts the SCION Workbench. Has no effect if already started, e.g., in an app initializer or route guard.
|
|
35
35
|
*/
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { WorkbenchLayoutFn, WorkbenchPerspectives } from './perspective/workbench-perspective.model';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
export declare const WORKBENCH_FORROOT_GUARD: InjectionToken<void>;
|
|
7
|
-
/**
|
|
8
|
-
* Prefix for views that are target of a primary route.
|
|
4
|
+
* Represents the id prefix of views.
|
|
9
5
|
*
|
|
10
|
-
*
|
|
11
|
-
* On the other hand, views with an id that does not begin with the view prefix can only be the target of secondary routes having the view
|
|
12
|
-
* id as their target outlet.
|
|
6
|
+
* @see ViewId
|
|
13
7
|
*/
|
|
14
8
|
export declare const VIEW_ID_PREFIX = "view.";
|
|
15
9
|
/**
|
|
@@ -20,6 +14,10 @@ export declare const POPUP_ID_PREFIX = "popup.";
|
|
|
20
14
|
* Represents the id prefix of dialogs.
|
|
21
15
|
*/
|
|
22
16
|
export declare const DIALOG_ID_PREFIX = "dialog.";
|
|
17
|
+
/**
|
|
18
|
+
* Represents the id prefix of message boxes.
|
|
19
|
+
*/
|
|
20
|
+
export declare const MESSAGE_BOX_ID_PREFIX = "messagebox.";
|
|
23
21
|
/**
|
|
24
22
|
* Name of the query parameter that contains the layout of the main area.
|
|
25
23
|
*/
|
package/lib/workbench.model.d.ts
CHANGED
|
@@ -3,17 +3,29 @@ import { ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';
|
|
|
3
3
|
import { WorkbenchView } from './view/workbench-view.model';
|
|
4
4
|
import { WorkbenchPart } from './part/workbench-part.model';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Guard that a view can implement to decide whether it can be closed.
|
|
7
7
|
*
|
|
8
|
-
* The
|
|
8
|
+
* The following example implements a `CanClose` guard that asks the user whether the view can be closed.
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* class ViewComponent implements CanClose {
|
|
12
|
+
*
|
|
13
|
+
* public async canClose(): Promise<boolean> {
|
|
14
|
+
* const action = await inject(WorkbenchMessageBoxService).open('Do you want to close this view?', {
|
|
15
|
+
* actions: {yes: 'Yes', no: 'No'},
|
|
16
|
+
* });
|
|
17
|
+
* return action === 'yes';
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
9
21
|
*/
|
|
10
|
-
export interface
|
|
22
|
+
export interface CanClose {
|
|
11
23
|
/**
|
|
12
|
-
*
|
|
24
|
+
* Decides whether this view can be closed.
|
|
13
25
|
*
|
|
14
|
-
*
|
|
26
|
+
* This function can call `inject` to get any required dependencies.
|
|
15
27
|
*/
|
|
16
|
-
|
|
28
|
+
canClose(): Observable<boolean> | Promise<boolean> | boolean;
|
|
17
29
|
}
|
|
18
30
|
/**
|
|
19
31
|
* Describes an action contributed to a part.
|
|
@@ -40,7 +52,7 @@ export interface WorkbenchPartAction {
|
|
|
40
52
|
*/
|
|
41
53
|
canMatch?: CanMatchPartFn;
|
|
42
54
|
/**
|
|
43
|
-
* Specifies CSS class(es) to
|
|
55
|
+
* Specifies CSS class(es) to add to the action, e.g., to locate the action in tests.
|
|
44
56
|
*/
|
|
45
57
|
cssClass?: string | string[];
|
|
46
58
|
}
|
|
@@ -83,7 +95,7 @@ export interface WorkbenchMenuItem {
|
|
|
83
95
|
*/
|
|
84
96
|
isDisabled?: () => boolean;
|
|
85
97
|
/**
|
|
86
|
-
* Specifies CSS class(es) to
|
|
98
|
+
* Specifies CSS class(es) to add to the menu item, e.g., to locate the menu item in tests.
|
|
87
99
|
*/
|
|
88
100
|
cssClass?: string | string[];
|
|
89
101
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { WorkbenchModuleConfig } from './workbench-module-config';
|
|
2
|
+
import { WorkbenchConfig } from './workbench-config';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "./workbench.component";
|
|
6
5
|
import * as i2 from "./routing/workbench-router-link.directive";
|
|
@@ -20,11 +19,12 @@ import * as i4 from "./part/view-context-menu/view-menu.directive";
|
|
|
20
19
|
* the user's workflow. Defining a main area is optional and recommended for applications requiring a dedicated and maximizable
|
|
21
20
|
* area for user interaction.
|
|
22
21
|
*
|
|
23
|
-
* Multiple layouts, called perspectives, are supported. Perspectives can be switched
|
|
22
|
+
* Multiple layouts, called perspectives, are supported. Perspectives can be switched. Only one perspective is active at a time.
|
|
24
23
|
* Perspectives share the same main area, if any.
|
|
24
|
+
*
|
|
25
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function and import standalone components and directives instead; API will be removed in a future release.
|
|
25
26
|
*/
|
|
26
27
|
export declare class WorkbenchModule {
|
|
27
|
-
constructor(guard: any);
|
|
28
28
|
/**
|
|
29
29
|
* To manifest a dependency to the workbench module from the application module.
|
|
30
30
|
*
|
|
@@ -40,12 +40,14 @@ export declare class WorkbenchModule {
|
|
|
40
40
|
* })
|
|
41
41
|
* export class AppModule { }
|
|
42
42
|
* ```
|
|
43
|
+
*
|
|
44
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function and import standalone components and directives instead; API will be removed in a future release.
|
|
43
45
|
*/
|
|
44
46
|
static forRoot(config?: WorkbenchModuleConfig): ModuleWithProviders<WorkbenchModule>;
|
|
45
47
|
/**
|
|
46
48
|
* To manifest a dependency to the workbench module from a feature module.
|
|
47
49
|
*
|
|
48
|
-
* @deprecated since version 16.0.0-beta.1;
|
|
50
|
+
* @deprecated since version 16.0.0-beta.1; use standalone workbench component and directives instead; API will be removed in a future release.
|
|
49
51
|
*
|
|
50
52
|
* TODO [#312]: Remove when fixed issue https://github.com/SchweizerischeBundesbahnen/scion-workbench/issues/312
|
|
51
53
|
*/
|
|
@@ -55,6 +57,9 @@ export declare class WorkbenchModule {
|
|
|
55
57
|
static ɵinj: i0.ɵɵInjectorDeclaration<WorkbenchModule>;
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
|
-
*
|
|
60
|
+
* Configuration of the SCION Workbench.
|
|
61
|
+
*
|
|
62
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function and import standalone workbench components and directives instead; API will be removed in a future release.
|
|
59
63
|
*/
|
|
60
|
-
export
|
|
64
|
+
export interface WorkbenchModuleConfig extends WorkbenchConfig {
|
|
65
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { EnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { WorkbenchConfig } from './workbench-config';
|
|
3
|
+
/**
|
|
4
|
+
* Enables and configures the SCION Workbench in an application, returning a set of dependency-injection providers to be registered in Angular.
|
|
5
|
+
*
|
|
6
|
+
* SCION Workbench enables the creation of Angular web applications that require a flexible layout to arrange content side-by-side
|
|
7
|
+
* or stacked, all personalizable by the user via drag & drop. This type of layout is ideal for applications with non-linear workflows,
|
|
8
|
+
* enabling users to work on content in parallel.
|
|
9
|
+
*
|
|
10
|
+
* The workbench layout is a grid of parts. Parts are aligned relative to each other. A part is a stack of views. Content is displayed in views.
|
|
11
|
+
*
|
|
12
|
+
* The layout can be divided into a main and a peripheral area, with the main area as the primary place for opening views.
|
|
13
|
+
* The peripheral area arranges parts around the main area to provide navigation or context-sensitive assistance to support
|
|
14
|
+
* the user's workflow. Defining a main area is optional and recommended for applications requiring a dedicated and maximizable
|
|
15
|
+
* area for user interaction.
|
|
16
|
+
*
|
|
17
|
+
* Multiple layouts, called perspectives, are supported. Perspectives can be switched. Only one perspective is active at a time.
|
|
18
|
+
* Perspectives share the same main area, if any.
|
|
19
|
+
*
|
|
20
|
+
* ---
|
|
21
|
+
* Usage:
|
|
22
|
+
*
|
|
23
|
+
* ```ts
|
|
24
|
+
* import {bootstrapApplication} from '@angular/platform-browser';
|
|
25
|
+
* import {provideRouter} from '@angular/router';
|
|
26
|
+
* import {provideAnimations} from '@angular/platform-browser/animations';
|
|
27
|
+
* import {provideWorkbench} from '@scion/workbench';
|
|
28
|
+
*
|
|
29
|
+
* bootstrapApplication(AppComponent, {
|
|
30
|
+
* providers: [
|
|
31
|
+
* provideWorkbench(),
|
|
32
|
+
* provideRouter([]), // required by the SCION Workbench
|
|
33
|
+
* provideAnimations(), // required by the SCION Workbench
|
|
34
|
+
* ],
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function provideWorkbench(config?: WorkbenchConfig): EnvironmentProviders;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { Disposable } from './common/disposable';
|
|
3
3
|
import { WorkbenchMenuItemFactoryFn, WorkbenchPartAction, WorkbenchTheme } from './workbench.model';
|
|
4
|
-
import { WorkbenchView } from './view/workbench-view.model';
|
|
4
|
+
import { ViewId, WorkbenchView } from './view/workbench-view.model';
|
|
5
5
|
import { WorkbenchPerspective, WorkbenchPerspectiveDefinition } from './perspective/workbench-perspective.model';
|
|
6
6
|
import { WorkbenchPart } from './part/workbench-part.model';
|
|
7
|
+
import { WorkbenchLayout } from './layout/workbench-layout';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
/**
|
|
9
10
|
* The central class of the SCION Workbench.
|
|
@@ -19,10 +20,25 @@ import * as i0 from "@angular/core";
|
|
|
19
20
|
* the user's workflow. Defining a main area is optional and recommended for applications requiring a dedicated and maximizable
|
|
20
21
|
* area for user interaction.
|
|
21
22
|
*
|
|
22
|
-
* Multiple layouts, called perspectives, are supported. Perspectives can be switched
|
|
23
|
+
* Multiple layouts, called perspectives, are supported. Perspectives can be switched. Only one perspective is active at a time.
|
|
23
24
|
* Perspectives share the same main area, if any.
|
|
24
25
|
*/
|
|
25
26
|
export declare abstract class WorkbenchService {
|
|
27
|
+
/**
|
|
28
|
+
* Returns the current {@link WorkbenchLayout}.
|
|
29
|
+
*
|
|
30
|
+
* The layout is an immutable object. Modifications have no side effects. The layout can be modified using {@link WorkbenchRouter.navigate}.
|
|
31
|
+
*/
|
|
32
|
+
abstract readonly layout: WorkbenchLayout;
|
|
33
|
+
/**
|
|
34
|
+
* Emits the current {@link WorkbenchLayout}.
|
|
35
|
+
*
|
|
36
|
+
* Upon subscription, emits the current workbench layout, and then emits continuously
|
|
37
|
+
* when the layout changes. It never completes.
|
|
38
|
+
*
|
|
39
|
+
* The layout is an immutable object. Modifications have no side effects. The layout can be modified using {@link WorkbenchRouter.navigate}.
|
|
40
|
+
*/
|
|
41
|
+
abstract readonly layout$: Observable<WorkbenchLayout>;
|
|
26
42
|
/**
|
|
27
43
|
* Perspectives registered with the workbench.
|
|
28
44
|
*/
|
|
@@ -30,7 +46,7 @@ export declare abstract class WorkbenchService {
|
|
|
30
46
|
/**
|
|
31
47
|
* Emits the perspectives registered with the workbench.
|
|
32
48
|
*
|
|
33
|
-
* Upon subscription,
|
|
49
|
+
* Upon subscription, emits registered perspectives, and then emits continuously
|
|
34
50
|
* when new perspectives are registered or existing perspectives unregistered. It never completes.
|
|
35
51
|
*/
|
|
36
52
|
abstract readonly perspectives$: Observable<readonly WorkbenchPerspective[]>;
|
|
@@ -55,40 +71,48 @@ export declare abstract class WorkbenchService {
|
|
|
55
71
|
abstract resetPerspective(): Promise<void>;
|
|
56
72
|
/**
|
|
57
73
|
* Parts in the workbench layout.
|
|
74
|
+
*
|
|
75
|
+
* Each {@link WorkbenchPart} object represents a part in the workbench layout that can be interacted with.
|
|
58
76
|
*/
|
|
59
77
|
abstract readonly parts: readonly WorkbenchPart[];
|
|
60
78
|
/**
|
|
61
79
|
* Emits the parts in the workbench layout.
|
|
62
80
|
*
|
|
63
|
-
* Upon subscription,
|
|
81
|
+
* Upon subscription, emits parts contained in the layout, and then emits continuously
|
|
64
82
|
* when new parts are added or existing parts removed. It never completes.
|
|
65
83
|
*/
|
|
66
84
|
abstract readonly parts$: Observable<readonly WorkbenchPart[]>;
|
|
67
85
|
/**
|
|
68
86
|
* Returns a reference to the specified {@link WorkbenchPart}, or `null` if not found.
|
|
87
|
+
*
|
|
88
|
+
* A {@link WorkbenchPart} object represents a part in the workbench layout that can be interacted with.
|
|
69
89
|
*/
|
|
70
90
|
abstract getPart(partId: string): WorkbenchPart | null;
|
|
71
91
|
/**
|
|
72
|
-
* Views
|
|
92
|
+
* Views in the workbench layout.
|
|
93
|
+
*
|
|
94
|
+
* Each {@link WorkbenchView} object represents a view in the workbench layout that can be interacted with.
|
|
73
95
|
*/
|
|
74
96
|
abstract readonly views: readonly WorkbenchView[];
|
|
75
97
|
/**
|
|
76
98
|
* Emits the views opened in the workbench.
|
|
77
99
|
*
|
|
78
|
-
* Upon subscription,
|
|
100
|
+
* Upon subscription, emits views contained in the layout, and then emits continuously
|
|
79
101
|
* when new views are opened or existing views closed. It never completes.
|
|
80
102
|
*/
|
|
81
103
|
abstract readonly views$: Observable<readonly WorkbenchView[]>;
|
|
82
104
|
/**
|
|
83
105
|
* Returns a reference to the specified {@link WorkbenchView}, or `null` if not found.
|
|
106
|
+
*
|
|
107
|
+
* A {@link WorkbenchView} object represents a view in the workbench layout that can be interacted with.
|
|
84
108
|
*/
|
|
85
|
-
abstract getView(viewId:
|
|
109
|
+
abstract getView(viewId: ViewId): WorkbenchView | null;
|
|
86
110
|
/**
|
|
87
111
|
* Closes the specified workbench views.
|
|
88
112
|
*
|
|
89
113
|
* Note: This instruction runs asynchronously via URL routing.
|
|
90
114
|
*/
|
|
91
|
-
abstract closeViews(...viewIds:
|
|
115
|
+
abstract closeViews(...viewIds: ViewId[]): Promise<boolean>;
|
|
92
116
|
/**
|
|
93
117
|
* Contributes an action to a part's action bar.
|
|
94
118
|
*
|
|
@@ -13,6 +13,9 @@ import { ɵWorkbenchPerspective } from './perspective/ɵworkbench-perspective.mo
|
|
|
13
13
|
import { WorkbenchPerspectiveRegistry } from './perspective/workbench-perspective.registry';
|
|
14
14
|
import { WorkbenchPartActionRegistry } from './part/workbench-part-action.registry';
|
|
15
15
|
import { WorkbenchThemeSwitcher } from './theme/workbench-theme-switcher.service';
|
|
16
|
+
import { ViewId } from './view/workbench-view.model';
|
|
17
|
+
import { ɵWorkbenchLayout } from './layout/ɵworkbench-layout';
|
|
18
|
+
import { WorkbenchLayoutService } from './layout/workbench-layout.service';
|
|
16
19
|
import * as i0 from "@angular/core";
|
|
17
20
|
export declare class ɵWorkbenchService implements WorkbenchService {
|
|
18
21
|
private _workbenchRouter;
|
|
@@ -21,13 +24,16 @@ export declare class ɵWorkbenchService implements WorkbenchService {
|
|
|
21
24
|
private _partActionRegistry;
|
|
22
25
|
private _viewRegistry;
|
|
23
26
|
private _perspectiveService;
|
|
27
|
+
private _layoutService;
|
|
24
28
|
private _workbenchThemeSwitcher;
|
|
29
|
+
readonly layout$: Observable<ɵWorkbenchLayout>;
|
|
25
30
|
readonly perspectives$: Observable<readonly ɵWorkbenchPerspective[]>;
|
|
26
31
|
readonly parts$: Observable<readonly ɵWorkbenchPart[]>;
|
|
27
32
|
readonly views$: Observable<readonly ɵWorkbenchView[]>;
|
|
28
33
|
readonly theme$: Observable<WorkbenchTheme | null>;
|
|
29
34
|
readonly viewMenuItemProviders$: BehaviorSubject<WorkbenchMenuItemFactoryFn[]>;
|
|
30
|
-
constructor(_workbenchRouter: WorkbenchRouter, _perspectiveRegistry: WorkbenchPerspectiveRegistry, _partRegistry: WorkbenchPartRegistry, _partActionRegistry: WorkbenchPartActionRegistry, _viewRegistry: WorkbenchViewRegistry, _perspectiveService: WorkbenchPerspectiveService, _workbenchThemeSwitcher: WorkbenchThemeSwitcher);
|
|
35
|
+
constructor(_workbenchRouter: WorkbenchRouter, _perspectiveRegistry: WorkbenchPerspectiveRegistry, _partRegistry: WorkbenchPartRegistry, _partActionRegistry: WorkbenchPartActionRegistry, _viewRegistry: WorkbenchViewRegistry, _perspectiveService: WorkbenchPerspectiveService, _layoutService: WorkbenchLayoutService, _workbenchThemeSwitcher: WorkbenchThemeSwitcher);
|
|
36
|
+
get layout(): ɵWorkbenchLayout;
|
|
31
37
|
/** @inheritDoc */
|
|
32
38
|
get perspectives(): readonly ɵWorkbenchPerspective[];
|
|
33
39
|
/** @inheritDoc */
|
|
@@ -39,7 +45,7 @@ export declare class ɵWorkbenchService implements WorkbenchService {
|
|
|
39
45
|
/** @inheritDoc */
|
|
40
46
|
get views(): readonly ɵWorkbenchView[];
|
|
41
47
|
/** @inheritDoc */
|
|
42
|
-
getView(viewId:
|
|
48
|
+
getView(viewId: ViewId): ɵWorkbenchView | null;
|
|
43
49
|
/** @inheritDoc */
|
|
44
50
|
registerPerspective(perspective: WorkbenchPerspectiveDefinition): Promise<void>;
|
|
45
51
|
/** @inheritDoc */
|
|
@@ -47,7 +53,7 @@ export declare class ɵWorkbenchService implements WorkbenchService {
|
|
|
47
53
|
/** @inheritDoc */
|
|
48
54
|
resetPerspective(): Promise<void>;
|
|
49
55
|
/** @inheritDoc */
|
|
50
|
-
closeViews(...viewIds:
|
|
56
|
+
closeViews(...viewIds: ViewId[]): Promise<boolean>;
|
|
51
57
|
/** @inheritDoc */
|
|
52
58
|
registerPartAction(action: WorkbenchPartAction): Disposable;
|
|
53
59
|
/** @inheritDoc */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scion/workbench",
|
|
3
|
-
"version": "17.0.0-beta.
|
|
3
|
+
"version": "17.0.0-beta.9",
|
|
4
4
|
"description": "SCION Workbench enables the creation of Angular web applications that require a flexible layout to arrange content side-by-side or stacked, all personalizable by the user via drag & drop.",
|
|
5
5
|
"license": "EPL-2.0",
|
|
6
6
|
"private": false,
|
|
@@ -30,16 +30,16 @@
|
|
|
30
30
|
"tslib": "^2.5.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@angular/common": "^17.0.
|
|
34
|
-
"@angular/core": "^17.0.
|
|
35
|
-
"@angular/cdk": "^17.0.
|
|
36
|
-
"@angular/animations": "^17.0.
|
|
37
|
-
"@angular/forms": "^17.0.
|
|
38
|
-
"@angular/router": "^17.0.
|
|
33
|
+
"@angular/common": "^17.0.6",
|
|
34
|
+
"@angular/core": "^17.0.6",
|
|
35
|
+
"@angular/cdk": "^17.0.6",
|
|
36
|
+
"@angular/animations": "^17.0.6",
|
|
37
|
+
"@angular/forms": "^17.0.6",
|
|
38
|
+
"@angular/router": "^17.0.6",
|
|
39
39
|
"@scion/components": "^17.0.0",
|
|
40
40
|
"@scion/toolkit": "^1.4.0",
|
|
41
41
|
"@scion/microfrontend-platform": "^1.2.1",
|
|
42
|
-
"@scion/workbench-client": "^1.0.0-beta.
|
|
42
|
+
"@scion/workbench-client": "^1.0.0-beta.23",
|
|
43
43
|
"rxjs": "^7.8.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
@@ -1,38 +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 { Injectable } from '@angular/core';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "./workbench-layout-v1-migrator.service";
|
|
13
|
-
/**
|
|
14
|
-
* Migrates a workbench layout to the latest version.
|
|
15
|
-
*/
|
|
16
|
-
export class WorkbenchLayoutMigrator {
|
|
17
|
-
constructor(_workbenchLayoutV1Migrator) {
|
|
18
|
-
this._workbenchLayoutV1Migrator = _workbenchLayoutV1Migrator;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Migrates a workbench layout to the latest version.
|
|
22
|
-
*/
|
|
23
|
-
migrate(version, json) {
|
|
24
|
-
switch (version) {
|
|
25
|
-
case 1:
|
|
26
|
-
return this._workbenchLayoutV1Migrator.migrate(json);
|
|
27
|
-
default:
|
|
28
|
-
throw Error(`[WorkbenchLayoutError] Unsupported workbench layout version. Unable to migrate to the latest version. [version=${version}, layout=${json}]`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchLayoutMigrator, deps: [{ token: i1.WorkbenchLayoutV1Migrator }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchLayoutMigrator, providedIn: 'root' }); }
|
|
33
|
-
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchLayoutMigrator, decorators: [{
|
|
35
|
-
type: Injectable,
|
|
36
|
-
args: [{ providedIn: 'root' }]
|
|
37
|
-
}], ctorParameters: () => [{ type: i1.WorkbenchLayoutV1Migrator }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC1taWdyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvbGF5b3V0L21pZ3JhdGlvbi93b3JrYmVuY2gtbGF5b3V0LW1pZ3JhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHekM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQW9CLDBCQUFxRDtRQUFyRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTJCO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFlLEVBQUUsSUFBWTtRQUMxQyxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssQ0FBQztnQkFDSixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQ7Z0JBQ0UsTUFBTSxLQUFLLENBQUMsa0hBQWtILE9BQU8sWUFBWSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQzdKO0lBQ0gsQ0FBQzs4R0FmVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQURYLE1BQU07OzJGQUNsQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRWMU1pZ3JhdG9yfSBmcm9tICcuL3dvcmtiZW5jaC1sYXlvdXQtdjEtbWlncmF0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogTWlncmF0ZXMgYSB3b3JrYmVuY2ggbGF5b3V0IHRvIHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoTGF5b3V0TWlncmF0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3dvcmtiZW5jaExheW91dFYxTWlncmF0b3I6IFdvcmtiZW5jaExheW91dFYxTWlncmF0b3IpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBNaWdyYXRlcyBhIHdvcmtiZW5jaCBsYXlvdXQgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgKi9cbiAgcHVibGljIG1pZ3JhdGUodmVyc2lvbjogbnVtYmVyLCBqc29uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodmVyc2lvbikge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoTGF5b3V0VjFNaWdyYXRvci5taWdyYXRlKGpzb24pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgRXJyb3IoYFtXb3JrYmVuY2hMYXlvdXRFcnJvcl0gVW5zdXBwb3J0ZWQgd29ya2JlbmNoIGxheW91dCB2ZXJzaW9uLiBVbmFibGUgdG8gbWlncmF0ZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24uIFt2ZXJzaW9uPSR7dmVyc2lvbn0sIGxheW91dD0ke2pzb259XWApO1xuICAgIH1cbiAgfVxufVxuIl19
|