UNPKG

@scion/workbench

Version:

SCION Workbench enables the creation of Angular web applications that require a flexible layout to display content side-by-side or stacked, all personalizable by the user via drag & drop. This type of layout is ideal for applications with non-linear workf

1 lines 1.63 MB
{"version":3,"file":"scion-workbench.mjs","sources":["../../../../projects/scion/workbench/src/lib/workbench-config.ts","../../../../projects/scion/workbench/src/lib/common/throw-error.util.ts","../../../../projects/scion/workbench/src/lib/common/resolve-when.util.ts","../../../../projects/scion/workbench/src/lib/storage/workbench-storage.ts","../../../../projects/scion/workbench/src/lib/layout/rendering-flag.ts","../../../../projects/scion/workbench/src/lib/common/uid.util.ts","../../../../projects/scion/workbench/src/lib/common/dom.util.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-layout.service.ts","../../../../projects/scion/workbench/src/lib/workbench.constants.ts","../../../../projects/scion/workbench/src/lib/common/operators.ts","../../../../projects/scion/workbench/src/lib/executor/single-task-executor.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-navigational-states.ts","../../../../projects/scion/workbench/src/lib/workbench.identifiers.ts","../../../../projects/scion/workbench/src/lib/routing/routing.util.ts","../../../../projects/scion/workbench/src/lib/routing/url-segment-matcher.ts","../../../../projects/scion/workbench/src/lib/common/objects.util.ts","../../../../projects/scion/workbench/src/lib/registry/workbench-object-registry.ts","../../../../projects/scion/workbench/src/lib/view/workbench-view.registry.ts","../../../../projects/scion/workbench/src/lib/common/asserts.util.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-grid.model.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-layouts.util.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-layout.ts","../../../../projects/scion/workbench/src/lib/routing/ɵworkbench-router.service.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-router.service.ts","../../../../projects/scion/workbench/src/lib/migration/workbench-migrator.ts","../../../../projects/scion/workbench/src/lib/layout/migration/model/workbench-grid-migration-v3.model.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-grid-migration-v3.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-grid-migration-v4.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-grid-migration-v5.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-grid-migration-v6.service.ts","../../../../projects/scion/workbench/src/lib/layout/stringifier.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-grid-migration-v7.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-layout-migration-v2.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-layout-migration-v3.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-layout-migration-v4.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-layout-migration-v5.service.ts","../../../../projects/scion/workbench/src/lib/layout/migration/workbench-layout-migration-v6.service.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-layout-serializer.service.ts","../../../../projects/scion/workbench/src/lib/logging/logging.model.ts","../../../../projects/scion/workbench/src/lib/logging/console-appender.service.ts","../../../../projects/scion/workbench/src/lib/logging/ɵlogger.ts","../../../../projects/scion/workbench/src/lib/logging/logger.ts","../../../../projects/scion/workbench/src/lib/logging/logger-names.ts","../../../../projects/scion/workbench/src/lib/logging/logging-support.ts","../../../../projects/scion/workbench/src/lib/logging/index.ts","../../../../projects/scion/workbench/src/lib/activity/workbench-activity.model.ts","../../../../projects/scion/workbench/src/lib/activation-instant.provider.ts","../../../../projects/scion/workbench/src/lib/layout/ɵworkbench-layout.ts","../../../../projects/scion/workbench/src/lib/layout/ɵworkbench-layout.factory.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-layout-merger.service.ts","../../../../projects/scion/workbench/src/lib/layout/workbench-layout-storage.service.ts","../../../../projects/scion/workbench/src/lib/executor/latest-task-executor.ts","../../../../projects/scion/workbench/src/lib/perspective/workbench-perspective.registry.ts","../../../../projects/scion/workbench/src/lib/startup/workbench-initializer.ts","../../../../projects/scion/workbench/src/lib/startup/ɵworkbench-launcher.service.ts","../../../../projects/scion/workbench/src/lib/startup/ɵworkbench-startup.service.ts","../../../../projects/scion/workbench/src/lib/startup/workbench-startup.service.ts","../../../../projects/scion/workbench/src/lib/perspective/ɵworkbench-perspective.model.ts","../../../../projects/scion/workbench/src/lib/perspective/workbench-perspective.service.ts","../../../../projects/scion/workbench/src/lib/part/workbench-part.registry.ts","../../../../projects/scion/workbench/src/lib/part/workbench-part-action.registry.ts","../../../../projects/scion/workbench/src/lib/theme/workbench-theme-switcher.service.ts","../../../../projects/scion/workbench/src/lib/view/workbench-view-menu-item.registry.ts","../../../../projects/scion/workbench/src/lib/focus/workbench-focus-tracker.service.ts","../../../../projects/scion/workbench/src/lib/ɵworkbench.service.ts","../../../../projects/scion/workbench/src/lib/workbench.service.ts","../../../../projects/scion/workbench/src/lib/text/workbench-text-provider.model.ts","../../../../projects/scion/workbench/src/lib/text/text.ts","../../../../projects/scion/workbench/src/lib/text/text.pipe.ts","../../../../projects/scion/workbench/src/lib/view/workbench-view.model.ts","../../../../projects/scion/workbench/src/lib/part/workbench-part.model.ts","../../../../projects/scion/workbench/src/lib/dialog/workbench-dialog.ts","../../../../projects/scion/workbench/src/lib/dialog/workbench-dialog.registry.ts","../../../../projects/scion/workbench/src/lib/communication/workbench-broadcast-channel.ts","../../../../projects/scion/workbench/src/lib/common/class-list.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-route-data.ts","../../../../projects/scion/workbench/src/lib/portal/wb-component-portal.ts","../../../../projects/scion/workbench/src/lib/routing/router-outlet-root-context.directive.ts","../../../../projects/scion/workbench/src/lib/part/part-slot/part-slot.component.ts","../../../../projects/scion/workbench/src/lib/part/part-slot/part-slot.component.html","../../../../projects/scion/workbench/src/lib/workbench-element-references.ts","../../../../projects/scion/workbench/src/lib/view-dnd/view-drop-placeholder-renderer.service.ts","../../../../projects/scion/workbench/src/lib/view-dnd/view-drop-zone.directive.ts","../../../../projects/scion/workbench/src/lib/view-dnd/grid-drop-targets.util.ts","../../../../projects/scion/workbench/src/lib/portal/workbench-portal-outlet.directive.ts","../../../../projects/scion/workbench/src/lib/part/part-portal.pipe.ts","../../../../projects/scion/workbench/src/lib/layout/grid-element/tree-node-sash-sizes.pipe.ts","../../../../projects/scion/workbench/src/lib/layout/grid-element/grid-element.component.ts","../../../../projects/scion/workbench/src/lib/layout/grid-element/grid-element.component.html","../../../../projects/scion/workbench/src/lib/view-dnd/requires-drop-zone.pipe.ts","../../../../projects/scion/workbench/src/lib/layout/grid/grid.component.ts","../../../../projects/scion/workbench/src/lib/layout/grid/grid.component.html","../../../../projects/scion/workbench/src/lib/common/dasherize.util.ts","../../../../projects/scion/workbench/src/lib/desktop/desktop-slot/desktop-slot.component.ts","../../../../projects/scion/workbench/src/lib/desktop/desktop-slot/desktop-slot.component.html","../../../../projects/scion/workbench/src/lib/desktop/workbench-desktop.model.ts","../../../../projects/scion/workbench/src/lib/part/main-area-part/main-area-part.component.ts","../../../../projects/scion/workbench/src/lib/part/main-area-part/main-area-part.component.html","../../../../projects/scion/workbench/src/lib/common/instanceof.pipe.ts","../../../../projects/scion/workbench/src/lib/part/part-action/part-action.component.ts","../../../../projects/scion/workbench/src/lib/part/part-action/part-action.component.html","../../../../projects/scion/workbench/src/lib/icon/workbench-icon-provider.model.ts","../../../../projects/scion/workbench/src/lib/icon/icon.component.ts","../../../../projects/scion/workbench/src/lib/filter-field/filter-field.component.ts","../../../../projects/scion/workbench/src/lib/filter-field/filter-field.component.html","../../../../projects/scion/workbench/src/lib/part/view-tab-content/view-tab-content.component.ts","../../../../projects/scion/workbench/src/lib/part/view-tab-content/view-tab-content.component.html","../../../../projects/scion/workbench/src/lib/part/view-list-item/view-list-item.component.ts","../../../../projects/scion/workbench/src/lib/part/view-list-item/view-list-item.component.html","../../../../projects/scion/workbench/src/lib/part/view-list/view-list.component.ts","../../../../projects/scion/workbench/src/lib/part/view-list/view-list.component.html","../../../../projects/scion/workbench/src/lib/part/view-list-button/view-list-button.component.ts","../../../../projects/scion/workbench/src/lib/part/view-list-button/view-list-button.component.html","../../../../projects/scion/workbench/src/lib/part/view-context-menu/accelerator-format.pipe.ts","../../../../projects/scion/workbench/src/lib/common/ɵdestroy-ref.ts","../../../../projects/scion/workbench/src/lib/common/observables.ts","../../../../projects/scion/workbench/src/lib/dialog/movable.directive.ts","../../../../projects/scion/workbench/src/lib/dialog/resizable.directive.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-header/dialog-header.component.html","../../../../projects/scion/workbench/src/lib/common/null-if-empty.pipe.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-footer/dialog-action-filter.pipe.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../../projects/scion/workbench/src/lib/glass-pane/glass-pane.directive.ts","../../../../projects/scion/workbench/src/lib/common/css-class.util.ts","../../../../projects/scion/workbench/src/lib/dialog/workbench-dialog.component.ts","../../../../projects/scion/workbench/src/lib/dialog/workbench-dialog.component.html","../../../../projects/scion/workbench/src/lib/dialog/ɵworkbench-dialog.ts","../../../../projects/scion/workbench/src/lib/dialog/ɵworkbench-dialog.service.ts","../../../../projects/scion/workbench/src/lib/dialog/workbench-dialog.service.ts","../../../../projects/scion/workbench/src/lib/message-box/message-box-footer/message-box-footer.component.ts","../../../../projects/scion/workbench/src/lib/message-box/message-box-footer/message-box-footer.component.html","../../../../projects/scion/workbench/src/lib/dialog/dialog-footer/workbench-dialog-footer.directive.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-header/workbench-dialog-header.directive.ts","../../../../projects/scion/workbench/src/lib/message-box/message-box-header/message-box-header.component.ts","../../../../projects/scion/workbench/src/lib/message-box/message-box-header/message-box-header.component.html","../../../../projects/scion/workbench/src/lib/common/typeof.pipe.ts","../../../../projects/scion/workbench/src/lib/message-box/workbench-message-box.component.ts","../../../../projects/scion/workbench/src/lib/message-box/workbench-message-box.component.html","../../../../projects/scion/workbench/src/lib/message-box/ɵworkbench-message-box.service.ts","../../../../projects/scion/workbench/src/lib/popup/popup.component.ts","../../../../projects/scion/workbench/src/lib/popup/popup.component.html","../../../../projects/scion/workbench/src/lib/common/math.util.ts","../../../../projects/scion/workbench/src/lib/popup/workbench-popup.registry.ts","../../../../projects/scion/workbench/src/lib/popup/popup.service.ts","../../../../projects/scion/workbench/src/lib/message-box/workbench-message-box.service.ts","../../../../projects/scion/workbench/src/lib/view/view-context-provider.ts","../../../../projects/scion/workbench/src/lib/part/view-context-menu/menu-item/menu-item.component.ts","../../../../projects/scion/workbench/src/lib/part/view-context-menu/menu-item/menu-item.component.html","../../../../projects/scion/workbench/src/lib/part/view-context-menu/view-menu.component.ts","../../../../projects/scion/workbench/src/lib/part/view-context-menu/view-menu.component.html","../../../../projects/scion/workbench/src/lib/part/view-context-menu/text/text.component.ts","../../../../projects/scion/workbench/src/lib/common/rxjs-interop.util.ts","../../../../projects/scion/workbench/src/lib/part/view-context-menu/view-menu.service.ts","../../../../projects/scion/workbench/src/lib/part/view-tab/view-tab.component.ts","../../../../projects/scion/workbench/src/lib/part/view-tab/view-tab.component.html","../../../../projects/scion/workbench/src/lib/part/view-tab-drag-image/view-tab-drag-image.component.ts","../../../../projects/scion/workbench/src/lib/view-dnd/view-tab-drag-image-renderer.service.ts","../../../../projects/scion/workbench/src/lib/part/view-tab-bar/view-tab-bar.component.ts","../../../../projects/scion/workbench/src/lib/part/view-tab-bar/view-tab-bar.component.html","../../../../projects/scion/workbench/src/lib/part/part-bar/part-bar.component.ts","../../../../projects/scion/workbench/src/lib/part/part-bar/part-bar.component.html","../../../../projects/scion/workbench/src/lib/part/part.component.ts","../../../../projects/scion/workbench/src/lib/part/part.component.html","../../../../projects/scion/workbench/src/lib/part/ɵworkbench-part.model.ts","../../../../projects/scion/workbench/src/lib/view-dnd/view-drag.service.ts","../../../../projects/scion/workbench/src/lib/view/view-slot.component.ts","../../../../projects/scion/workbench/src/lib/view/view-slot.component.html","../../../../projects/scion/workbench/src/lib/view/ɵworkbench-view.model.ts","../../../../projects/scion/workbench/src/lib/popup/popup.config.ts","../../../../projects/scion/workbench/src/lib/page-not-found/page-not-found.component.ts","../../../../projects/scion/workbench/src/lib/page-not-found/page-not-found.component.html","../../../../projects/scion/workbench/src/lib/routing/empty-outlet/empty-outlet.component.ts","../../../../projects/scion/workbench/src/lib/routing/empty-outlet/empty-outlet.component.html","../../../../projects/scion/workbench/src/lib/null-content/null-content.component.ts","../../../../projects/scion/workbench/src/lib/null-content/null-content.component.html","../../../../projects/scion/workbench/src/lib/routing/workbench-route-guards.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-auxiliary-route-installer.service.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-layout-differ.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-outlet-differ.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-url-observer.service.ts","../../../../projects/scion/workbench/src/lib/view/view-move-handler.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-platform.config.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-platform-initializer.provider.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-platform-config-loader.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/manifest-object-cache.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-view-routes.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-view-intent-handler.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/text/remote-text-provider.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/common/microfrontend.util.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.html","../../../../projects/scion/workbench/src/lib/common/stringify-error.util.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-view-capability-validator.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/initialization/view-capability-preload-capability-interceptor.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.ts","../../../../projects/scion/workbench/src/lib/notification/notification.ts","../../../../projects/scion/workbench/src/lib/notification/text-notification.component.ts","../../../../projects/scion/workbench/src/lib/notification/ɵnotification.ts","../../../../projects/scion/workbench/src/lib/notification/notification.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.ts","../../../../projects/scion/workbench/src/lib/content-projection/content-as-overlay.component.ts","../../../../projects/scion/workbench/src/lib/content-projection/content-as-overlay.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.html","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/text/host-text-provider.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/workbench-microfrontend-support.ts","../../../../projects/scion/workbench/src/lib/startup/workbench-launcher.service.ts","../../../../projects/scion/workbench/src/lib/routing/ɵlocation.ts","../../../../projects/scion/workbench/src/lib/text/workbench-view-menu-config-text-provider.ts","../../../../projects/scion/workbench/src/lib/text/workbench-text-provider.ts","../../../../projects/scion/workbench/src/lib/text/text-providers.ts","../../../../projects/scion/workbench/src/lib/icon/material-icon-provider.ts","../../../../projects/scion/workbench/src/lib/icon/workbench-icon-provider.ts","../../../../projects/scion/workbench/src/lib/icon/icon-providers.ts","../../../../projects/scion/workbench/src/lib/workbench.provider.ts","../../../../projects/scion/workbench/src/lib/startup/splash/splash.component.ts","../../../../projects/scion/workbench/src/lib/startup/splash/splash.component.html","../../../../projects/scion/workbench/src/lib/common/coerce-observable.pipe.ts","../../../../projects/scion/workbench/src/lib/notification/notification.component.ts","../../../../projects/scion/workbench/src/lib/notification/notification.component.html","../../../../projects/scion/workbench/src/lib/notification/notification-css-classes.pipe.ts","../../../../projects/scion/workbench/src/lib/notification/notification-list.component.ts","../../../../projects/scion/workbench/src/lib/notification/notification-list.component.html","../../../../projects/scion/workbench/src/lib/activity/activity-bar/activity-item/activity-item.component.ts","../../../../projects/scion/workbench/src/lib/activity/activity-bar/activity-item/activity-item.component.html","../../../../projects/scion/workbench/src/lib/activity/activity-bar/activity-stack/activity-stack.component.ts","../../../../projects/scion/workbench/src/lib/activity/activity-bar/activity-stack/activity-stack.component.html","../../../../projects/scion/workbench/src/lib/activity/activity-bar/activity-bar.component.ts","../../../../projects/scion/workbench/src/lib/activity/activity-bar/activity-bar.component.html","../../../../projects/scion/workbench/src/lib/activity/activity-panel/activity-panel.component.ts","../../../../projects/scion/workbench/src/lib/activity/activity-panel/activity-panel.component.html","../../../../projects/scion/workbench/src/lib/layout/layout.component.ts","../../../../projects/scion/workbench/src/lib/layout/layout.component.html","../../../../projects/scion/workbench/src/lib/workbench.component.ts","../../../../projects/scion/workbench/src/lib/workbench.component.html","../../../../projects/scion/workbench/src/lib/layout/workbench-layout.factory.ts","../../../../projects/scion/workbench/src/lib/layout/public_api.ts","../../../../projects/scion/workbench/src/lib/desktop/desktop.directive.ts","../../../../projects/scion/workbench/src/lib/desktop/public_api.ts","../../../../projects/scion/workbench/src/lib/perspective/public_api.ts","../../../../projects/scion/workbench/src/lib/part/view-context-menu/view-menu-item.directive.ts","../../../../projects/scion/workbench/src/lib/part/part-action-bar/part-action.directive.ts","../../../../projects/scion/workbench/src/lib/part/public_api.ts","../../../../projects/scion/workbench/src/lib/view/public_api.ts","../../../../projects/scion/workbench/src/lib/routing/workbench-router-link.directive.ts","../../../../projects/scion/workbench/src/lib/routing/public_api.ts","../../../../projects/scion/workbench/src/lib/message-box/public_api.ts","../../../../projects/scion/workbench/src/lib/dialog/dialog-footer/workbench-dialog-action.directive.ts","../../../../projects/scion/workbench/src/lib/dialog/public_api.ts","../../../../projects/scion/workbench/src/lib/notification/public_api.ts","../../../../projects/scion/workbench/src/lib/popup/public_api.ts","../../../../projects/scion/workbench/src/lib/common/public_api.ts","../../../../projects/scion/workbench/src/lib/microfrontend-platform/public_api.ts","../../../../projects/scion/workbench/src/lib/startup/public_api.ts","../../../../projects/scion/workbench/src/lib/logging/public_api.ts","../../../../projects/scion/workbench/src/lib/storage/public_api.ts","../../../../projects/scion/workbench/src/lib/activity/public_api.ts","../../../../projects/scion/workbench/src/lib/text/public_api.ts","../../../../projects/scion/workbench/src/lib/icon/public_api.ts","../../../../projects/scion/workbench/src/lib/public_api.ts","../../../../projects/scion/workbench/src/public-api.ts","../../../../projects/scion/workbench/src/scion-workbench.ts"],"sourcesContent":["/*\n * Copyright (c) 2018-2024 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {ComponentType} from '@angular/cdk/portal';\nimport {Signal, Type} from '@angular/core';\nimport {LogAppender, LogLevel} from './logging';\nimport {MicrofrontendPlatformConfig} from '@scion/microfrontend-platform';\nimport {MicrofrontendPlatformConfigLoader} from './microfrontend-platform/microfrontend-platform-config-loader';\nimport {WorkbenchPerspectives} from './perspective/workbench-perspective.model';\nimport {WorkbenchStorage} from './storage/workbench-storage';\nimport {WorkbenchTextProviderFn} from './text/workbench-text-provider.model';\nimport {WorkbenchIconProviderFn} from './icon/workbench-icon-provider.model';\nimport {WorkbenchLayoutFn} from './layout/workbench-layout';\n\n/**\n * Configuration of the SCION Workbench.\n */\nexport abstract class WorkbenchConfig {\n\n /**\n * Defines the layout(s) of the application. Defaults to a single layout with only a main area.\n *\n * An application can have multiple layouts, called perspectives. A perspective defines an arrangement of parts and views.\n * Parts can be docked to the side or positioned relative to each other. Views are stacked in parts and can be dragged to other parts.\n * Content can be displayed in both parts and views.\n *\n * A perspective typically has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to support\n * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens new views by default.\n * Unlike any other part, the main area is shared between perspectives, and its layout is not reset when resetting perspectives.\n *\n * See {@link WorkbenchLayoutFn} for more information and an example.\n */\n public abstract layout?: WorkbenchLayoutFn | WorkbenchPerspectives;\n\n /**\n * Provides texts to the SCION Workbench.\n *\n * A text provider is a function that returns the text for a translation key.\n *\n * Texts starting with the percent symbol (`%`) are passed to the text provider for translation, with the percent symbol omitted.\n *\n * The SCION Workbench uses the following translation keys for built-in texts:\n * - workbench.clear.tooltip\n * - workbench.close.action\n * - workbench.close_all_tabs.action\n * - workbench.close_other_tabs.action\n * - workbench.close_tab.action\n * - workbench.close_tab.tooltip\n * - workbench.close_tabs_to_the_left.action\n * - workbench.close_tabs_to_the_right.action\n * - workbench.close.tooltip\n * - workbench.dev_mode_only_hint.tooltip\n * - workbench.minimize.tooltip\n * - workbench.move_tab_down.action\n * - workbench.move_tab_to_new_window.action\n * - workbench.move_tab_to_the_left.action\n * - workbench.move_tab_to_the_right.action\n * - workbench.move_tab_up.action\n * - workbench.null_content.message\n * - workbench.null_view_developer_hint.message\n * - workbench.ok.action\n * - workbench.page_not_found.message\n * - workbench.page_not_found.title\n * - workbench.page_not_found_developer_hint.message\n * - workbench.page_not_found_part.message\n * - workbench.page_not_found_view.message\n * - workbench.reset_perspective.action\n * - workbench.show_open_tabs.tooltip\n *\n * The function:\n * - Can call `inject` to get any required dependencies.\n * - Can call `toSignal` to convert an Observable to a Signal.\n *\n * @see WorkbenchTextProviderFn\n */\n public abstract textProvider?: WorkbenchTextProviderFn;\n\n /**\n * Provides icons to the SCION Workbench.\n *\n * An icon provider is a function that returns a component for an icon. The component renders the icon.\n *\n * Defaults to a Material icon provider, interpreting the icon as a Material icon ligature.\n *\n * The default icon provider requires the application to include the Material icon font, for example in `styles.scss`, as follows:\n * ```scss\n * @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded');\n * ```\n *\n * The SCION Workbench uses the following icons:\n * - `workbench.clear`: Clear button in input fields\n * - `workbench.close`: Close button in views, dialogs and notifications\n * - `workbench.dirty`: Visual indicator for view with unsaved content\n * - `workbench.menu_down`: Menu button of drop down menus\n * - `workbench.minimize`: Minimize button in docked parts\n * - `workbench.pin`: Visual indicator for a pinned view\n * - `workbench.search`: Visual indicator in search or filter fields\n *\n * To not replace built-in workbench icons, the icon provider can return `undefined` for icons starting with the `workbench.` prefix.\n *\n * The function can call `inject` to get any required dependencies.\n *\n * @see WorkbenchIconProviderFn\n */\n public abstract iconProvider?: WorkbenchIconProviderFn;\n\n /**\n * Specifies the component to display in `<wb-workbench>` while the workbench is starting.\n *\n * Defaults to a splash showing a loading indicator (ellipsis throbber).\n *\n * Note: No splash screen is displayed if starting the workbench in an app initializer.\n */\n public abstract splashComponent?: ComponentType<unknown>;\n\n /**\n * Specifies the component to display a view tab, enabling custom design or functionality.\n *\n * The component can inject {@link WorkbenchView} and {@link VIEW_TAB_RENDERING_CONTEXT} to get a reference to the view and the rendering context.\n */\n public abstract viewTabComponent?: ComponentType<unknown>;\n\n /**\n * Defines the component to display when no route matches the requested path.\n *\n * This can happen when navigating to a non-existent route or after loading the application, if the routes have changed since the user's last session.\n *\n * The component can inject {@link WorkbenchView} to get a reference to the view, e.g., to obtain the requested URL.\n */\n public abstract pageNotFoundComponent?: ComponentType<unknown>;\n\n /**\n * Controls which built-in menu items to display in the view context menu.\n *\n * Set to `false` to exclude all built-in menu items.\n */\n public abstract viewMenuItems?: ViewMenuItemsConfig | false;\n\n /**\n * Configures startup of the SCION Workbench.\n *\n * The SCION Workbench starts automatically when the `<wb-workbench>` component is added to the DOM. Alternatively,\n * the workbench can be started manually using {@link WorkbenchLauncher.launch}, such as in an app initializer or a route guard.\n *\n * The application can hook into the startup process of the SCION Workbench by providing one or more initializers to {@link provideWorkbenchInitializer}.\n * Initializers execute at defined points during startup, enabling the application's controlled initialization. The workbench is fully started once\n * all initializers have completed.\n *\n * The application can inject {@link WorkbenchStartup} to check if the workbench has completed startup.\n */\n public abstract startup?: {\n /**\n * Controls when to start the SCION Workbench. Defaults to `LAZY`.\n *\n * - **LAZY**\n * Starts the workbench when the `<wb-workbench>` component is added to the DOM or manually via {@link WorkbenchLauncher#launch},\n * e.g., from a route guard or app initializer.\n *\n * - **APP_INITIALIZER**\n * Starts the workbench during application bootstrapping, blocking Angular's app startup until the workbench is ready.\n * No splash is displayed.\n *\n * @deprecated since version 19.0.0-beta.3. To start the workbench in an app initializer, use Angular's `provideAppInitializer()` function: `provideAppInitializer(() => inject(WorkbenchLauncher).launch())`. Otherwise, no migration is necessary. No replacement. API will be removed in version 21.\n */\n launcher?: 'LAZY' | 'APP_INITIALIZER';\n\n /**\n * Specifies the component to display in `<wb-workbench>` while the workbench is starting.\n *\n * Note: No splash screen is displayed when using the app initializer strategy.\n *\n * @deprecated since version 19.0.0-beta.3. Property has been moved. Configure the splash in `WorkbenchConfig.splashComponent`. Property will be removed in version 21.\n */\n splash?: ComponentType<unknown>;\n };\n\n /**\n * Configures microfrontend support in the workbench, allowing the integration of microfrontends as workbench views or\n * workbench popups.\n *\n * The workbench uses the \"SCION Microfrontend Platform\" for providing microfrontend support. To learn more about the\n * \"SCION Microfrontend Platform\", refer to https://github.com/SchweizerischeBundesbahnen/scion-microfrontend-platform.\n *\n * The workbench allows any web page to be embedded as a workbench view or workbench popup. The web app has to provide\n * a manifest in which it describes its views and popups. To integrate a third-party application where customization is not\n * possible, the host application can provide a manifest for that application. If embedded content needs to interact with\n * the workbench, the web app can use the library `@scion/workbench-client`, a pure TypeScript library based on the\n * web stack-agnostic `@scion/microfrontend-platform` library.\n *\n * The workbench integrates microfrontends through so-called intents, a mechanism known from Android development, enabling\n * controlled collaboration across application boundaries. \"SCION Microfrontend Platform DevTools\" can help to inspect\n * integrated applications and dependencies. The DevTools are available in the form of a microfrontend that can be embedded\n * like any other microfrontend. Refer to the documentation for detailed instructions on how to integrate\n * \"SCION Microfrontend Platform DevTools\".\n *\n * Typically, the host app provides API to integrated micro apps via the intent mechanism. Consider registering intent handlers\n * under the DI token {@link MICROFRONTEND_PLATFORM_POST_STARTUP}.\n */\n public abstract microfrontendPlatform?: MicrofrontendPlatformConfig | Type<MicrofrontendPlatformConfigLoader>;\n\n /**\n * Provides persistent storage to the SCION Workbench.\n *\n * If not set, the workbench uses the browser's local storage as persistent storage.\n */\n public abstract storage?: Type<WorkbenchStorage>;\n\n /**\n * Configures the behavior of workbench dialogs.\n */\n public abstract dialog?: {\n /**\n * Configures the area to block for application-modal dialogs. If not set, defaults to `workbench`.\n *\n * - **workbench:** blocks the {@link WorkbenchComponent|workbench element}, still allowing interaction with elements outside the workbench element.\n *\n * - **viewport** blocks the browser viewport, preventing interaction with the application until application-modal dialogs are closed.\n */\n modalityScope?: 'workbench' | 'viewport';\n };\n\n /**\n * Configures logging for the workbench.\n */\n public abstract logging?: {\n /**\n * Sets the minimum severity level a log message must have in order to be logged. By default, if not specified, it is set to {@link LogLevel#INFO}.\n *\n * At runtime, you can change the minimum required log level by setting the `loglevel` query parameter.\n */\n logLevel?: LogLevel;\n /**\n * Registers log appenders to output log messages. Multiple appenders are allowed. By default, if not specified, log messages are written to the console.\n */\n logAppenders?: Type<LogAppender>[];\n };\n}\n\n/**\n * Configuration of built-in menu items in the view's context menu.\n *\n * Each property represents a menu item, allowing customization of visibility, accelerators, and more.\n *\n * Texts can be changed or localized using a {@link WorkbenchTextProviderFn text provider} passed to {@link provideWorkbench} via the workbench config object.\n */\nexport interface ViewMenuItemsConfig {\n /**\n * Configures the menu item for closing a view tab.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.close_tab.action`\n */\n close?: MenuItemConfig | false;\n /**\n * Configures the menu item for closing other view tabs.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.close_other_tabs.action`\n */\n closeOthers?: MenuItemConfig | false;\n /**\n * Configures the menu item for closing all view tabs.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.close_all_tabs.action`\n */\n closeAll?: MenuItemConfig | false;\n /**\n * Configures the menu item for closing view tabs to the right.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.close_tabs_to_the_right.action`\n */\n closeToTheRight?: MenuItemConfig | false;\n /**\n * Configures the menu item for closing view tabs to the left.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.close_tabs_to_the_left.action`\n */\n closeToTheLeft?: MenuItemConfig | false;\n /**\n * Configures the menu item for moving a view up.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.move_tab_up.action`\n */\n moveUp?: MenuItemConfig | false;\n /**\n * Configures the menu item for moving a view to the right.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.move_tab_to_the_right.action`\n */\n moveRight?: MenuItemConfig | false;\n /**\n * Configures the menu item for moving a view down.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbenchworkbench.move_tab_down.action`\n */\n moveDown?: MenuItemConfig | false;\n /**\n * Configures the menu item for moving a view to the left.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.move_tab_to_the_left.action`\n */\n moveLeft?: MenuItemConfig | false;\n /**\n * Configures the menu item for moving a view to a new window.\n *\n * Set to `false` to exclude it.\n *\n * The menu item text can be changed or localized using a {@link WorkbenchTextProviderFn}.\n * Translation key: `workbench.move_tab_to_new_window.action`\n */\n moveToNewWindow?: MenuItemConfig | false;\n}\n\n/**\n * Configures a built-in menu item.\n */\nexport interface MenuItemConfig {\n /**\n * @deprecated since version 19.0.0-beta.2. Set to `false` in {@link ViewMenuItemsConfig} to exclude the menu item. API will be removed in version 21.\n */\n visible?: boolean;\n /**\n * Specifies the text of this menu item.\n *\n * Can be a string or a function that returns a string or a {@link Signal}.\n *\n * The function can call `inject` to get any required dependencies, or use `toSignal` to convert an observable to a signal.\n *\n * @deprecated since version 19.0.0-beta.3. Register a text provider to change or localize menu item texts. Register the text provider via workbench configuration passed to the `provideWorkbench` function. API will be removed in version 21.\n */\n text?: string | (() => string | Signal<string>);\n accelerator?: string[];\n group?: string;\n cssClass?: string | string[];\n}\n","/*\n * Copyright (c) 2018-2024 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\n/**\n * Throws the specified error, useful in arrow functions that do not support throwing without a body.\n */\nexport function throwError(error: string): never {\n throw Error(error);\n}\n","/*\n * Copyright (c) 2018-2025 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {effect, Injector, Signal, untracked} from '@angular/core';\n\n/**\n * Returns a Promise that resolves when signaling `true`.\n *\n * This function must be called within an injection context, or an explicit {@link Injector} passed.\n */\nexport function resolveWhen(condition: Signal<boolean>, options?: {injector?: Injector}): Promise<void> {\n return new Promise<void>(resolve => {\n const effectRef = effect(() => {\n if (condition()) {\n untracked(() => resolve());\n effectRef.destroy();\n }\n }, {injector: options?.injector});\n });\n}\n","/*\n * Copyright (c) 2018-2023 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {Injectable} from '@angular/core';\n\n/**\n * Provides persistent storage to the SCION Workbench.\n */\nexport abstract class WorkbenchStorage {\n\n /**\n * Method invoked to load a value from persisted storage.\n */\n public abstract load(key: string): Promise<string | null> | string | null;\n\n /**\n * Method invoked to write a value to persisted storage.\n *\n * This method may be called during page unload. If sending data to a web server,\n * use `navigator.sendBeacon()` instead of `window.fetch()` to reliably transmit data.\n */\n public abstract store(key: string, value: string): Promise<void> | void;\n}\n\n/**\n * Default storage used by the SCION workbench to persist data in local storage.\n *\n * Local storage maintains a persistent storage area per origin. Data does not expire and remains after the browser restarts.\n *\n * @internal\n */\n@Injectable(/* DO NOT provide via 'providedIn' metadata as registered conditionally under `WorkbenchStorage` DI token. */)\nexport class DefaultWorkbenchStorage implements WorkbenchStorage {\n\n public load(key: string): string | null {\n return localStorage.getItem(key);\n }\n\n public store(key: string, value: string): void {\n localStorage.setItem(key, value);\n }\n}\n","/*\n * Copyright (c) 2018-2025 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {booleanAttribute, DestroyRef, inject, Injector, numberAttribute, signal, WritableSignal} from '@angular/core';\nimport {WorkbenchStorage} from '../storage/workbench-storage';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\nimport {skipUntil} from 'rxjs/operators';\n\n/**\n * Creates a writable signal to read and write specified flag from and to workbench storage.\n */\nexport function renderingFlag<T extends string | number | boolean | null>(storageKey: string, defaultValue: T, options?: {injector?: Injector}): WritableSignal<T> {\n const injector = options?.injector ?? inject(Injector);\n const workbenchStorage = injector.get(WorkbenchStorage);\n const flag = signal<T>(defaultValue);\n\n // Read flag from storage.\n const whenReadFromStorage = readFromStorage(storageKey).then(storedValue => {\n if (storedValue === null) {\n return;\n }\n switch (typeof defaultValue) {\n case 'number': {\n flag.set(numberAttribute(storedValue, defaultValue) as T);\n break;\n }\n case 'boolean': {\n flag.set(booleanAttribute(storedValue) as T);\n break;\n }\n default: {\n flag.set(storedValue as T);\n }\n }\n });\n\n // Write flag to storage.\n toObservable(flag, {injector})\n .pipe(\n skipUntil(whenReadFromStorage),\n takeUntilDestroyed(injector.get(DestroyRef)),\n )\n .subscribe(value => void workbenchStorage.store(storageKey, `${value}`));\n\n return flag;\n}\n\nasync function readFromStorage(key: string): Promise<string | null> {\n return inject(WorkbenchStorage).load(key);\n}\n","/*\n * Copyright (c) 2018-2024 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {UUID} from '@scion/toolkit/uuid';\n\n/**\n * Generates a UID (unique identifier).\n */\nexport const UID = {\n /**\n * Generates a UID (unique identifier) with length 8.\n */\n randomUID: (): string => {\n return UUID.randomUUID().substring(0, 8);\n },\n};\n","import {coerceElement} from '@angular/cdk/coercion';\nimport {booleanAttribute, DestroyRef, ElementRef, inject, Injector, numberAttribute, DOCUMENT} from '@angular/core';\nimport {Arrays} from '@scion/toolkit/util';\n\nimport {UID} from './uid.util';\nimport {DisposeFn} from './disposable';\nimport {Observable} from 'rxjs';\n\n/**\n * Creates an HTML element and optionally adds it to the DOM.\n */\nexport function createElement(tag: string, options: ElementCreateOptions): HTMLElement {\n const element = document.createElement(tag);\n options.style && setStyle(element, options.style);\n options.cssClass && element.classList.add(...Arrays.coerce(options.cssClass));\n options.attributes && setAttribute(element, options.attributes);\n options.text && (element.innerText = options.text);\n options.parent?.appendChild(element);\n return element;\n}\n\n/**\n * Applies the given style(s) to the given element.\n *\n * Specify styles to be modified by passing a dictionary containing CSS property names (hyphen case).\n * To remove a style, set its value to `null`.\n */\nexport function setStyle(element: HTMLElement | ElementRef<HTMLElement>, styles: {[style: string]: string | null}): void {\n const target = coerceElement(element);\n Object.entries(styles).forEach(([name, valu