@scion/workbench 17.0.0-beta.6 → 17.0.0-beta.8
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/class-list.mjs +61 -0
- 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 +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +3 -3
- 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 +3 -3
- 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 +8 -26
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +3 -3
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -10
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +7 -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 +7 -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 +53 -16
- 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-names.mjs +8 -9
- 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 +3 -3
- 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/common/microfrontend.util.mjs +55 -0
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +34 -22
- 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 +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +53 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +85 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +140 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +122 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +11 -10
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +3 -3
- 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 +30 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +130 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +18 -30
- 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 +9 -31
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +88 -144
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.mjs +23 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +41 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +30 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +125 -0
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +103 -0
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +45 -47
- 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 +11 -8
- package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
- package/esm2022/lib/part/part.component.mjs +7 -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 +19 -19
- 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 +16 -13
- 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 +3 -3
- package/esm2022/lib/popup/popup.config.mjs +1 -1
- package/esm2022/lib/popup/popup.service.mjs +3 -3
- 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 +96 -71
- package/esm2022/lib/routing/routing.model.mjs +11 -0
- package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -50
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
- package/esm2022/lib/routing/workbench-navigational-states.mjs +11 -25
- package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-route-data.mjs +15 -14
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -33
- package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +65 -36
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +317 -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 +8 -38
- 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 +135 -28
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +33 -32
- 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 +11 -9
- package/esm2022/lib/workbench-config.mjs +15 -0
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +14 -10
- package/esm2022/lib/workbench.constants.mjs +8 -10
- 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 +5527 -4289
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/class-list.d.ts +51 -0
- package/lib/common/objects.util.d.ts +17 -0
- package/lib/common/uuid.util.d.ts +8 -0
- package/lib/dialog/workbench-dialog.d.ts +3 -7
- package/lib/dialog/workbench-dialog.options.d.ts +5 -4
- 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 +4 -6
- package/lib/filter-field/filter-field.component.d.ts +1 -1
- 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 +22 -6
- 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/logger-names.d.ts +7 -7
- package/lib/logging/logging-support.d.ts +2 -2
- 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/common/microfrontend.util.d.ts +22 -0
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +15 -9
- package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.d.ts +52 -0
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +37 -0
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
- package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-capability-interceptor.service.d.ts → microfrontend-popup-capability-validator.interceptor.d.ts} +3 -3
- package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-intent-interceptor.service.d.ts → microfrontend-popup-intent-handler.interceptor.d.ts} +9 -6
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +7 -10
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +2 -9
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +12 -23
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.d.ts +14 -0
- package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/routing/{microfrontend-view-capability-interceptor.service.d.ts → microfrontend-view-capability-validator.interceptor.d.ts} +3 -3
- package/lib/microfrontend-platform/routing/{microfrontend-view-intent-interceptor.service.d.ts → microfrontend-view-intent-handler.interceptor.d.ts} +6 -5
- package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +49 -0
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -2
- 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.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 -1
- package/lib/routing/router.util.d.ts +45 -31
- package/lib/routing/routing.model.d.ts +129 -0
- package/lib/routing/url-segment-matcher.d.ts +20 -0
- package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -16
- package/lib/routing/workbench-dialog-differ.d.ts +25 -0
- package/lib/routing/workbench-layout-differ.d.ts +4 -7
- package/lib/routing/workbench-navigational-states.d.ts +11 -21
- package/lib/routing/workbench-route-data.d.ts +14 -12
- package/lib/routing/workbench-router-link.directive.d.ts +22 -7
- package/lib/routing/workbench-router.service.d.ts +42 -157
- package/lib/routing/workbench-url-observer.service.d.ts +18 -6
- package/lib/routing//311/265workbench-router.service.d.ts +75 -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 +46 -13
- package/lib/view/workbench-view.registry.d.ts +4 -3
- package/lib/view//311/265workbench-view.model.d.ts +79 -14
- package/lib/view-dnd/grid-drop-targets.util.d.ts +15 -17
- package/lib/view-dnd/view-drag.service.d.ts +12 -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-popup/microfrontend-popup-capability-interceptor.service.mjs +0 -30
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-interceptor.service.mjs +0 -130
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-navigational-states.mjs +0 -22
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-routes.mjs +0 -71
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-interceptor.service.mjs +0 -54
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-interceptor.service.mjs +0 -123
- package/esm2022/lib/routing/navigation-state.resolver.mjs +0 -54
- 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/routing/microfrontend-navigational-states.d.ts +0 -11
- package/lib/microfrontend-platform/routing/microfrontend-routes.d.ts +0 -38
- package/lib/routing/navigation-state.resolver.d.ts +0 -12
- package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Swiss Federal Railways
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made
|
|
5
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
-
*
|
|
8
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
-
*/
|
|
10
|
-
import { Dictionaries } from '@scion/toolkit/util';
|
|
11
|
-
import { WorkbenchRouteData } from '../../routing/workbench-route-data';
|
|
12
|
-
import { MicrofrontendNavigationalStates } from './microfrontend-navigational-states';
|
|
13
|
-
export var MicrofrontendViewRoutes;
|
|
14
|
-
(function (MicrofrontendViewRoutes) {
|
|
15
|
-
/**
|
|
16
|
-
* Route prefix to identify routes of microfrontends.
|
|
17
|
-
*/
|
|
18
|
-
MicrofrontendViewRoutes.ROUTE_PREFIX = '~';
|
|
19
|
-
function isMicrofrontendRoute(route) {
|
|
20
|
-
const segments = Array.isArray(route) ? route : route.url;
|
|
21
|
-
return segments.length === 2 && segments[0].path === MicrofrontendViewRoutes.ROUTE_PREFIX;
|
|
22
|
-
}
|
|
23
|
-
MicrofrontendViewRoutes.isMicrofrontendRoute = isMicrofrontendRoute;
|
|
24
|
-
/**
|
|
25
|
-
* Parses the params of a given microfrontend route. Throws if not a valid microfrontend route.
|
|
26
|
-
*
|
|
27
|
-
* Note that transient parameters are not part of the URL segments and are only returned if passing a {@link ActivatedRouteSnapshot} object.
|
|
28
|
-
*/
|
|
29
|
-
function parseParams(route) {
|
|
30
|
-
if (!isMicrofrontendRoute(route)) {
|
|
31
|
-
throw Error(`[NullMicrofrontendRouteError] Given URL segments do not match a microfrontend route. [segments=${route.toString()}]`);
|
|
32
|
-
}
|
|
33
|
-
const segments = Array.isArray(route) ? route : route.url;
|
|
34
|
-
return {
|
|
35
|
-
viewCapabilityId: segments[1].path,
|
|
36
|
-
qualifier: segments[0].parameters,
|
|
37
|
-
urlParams: segments[1].parameters,
|
|
38
|
-
transientParams: Array.isArray(route) ? {} : route.data[WorkbenchRouteData.state]?.[MicrofrontendNavigationalStates.transientParams] || {},
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
MicrofrontendViewRoutes.parseParams = parseParams;
|
|
42
|
-
/**
|
|
43
|
-
* Splits given params into two groups of URL and transient params.
|
|
44
|
-
*
|
|
45
|
-
* URL params are passed with the URL, transient params via transient state. Transient params do not survive a page reload.
|
|
46
|
-
*/
|
|
47
|
-
function splitParams(params, viewCapability) {
|
|
48
|
-
const transientParamNames = new Set(viewCapability.params?.filter(param => param.transient).map(param => param.name));
|
|
49
|
-
return Object.entries(Dictionaries.coerce(params)).reduce((groups, [name, value]) => {
|
|
50
|
-
if (transientParamNames.has(name)) {
|
|
51
|
-
groups.transientParams[name] = value;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
groups.urlParams[name] = value;
|
|
55
|
-
}
|
|
56
|
-
return groups;
|
|
57
|
-
}, { urlParams: {}, transientParams: {} });
|
|
58
|
-
}
|
|
59
|
-
MicrofrontendViewRoutes.splitParams = splitParams;
|
|
60
|
-
/**
|
|
61
|
-
* Builds the command array to be passed to the workbench router for navigating to a microfrontend view.
|
|
62
|
-
*
|
|
63
|
-
* Format: ['~', {qualifier}, '<viewCapabilityId>', {params}]
|
|
64
|
-
*/
|
|
65
|
-
function buildRouterNavigateCommand(viewCapabilityId, qualifier, params) {
|
|
66
|
-
const paramsCommand = Object.keys(params).length > 0 ? [params] : [];
|
|
67
|
-
return [MicrofrontendViewRoutes.ROUTE_PREFIX, qualifier, viewCapabilityId, ...paramsCommand];
|
|
68
|
-
}
|
|
69
|
-
MicrofrontendViewRoutes.buildRouterNavigateCommand = buildRouterNavigateCommand;
|
|
70
|
-
})(MicrofrontendViewRoutes || (MicrofrontendViewRoutes = {}));
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL3JvdXRpbmcvbWljcm9mcm9udGVuZC1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFLSCxPQUFPLEVBQUMsWUFBWSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFcEYsTUFBTSxLQUFXLHVCQUF1QixDQTJEdkM7QUEzREQsV0FBaUIsdUJBQXVCO0lBRXRDOztPQUVHO0lBQ1Usb0NBQVksR0FBRyxHQUFHLENBQUM7SUFFaEMsU0FBZ0Isb0JBQW9CLENBQUMsS0FBNEM7UUFDL0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyx3QkFBQSxZQUFZLENBQUM7SUFDcEUsQ0FBQztJQUhlLDRDQUFvQix1QkFHbkMsQ0FBQTtJQUVEOzs7O09BSUc7SUFDSCxTQUFnQixXQUFXLENBQUMsS0FBNEM7UUFDdEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sS0FBSyxDQUFDLGtHQUFrRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3BJO1FBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzFELE9BQU87WUFDTCxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNsQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDakMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1lBQ2pDLGVBQWUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFO1NBQzNJLENBQUM7SUFDSixDQUFDO0lBWmUsbUNBQVcsY0FZMUIsQ0FBQTtJQUVEOzs7O09BSUc7SUFDSCxTQUFnQixXQUFXLENBQUMsTUFBaUQsRUFBRSxjQUF1QztRQUNwSCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXRILE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbEYsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3RDO2lCQUNJO2dCQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ2hDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUMsU0FBUyxFQUFFLEVBQWdCLEVBQUUsZUFBZSxFQUFFLEVBQWdCLEVBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFaZSxtQ0FBVyxjQVkxQixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILFNBQWdCLDBCQUEwQixDQUFDLGdCQUF3QixFQUFFLFNBQW9CLEVBQUUsTUFBYztRQUN2RyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLENBQUMsd0JBQUEsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFIZSxrREFBMEIsNkJBR3pDLENBQUE7QUFDSCxDQUFDLEVBM0RnQix1QkFBdUIsS0FBdkIsdUJBQXVCLFFBMkR2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBQYXJhbXMsIFVybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXdDYXBhYmlsaXR5fSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge1F1YWxpZmllcn0gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtEaWN0aW9uYXJpZXMsIERpY3Rpb25hcnl9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZURhdGF9IGZyb20gJy4uLy4uL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlLWRhdGEnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kTmF2aWdhdGlvbmFsU3RhdGVzfSBmcm9tICcuL21pY3JvZnJvbnRlbmQtbmF2aWdhdGlvbmFsLXN0YXRlcyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMge1xuXG4gIC8qKlxuICAgKiBSb3V0ZSBwcmVmaXggdG8gaWRlbnRpZnkgcm91dGVzIG9mIG1pY3JvZnJvbnRlbmRzLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IFJPVVRFX1BSRUZJWCA9ICd+JztcblxuICBleHBvcnQgZnVuY3Rpb24gaXNNaWNyb2Zyb250ZW5kUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBVcmxTZWdtZW50W10pOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IEFycmF5LmlzQXJyYXkocm91dGUpID8gcm91dGUgOiByb3V0ZS51cmw7XG4gICAgcmV0dXJuIHNlZ21lbnRzLmxlbmd0aCA9PT0gMiAmJiBzZWdtZW50c1swXS5wYXRoID09PSBST1VURV9QUkVGSVg7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHRoZSBwYXJhbXMgb2YgYSBnaXZlbiBtaWNyb2Zyb250ZW5kIHJvdXRlLiBUaHJvd3MgaWYgbm90IGEgdmFsaWQgbWljcm9mcm9udGVuZCByb3V0ZS5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRyYW5zaWVudCBwYXJhbWV0ZXJzIGFyZSBub3QgcGFydCBvZiB0aGUgVVJMIHNlZ21lbnRzIGFuZCBhcmUgb25seSByZXR1cm5lZCBpZiBwYXNzaW5nIGEge0BsaW5rIEFjdGl2YXRlZFJvdXRlU25hcHNob3R9IG9iamVjdC5cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhcmFtcyhyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IFVybFNlZ21lbnRbXSk6IE1pY3JvZnJvbnRlbmRSb3V0ZVBhcmFtcyB7XG4gICAgaWYgKCFpc01pY3JvZnJvbnRlbmRSb3V0ZShyb3V0ZSkpIHtcbiAgICAgIHRocm93IEVycm9yKGBbTnVsbE1pY3JvZnJvbnRlbmRSb3V0ZUVycm9yXSBHaXZlbiBVUkwgc2VnbWVudHMgZG8gbm90IG1hdGNoIGEgbWljcm9mcm9udGVuZCByb3V0ZS4gW3NlZ21lbnRzPSR7cm91dGUudG9TdHJpbmcoKX1dYCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VnbWVudHMgPSBBcnJheS5pc0FycmF5KHJvdXRlKSA/IHJvdXRlIDogcm91dGUudXJsO1xuICAgIHJldHVybiB7XG4gICAgICB2aWV3Q2FwYWJpbGl0eUlkOiBzZWdtZW50c1sxXS5wYXRoLFxuICAgICAgcXVhbGlmaWVyOiBzZWdtZW50c1swXS5wYXJhbWV0ZXJzLFxuICAgICAgdXJsUGFyYW1zOiBzZWdtZW50c1sxXS5wYXJhbWV0ZXJzLFxuICAgICAgdHJhbnNpZW50UGFyYW1zOiBBcnJheS5pc0FycmF5KHJvdXRlKSA/IHt9IDogcm91dGUuZGF0YVtXb3JrYmVuY2hSb3V0ZURhdGEuc3RhdGVdPy5bTWljcm9mcm9udGVuZE5hdmlnYXRpb25hbFN0YXRlcy50cmFuc2llbnRQYXJhbXNdIHx8IHt9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU3BsaXRzIGdpdmVuIHBhcmFtcyBpbnRvIHR3byBncm91cHMgb2YgVVJMIGFuZCB0cmFuc2llbnQgcGFyYW1zLlxuICAgKlxuICAgKiBVUkwgcGFyYW1zIGFyZSBwYXNzZWQgd2l0aCB0aGUgVVJMLCB0cmFuc2llbnQgcGFyYW1zIHZpYSB0cmFuc2llbnQgc3RhdGUuIFRyYW5zaWVudCBwYXJhbXMgZG8gbm90IHN1cnZpdmUgYSBwYWdlIHJlbG9hZC5cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzcGxpdFBhcmFtcyhwYXJhbXM6IE1hcDxzdHJpbmcsIGFueT4gfCBEaWN0aW9uYXJ5IHwgdW5kZWZpbmVkLCB2aWV3Q2FwYWJpbGl0eTogV29ya2JlbmNoVmlld0NhcGFiaWxpdHkpOiB7dXJsUGFyYW1zOiBEaWN0aW9uYXJ5OyB0cmFuc2llbnRQYXJhbXM6IERpY3Rpb25hcnl9IHtcbiAgICBjb25zdCB0cmFuc2llbnRQYXJhbU5hbWVzID0gbmV3IFNldCh2aWV3Q2FwYWJpbGl0eS5wYXJhbXM/LmZpbHRlcihwYXJhbSA9PiBwYXJhbS50cmFuc2llbnQpLm1hcChwYXJhbSA9PiBwYXJhbS5uYW1lKSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoRGljdGlvbmFyaWVzLmNvZXJjZShwYXJhbXMpKS5yZWR1Y2UoKGdyb3VwcywgW25hbWUsIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHRyYW5zaWVudFBhcmFtTmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgIGdyb3Vwcy50cmFuc2llbnRQYXJhbXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBncm91cHMudXJsUGFyYW1zW25hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JvdXBzO1xuICAgIH0sIHt1cmxQYXJhbXM6IHt9IGFzIERpY3Rpb25hcnksIHRyYW5zaWVudFBhcmFtczoge30gYXMgRGljdGlvbmFyeX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgY29tbWFuZCBhcnJheSB0byBiZSBwYXNzZWQgdG8gdGhlIHdvcmtiZW5jaCByb3V0ZXIgZm9yIG5hdmlnYXRpbmcgdG8gYSBtaWNyb2Zyb250ZW5kIHZpZXcuXG4gICAqXG4gICAqIEZvcm1hdDogWyd+Jywge3F1YWxpZmllcn0sICc8dmlld0NhcGFiaWxpdHlJZD4nLCB7cGFyYW1zfV1cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlck5hdmlnYXRlQ29tbWFuZCh2aWV3Q2FwYWJpbGl0eUlkOiBzdHJpbmcsIHF1YWxpZmllcjogUXVhbGlmaWVyLCBwYXJhbXM6IFBhcmFtcyk6IGFueVtdIHtcbiAgICBjb25zdCBwYXJhbXNDb21tYW5kID0gT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPiAwID8gW3BhcmFtc10gOiBbXTtcbiAgICByZXR1cm4gW1JPVVRFX1BSRUZJWCwgcXVhbGlmaWVyLCB2aWV3Q2FwYWJpbGl0eUlkLCAuLi5wYXJhbXNDb21tYW5kXTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pY3JvZnJvbnRlbmRSb3V0ZVBhcmFtcyB7XG4gIHZpZXdDYXBhYmlsaXR5SWQ6IHN0cmluZztcbiAgcXVhbGlmaWVyOiBQYXJhbXM7XG4gIHVybFBhcmFtczogUGFyYW1zO1xuICB0cmFuc2llbnRQYXJhbXM6IFBhcmFtcztcbn1cbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
3
|
-
import { Crypto } from '@scion/toolkit/crypto';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Asserts view capabilities to have required properties and assigns each view capability a stable identifer required for persistent navigation.
|
|
7
|
-
*/
|
|
8
|
-
export class MicrofrontendViewCapabilityInterceptor {
|
|
9
|
-
async intercept(capability) {
|
|
10
|
-
if (capability.type !== WorkbenchCapabilities.View) {
|
|
11
|
-
return capability;
|
|
12
|
-
}
|
|
13
|
-
const viewCapability = capability;
|
|
14
|
-
// Assert the view capability to have a qualifier set.
|
|
15
|
-
if (!viewCapability.qualifier || !Object.keys(viewCapability.qualifier).length) {
|
|
16
|
-
throw Error(`[NullQualifierError] View capability requires a qualifier [capability=${JSON.stringify(viewCapability)}]`);
|
|
17
|
-
}
|
|
18
|
-
// Assert the view capability to have a path set.
|
|
19
|
-
const path = viewCapability.properties?.path;
|
|
20
|
-
if (path === undefined || path === null) {
|
|
21
|
-
throw Error(`[NullPathError] View capability requires a path to the microfrontend in its properties [capability=${JSON.stringify(viewCapability)}]`);
|
|
22
|
-
}
|
|
23
|
-
// Set a stable identifier required for persistent navigation.
|
|
24
|
-
return {
|
|
25
|
-
...viewCapability,
|
|
26
|
-
metadata: {
|
|
27
|
-
...viewCapability.metadata,
|
|
28
|
-
id: await createStableViewIdentifier(viewCapability),
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewCapabilityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewCapabilityInterceptor }); }
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewCapabilityInterceptor, decorators: [{
|
|
36
|
-
type: Injectable
|
|
37
|
-
}] });
|
|
38
|
-
/**
|
|
39
|
-
* Creates a stable identifier for given view capability.
|
|
40
|
-
*/
|
|
41
|
-
async function createStableViewIdentifier(capability) {
|
|
42
|
-
const qualifier = capability.qualifier;
|
|
43
|
-
const vendor = capability.metadata.appSymbolicName;
|
|
44
|
-
// Create identifier consisting of vendor and sorted qualifier entries.
|
|
45
|
-
const identifier = Object.keys(qualifier)
|
|
46
|
-
.sort()
|
|
47
|
-
.reduce((acc, qualifierKey) => acc.concat(qualifierKey).concat(`${qualifier[qualifierKey]}`), [vendor])
|
|
48
|
-
.join(';');
|
|
49
|
-
// Hash the identifier.
|
|
50
|
-
const identifierHash = await Crypto.digest(identifier);
|
|
51
|
-
// Use the first 7 digits of the hash.
|
|
52
|
-
return identifierHash.substring(0, 7);
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC12aWV3LWNhcGFiaWxpdHktaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vcm91dGluZy9taWNyb2Zyb250ZW5kLXZpZXctY2FwYWJpbGl0eS1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHFCQUFxQixFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFN0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0NBQXNDO0lBRTFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBc0I7UUFDM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRTtZQUNsRCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELE1BQU0sY0FBYyxHQUFHLFVBQXFDLENBQUM7UUFDN0Qsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzlFLE1BQU0sS0FBSyxDQUFDLHlFQUF5RSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6SDtRQUVELGlEQUFpRDtRQUNqRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztRQUM3QyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUN2QyxNQUFNLEtBQUssQ0FBQyxzR0FBc0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEo7UUFFRCw4REFBOEQ7UUFDOUQsT0FBTztZQUNMLEdBQUcsY0FBYztZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxjQUFjLENBQUMsUUFBUztnQkFDM0IsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUMsY0FBYyxDQUFDO2FBQ3JEO1NBQ0YsQ0FBQztJQUNKLENBQUM7OEdBM0JVLHNDQUFzQztrSEFBdEMsc0NBQXNDOzsyRkFBdEMsc0NBQXNDO2tCQURsRCxVQUFVOztBQStCWDs7R0FFRztBQUNILEtBQUssVUFBVSwwQkFBMEIsQ0FBQyxVQUFtQztJQUMzRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBVSxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxRQUFTLENBQUMsZUFBZSxDQUFDO0lBRXBELHVFQUF1RTtJQUN2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN0QyxJQUFJLEVBQUU7U0FDTixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQ3BGLENBQUMsTUFBTSxDQUFDLENBQ1Q7U0FDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYix1QkFBdUI7SUFDdkIsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELHNDQUFzQztJQUN0QyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2FwYWJpbGl0eSwgQ2FwYWJpbGl0eUludGVyY2VwdG9yfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDYXBhYmlsaXRpZXMsIFdvcmtiZW5jaFZpZXdDYXBhYmlsaXR5fSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge0NyeXB0b30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvY3J5cHRvJztcblxuLyoqXG4gKiBBc3NlcnRzIHZpZXcgY2FwYWJpbGl0aWVzIHRvIGhhdmUgcmVxdWlyZWQgcHJvcGVydGllcyBhbmQgYXNzaWducyBlYWNoIHZpZXcgY2FwYWJpbGl0eSBhIHN0YWJsZSBpZGVudGlmZXIgcmVxdWlyZWQgZm9yIHBlcnNpc3RlbnQgbmF2aWdhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRWaWV3Q2FwYWJpbGl0eUludGVyY2VwdG9yIGltcGxlbWVudHMgQ2FwYWJpbGl0eUludGVyY2VwdG9yIHtcblxuICBwdWJsaWMgYXN5bmMgaW50ZXJjZXB0KGNhcGFiaWxpdHk6IENhcGFiaWxpdHkpOiBQcm9taXNlPENhcGFiaWxpdHk+IHtcbiAgICBpZiAoY2FwYWJpbGl0eS50eXBlICE9PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuVmlldykge1xuICAgICAgcmV0dXJuIGNhcGFiaWxpdHk7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld0NhcGFiaWxpdHkgPSBjYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFZpZXdDYXBhYmlsaXR5O1xuICAgIC8vIEFzc2VydCB0aGUgdmlldyBjYXBhYmlsaXR5IHRvIGhhdmUgYSBxdWFsaWZpZXIgc2V0LlxuICAgIGlmICghdmlld0NhcGFiaWxpdHkucXVhbGlmaWVyIHx8ICFPYmplY3Qua2V5cyh2aWV3Q2FwYWJpbGl0eS5xdWFsaWZpZXIpLmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtOdWxsUXVhbGlmaWVyRXJyb3JdIFZpZXcgY2FwYWJpbGl0eSByZXF1aXJlcyBhIHF1YWxpZmllciBbY2FwYWJpbGl0eT0ke0pTT04uc3RyaW5naWZ5KHZpZXdDYXBhYmlsaXR5KX1dYCk7XG4gICAgfVxuXG4gICAgLy8gQXNzZXJ0IHRoZSB2aWV3IGNhcGFiaWxpdHkgdG8gaGF2ZSBhIHBhdGggc2V0LlxuICAgIGNvbnN0IHBhdGggPSB2aWV3Q2FwYWJpbGl0eS5wcm9wZXJ0aWVzPy5wYXRoO1xuICAgIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtOdWxsUGF0aEVycm9yXSBWaWV3IGNhcGFiaWxpdHkgcmVxdWlyZXMgYSBwYXRoIHRvIHRoZSBtaWNyb2Zyb250ZW5kIGluIGl0cyBwcm9wZXJ0aWVzIFtjYXBhYmlsaXR5PSR7SlNPTi5zdHJpbmdpZnkodmlld0NhcGFiaWxpdHkpfV1gKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgYSBzdGFibGUgaWRlbnRpZmllciByZXF1aXJlZCBmb3IgcGVyc2lzdGVudCBuYXZpZ2F0aW9uLlxuICAgIHJldHVybiB7XG4gICAgICAuLi52aWV3Q2FwYWJpbGl0eSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIC4uLnZpZXdDYXBhYmlsaXR5Lm1ldGFkYXRhISxcbiAgICAgICAgaWQ6IGF3YWl0IGNyZWF0ZVN0YWJsZVZpZXdJZGVudGlmaWVyKHZpZXdDYXBhYmlsaXR5KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGFibGUgaWRlbnRpZmllciBmb3IgZ2l2ZW4gdmlldyBjYXBhYmlsaXR5LlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTdGFibGVWaWV3SWRlbnRpZmllcihjYXBhYmlsaXR5OiBXb3JrYmVuY2hWaWV3Q2FwYWJpbGl0eSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHF1YWxpZmllciA9IGNhcGFiaWxpdHkucXVhbGlmaWVyITtcbiAgY29uc3QgdmVuZG9yID0gY2FwYWJpbGl0eS5tZXRhZGF0YSEuYXBwU3ltYm9saWNOYW1lO1xuXG4gIC8vIENyZWF0ZSBpZGVudGlmaWVyIGNvbnNpc3Rpbmcgb2YgdmVuZG9yIGFuZCBzb3J0ZWQgcXVhbGlmaWVyIGVudHJpZXMuXG4gIGNvbnN0IGlkZW50aWZpZXIgPSBPYmplY3Qua2V5cyhxdWFsaWZpZXIpXG4gICAgLnNvcnQoKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBxdWFsaWZpZXJLZXkpID0+IGFjYy5jb25jYXQocXVhbGlmaWVyS2V5KS5jb25jYXQoYCR7cXVhbGlmaWVyW3F1YWxpZmllcktleV19YCksXG4gICAgICBbdmVuZG9yXSxcbiAgICApXG4gICAgLmpvaW4oJzsnKTtcblxuICAvLyBIYXNoIHRoZSBpZGVudGlmaWVyLlxuICBjb25zdCBpZGVudGlmaWVySGFzaCA9IGF3YWl0IENyeXB0by5kaWdlc3QoaWRlbnRpZmllcik7XG4gIC8vIFVzZSB0aGUgZmlyc3QgNyBkaWdpdHMgb2YgdGhlIGhhc2guXG4gIHJldHVybiBpZGVudGlmaWVySGFzaC5zdWJzdHJpbmcoMCwgNyk7XG59XG4iXX0=
|
package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-interceptor.service.mjs
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Swiss Federal Railways
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made
|
|
5
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
-
*
|
|
8
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
-
*/
|
|
10
|
-
import { MessageClient, MessageHeaders, ResponseStatusCodes } from '@scion/microfrontend-platform';
|
|
11
|
-
import { Injectable } from '@angular/core';
|
|
12
|
-
import { WorkbenchCapabilities } from '@scion/workbench-client';
|
|
13
|
-
import { MicrofrontendViewRoutes } from './microfrontend-routes';
|
|
14
|
-
import { LoggerNames } from '../../logging';
|
|
15
|
-
import { Beans } from '@scion/toolkit/bean-manager';
|
|
16
|
-
import { Arrays, Dictionaries } from '@scion/toolkit/util';
|
|
17
|
-
import { MicrofrontendNavigationalStates } from './microfrontend-navigational-states';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "../../routing/workbench-router.service";
|
|
20
|
-
import * as i2 from "../../view/workbench-view.registry";
|
|
21
|
-
import * as i3 from "../../logging";
|
|
22
|
-
/**
|
|
23
|
-
* Handles microfrontend view intents, instructing the Workbench Router to navigate to the microfrontend of given view capabilities.
|
|
24
|
-
*
|
|
25
|
-
* View intents are handled in this interceptor in order to support microfrontends not using the SCION Workbench. They are not transported to the providing application.
|
|
26
|
-
*/
|
|
27
|
-
export class MicrofrontendViewIntentInterceptor {
|
|
28
|
-
constructor(_workbenchRouter, _viewRegistry, _logger) {
|
|
29
|
-
this._workbenchRouter = _workbenchRouter;
|
|
30
|
-
this._viewRegistry = _viewRegistry;
|
|
31
|
-
this._logger = _logger;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* View intents are handled in this interceptor and then swallowed.
|
|
35
|
-
*/
|
|
36
|
-
intercept(intentMessage, next) {
|
|
37
|
-
if (intentMessage.intent.type === WorkbenchCapabilities.View) {
|
|
38
|
-
return this.consumeViewIntent(intentMessage);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return next.handle(intentMessage);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async consumeViewIntent(message) {
|
|
45
|
-
const replyTo = message.headers.get(MessageHeaders.ReplyTo);
|
|
46
|
-
const success = await this.navigate(message);
|
|
47
|
-
await Beans.get(MessageClient).publish(replyTo, success, { headers: new Map().set(MessageHeaders.Status, ResponseStatusCodes.TERMINAL) });
|
|
48
|
-
}
|
|
49
|
-
async navigate(message) {
|
|
50
|
-
const viewCapability = message.capability;
|
|
51
|
-
const intent = message.intent;
|
|
52
|
-
const extras = message.body ?? {};
|
|
53
|
-
const intentParams = Dictionaries.withoutUndefinedEntries(Dictionaries.coerce(intent.params));
|
|
54
|
-
const { urlParams, transientParams } = MicrofrontendViewRoutes.splitParams(intentParams, viewCapability);
|
|
55
|
-
const qualifier = Dictionaries.withoutUndefinedEntries(intent.qualifier);
|
|
56
|
-
const targets = this.resolveTargets(message, extras);
|
|
57
|
-
const routerNavigateCommand = extras.close ? [] : MicrofrontendViewRoutes.buildRouterNavigateCommand(viewCapability.metadata.id, qualifier, urlParams);
|
|
58
|
-
this._logger.debug(() => `Navigating to: ${viewCapability.properties.path}`, LoggerNames.MICROFRONTEND_ROUTING, routerNavigateCommand, viewCapability, transientParams);
|
|
59
|
-
const navigations = await Promise.all(Arrays.coerce(targets).map(target => {
|
|
60
|
-
return this._workbenchRouter.navigate(routerNavigateCommand, {
|
|
61
|
-
target,
|
|
62
|
-
activate: extras.activate,
|
|
63
|
-
close: extras.close,
|
|
64
|
-
blankInsertionIndex: extras.blankInsertionIndex,
|
|
65
|
-
cssClass: extras.cssClass,
|
|
66
|
-
state: {
|
|
67
|
-
[MicrofrontendNavigationalStates.transientParams]: transientParams,
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
}));
|
|
71
|
-
return navigations.every(Boolean);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Resolves the target(s) for this navigation.
|
|
75
|
-
*/
|
|
76
|
-
resolveTargets(intentMessage, extras) {
|
|
77
|
-
// Closing a microfrontend view by viewId is not allowed, as this would violate the concept of intent-based view navigation.
|
|
78
|
-
if (extras.close && extras.target) {
|
|
79
|
-
throw Error(`[WorkbenchRouterError][IllegalArgumentError] The target must be empty if closing a view [target=${(extras.target)}]`);
|
|
80
|
-
}
|
|
81
|
-
if (extras.close) {
|
|
82
|
-
return this.resolvePresentViewIds(intentMessage, { matchWildcardParams: true }) ?? [];
|
|
83
|
-
}
|
|
84
|
-
if (!extras.target || extras.target === 'auto') {
|
|
85
|
-
return this.resolvePresentViewIds(intentMessage) ?? 'blank';
|
|
86
|
-
}
|
|
87
|
-
return extras.target;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Resolves opened views which match the given view intent.
|
|
91
|
-
* A view matches if its view capability and all its required parameters are equal.
|
|
92
|
-
*
|
|
93
|
-
* Allows matching wildcard parameters by setting the option `matchWildcardParameters` to `true`.
|
|
94
|
-
*/
|
|
95
|
-
resolvePresentViewIds(intentMessage, options) {
|
|
96
|
-
const requiredParams = intentMessage.capability.params?.filter(param => param.required).map(param => param.name) ?? [];
|
|
97
|
-
const matchWildcardParams = options?.matchWildcardParams ?? false;
|
|
98
|
-
const viewIds = this._viewRegistry.views
|
|
99
|
-
.filter(view => {
|
|
100
|
-
if (!MicrofrontendViewRoutes.isMicrofrontendRoute(view.urlSegments)) {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
// Test whether the capability matches.
|
|
104
|
-
const viewParams = MicrofrontendViewRoutes.parseParams(view.urlSegments);
|
|
105
|
-
if (viewParams.viewCapabilityId !== intentMessage.capability.metadata.id) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
// Test whether all "navigational" params match.
|
|
109
|
-
return requiredParams.every(name => {
|
|
110
|
-
const intentParam = intentMessage.intent.params.get(name);
|
|
111
|
-
return (matchWildcardParams && intentParam === '*') || intentParam === viewParams.urlParams[name];
|
|
112
|
-
});
|
|
113
|
-
})
|
|
114
|
-
.map(view => view.id);
|
|
115
|
-
return viewIds.length ? viewIds : null;
|
|
116
|
-
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewIntentInterceptor, deps: [{ token: i1.WorkbenchRouter }, { token: i2.WorkbenchViewRegistry }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
118
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewIntentInterceptor }); }
|
|
119
|
-
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewIntentInterceptor, decorators: [{
|
|
121
|
-
type: Injectable
|
|
122
|
-
}], ctorParameters: () => [{ type: i1.WorkbenchRouter }, { type: i2.WorkbenchViewRegistry }, { type: i3.Logger }] });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC12aWV3LWludGVudC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvbWljcm9mcm9udGVuZC1wbGF0Zm9ybS9yb3V0aW5nL21pY3JvZnJvbnRlbmQtdmlldy1pbnRlbnQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBNEMsYUFBYSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzVJLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHFCQUFxQixFQUFxRCxNQUFNLHlCQUF5QixDQUFDO0FBRWxILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7O0FBR3BGOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sa0NBQWtDO0lBRTdDLFlBQW9CLGdCQUFpQyxFQUNqQyxhQUFvQyxFQUNwQyxPQUFlO1FBRmYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsYUFBNEIsRUFBRSxJQUE0QjtRQUN6RSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM5QzthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUE2RDtRQUMzRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMxSSxDQUFDO0lBRU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUE2RDtRQUNsRixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBcUMsQ0FBQztRQUNyRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUE4QixPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUU3RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5RixNQUFNLEVBQUMsU0FBUyxFQUFFLGVBQWUsRUFBQyxHQUFHLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdkcsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxTQUFVLENBQUMsQ0FBQztRQUMxRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDLFFBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXhKLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEssTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDM0QsTUFBTTtnQkFDTixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjtnQkFDL0MsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixLQUFLLEVBQUU7b0JBQ0wsQ0FBQywrQkFBK0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxlQUFlO2lCQUNuRTthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLGFBQTRCLEVBQUUsTUFBaUM7UUFDcEYsNEhBQTRIO1FBQzVILElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxDQUFDLG1HQUFtRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEk7UUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLEVBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckY7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUM7U0FDN0Q7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0sscUJBQXFCLENBQUMsYUFBNEIsRUFBRSxPQUF5QztRQUNuRyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2SCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFFbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLO2FBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ25FLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCx1Q0FBdUM7WUFDdkMsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RSxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsS0FBSyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pFLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxnREFBZ0Q7WUFDaEQsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNELE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxXQUFXLEtBQUssR0FBRyxDQUFDLElBQUksV0FBVyxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEcsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDOzhHQXBHVSxrQ0FBa0M7a0hBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtIYW5kbGVyLCBJbnRlbnRJbnRlcmNlcHRvciwgSW50ZW50TWVzc2FnZSwgTWVzc2FnZUNsaWVudCwgTWVzc2FnZUhlYWRlcnMsIFJlc3BvbnNlU3RhdHVzQ29kZXN9IGZyb20gJ0BzY2lvbi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaENhcGFiaWxpdGllcywgV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcywgV29ya2JlbmNoVmlld0NhcGFiaWxpdHl9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi8uLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRWaWV3Um91dGVzfSBmcm9tICcuL21pY3JvZnJvbnRlbmQtcm91dGVzJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vLi4vbG9nZ2luZyc7XG5pbXBvcnQge0JlYW5zfSBmcm9tICdAc2Npb24vdG9vbGtpdC9iZWFuLW1hbmFnZXInO1xuaW1wb3J0IHtBcnJheXMsIERpY3Rpb25hcmllc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmROYXZpZ2F0aW9uYWxTdGF0ZXN9IGZyb20gJy4vbWljcm9mcm9udGVuZC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcblxuLyoqXG4gKiBIYW5kbGVzIG1pY3JvZnJvbnRlbmQgdmlldyBpbnRlbnRzLCBpbnN0cnVjdGluZyB0aGUgV29ya2JlbmNoIFJvdXRlciB0byBuYXZpZ2F0ZSB0byB0aGUgbWljcm9mcm9udGVuZCBvZiBnaXZlbiB2aWV3IGNhcGFiaWxpdGllcy5cbiAqXG4gKiBWaWV3IGludGVudHMgYXJlIGhhbmRsZWQgaW4gdGhpcyBpbnRlcmNlcHRvciBpbiBvcmRlciB0byBzdXBwb3J0IG1pY3JvZnJvbnRlbmRzIG5vdCB1c2luZyB0aGUgU0NJT04gV29ya2JlbmNoLiBUaGV5IGFyZSBub3QgdHJhbnNwb3J0ZWQgdG8gdGhlIHByb3ZpZGluZyBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRWaWV3SW50ZW50SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBJbnRlbnRJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya2JlbmNoUm91dGVyOiBXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdSZWdpc3RyeTogV29ya2JlbmNoVmlld1JlZ2lzdHJ5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcikge1xuICB9XG5cbiAgLyoqXG4gICAqIFZpZXcgaW50ZW50cyBhcmUgaGFuZGxlZCBpbiB0aGlzIGludGVyY2VwdG9yIGFuZCB0aGVuIHN3YWxsb3dlZC5cbiAgICovXG4gIHB1YmxpYyBpbnRlcmNlcHQoaW50ZW50TWVzc2FnZTogSW50ZW50TWVzc2FnZSwgbmV4dDogSGFuZGxlcjxJbnRlbnRNZXNzYWdlPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpbnRlbnRNZXNzYWdlLmludGVudC50eXBlID09PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuVmlldykge1xuICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZVZpZXdJbnRlbnQoaW50ZW50TWVzc2FnZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGludGVudE1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29uc3VtZVZpZXdJbnRlbnQobWVzc2FnZTogSW50ZW50TWVzc2FnZTxXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzIHwgdW5kZWZpbmVkPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcGx5VG8gPSBtZXNzYWdlLmhlYWRlcnMuZ2V0KE1lc3NhZ2VIZWFkZXJzLlJlcGx5VG8pO1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLm5hdmlnYXRlKG1lc3NhZ2UpO1xuICAgIGF3YWl0IEJlYW5zLmdldChNZXNzYWdlQ2xpZW50KS5wdWJsaXNoKHJlcGx5VG8sIHN1Y2Nlc3MsIHtoZWFkZXJzOiBuZXcgTWFwKCkuc2V0KE1lc3NhZ2VIZWFkZXJzLlN0YXR1cywgUmVzcG9uc2VTdGF0dXNDb2Rlcy5URVJNSU5BTCl9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbmF2aWdhdGUobWVzc2FnZTogSW50ZW50TWVzc2FnZTxXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzIHwgdW5kZWZpbmVkPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZpZXdDYXBhYmlsaXR5ID0gbWVzc2FnZS5jYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFZpZXdDYXBhYmlsaXR5O1xuICAgIGNvbnN0IGludGVudCA9IG1lc3NhZ2UuaW50ZW50O1xuICAgIGNvbnN0IGV4dHJhczogV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcyA9IG1lc3NhZ2UuYm9keSA/PyB7fTtcblxuICAgIGNvbnN0IGludGVudFBhcmFtcyA9IERpY3Rpb25hcmllcy53aXRob3V0VW5kZWZpbmVkRW50cmllcyhEaWN0aW9uYXJpZXMuY29lcmNlKGludGVudC5wYXJhbXMpKTtcbiAgICBjb25zdCB7dXJsUGFyYW1zLCB0cmFuc2llbnRQYXJhbXN9ID0gTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMuc3BsaXRQYXJhbXMoaW50ZW50UGFyYW1zLCB2aWV3Q2FwYWJpbGl0eSk7XG4gICAgY29uc3QgcXVhbGlmaWVyID0gRGljdGlvbmFyaWVzLndpdGhvdXRVbmRlZmluZWRFbnRyaWVzKGludGVudC5xdWFsaWZpZXIhKTtcbiAgICBjb25zdCB0YXJnZXRzID0gdGhpcy5yZXNvbHZlVGFyZ2V0cyhtZXNzYWdlLCBleHRyYXMpO1xuICAgIGNvbnN0IHJvdXRlck5hdmlnYXRlQ29tbWFuZCA9IGV4dHJhcy5jbG9zZSA/IFtdIDogTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMuYnVpbGRSb3V0ZXJOYXZpZ2F0ZUNvbW1hbmQodmlld0NhcGFiaWxpdHkubWV0YWRhdGEhLmlkLCBxdWFsaWZpZXIsIHVybFBhcmFtcyk7XG5cbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYE5hdmlnYXRpbmcgdG86ICR7dmlld0NhcGFiaWxpdHkucHJvcGVydGllcy5wYXRofWAsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkRfUk9VVElORywgcm91dGVyTmF2aWdhdGVDb21tYW5kLCB2aWV3Q2FwYWJpbGl0eSwgdHJhbnNpZW50UGFyYW1zKTtcbiAgICBjb25zdCBuYXZpZ2F0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKEFycmF5cy5jb2VyY2UodGFyZ2V0cykubWFwKHRhcmdldCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoUm91dGVyLm5hdmlnYXRlKHJvdXRlck5hdmlnYXRlQ29tbWFuZCwge1xuICAgICAgICB0YXJnZXQsXG4gICAgICAgIGFjdGl2YXRlOiBleHRyYXMuYWN0aXZhdGUsXG4gICAgICAgIGNsb3NlOiBleHRyYXMuY2xvc2UsXG4gICAgICAgIGJsYW5rSW5zZXJ0aW9uSW5kZXg6IGV4dHJhcy5ibGFua0luc2VydGlvbkluZGV4LFxuICAgICAgICBjc3NDbGFzczogZXh0cmFzLmNzc0NsYXNzLFxuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIFtNaWNyb2Zyb250ZW5kTmF2aWdhdGlvbmFsU3RhdGVzLnRyYW5zaWVudFBhcmFtc106IHRyYW5zaWVudFBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgICByZXR1cm4gbmF2aWdhdGlvbnMuZXZlcnkoQm9vbGVhbik7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHRhcmdldChzKSBmb3IgdGhpcyBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlVGFyZ2V0cyhpbnRlbnRNZXNzYWdlOiBJbnRlbnRNZXNzYWdlLCBleHRyYXM6IFdvcmtiZW5jaE5hdmlnYXRpb25FeHRyYXMpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG4gICAgLy8gQ2xvc2luZyBhIG1pY3JvZnJvbnRlbmQgdmlldyBieSB2aWV3SWQgaXMgbm90IGFsbG93ZWQsIGFzIHRoaXMgd291bGQgdmlvbGF0ZSB0aGUgY29uY2VwdCBvZiBpbnRlbnQtYmFzZWQgdmlldyBuYXZpZ2F0aW9uLlxuICAgIGlmIChleHRyYXMuY2xvc2UgJiYgZXh0cmFzLnRhcmdldCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtXb3JrYmVuY2hSb3V0ZXJFcnJvcl1bSWxsZWdhbEFyZ3VtZW50RXJyb3JdIFRoZSB0YXJnZXQgbXVzdCBiZSBlbXB0eSBpZiBjbG9zaW5nIGEgdmlldyBbdGFyZ2V0PSR7KGV4dHJhcy50YXJnZXQpfV1gKTtcbiAgICB9XG4gICAgaWYgKGV4dHJhcy5jbG9zZSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZVByZXNlbnRWaWV3SWRzKGludGVudE1lc3NhZ2UsIHttYXRjaFdpbGRjYXJkUGFyYW1zOiB0cnVlfSkgPz8gW107XG4gICAgfVxuICAgIGlmICghZXh0cmFzLnRhcmdldCB8fCBleHRyYXMudGFyZ2V0ID09PSAnYXV0bycpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQcmVzZW50Vmlld0lkcyhpbnRlbnRNZXNzYWdlKSA/PyAnYmxhbmsnO1xuICAgIH1cbiAgICByZXR1cm4gZXh0cmFzLnRhcmdldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBvcGVuZWQgdmlld3Mgd2hpY2ggbWF0Y2ggdGhlIGdpdmVuIHZpZXcgaW50ZW50LlxuICAgKiBBIHZpZXcgbWF0Y2hlcyBpZiBpdHMgdmlldyBjYXBhYmlsaXR5IGFuZCBhbGwgaXRzIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIGVxdWFsLlxuICAgKlxuICAgKiBBbGxvd3MgbWF0Y2hpbmcgd2lsZGNhcmQgcGFyYW1ldGVycyBieSBzZXR0aW5nIHRoZSBvcHRpb24gYG1hdGNoV2lsZGNhcmRQYXJhbWV0ZXJzYCB0byBgdHJ1ZWAuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcmVzZW50Vmlld0lkcyhpbnRlbnRNZXNzYWdlOiBJbnRlbnRNZXNzYWdlLCBvcHRpb25zPzoge21hdGNoV2lsZGNhcmRQYXJhbXM/OiBib29sZWFufSk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgY29uc3QgcmVxdWlyZWRQYXJhbXMgPSBpbnRlbnRNZXNzYWdlLmNhcGFiaWxpdHkucGFyYW1zPy5maWx0ZXIocGFyYW0gPT4gcGFyYW0ucmVxdWlyZWQpLm1hcChwYXJhbSA9PiBwYXJhbS5uYW1lKSA/PyBbXTtcbiAgICBjb25zdCBtYXRjaFdpbGRjYXJkUGFyYW1zID0gb3B0aW9ucz8ubWF0Y2hXaWxkY2FyZFBhcmFtcyA/PyBmYWxzZTtcblxuICAgIGNvbnN0IHZpZXdJZHMgPSB0aGlzLl92aWV3UmVnaXN0cnkudmlld3NcbiAgICAgIC5maWx0ZXIodmlldyA9PiB7XG4gICAgICAgIGlmICghTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMuaXNNaWNyb2Zyb250ZW5kUm91dGUodmlldy51cmxTZWdtZW50cykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUZXN0IHdoZXRoZXIgdGhlIGNhcGFiaWxpdHkgbWF0Y2hlcy5cbiAgICAgICAgY29uc3Qgdmlld1BhcmFtcyA9IE1pY3JvZnJvbnRlbmRWaWV3Um91dGVzLnBhcnNlUGFyYW1zKHZpZXcudXJsU2VnbWVudHMpO1xuICAgICAgICBpZiAodmlld1BhcmFtcy52aWV3Q2FwYWJpbGl0eUlkICE9PSBpbnRlbnRNZXNzYWdlLmNhcGFiaWxpdHkubWV0YWRhdGEhLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVzdCB3aGV0aGVyIGFsbCBcIm5hdmlnYXRpb25hbFwiIHBhcmFtcyBtYXRjaC5cbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkUGFyYW1zLmV2ZXJ5KG5hbWUgPT4ge1xuICAgICAgICAgIGNvbnN0IGludGVudFBhcmFtID0gaW50ZW50TWVzc2FnZS5pbnRlbnQucGFyYW1zIS5nZXQobmFtZSk7XG4gICAgICAgICAgcmV0dXJuIChtYXRjaFdpbGRjYXJkUGFyYW1zICYmIGludGVudFBhcmFtID09PSAnKicpIHx8IGludGVudFBhcmFtID09PSB2aWV3UGFyYW1zLnVybFBhcmFtc1tuYW1lXTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLm1hcCh2aWV3ID0+IHZpZXcuaWQpO1xuXG4gICAgcmV0dXJuIHZpZXdJZHMubGVuZ3RoID8gdmlld0lkcyA6IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Swiss Federal Railways
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made
|
|
5
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
-
*
|
|
8
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
-
*/
|
|
10
|
-
import { Router } from '@angular/router';
|
|
11
|
-
import { inject } from '@angular/core';
|
|
12
|
-
import { WorkbenchRouteData } from './workbench-route-data';
|
|
13
|
-
import { WorkbenchNavigationalStates } from './workbench-navigational-states';
|
|
14
|
-
/**
|
|
15
|
-
* Makes navigational view state available to the activated route via {@link ActivatedRoute#data} under the key {@link WorkbenchRouteData.state}.
|
|
16
|
-
*
|
|
17
|
-
* Depending on the route configuration, the Angular router runs this resolver on every navigation. See {@link Route#runGuardsAndResolvers}.
|
|
18
|
-
* Then, we resolve to the current state of the activated route.
|
|
19
|
-
*
|
|
20
|
-
* Note that Angular performs a reference equality check to decide whether resolved data has changed.
|
|
21
|
-
* Therefore, we resolve to `undefined` if the state object is empty.
|
|
22
|
-
*/
|
|
23
|
-
export const resolveNavigationalViewState = route => {
|
|
24
|
-
const navigationalViewState = getNavigationalViewState(route.outlet);
|
|
25
|
-
return isEmpty(navigationalViewState) ? undefined : navigationalViewState;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Returns navigational view state from either the navigation or the activated route.
|
|
29
|
-
*/
|
|
30
|
-
function getNavigationalViewState(viewId) {
|
|
31
|
-
const router = inject(Router);
|
|
32
|
-
const navigationalViewState = WorkbenchNavigationalStates.fromNavigation(router.getCurrentNavigation())?.viewStates[viewId];
|
|
33
|
-
if (navigationalViewState) {
|
|
34
|
-
return navigationalViewState;
|
|
35
|
-
}
|
|
36
|
-
const activatedRoute = router.routerState.snapshot.root.children.find(child => child.outlet === viewId);
|
|
37
|
-
return activatedRoute?.data?.[WorkbenchRouteData.state];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Tests whether the passed dictionary is empty or contains only `undefined` or empty object values.
|
|
41
|
-
*/
|
|
42
|
-
function isEmpty(dictionary) {
|
|
43
|
-
if (dictionary === undefined || dictionary === null) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
if (!Object.keys(dictionary).length) {
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
if (Object.values(dictionary).every(value => value === undefined || (typeof value === 'object' && !Object.keys(value).length))) {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zdGF0ZS5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3JvdXRpbmcvbmF2aWdhdGlvbi1zdGF0ZS5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBWSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQTZDLEtBQUssQ0FBQyxFQUFFO0lBQzVGLE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLE9BQU8sT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLE1BQWM7SUFDOUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLE1BQU0scUJBQXFCLEdBQUcsMkJBQTJCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdILElBQUkscUJBQXFCLEVBQUU7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQztLQUM5QjtJQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztJQUN4RyxPQUFPLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxVQUF5QztJQUN4RCxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtRQUNuRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtRQUM5SCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1Jlc29sdmVGbiwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaWN0aW9uYXJ5fSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVEYXRhfSBmcm9tICcuL3dvcmtiZW5jaC1yb3V0ZS1kYXRhJztcbmltcG9ydCB7V29ya2JlbmNoTmF2aWdhdGlvbmFsU3RhdGVzfSBmcm9tICcuL3dvcmtiZW5jaC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcblxuLyoqXG4gKiBNYWtlcyBuYXZpZ2F0aW9uYWwgdmlldyBzdGF0ZSBhdmFpbGFibGUgdG8gdGhlIGFjdGl2YXRlZCByb3V0ZSB2aWEge0BsaW5rIEFjdGl2YXRlZFJvdXRlI2RhdGF9IHVuZGVyIHRoZSBrZXkge0BsaW5rIFdvcmtiZW5jaFJvdXRlRGF0YS5zdGF0ZX0uXG4gKlxuICogRGVwZW5kaW5nIG9uIHRoZSByb3V0ZSBjb25maWd1cmF0aW9uLCB0aGUgQW5ndWxhciByb3V0ZXIgcnVucyB0aGlzIHJlc29sdmVyIG9uIGV2ZXJ5IG5hdmlnYXRpb24uIFNlZSB7QGxpbmsgUm91dGUjcnVuR3VhcmRzQW5kUmVzb2x2ZXJzfS5cbiAqIFRoZW4sIHdlIHJlc29sdmUgdG8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFjdGl2YXRlZCByb3V0ZS5cbiAqXG4gKiBOb3RlIHRoYXQgQW5ndWxhciBwZXJmb3JtcyBhIHJlZmVyZW5jZSBlcXVhbGl0eSBjaGVjayB0byBkZWNpZGUgd2hldGhlciByZXNvbHZlZCBkYXRhIGhhcyBjaGFuZ2VkLlxuICogVGhlcmVmb3JlLCB3ZSByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGlmIHRoZSBzdGF0ZSBvYmplY3QgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlTmF2aWdhdGlvbmFsVmlld1N0YXRlOiBSZXNvbHZlRm48RGljdGlvbmFyeSB8IHVuZGVmaW5lZCB8IG51bGw+ID0gcm91dGUgPT4ge1xuICBjb25zdCBuYXZpZ2F0aW9uYWxWaWV3U3RhdGUgPSBnZXROYXZpZ2F0aW9uYWxWaWV3U3RhdGUocm91dGUub3V0bGV0KTtcbiAgcmV0dXJuIGlzRW1wdHkobmF2aWdhdGlvbmFsVmlld1N0YXRlKSA/IHVuZGVmaW5lZCA6IG5hdmlnYXRpb25hbFZpZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBuYXZpZ2F0aW9uYWwgdmlldyBzdGF0ZSBmcm9tIGVpdGhlciB0aGUgbmF2aWdhdGlvbiBvciB0aGUgYWN0aXZhdGVkIHJvdXRlLlxuICovXG5mdW5jdGlvbiBnZXROYXZpZ2F0aW9uYWxWaWV3U3RhdGUodmlld0lkOiBzdHJpbmcpOiBEaWN0aW9uYXJ5IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgY29uc3QgbmF2aWdhdGlvbmFsVmlld1N0YXRlID0gV29ya2JlbmNoTmF2aWdhdGlvbmFsU3RhdGVzLmZyb21OYXZpZ2F0aW9uKHJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpISk/LnZpZXdTdGF0ZXNbdmlld0lkXTtcbiAgaWYgKG5hdmlnYXRpb25hbFZpZXdTdGF0ZSkge1xuICAgIHJldHVybiBuYXZpZ2F0aW9uYWxWaWV3U3RhdGU7XG4gIH1cblxuICBjb25zdCBhY3RpdmF0ZWRSb3V0ZSA9IHJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290LmNoaWxkcmVuLmZpbmQoY2hpbGQgPT4gY2hpbGQub3V0bGV0ID09PSB2aWV3SWQpO1xuICByZXR1cm4gYWN0aXZhdGVkUm91dGU/LmRhdGE/LltXb3JrYmVuY2hSb3V0ZURhdGEuc3RhdGVdO1xufVxuXG4vKipcbiAqIFRlc3RzIHdoZXRoZXIgdGhlIHBhc3NlZCBkaWN0aW9uYXJ5IGlzIGVtcHR5IG9yIGNvbnRhaW5zIG9ubHkgYHVuZGVmaW5lZGAgb3IgZW1wdHkgb2JqZWN0IHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gaXNFbXB0eShkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5IHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xuICBpZiAoZGljdGlvbmFyeSA9PT0gdW5kZWZpbmVkIHx8IGRpY3Rpb25hcnkgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoIU9iamVjdC5rZXlzKGRpY3Rpb25hcnkpLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChPYmplY3QudmFsdWVzKGRpY3Rpb25hcnkpLmV2ZXJ5KHZhbHVlID0+IHZhbHVlID09PSB1bmRlZmluZWQgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Swiss Federal Railways
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made
|
|
5
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
-
*
|
|
8
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
-
*/
|
|
10
|
-
import { inject } from '@angular/core';
|
|
11
|
-
import { WorkbenchRouter } from '../routing/workbench-router.service';
|
|
12
|
-
/**
|
|
13
|
-
* Invokes {@link WorkbenchViewPreDestroy#onWorkbenchViewPreDestroy} lifecycle hook if implemented by the component.
|
|
14
|
-
*/
|
|
15
|
-
export const canDeactivateWorkbenchView = (component, currentRoute) => {
|
|
16
|
-
// Depending on the route configuration, this guard can be called even if the component is not to be destroyed.
|
|
17
|
-
// Therefore, we need to check if the view is actually being closed before invoking the `onWorkbenchViewPreDestroy`
|
|
18
|
-
// lifecycle hook. For an example, see {@link provideMicrofrontendRoutes}.
|
|
19
|
-
if (isViewToBeRemoved(currentRoute.outlet) && implementsWorkbenchViewPreDestroyHook(component)) {
|
|
20
|
-
return component.onWorkbenchViewPreDestroy();
|
|
21
|
-
}
|
|
22
|
-
return true;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Tests if given view is to be removed.
|
|
26
|
-
*/
|
|
27
|
-
function isViewToBeRemoved(currentViewId) {
|
|
28
|
-
return inject(WorkbenchRouter).getCurrentNavigationContext()?.layoutDiff.removedViews.includes(currentViewId) ?? false;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Tests if given component implements {@link WorkbenchViewPreDestroy} interface.
|
|
32
|
-
*/
|
|
33
|
-
function implementsWorkbenchViewPreDestroyHook(component) {
|
|
34
|
-
return typeof component?.onWorkbenchViewPreDestroy === 'function';
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXZpZXctcHJlLWRlc3Ryb3kuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3dvcmtiZW5jaC12aWV3LXByZS1kZXN0cm95Lmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBSUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFcEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBNkIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEVBQUU7SUFDOUYsK0dBQStHO0lBQy9HLG1IQUFtSDtJQUNuSCwwRUFBMEU7SUFDMUUsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUkscUNBQXFDLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDOUYsT0FBTyxTQUFTLENBQUMseUJBQXlCLEVBQUUsQ0FBQztLQUM5QztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLGFBQXFCO0lBQzlDLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDO0FBQ3pILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMscUNBQXFDLENBQUMsU0FBa0I7SUFDL0QsT0FBTyxPQUFRLFNBQXFDLEVBQUUseUJBQXlCLEtBQUssVUFBVSxDQUFDO0FBQ2pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2FuRGVhY3RpdmF0ZUZufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UHJlRGVzdHJveX0gZnJvbSAnLi4vd29ya2JlbmNoLm1vZGVsJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5cbi8qKlxuICogSW52b2tlcyB7QGxpbmsgV29ya2JlbmNoVmlld1ByZURlc3Ryb3kjb25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveX0gbGlmZWN5Y2xlIGhvb2sgaWYgaW1wbGVtZW50ZWQgYnkgdGhlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNhbkRlYWN0aXZhdGVXb3JrYmVuY2hWaWV3OiBDYW5EZWFjdGl2YXRlRm48dW5rbm93bj4gPSAoY29tcG9uZW50LCBjdXJyZW50Um91dGUpID0+IHtcbiAgLy8gRGVwZW5kaW5nIG9uIHRoZSByb3V0ZSBjb25maWd1cmF0aW9uLCB0aGlzIGd1YXJkIGNhbiBiZSBjYWxsZWQgZXZlbiBpZiB0aGUgY29tcG9uZW50IGlzIG5vdCB0byBiZSBkZXN0cm95ZWQuXG4gIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBjaGVjayBpZiB0aGUgdmlldyBpcyBhY3R1YWxseSBiZWluZyBjbG9zZWQgYmVmb3JlIGludm9raW5nIHRoZSBgb25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveWBcbiAgLy8gbGlmZWN5Y2xlIGhvb2suIEZvciBhbiBleGFtcGxlLCBzZWUge0BsaW5rIHByb3ZpZGVNaWNyb2Zyb250ZW5kUm91dGVzfS5cbiAgaWYgKGlzVmlld1RvQmVSZW1vdmVkKGN1cnJlbnRSb3V0ZS5vdXRsZXQpICYmIGltcGxlbWVudHNXb3JrYmVuY2hWaWV3UHJlRGVzdHJveUhvb2soY29tcG9uZW50KSkge1xuICAgIHJldHVybiBjb21wb25lbnQub25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveSgpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqIFRlc3RzIGlmIGdpdmVuIHZpZXcgaXMgdG8gYmUgcmVtb3ZlZC5cbiAqL1xuZnVuY3Rpb24gaXNWaWV3VG9CZVJlbW92ZWQoY3VycmVudFZpZXdJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpbmplY3QoV29ya2JlbmNoUm91dGVyKS5nZXRDdXJyZW50TmF2aWdhdGlvbkNvbnRleHQoKT8ubGF5b3V0RGlmZi5yZW1vdmVkVmlld3MuaW5jbHVkZXMoY3VycmVudFZpZXdJZCkgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogVGVzdHMgaWYgZ2l2ZW4gY29tcG9uZW50IGltcGxlbWVudHMge0BsaW5rIFdvcmtiZW5jaFZpZXdQcmVEZXN0cm95fSBpbnRlcmZhY2UuXG4gKi9cbmZ1bmN0aW9uIGltcGxlbWVudHNXb3JrYmVuY2hWaWV3UHJlRGVzdHJveUhvb2soY29tcG9uZW50OiB1bmtub3duKTogY29tcG9uZW50IGlzIFdvcmtiZW5jaFZpZXdQcmVEZXN0cm95IHtcbiAgcmV0dXJuIHR5cGVvZiAoY29tcG9uZW50IGFzIFdvcmtiZW5jaFZpZXdQcmVEZXN0cm95KT8ub25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveSA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Swiss Federal Railways
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made
|
|
5
|
-
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
-
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
-
*
|
|
8
|
-
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Configures the SCION Workbench module.
|
|
12
|
-
*/
|
|
13
|
-
export class WorkbenchModuleConfig {
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLW1vZHVsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2gtbW9kdWxlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQVVIOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixxQkFBcUI7Q0FvSzFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nQXBwZW5kZXIsIExvZ0xldmVsfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWd9IGZyb20gJ0BzY2lvbi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtJztcbmltcG9ydCB7TWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnTG9hZGVyfSBmcm9tICcuL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wbGF0Zm9ybS1jb25maWctbG9hZGVyJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0Rm4sIFdvcmtiZW5jaFBlcnNwZWN0aXZlc30gZnJvbSAnLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2Uvd29ya2JlbmNoLXN0b3JhZ2UnO1xuXG4vKipcbiAqIENvbmZpZ3VyZXMgdGhlIFNDSU9OIFdvcmtiZW5jaCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrYmVuY2hNb2R1bGVDb25maWcge1xuICAvKipcbiAgICogQWxsb3dzIGN1c3RvbWl6aW5nIHRoZSBhcHBlYXJhbmNlIG9mIGEgdmlldyB0YWIgYnkgcHJvdmlkaW5nIGEgY3VzdG9tIHZpZXcgdGFiIGNvbXBvbmVudC5cbiAgICpcbiAgICogSW5qZWN0IHtAbGluayBXb3JrYmVuY2hWaWV3fSBhbmQge0BsaW5rIFZJRVdfVEFCX0NPTlRFWFR9IHRva2VuIGludG8gdGhlIGNvbXBvbmVudCB0byBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgYW5kIHRoZSByZW5kZXJpbmcgY29udGV4dC5cbiAgICpcbiAgICpcbiAgICogLS0tXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIEBDb21wb25lbnQoLi4uKVxuICAgKiBleHBvcnQgY2xhc3MgVmlld1RhYkNvbnRlbnRDb21wb25lbnQge1xuICAgKiAgIGNvbnN0cnVjdG9yKHZpZXc6IFdvcmtiZW5jaFZpZXcsIEBJbmplY3QoVklFV19UQUJfQ09OVEVYVCkgY29udGV4dDogVmlld1RhYkNvbnRleHQpIHt9XG4gICAqIH1cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB2aWV3VGFiQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBidWlsdC1pbiBtZW51IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHZpZXcgY29udGV4dCBtZW51LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHZpZXdNZW51SXRlbXM/OiBWaWV3TWVudUl0ZW1zQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIGxvZ2dpbmcgZm9yIHRoZSB3b3JrYmVuY2guXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbG9nZ2luZz86IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIHNldmVyaXR5IGxldmVsIGEgbG9nIG1lc3NhZ2UgbXVzdCBoYXZlIGluIG9yZGVyIHRvIGJlIGxvZ2dlZC4gQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgaXQgaXMgc2V0IHRvIHtAbGluayBMb2dMZXZlbCNJTkZPfS5cbiAgICAgKlxuICAgICAqIEF0IHJ1bnRpbWUsIHlvdSBjYW4gY2hhbmdlIHRoZSBtaW5pbXVtIHJlcXVpcmVkIGxvZyBsZXZlbCBieSBzZXR0aW5nIHRoZSBgbG9nbGV2ZWxgIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBsb2dMZXZlbD86IExvZ0xldmVsO1xuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBsb2cgYXBwZW5kZXJzIHRvIG91dHB1dCBsb2cgbWVzc2FnZXMuIE11bHRpcGxlIGFwcGVuZGVycyBhcmUgYWxsb3dlZC4gQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgbG9nIG1lc3NhZ2VzIGFyZSB3cml0dGVuIHRvIHRoZSBjb25zb2xlLlxuICAgICAqL1xuICAgIGxvZ0FwcGVuZGVycz86IFR5cGU8TG9nQXBwZW5kZXI+W107XG4gIH07XG5cbiAgLyoqXG4gICAqIEFsbG93cyBjb25maWd1cmluZyB0aGUgd29ya2JlbmNoIHN0YXJ0dXAuXG4gICAqXG4gICAqIFRoZSB7QGxpbmsgV29ya2JlbmNoTGF1bmNoZXJ9IGlzIHVzZWQgdG8gc3RhcnQgdGhlIHdvcmtiZW5jaC4gRHVyaW5nIHN0YXJ0dXAsIGl0IHJ1bnMgcmVnaXN0ZXJlZCB3b3JrYmVuY2ggaW5pdGlhbGl6ZXJzXG4gICAqIGFuZCB3YWl0cyBmb3IgdGhlbSB0byBjb21wbGV0ZS4gWW91IGNhbiBpbmplY3Qge0BsaW5rIFdvcmtiZW5jaFN0YXJ0dXB9IHRvIGdldCBub3RpZmllZCB3aGVuIHRoZSBzdGFydHVwIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBSZWZlciB0byB7QGxpbmsgV29ya2JlbmNoSW5pdGlhbGl6ZXJ9IHRvIGxlYXJuIGhvdyB0byByZWdpc3RlciBhIHdvcmtiZW5jaCBpbml0aWFsaXplci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzdGFydHVwPzoge1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCBsYXVuY2hpbmcgc3RyYXRlZ3kuXG4gICAgICpcbiAgICAgKiAgLSAqKkFQUF9JTklUSUFMSVpFUioqXG4gICAgICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGluIGFuIEFuZ3VsYXIgYEFQUF9JTklUSUFMSVpFUmAsIHdoaWNoIGlzIGJlZm9yZSBib290c3RyYXBwaW5nIHRoZSBhcHAgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogLSAqKkxBWlkqKiAod2hpY2ggaXMgdGhlIGRlZmF1bHQpXG4gICAgICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGF0IHRoZSBsYXRlc3Qgd2hlbiBib290c3RyYXBwaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YC5cbiAgICAgKlxuICAgICAqICAgV2l0aCB0aGlzIHN0cmF0ZWd5LCB5b3UgYXJlIGZsZXhpYmxlIHdoZW4gdG8gc3RhcnQgdGhlIHdvcmtiZW5jaC4gWW91IGNhbiBzdGFydCB0aGUgd29ya2JlbmNoIGV4cGxpY2l0bHkgYnlcbiAgICAgKiAgIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0sIGUuZy4sIHRvIGxhdW5jaCB0aGUgd29ya2JlbmNoIGZyb20gYSByb3V0ZSBndWFyZCBvciBhcHAgaW5pdGlhbGl6ZXIsXG4gICAgICogICBvciBzdGFydCBpdCBhdXRvbWF0aWNhbGx5IHdoZW4gYWRkaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YCB0byB0aGUgQW5ndWxhciBjb21wb25lbnRcbiAgICAgKiAgIHRyZWUuXG4gICAgICovXG4gICAgbGF1bmNoZXI/OiAnQVBQX0lOSVRJQUxJWkVSJyB8ICdMQVpZJztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzcGxhc2ggY29tcG9uZW50IHRvIGRpc3BsYXkgd2hlbiBtb3VudGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAgdG8gdGhlIERPTSBiZWZvcmUgdGhlXG4gICAgICogd29ya2JlbmNoIHN0YXJ0dXAgaGFzIGZpbmlzaGVkLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IHdoZW4gbGF1bmNoaW5nIHRoZSB3b3JrYmVuY2ggaW4gYW4gQW5ndWxhciBgQVBQX0lOSVRJQUxJWkVSYCwgbm8gc3BsYXNoIHdpbGwgZGlzcGxheSBzaW5jZSB0aGUgd29ya2JlbmNoXG4gICAgICogd2lsbCBzdGFydCB1cGZyb250LlxuICAgICAqL1xuICAgIHNwbGFzaD86IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgbWljcm9mcm9udGVuZCBzdXBwb3J0IGluIHRoZSB3b3JrYmVuY2gsIGFsbG93aW5nIHRoZSBpbnRlZ3JhdGlvbiBvZiBtaWNyb2Zyb250ZW5kcyBhcyB3b3JrYmVuY2ggdmlld3Mgb3JcbiAgICogd29ya2JlbmNoIHBvcHVwcy5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCB1c2VzIHRoZSBcIlNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm1cIiBmb3IgcHJvdmlkaW5nIG1pY3JvZnJvbnRlbmQgc3VwcG9ydC4gVG8gbGVhcm4gbW9yZSBhYm91dCB0aGVcbiAgICogXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtXCIsIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9TY2h3ZWl6ZXJpc2NoZUJ1bmRlc2JhaG5lbi9zY2lvbi1taWNyb2Zyb250ZW5kLXBsYXRmb3JtLlxuICAgKlxuICAgKiBUaGUgd29ya2JlbmNoIGFsbG93cyBhbnkgd2ViIHBhZ2UgdG8gYmUgZW1iZWRkZWQgYXMgYSB3b3JrYmVuY2ggdmlldyBvciB3b3JrYmVuY2ggcG9wdXAuIFRoZSB3ZWIgYXBwIGhhcyB0byBwcm92aWRlXG4gICAqIGEgbWFuaWZlc3QgaW4gd2hpY2ggaXQgZGVzY3JpYmVzIGl0cyB2aWV3cyBhbmQgcG9wdXBzLiBUbyBpbnRlZ3JhdGUgYSB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlvbiB3aGVyZSBjdXN0b21pemF0aW9uIGlzIG5vdFxuICAgKiBwb3NzaWJsZSwgdGhlIGhvc3QgYXBwbGljYXRpb24gY2FuIHByb3ZpZGUgYSBtYW5pZmVzdCBmb3IgdGhhdCBhcHBsaWNhdGlvbi4gSWYgZW1iZWRkZWQgY29udGVudCBuZWVkcyB0byBpbnRlcmFjdCB3aXRoXG4gICAqIHRoZSB3b3JrYmVuY2gsIHRoZSB3ZWIgYXBwIGNhbiB1c2UgdGhlIGxpYnJhcnkgYEBzY2lvbi93b3JrYmVuY2gtY2xpZW50YCwgYSBwdXJlIFR5cGVTY3JpcHQgbGlicmFyeSBiYXNlZCBvbiB0aGVcbiAgICogd2ViIHN0YWNrLWFnbm9zdGljIGBAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybWAgbGlicmFyeS5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCBpbnRlZ3JhdGVzIG1pY3JvZnJvbnRlbmRzIHRocm91Z2ggc28tY2FsbGVkIGludGVudHMsIGEgbWVjaGFuaXNtIGtub3duIGZyb20gQW5kcm9pZCBkZXZlbG9wbWVudCwgZW5hYmxpbmdcbiAgICogY29udHJvbGxlZCBjb2xsYWJvcmF0aW9uIGFjcm9zcyBhcHBsaWNhdGlvbiBib3VuZGFyaWVzLiBcIlNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm0gRGV2VG9vbHNcIiBjYW4gaGVscCB0byBpbnNwZWN0XG4gICAqIGludGVncmF0ZWQgYXBwbGljYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFRoZSBEZXZUb29scyBhcmUgYXZhaWxhYmxlIGluIHRoZSBmb3JtIG9mIGEgbWljcm9mcm9udGVuZCB0aGF0IGNhbiBiZSBlbWJlZGRlZFxuICAgKiBsaWtlIGFueSBvdGhlciBtaWNyb2Zyb250ZW5kLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBpbnRlZ3JhdGVcbiAgICogXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtIERldlRvb2xzXCIuXG4gICAqXG4gICAqIFR5cGljYWxseSwgdGhlIGhvc3QgYXBwIHByb3ZpZGVzIEFQSSB0byBpbnRlZ3JhdGVkIG1pY3JvIGFwcHMgdmlhIHRoZSBpbnRlbnQgbWVjaGFuaXNtLiBDb25zaWRlciByZWdpc3RlcmluZyBpbnRlbnQgaGFuZGxlcnNcbiAgICogdW5kZXIgdGhlIERJIHRva2VuIHtAbGluayBNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUH0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbWljcm9mcm9udGVuZFBsYXRmb3JtPzogTWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnIHwgVHlwZTxNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWdMb2FkZXI+O1xuXG4gIC8qKlxuICAgKlxuICAgKiBEZWZpbmVzIHRoZSB3b3JrYmVuY2ggbGF5b3V0LiBNdWx0aXBsZSBsYXlvdXRzIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBmb3JtIG9mIHBlcnNwZWN0aXZlcy5cbiAgICogSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYSBsYXlvdXQgd2l0aCBvbmx5IGEgbWFpbiBhcmVhLlxuICAgKlxuICAgKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzXG4gICAqIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAgICpcbiAgICogVGhlIGxheW91dCBjYW4gYmUgZGl2aWRlZCBpbnRvIGEgbWFpbiBhbmQgYSBwZXJpcGhlcmFsIGFyZWEsIHdpdGggdGhlIG1haW4gYXJlYSBhcyB0aGUgcHJpbWFyeSBwbGFjZSBmb3Igb3BlbmluZyB2aWV3cy5cbiAgICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gICAqIHRoZSB1c2VyJ3Mgd29ya2Zsb3cuIERlZmluaW5nIGEgbWFpbiBhcmVhIGlzIG9wdGlvbmFsIGFuZCByZWNvbW1lbmRlZCBmb3IgYXBwbGljYXRpb25zIHJlcXVpcmluZyBhIGRlZGljYXRlZCBhbmQgbWF4aW1pemFibGVcbiAgICogYXJlYSBmb3IgdXNlciBpbnRlcmFjdGlvbi5cbiAgICpcbiAgICogTXVsdGlwbGUgbGF5b3V0cywgY2FsbGVkIHBlcnNwZWN0aXZlcywgYXJlIHN1cHBvcnRlZC4gUGVyc3BlY3RpdmVzIGNhbiBiZSBzd2l0Y2hlZCB3aXRoIG9uZSBwZXJzcGVjdGl2ZSBhY3RpdmUgYXQgYSB0aW1lLlxuICAgKiBQZXJzcGVjdGl2ZXMgc2hhcmUgdGhlIHNhbWUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gICAqXG4gICAqXG4gICAqICMjIEV4YW1wbGUgb2YgYSBsYXlvdXQgdGhhdCBoYXMgYSBtYWluIGFyZWEgYW5kIHRocmVlIHBhcnRzIGluIHRoZSBwZXJpcGhlcmFsIGFyZWE6XG4gICAqXG4gICAqIGBgYHBsYWluXG4gICAqICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tK1xuICAgKiB8ICB0b3AgICB8ICAgICAgICAgICAgICAgIHxcbiAgICogfCAgbGVmdCAgfCAgICAgICAgICAgICAgICB8XG4gICAqIHwtLS0tLS0tLSsgICBtYWluIGFyZWEgICAgfFxuICAgKiB8IGJvdHRvbSB8ICAgICAgICAgICAgICAgIHxcbiAgICogfCAgbGVmdCAgfCAgICAgICAgICAgICAgICB8XG4gICAqICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tK1xuICAgKiB8ICAgICAgICAgIGJvdHRvbSAgICAgICAgIHxcbiAgICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBXb3JrYmVuY2hNb2R1bGUuZm9yUm9vdCh7XG4gICAqICAgbGF5b3V0OiAoZmFjdG9yeTogV29ya2JlbmNoTGF5b3V0RmFjdG9yeSkgPT4gZmFjdG9yeVxuICAgKiAgICAgLmFkZFBhcnQoTUFJTl9BUkVBKVxuICAgKiAgICAgLmFkZFBhcnQoJ3RvcExlZnQnLCB7YWxpZ246ICdsZWZ0JywgcmF0aW86IC4yNX0pXG4gICAqICAgICAuYWRkUGFydCgnYm90dG9tTGVmdCcsIHtyZWxhdGl2ZVRvOiAndG9wTGVmdCcsIGFsaWduOiAnYm90dG9tJywgcmF0aW86IC41fSlcbiAgICogICAgIC5hZGRQYXJ0KCdib3R0b20nLCB7YWxpZ246ICdib3R0b20nLCByYXRpbzogLjN9KVxuICAgKiAgICAgLmFkZFZpZXcoJ25hdmlnYXRvcicsIHtwYXJ0SWQ6ICd0b3BMZWZ0JywgYWN0aXZhdGVWaWV3OiB0cnVlfSlcbiAgICogICAgIC5hZGRWaWV3KCdleHBsb3JlcicsIHtwYXJ0SWQ6ICd0b3BMZWZ0J30pXG4gICAqICAgICAuYWRkVmlldygncmVwb3NpdG9yaWVzJywge3BhcnRJZDogJ2JvdHRvbUxlZnQnLCBhY3RpdmF0ZVZpZXc6IHRydWV9KVxuICAgKiAgICAgLmFkZFZpZXcoJ2NvbnNvbGUnLCB7cGFydElkOiAnYm90dG9tJywgYWN0aXZhdGVWaWV3OiB0cnVlfSlcbiAgICogICAgIC5hZGRWaWV3KCdwcm9ibGVtcycsIHtwYXJ0SWQ6ICdib3R0b20nfSlcbiAgICogICAgIC5hZGRWaWV3KCdzZWFyY2gnLCB7cGFydElkOiAnYm90dG9tJ30pXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBsYXlvdXQ/OiBXb3JrYmVuY2hMYXlvdXRGbiB8IFdvcmtiZW5jaFBlcnNwZWN0aXZlcztcbiAgLyoqXG4gICAqIFByb3ZpZGVzIHBlcnNpc3RlbnQgc3RvcmFnZSB0byB0aGUgU0NJT04gV29ya2JlbmNoLlxuICAgKlxuICAgKiBJZiBub3Qgc2V0LCB0aGUgd29ya2JlbmNoIHVzZXMgdGhlIGJyb3dzZXIncyBsb2NhbCBzdG9yYWdlIGFzIHBlcnNpc3RlbnQgc3RvcmFnZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzdG9yYWdlPzogVHlwZTxXb3JrYmVuY2hTdG9yYWdlPjtcbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGJlaGF2aW9yIG9mIHdvcmtiZW5jaCBkaWFsb2dzLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGRpYWxvZz86IHtcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmVzIHRoZSBhcmVhIHRvIGJsb2NrIGZvciBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2dzLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBgd29ya2JlbmNoYC5cbiAgICAgKlxuICAgICAqIC0gKip3b3JrYmVuY2g6KiogYmxvY2tzIHRoZSB7QGxpbmsgV29ya2JlbmNoQ29tcG9uZW50fHdvcmtiZW5jaCBlbGVtZW50fSwgc3RpbGwgYWxsb3dpbmcgaW50ZXJhY3Rpb24gd2l0aCBlbGVtZW50cyBvdXRzaWRlIHRoZSB3b3JrYmVuY2ggZWxlbWVudC5cbiAgICAgKlxuICAgICAqIC0gKip2aWV3cG9ydCoqIGJsb2NrcyB0aGUgYnJvd3NlciB2aWV3cG9ydCwgcHJldmVudGluZyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBhcHBsaWNhdGlvbiB1bnRpbCBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2dzIGFyZSBjbG9zZWQuXG4gICAgICovXG4gICAgbW9kYWxpdHlTY29wZT86ICd3b3JrYmVuY2gnIHwgJ3ZpZXdwb3J0JztcbiAgfTtcbn1cblxuLyoqXG4gKiBDb250cm9scyB3aGljaCBidWlsdC1pbiBtZW51IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHZpZXcgY29udGV4dCBtZW51LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdNZW51SXRlbXNDb25maWcge1xuICBjbG9zZT86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZU90aGVycz86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZUFsbD86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZVRvVGhlUmlnaHQ/OiBNZW51SXRlbUNvbmZpZztcbiAgY2xvc2VUb1RoZUxlZnQ/OiBNZW51SXRlbUNvbmZpZztcbiAgbW92ZVVwPzogTWVudUl0ZW1Db25maWc7XG4gIG1vdmVSaWdodD86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlRG93bj86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlTGVmdD86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlVG9OZXdXaW5kb3c/OiBNZW51SXRlbUNvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbUNvbmZpZyB7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB0ZXh0Pzogc3RyaW5nO1xuICBhY2NlbGVyYXRvcj86IHN0cmluZ1tdO1xuICBncm91cD86IHN0cmluZztcbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { WorkbenchLayoutV1Migrator } from './workbench-layout-v1-migrator.service';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Migrates a workbench layout to the latest version.
|
|
5
|
-
*/
|
|
6
|
-
export declare class WorkbenchLayoutMigrator {
|
|
7
|
-
private _workbenchLayoutV1Migrator;
|
|
8
|
-
constructor(_workbenchLayoutV1Migrator: WorkbenchLayoutV1Migrator);
|
|
9
|
-
/**
|
|
10
|
-
* Migrates a workbench layout to the latest version.
|
|
11
|
-
*/
|
|
12
|
-
migrate(version: number, json: string): string;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutMigrator, never>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutMigrator>;
|
|
15
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
/**
|
|
3
|
-
* Migrates a workbench layout in version 1 to the latest version.
|
|
4
|
-
*
|
|
5
|
-
* TODO [Angular 18] Remove migrator.
|
|
6
|
-
*/
|
|
7
|
-
export declare class WorkbenchLayoutV1Migrator {
|
|
8
|
-
migrate(json: string): string;
|
|
9
|
-
private migrateGridElement;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutV1Migrator, never>;
|
|
11
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutV1Migrator>;
|
|
12
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Keys for associating microfrontend-specific data with a navigation.
|
|
3
|
-
*
|
|
4
|
-
* State can be read from {@link ActivatedRoute.data} using the {@link WorkbenchRouteData.state} key.
|
|
5
|
-
*/
|
|
6
|
-
export declare namespace MicrofrontendNavigationalStates {
|
|
7
|
-
/**
|
|
8
|
-
* Key for associating transient parameters with a navigation.
|
|
9
|
-
*/
|
|
10
|
-
const transientParams = "\u0275transientParams";
|
|
11
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ActivatedRouteSnapshot, Params, UrlSegment } from '@angular/router';
|
|
2
|
-
import { WorkbenchViewCapability } from '@scion/workbench-client';
|
|
3
|
-
import { Qualifier } from '@scion/microfrontend-platform';
|
|
4
|
-
import { Dictionary } from '@scion/toolkit/util';
|
|
5
|
-
export declare namespace MicrofrontendViewRoutes {
|
|
6
|
-
/**
|
|
7
|
-
* Route prefix to identify routes of microfrontends.
|
|
8
|
-
*/
|
|
9
|
-
const ROUTE_PREFIX = "~";
|
|
10
|
-
function isMicrofrontendRoute(route: ActivatedRouteSnapshot | UrlSegment[]): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Parses the params of a given microfrontend route. Throws if not a valid microfrontend route.
|
|
13
|
-
*
|
|
14
|
-
* Note that transient parameters are not part of the URL segments and are only returned if passing a {@link ActivatedRouteSnapshot} object.
|
|
15
|
-
*/
|
|
16
|
-
function parseParams(route: ActivatedRouteSnapshot | UrlSegment[]): MicrofrontendRouteParams;
|
|
17
|
-
/**
|
|
18
|
-
* Splits given params into two groups of URL and transient params.
|
|
19
|
-
*
|
|
20
|
-
* URL params are passed with the URL, transient params via transient state. Transient params do not survive a page reload.
|
|
21
|
-
*/
|
|
22
|
-
function splitParams(params: Map<string, any> | Dictionary | undefined, viewCapability: WorkbenchViewCapability): {
|
|
23
|
-
urlParams: Dictionary;
|
|
24
|
-
transientParams: Dictionary;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Builds the command array to be passed to the workbench router for navigating to a microfrontend view.
|
|
28
|
-
*
|
|
29
|
-
* Format: ['~', {qualifier}, '<viewCapabilityId>', {params}]
|
|
30
|
-
*/
|
|
31
|
-
function buildRouterNavigateCommand(viewCapabilityId: string, qualifier: Qualifier, params: Params): any[];
|
|
32
|
-
}
|
|
33
|
-
export interface MicrofrontendRouteParams {
|
|
34
|
-
viewCapabilityId: string;
|
|
35
|
-
qualifier: Params;
|
|
36
|
-
urlParams: Params;
|
|
37
|
-
transientParams: Params;
|
|
38
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ResolveFn } from '@angular/router';
|
|
2
|
-
import { Dictionary } from '@scion/toolkit/util';
|
|
3
|
-
/**
|
|
4
|
-
* Makes navigational view state available to the activated route via {@link ActivatedRoute#data} under the key {@link WorkbenchRouteData.state}.
|
|
5
|
-
*
|
|
6
|
-
* Depending on the route configuration, the Angular router runs this resolver on every navigation. See {@link Route#runGuardsAndResolvers}.
|
|
7
|
-
* Then, we resolve to the current state of the activated route.
|
|
8
|
-
*
|
|
9
|
-
* Note that Angular performs a reference equality check to decide whether resolved data has changed.
|
|
10
|
-
* Therefore, we resolve to `undefined` if the state object is empty.
|
|
11
|
-
*/
|
|
12
|
-
export declare const resolveNavigationalViewState: ResolveFn<Dictionary | undefined | null>;
|