@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
|
@@ -4,17 +4,18 @@ import { WorkbenchAuxiliaryRoutesRegistrator } from './workbench-auxiliary-route
|
|
|
4
4
|
import { WorkbenchViewRegistry } from '../view/workbench-view.registry';
|
|
5
5
|
import { WorkbenchPartRegistry } from '../part/workbench-part.registry';
|
|
6
6
|
import { WorkbenchLayoutService } from '../layout/workbench-layout.service';
|
|
7
|
-
import { WorkbenchRouter } from './workbench-router.service';
|
|
8
7
|
import { WorkbenchLayoutDiffer } from './workbench-layout-differ';
|
|
9
8
|
import { WorkbenchPopupDiffer } from './workbench-popup-differ';
|
|
10
9
|
import { Logger } from '../logging';
|
|
11
10
|
import { ɵWorkbenchLayoutFactory } from '../layout/ɵworkbench-layout.factory';
|
|
12
11
|
import { WorkbenchDialogDiffer } from './workbench-dialog-differ';
|
|
12
|
+
import { ɵWorkbenchRouter } from './ɵworkbench-router.service';
|
|
13
|
+
import { WorkbenchMessageBoxDiffer } from './workbench-message-box-differ';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
/**
|
|
15
16
|
* Tracks the browser URL for workbench layout changes.
|
|
16
17
|
*
|
|
17
|
-
* - For each added view, constructs a {@link WorkbenchView} and registers view specific auxiliary routes of all
|
|
18
|
+
* - For each added view, constructs a {@link WorkbenchView} and registers view specific auxiliary routes of all top-level routes
|
|
18
19
|
* - For each removed view, destroys {@link WorkbenchView} and unregisters its auxiliary routes
|
|
19
20
|
* - For each added part, constructs a {@link WorkbenchPart}
|
|
20
21
|
* - For each removed part, destroys {@link WorkbenchPart}
|
|
@@ -22,7 +23,7 @@ import * as i0 from "@angular/core";
|
|
|
22
23
|
*/
|
|
23
24
|
export declare class WorkbenchUrlObserver {
|
|
24
25
|
private _router;
|
|
25
|
-
private
|
|
26
|
+
private _auxiliaryRoutesRegistrator;
|
|
26
27
|
private _viewRegistry;
|
|
27
28
|
private _partRegistry;
|
|
28
29
|
private _workbenchLayoutService;
|
|
@@ -32,8 +33,9 @@ export declare class WorkbenchUrlObserver {
|
|
|
32
33
|
private _workbenchLayoutDiffer;
|
|
33
34
|
private _workbenchPopupDiffer;
|
|
34
35
|
private _workbenchDialogDiffer;
|
|
36
|
+
private _workbenchMessageBoxDiffer;
|
|
35
37
|
private _logger;
|
|
36
|
-
constructor(_router: Router,
|
|
38
|
+
constructor(_router: Router, _auxiliaryRoutesRegistrator: WorkbenchAuxiliaryRoutesRegistrator, _viewRegistry: WorkbenchViewRegistry, _partRegistry: WorkbenchPartRegistry, _workbenchLayoutService: WorkbenchLayoutService, _environmentInjector: EnvironmentInjector, _workbenchRouter: ɵWorkbenchRouter, _workbenchLayoutFactory: ɵWorkbenchLayoutFactory, _workbenchLayoutDiffer: WorkbenchLayoutDiffer, _workbenchPopupDiffer: WorkbenchPopupDiffer, _workbenchDialogDiffer: WorkbenchDialogDiffer, _workbenchMessageBoxDiffer: WorkbenchMessageBoxDiffer, _logger: Logger);
|
|
37
39
|
/** Invoked at the beginning of each navigation */
|
|
38
40
|
private onNavigationStart;
|
|
39
41
|
/** Invoked upon successful navigation */
|
|
@@ -49,35 +51,15 @@ export declare class WorkbenchUrlObserver {
|
|
|
49
51
|
*/
|
|
50
52
|
private createWorkbenchNavigationContext;
|
|
51
53
|
/**
|
|
52
|
-
* For each added
|
|
54
|
+
* For each added workbench outlet, registers auxiliary routes of all top-level routes.
|
|
53
55
|
*/
|
|
54
|
-
private
|
|
56
|
+
private registerAddedOutletAuxiliaryRoutes;
|
|
55
57
|
/**
|
|
56
|
-
*
|
|
57
|
-
*/
|
|
58
|
-
registerAddedPopupAuxiliaryRoutes(): void;
|
|
59
|
-
/**
|
|
60
|
-
* For each added dialog, registers auxiliary routes of all primary routes.
|
|
61
|
-
*/
|
|
62
|
-
registerAddedDialogAuxiliaryRoutes(): void;
|
|
63
|
-
/**
|
|
64
|
-
* Reverts the workbench layout differ to the state before the navigation.
|
|
65
|
-
*
|
|
66
|
-
* Invoke this method after navigation failure or cancellation. The navigation is cancelled when guards perform a redirect or reject navigation.
|
|
67
|
-
*/
|
|
68
|
-
private undoWorkbenchLayoutDiffer;
|
|
69
|
-
/**
|
|
70
|
-
* Reverts the popup outlet differ to the state before the navigation.
|
|
71
|
-
*
|
|
72
|
-
* Invoke this method after navigation failure or cancellation. The navigation is cancelled when guards perform a redirect or reject navigation.
|
|
73
|
-
*/
|
|
74
|
-
private undoWorkbenchPopupDiffer;
|
|
75
|
-
/**
|
|
76
|
-
* Reverts the dialog outlet differ to the state before the navigation.
|
|
58
|
+
* Reverts the workbench differs to the state before the navigation.
|
|
77
59
|
*
|
|
78
60
|
* Invoke this method after navigation failure or cancellation. The navigation is cancelled when guards perform a redirect or reject navigation.
|
|
79
61
|
*/
|
|
80
|
-
private
|
|
62
|
+
private undoWorkbenchDiffers;
|
|
81
63
|
/**
|
|
82
64
|
* Undoes the registration of auxiliary routes.
|
|
83
65
|
*
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { NavigationExtras, Router, UrlTree } from '@angular/router';
|
|
2
|
+
import { WorkbenchRouter } from './workbench-router.service';
|
|
3
|
+
import { Injector, NgZone } from '@angular/core';
|
|
4
|
+
import { WorkbenchLayoutService } from '../layout/workbench-layout.service';
|
|
5
|
+
import { ɵWorkbenchLayout } from '../layout/ɵworkbench-layout';
|
|
6
|
+
import { Commands, WorkbenchNavigationContext, WorkbenchNavigationExtras } from './routing.model';
|
|
7
|
+
import { WorkbenchViewRegistry } from '../view/workbench-view.registry';
|
|
8
|
+
import { Logger } from '../logging';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/** @inheritDoc */
|
|
11
|
+
export declare class ɵWorkbenchRouter implements WorkbenchRouter {
|
|
12
|
+
private _router;
|
|
13
|
+
private _workbenchLayoutService;
|
|
14
|
+
private _workbenchViewRegistry;
|
|
15
|
+
private _injector;
|
|
16
|
+
private _logger;
|
|
17
|
+
private _zone;
|
|
18
|
+
private _singleNavigationExecutor;
|
|
19
|
+
/**
|
|
20
|
+
* Holds the current navigational context during a workbench navigation, or `null` if no navigation is in progress.
|
|
21
|
+
*/
|
|
22
|
+
private _currentNavigationContext;
|
|
23
|
+
constructor(_router: Router, _workbenchLayoutService: WorkbenchLayoutService, _workbenchViewRegistry: WorkbenchViewRegistry, _injector: Injector, _logger: Logger, _zone: NgZone);
|
|
24
|
+
/** @inheritDoc */
|
|
25
|
+
navigate(commands: Commands, extras?: WorkbenchNavigationExtras): Promise<boolean>;
|
|
26
|
+
navigate(navigateFn: ɵNavigateFn, extras?: Omit<NavigationExtras, 'relativeTo' | 'state'>): Promise<boolean>;
|
|
27
|
+
navigate(commandsOrNavigateFn: Commands | ɵNavigateFn, extras?: WorkbenchNavigationExtras | Omit<NavigationExtras, 'relativeTo' | 'state'>): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Performs changes to the current workbench layout.
|
|
30
|
+
*
|
|
31
|
+
* Unlike {@link navigate}, does not perform the navigation but returns the URL tree instead.
|
|
32
|
+
*
|
|
33
|
+
* The router will invoke the callback and pass the current layout for modification. The callback can call `inject` to get any required dependencies.
|
|
34
|
+
*
|
|
35
|
+
* The following example adds a part to the left of the main area, inserts a view and navigates it.
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* inject(WorkbenchRouter).createUrlTree(layout => layout
|
|
39
|
+
* .addPart('left', {relativeTo: MAIN_AREA, align: 'left'})
|
|
40
|
+
* .addView('navigator', {partId: 'left'})
|
|
41
|
+
* .navigateView('navigator', ['path/to/view'])
|
|
42
|
+
* .activateView('navigator'),
|
|
43
|
+
* );
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @param onNavigate - Specifies the callback to modify the layout.
|
|
47
|
+
* @param extras - Controls how to perform the navigation.
|
|
48
|
+
* @see NavigateFn
|
|
49
|
+
*/
|
|
50
|
+
createUrlTree(onNavigate: (layout: ɵWorkbenchLayout) => Promise<ɵWorkbenchLayout | null> | ɵWorkbenchLayout | null, extras?: Omit<NavigationExtras, 'relativeTo' | 'state'>): Promise<UrlTree | null>;
|
|
51
|
+
/**
|
|
52
|
+
* Decides if given view can be closed, invoking `CanClose` guard if implemented.
|
|
53
|
+
*/
|
|
54
|
+
private canCloseView;
|
|
55
|
+
/**
|
|
56
|
+
* Returns the context of the current workbench navigation, when being invoked during navigation, or throws an error otherwise.
|
|
57
|
+
*/
|
|
58
|
+
getCurrentNavigationContext(): WorkbenchNavigationContext;
|
|
59
|
+
/**
|
|
60
|
+
* Sets navigational contextual data.
|
|
61
|
+
*/
|
|
62
|
+
setCurrentNavigationContext(context: WorkbenchNavigationContext | null): void;
|
|
63
|
+
/**
|
|
64
|
+
* Blocks until the initial layout is available, i.e. after completion of Angular's initial navigation.
|
|
65
|
+
*/
|
|
66
|
+
private waitForInitialLayout;
|
|
67
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ɵWorkbenchRouter, never>;
|
|
68
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ɵWorkbenchRouter>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @inheritDoc
|
|
72
|
+
* @see NavigateFn
|
|
73
|
+
*/
|
|
74
|
+
export type ɵNavigateFn = (layout: ɵWorkbenchLayout) => Promise<ɵWorkbenchLayout | null> | ɵWorkbenchLayout | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WorkbenchConfig } from '../workbench-config';
|
|
2
2
|
import { EnvironmentProviders, Injector, NgZone } from '@angular/core';
|
|
3
3
|
import { Logger } from '../logging';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -9,7 +9,7 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
* Workbench initializers may execute in parallel. To register a workbench initializer, provide a class implementing
|
|
10
10
|
* {@link WorkbenchInitializer} as a multi-provider using the DI class token {@link WorkbenchInitializer}.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* The SCION Workbench supports the following launchers:
|
|
13
13
|
*
|
|
14
14
|
* - **APP_INITIALIZER**
|
|
15
15
|
* Launches the workbench in an Angular `APP_INITIALIZER`, which is before bootstrapping the app component.
|
|
@@ -23,7 +23,7 @@ import * as i0 from "@angular/core";
|
|
|
23
23
|
* tree.
|
|
24
24
|
*
|
|
25
25
|
* The workbench component displays a startup splash until completed startup. You can configure a custom splash in
|
|
26
|
-
* {@link
|
|
26
|
+
* {@link WorkbenchConfig#startup#splash}. When launching the workbench in an Angular `APP_INITIALIZER`, no splash will
|
|
27
27
|
* display since the workbench will start upfront.
|
|
28
28
|
*/
|
|
29
29
|
export declare class WorkbenchLauncher {
|
|
@@ -97,4 +97,4 @@ export declare class WorkbenchStartup {
|
|
|
97
97
|
/**
|
|
98
98
|
* Provides a set of DI providers for launching the workbench.
|
|
99
99
|
*/
|
|
100
|
-
export declare function provideWorkbenchLauncher(
|
|
100
|
+
export declare function provideWorkbenchLauncher(workbenchConfig: WorkbenchConfig): EnvironmentProviders | [];
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { WorkbenchConfig } from '../workbench-config';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../workbench.module";
|
|
5
4
|
/**
|
|
6
5
|
* Sets up the SCION Workbench to be used for testing.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
* - provides the workbench
|
|
7
|
+
* Does the following:
|
|
8
|
+
* - provides the workbench with given config
|
|
10
9
|
* - configures the workbench to name the initial part 'main'
|
|
11
10
|
* - installs a sequence for activation instants
|
|
12
11
|
* - configures the testbed to auto-detect changes
|
|
@@ -27,13 +26,15 @@ import * as i1 from "../workbench.module";
|
|
|
27
26
|
* });
|
|
28
27
|
* });
|
|
29
28
|
* ```
|
|
29
|
+
*
|
|
30
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function instead; API will be removed in a future release; API will be removed in a future release.
|
|
30
31
|
*/
|
|
31
32
|
export declare class WorkbenchTestingModule {
|
|
32
33
|
/**
|
|
33
34
|
* Sets up the SCION Workbench to be used for testing.
|
|
34
35
|
*/
|
|
35
|
-
static forTest(config?:
|
|
36
|
+
static forTest(config?: WorkbenchConfig): ModuleWithProviders<WorkbenchTestingModule>;
|
|
36
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchTestingModule, never>;
|
|
37
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<WorkbenchTestingModule, never, never,
|
|
38
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<WorkbenchTestingModule, never, never, never>;
|
|
38
39
|
static ɵinj: i0.ɵɵInjectorDeclaration<WorkbenchTestingModule>;
|
|
39
40
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { WorkbenchConfig } from '../workbench-config';
|
|
2
|
+
import { EnvironmentProviders } from '@angular/core';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the set of dependency-injection providers to enable and configure the SCION Workbench in tests.
|
|
5
|
+
*
|
|
6
|
+
* Does the following:
|
|
7
|
+
* - provides the workbench with given config
|
|
8
|
+
* - configures the workbench to name the initial part 'main'
|
|
9
|
+
* - installs a sequence for activation instants
|
|
10
|
+
* - configures the testbed to auto-detect changes
|
|
11
|
+
* - disables animations
|
|
12
|
+
* - performs the initial navigation
|
|
13
|
+
*
|
|
14
|
+
* ### Usage
|
|
15
|
+
*
|
|
16
|
+
* ```
|
|
17
|
+
* beforeEach(() => {
|
|
18
|
+
* TestBed.configureTestingModule({
|
|
19
|
+
* imports: [
|
|
20
|
+
* WorkbenchTestingModule.forTest(),
|
|
21
|
+
* RouterTestingModule.withRoutes([
|
|
22
|
+
* {path: 'test-view', component: TestComponent},
|
|
23
|
+
* ]),
|
|
24
|
+
* ],
|
|
25
|
+
* });
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function provideWorkbenchForTest(config?: WorkbenchConfig): EnvironmentProviders;
|
package/lib/view/public_api.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { WorkbenchView } from './workbench-view.model';
|
|
1
|
+
export { WorkbenchView, ViewId } from './workbench-view.model';
|
|
2
|
+
export { canMatchWorkbenchView } from './workbench-view-route-guards';
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Injector } from '@angular/core';
|
|
2
1
|
import { ViewDragService } from '../view-dnd/view-drag.service';
|
|
3
2
|
import { Router } from '@angular/router';
|
|
4
3
|
import { LocationStrategy } from '@angular/common';
|
|
5
|
-
import {
|
|
4
|
+
import { ɵWorkbenchRouter } from '../routing/ɵworkbench-router.service';
|
|
6
5
|
import { ɵWorkbenchLayoutFactory } from '../layout/ɵworkbench-layout.factory';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
/**
|
|
@@ -15,8 +14,7 @@ export declare class ViewMoveHandler {
|
|
|
15
14
|
private _viewDragService;
|
|
16
15
|
private _router;
|
|
17
16
|
private _locationStrategy;
|
|
18
|
-
|
|
19
|
-
constructor(_workbenchId: string, _workbenchRouter: WorkbenchRouter, _workbenchLayoutFactory: ɵWorkbenchLayoutFactory, _viewDragService: ViewDragService, _router: Router, _locationStrategy: LocationStrategy, _injector: Injector);
|
|
17
|
+
constructor(_workbenchId: string, _workbenchRouter: ɵWorkbenchRouter, _workbenchLayoutFactory: ɵWorkbenchLayoutFactory, _viewDragService: ViewDragService, _router: Router, _locationStrategy: LocationStrategy);
|
|
20
18
|
private installViewMoveListener;
|
|
21
19
|
private addView;
|
|
22
20
|
private moveViewToNewWindow;
|
|
@@ -2,6 +2,7 @@ import { PipeTransform } from '@angular/core';
|
|
|
2
2
|
import { WorkbenchViewRegistry } from './workbench-view.registry';
|
|
3
3
|
import { WbComponentPortal } from '../portal/wb-component-portal';
|
|
4
4
|
import type { ViewComponent } from '../view/view.component';
|
|
5
|
+
import { ViewId } from './workbench-view.model';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* Resolves the portal for the given view, or throws an error if the view is not registered.
|
|
@@ -9,7 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
9
10
|
export declare class ViewPortalPipe implements PipeTransform {
|
|
10
11
|
private _viewRegistry;
|
|
11
12
|
constructor(_viewRegistry: WorkbenchViewRegistry);
|
|
12
|
-
transform(viewId:
|
|
13
|
+
transform(viewId: ViewId | null): WbComponentPortal<ViewComponent> | null;
|
|
13
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ViewPortalPipe, never>;
|
|
14
15
|
static ɵpipe: i0.ɵɵPipeDeclaration<ViewPortalPipe, "wbViewPortal", true>;
|
|
15
16
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ElementRef, OnDestroy } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, RouterOutlet } from '@angular/router';
|
|
3
2
|
import { SciViewportComponent } from '@scion/components/viewport';
|
|
4
3
|
import { ViewMenuService } from '../part/view-context-menu/view-menu.service';
|
|
5
4
|
import { ɵWorkbenchView } from './ɵworkbench-view.model';
|
|
@@ -8,13 +7,7 @@ import { ViewDragService } from '../view-dnd/view-drag.service';
|
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
import * as i1 from "../glass-pane/glass-pane.directive";
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* The view has its dedicated router outlet to display view content. Use route path parameters
|
|
14
|
-
* to decide what specific content to present. Use matrix parameters to associate optional data
|
|
15
|
-
* with the view outlet URL.
|
|
16
|
-
*
|
|
17
|
-
* Title and heading of this view are either set via `WorkbenchView`, or given as route data or matrix parameter.
|
|
10
|
+
* Renders the workbench view, using a router-outlet to display view content.
|
|
18
11
|
*/
|
|
19
12
|
export declare class ViewComponent implements OnDestroy {
|
|
20
13
|
private _view;
|
|
@@ -23,15 +16,12 @@ export declare class ViewComponent implements OnDestroy {
|
|
|
23
16
|
private _viewDragService;
|
|
24
17
|
private _viewport$;
|
|
25
18
|
set setViewport(viewport: SciViewportComponent);
|
|
26
|
-
routerOutlet: RouterOutlet;
|
|
27
19
|
get viewId(): string;
|
|
28
20
|
get cssClasses(): string;
|
|
29
21
|
get isViewDragActive(): boolean;
|
|
30
22
|
constructor(_view: ɵWorkbenchView, _logger: Logger, _host: ElementRef<HTMLElement>, _viewDragService: ViewDragService, viewContextMenuService: ViewMenuService);
|
|
31
23
|
private onActivateView;
|
|
32
24
|
private onDeactivateView;
|
|
33
|
-
onActivateRoute(route: ActivatedRoute): void;
|
|
34
|
-
onDeactivateRoute(): void;
|
|
35
25
|
ngOnDestroy(): void;
|
|
36
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<ViewComponent, never>;
|
|
37
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<ViewComponent, "wb-view", never, {}, {}, never, never, true, [{ directive: typeof i1.GlassPaneDirective; inputs: {}; outputs: {}; }]>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CanMatchFn } from '@angular/router';
|
|
2
|
+
/**
|
|
3
|
+
* Matches the route if target of a workbench view and navigating with the given hint.
|
|
4
|
+
*
|
|
5
|
+
* Can be used to differentiate between routes with an identical path. For example, the views of the initial layout or a perspective
|
|
6
|
+
* are usually navigated to the empty path route to avoid cluttering the URL. A hint can be set when navigating the view to match a
|
|
7
|
+
* particular route.
|
|
8
|
+
*
|
|
9
|
+
* ### Example:
|
|
10
|
+
*
|
|
11
|
+
* The following routes both match the empty path, but only if navigated with a specific hint.
|
|
12
|
+
* ```ts
|
|
13
|
+
* const routes: Routes = [
|
|
14
|
+
* {path: '', canMatch: [canMatchWorkbenchView('navigator')], component: NavigatorComponent},
|
|
15
|
+
* {path: '', canMatch: [canMatchWorkbenchView('outline')], component: OutlineComponent},
|
|
16
|
+
* ];
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* The following example navigates to the `OutlineComponent`, passing a hint to match the route.
|
|
20
|
+
* ```ts
|
|
21
|
+
* inject(WorkbenchRouter).navigate([], {hint: 'outline'});
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function canMatchWorkbenchView(navigationHint: string): CanMatchFn;
|
|
25
|
+
/**
|
|
26
|
+
* Matches the route if, or if not target of a workbench view.
|
|
27
|
+
*
|
|
28
|
+
* Can be used to guard the application's root route from matching an empty path view navigation.
|
|
29
|
+
*/
|
|
30
|
+
export declare function canMatchWorkbenchView(canMatch: boolean): CanMatchFn;
|
|
31
|
+
/**
|
|
32
|
+
* Matches if the view has been navigated (or cannot be found).
|
|
33
|
+
*
|
|
34
|
+
* The view cannot be found during initial navigation as the workbench layout is loaded asynchronously.
|
|
35
|
+
*/
|
|
36
|
+
export declare const canMatchNotFoundPage: CanMatchFn;
|
|
@@ -5,17 +5,41 @@ import { WorkbenchMenuItem } from '../workbench.model';
|
|
|
5
5
|
import { WorkbenchPart } from '../part/workbench-part.model';
|
|
6
6
|
import { ViewState } from '../routing/routing.model';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Handle to interact with a view opened via {@link WorkbenchRouter}.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* The view component can inject this handle to interact with the view, such as setting the title or closing the view.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* The view component can inject `ActivatedRoute` to obtain parameters passed to the navigation and/or read data associated with the route.
|
|
13
|
+
*
|
|
14
|
+
* @see WorkbenchRouter
|
|
13
15
|
*/
|
|
14
16
|
export declare abstract class WorkbenchView {
|
|
15
17
|
/**
|
|
16
18
|
* Unique identity of this view.
|
|
19
|
+
*
|
|
20
|
+
* Each view is assigned a unique identifier (e.g., `view.1`, `view.2`, etc.).
|
|
21
|
+
*
|
|
22
|
+
* @see alternativeId
|
|
23
|
+
*/
|
|
24
|
+
abstract readonly id: ViewId;
|
|
25
|
+
/**
|
|
26
|
+
* Alternative identity of this view.
|
|
27
|
+
*
|
|
28
|
+
* A view can have an alternative id, a meaningful but not necessarily unique name. A view can
|
|
29
|
+
* be identified either by its unique or alternative id.
|
|
30
|
+
*
|
|
31
|
+
* @see id
|
|
17
32
|
*/
|
|
18
|
-
abstract readonly
|
|
33
|
+
abstract readonly alternativeId: string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Hint passed to the navigation.
|
|
36
|
+
*
|
|
37
|
+
* A hint can be passed to the navigation to differentiate between routes with identical paths.
|
|
38
|
+
*
|
|
39
|
+
* For example, the views of the initial layout or a perspective are usually navigated to the empty path route to avoid cluttering the URL,
|
|
40
|
+
* requiring a navigation hint to differentiate between the routes.
|
|
41
|
+
*/
|
|
42
|
+
abstract readonly navigationHint: string | undefined;
|
|
19
43
|
/**
|
|
20
44
|
* Reference to the part which contains this view.
|
|
21
45
|
*
|
|
@@ -31,7 +55,7 @@ export declare abstract class WorkbenchView {
|
|
|
31
55
|
*/
|
|
32
56
|
abstract heading: string | null;
|
|
33
57
|
/**
|
|
34
|
-
* Specifies CSS class(es) to
|
|
58
|
+
* Specifies CSS class(es) to add to the view, e.g., to locate the view in tests.
|
|
35
59
|
*/
|
|
36
60
|
abstract cssClass: string | string[];
|
|
37
61
|
/**
|
|
@@ -126,3 +150,11 @@ export declare abstract class WorkbenchView {
|
|
|
126
150
|
*/
|
|
127
151
|
abstract registerMenuItem(menuItem: WorkbenchMenuItem): Disposable;
|
|
128
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Format of a view identifier.
|
|
155
|
+
*
|
|
156
|
+
* Each view is assigned a unique identifier (e.g., `view.1`, `view.2`, etc.).
|
|
157
|
+
* A view can also have an alternative id, a meaningful but not necessarily unique name. A view can
|
|
158
|
+
* be identified either by its unique or alternative id.
|
|
159
|
+
*/
|
|
160
|
+
export type ViewId = `view.${number}`;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { ɵWorkbenchView } from './ɵworkbench-view.model';
|
|
4
|
+
import { ViewId } from './workbench-view.model';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Registry for {@link WorkbenchView} model objects.
|
|
@@ -15,12 +16,12 @@ export declare class WorkbenchViewRegistry implements OnDestroy {
|
|
|
15
16
|
/**
|
|
16
17
|
* Unregisters specified view and destroys it.
|
|
17
18
|
*/
|
|
18
|
-
unregister(viewId:
|
|
19
|
+
unregister(viewId: ViewId): void;
|
|
19
20
|
/**
|
|
20
21
|
* Returns the {@link WorkbenchView} of the given identity. If not found, by default, throws an error unless setting the `orElseNull` option.
|
|
21
22
|
*/
|
|
22
|
-
get(viewId:
|
|
23
|
-
get(viewId:
|
|
23
|
+
get(viewId: ViewId): ɵWorkbenchView;
|
|
24
|
+
get(viewId: ViewId, options: {
|
|
24
25
|
orElse: null;
|
|
25
26
|
}): ɵWorkbenchView | null;
|
|
26
27
|
get views(): readonly ɵWorkbenchView[];
|
|
@@ -2,25 +2,27 @@ import { BehaviorSubject, Observable } from 'rxjs';
|
|
|
2
2
|
import { UrlSegment } from '@angular/router';
|
|
3
3
|
import { Disposable } from '../common/disposable';
|
|
4
4
|
import { WorkbenchMenuItem } from '../workbench.model';
|
|
5
|
-
import { WorkbenchView } from './workbench-view.model';
|
|
5
|
+
import { ViewId, WorkbenchView } from './workbench-view.model';
|
|
6
6
|
import { WorkbenchPart } from '../part/workbench-part.model';
|
|
7
7
|
import { ComponentType } from '@angular/cdk/portal';
|
|
8
8
|
import { WbComponentPortal } from '../portal/wb-component-portal';
|
|
9
|
-
import { AbstractType, Type } from '@angular/core';
|
|
9
|
+
import { AbstractType, Injector, Type } from '@angular/core';
|
|
10
10
|
import { ɵWorkbenchLayout } from '../layout/ɵworkbench-layout';
|
|
11
11
|
import { ɵWorkbenchDialog } from '../dialog/ɵworkbench-dialog';
|
|
12
12
|
import { Blockable } from '../glass-pane/blockable';
|
|
13
|
-
import { ViewState } from '../routing/routing.model';
|
|
14
13
|
import { ClassList } from '../common/class-list';
|
|
14
|
+
import { ViewState } from '../routing/routing.model';
|
|
15
|
+
import { UUID } from '../common/uuid.util';
|
|
15
16
|
export declare class ɵWorkbenchView implements WorkbenchView, Blockable {
|
|
16
|
-
readonly id:
|
|
17
|
+
readonly id: ViewId;
|
|
17
18
|
private readonly _workbenchId;
|
|
18
19
|
private readonly _workbenchService;
|
|
19
20
|
private readonly _workbenchLayoutService;
|
|
21
|
+
private readonly _router;
|
|
20
22
|
private readonly _workbenchRouter;
|
|
23
|
+
private readonly _childrenOutletContexts;
|
|
21
24
|
private readonly _partRegistry;
|
|
22
25
|
private readonly _viewDragService;
|
|
23
|
-
private readonly _router;
|
|
24
26
|
private readonly _activationInstantProvider;
|
|
25
27
|
private readonly _workbenchDialogRegistry;
|
|
26
28
|
private readonly _part$;
|
|
@@ -30,43 +32,68 @@ export declare class ɵWorkbenchView implements WorkbenchView, Blockable {
|
|
|
30
32
|
private readonly _destroyRef;
|
|
31
33
|
private _activationInstant;
|
|
32
34
|
private _closable;
|
|
35
|
+
uid: UUID;
|
|
36
|
+
alternativeId: string | undefined;
|
|
37
|
+
navigationHint: string | undefined;
|
|
38
|
+
urlSegments: UrlSegment[];
|
|
39
|
+
state: ViewState;
|
|
33
40
|
title: string | null;
|
|
34
41
|
heading: string | null;
|
|
35
42
|
dirty: boolean;
|
|
36
43
|
scrollTop: number;
|
|
37
44
|
scrollLeft: number;
|
|
38
|
-
state: ViewState;
|
|
39
45
|
readonly active$: BehaviorSubject<boolean>;
|
|
40
46
|
readonly menuItems$: Observable<WorkbenchMenuItem[]>;
|
|
41
47
|
readonly blockedBy$: BehaviorSubject<ɵWorkbenchDialog<unknown> | null>;
|
|
42
48
|
readonly portal: WbComponentPortal;
|
|
43
49
|
readonly classList: ClassList;
|
|
44
|
-
constructor(id:
|
|
50
|
+
constructor(id: ViewId, options: {
|
|
45
51
|
component: ComponentType<ViewComponent>;
|
|
46
52
|
});
|
|
47
53
|
private createPortal;
|
|
48
54
|
/**
|
|
49
|
-
* Method invoked
|
|
55
|
+
* Method invoked when a route is about to be activated for this view.
|
|
56
|
+
*/
|
|
57
|
+
private onRouteActivate;
|
|
58
|
+
/**
|
|
59
|
+
* Method invoked when the workbench layout has changed.
|
|
60
|
+
*
|
|
61
|
+
* This method:
|
|
62
|
+
* - is called on every layout change, including changes not relevant for this view.
|
|
63
|
+
* - is called after successful navigation, i.e., after {@link onRouteActivate}.
|
|
50
64
|
*/
|
|
51
65
|
onLayoutChange(layout: ɵWorkbenchLayout): void;
|
|
66
|
+
/**
|
|
67
|
+
* Returns the component of this view. Returns `null` if not navigated the view, or before it was activated for the first time.
|
|
68
|
+
*/
|
|
69
|
+
getComponent<T = unknown>(): T | null;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the injector of the component. Returns `null` if not navigated the view, or before it was activated for the first time.
|
|
72
|
+
*/
|
|
73
|
+
getComponentInjector(): Injector | null;
|
|
74
|
+
/** @inheritDoc */
|
|
52
75
|
get first(): boolean;
|
|
76
|
+
/** @inheritDoc */
|
|
53
77
|
get last(): boolean;
|
|
78
|
+
/** @inheritDoc */
|
|
54
79
|
get position(): number;
|
|
80
|
+
/** @inheritDoc */
|
|
55
81
|
set cssClass(cssClass: string | string[]);
|
|
82
|
+
/** @inheritDoc */
|
|
56
83
|
get cssClass(): string[];
|
|
84
|
+
/** @inheritDoc */
|
|
57
85
|
get active(): boolean;
|
|
86
|
+
/** @inheritDoc */
|
|
58
87
|
set closable(closable: boolean);
|
|
88
|
+
/** @inheritDoc */
|
|
59
89
|
get closable(): boolean;
|
|
90
|
+
/** @inheritDoc */
|
|
60
91
|
activate(options?: {
|
|
61
92
|
skipLocationChange?: boolean;
|
|
62
93
|
}): Promise<boolean>;
|
|
63
|
-
/**
|
|
64
|
-
* Sets whether the tab of this view is scrolled into view in the tabbar.
|
|
65
|
-
*/
|
|
94
|
+
/** @inheritDoc */
|
|
66
95
|
set scrolledIntoView(scrolledIntoView: boolean);
|
|
67
|
-
/**
|
|
68
|
-
* @inheritDoc
|
|
69
|
-
*/
|
|
96
|
+
/** @inheritDoc */
|
|
70
97
|
get scrolledIntoView(): boolean;
|
|
71
98
|
/**
|
|
72
99
|
* Informs whether the tab of this view is scrolled into view in the tabbar.
|
|
@@ -74,14 +101,17 @@ export declare class ɵWorkbenchView implements WorkbenchView, Blockable {
|
|
|
74
101
|
*/
|
|
75
102
|
get scrolledIntoView$(): Observable<boolean>;
|
|
76
103
|
get activationInstant(): number | undefined;
|
|
104
|
+
/** @inheritDoc */
|
|
77
105
|
get part(): WorkbenchPart;
|
|
106
|
+
/** @inheritDoc */
|
|
78
107
|
close(target?: 'self' | 'all-views' | 'other-views' | 'views-to-the-right' | 'views-to-the-left'): Promise<boolean>;
|
|
108
|
+
/** @inheritDoc */
|
|
79
109
|
move(target: 'new-window'): void;
|
|
80
110
|
move(partId: string, options?: {
|
|
81
111
|
region?: 'north' | 'south' | 'west' | 'east';
|
|
82
112
|
workbenchId?: string;
|
|
83
113
|
}): void;
|
|
84
|
-
|
|
114
|
+
/** @inheritDoc */
|
|
85
115
|
registerMenuItem(menuItem: WorkbenchMenuItem): Disposable;
|
|
86
116
|
/**
|
|
87
117
|
* Registers an adapter for this view, replacing any previously registered adapter of the same type.
|
|
@@ -110,6 +140,22 @@ export declare class ɵWorkbenchView implements WorkbenchView, Blockable {
|
|
|
110
140
|
* Blocks this view when a dialog overlays it.
|
|
111
141
|
*/
|
|
112
142
|
private blockWhenDialogOpened;
|
|
143
|
+
/**
|
|
144
|
+
* Detects when to activate a route for this view.
|
|
145
|
+
*
|
|
146
|
+
* Listening for route activations on the view's router outlet is not sufficient,
|
|
147
|
+
* as the outlet does not report subsequent activations of nested child routes.
|
|
148
|
+
*
|
|
149
|
+
* Example:
|
|
150
|
+
* ```html
|
|
151
|
+
* <router-outlet #router_outlet="outlet"
|
|
152
|
+
* (activate)="onActivateRoute(router_outlet.activatedRoute)">
|
|
153
|
+
* </router-outlet>
|
|
154
|
+
* ```
|
|
155
|
+
*
|
|
156
|
+
* Instead, we subscribe to Angular's `ActivationStart` router events and update the view properties accordingly.
|
|
157
|
+
*/
|
|
158
|
+
private detectRouteActivation;
|
|
113
159
|
destroy(): void;
|
|
114
160
|
}
|
|
115
161
|
/**
|