@scion/workbench 17.0.0-beta.7 → 17.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/activation-instant.provider.mjs +3 -3
- package/esm2022/lib/common/asserts.util.mjs +2 -2
- package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +6 -6
- package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
- package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
- package/esm2022/lib/common/null-if-empty.pipe.mjs +3 -3
- package/esm2022/lib/common/objects.util.mjs +34 -0
- package/esm2022/lib/common/typeof.pipe.mjs +3 -3
- package/esm2022/lib/common/uuid.util.mjs +17 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +9 -6
- package/esm2022/lib/dialog/movable.directive.mjs +3 -3
- package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +53 -24
- package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +5 -5
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +7 -7
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/executor/single-task-executor.mjs +26 -7
- package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +15 -7
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -10
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +6 -4
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +11 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +59 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +117 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +57 -0
- package/esm2022/lib/layout/workbench-layout.component.mjs +6 -4
- package/esm2022/lib/layout/workbench-layout.factory.mjs +4 -4
- package/esm2022/lib/layout/workbench-layout.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.model.mjs +5 -6
- package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
- package/esm2022/lib/layout/workbench-layouts.util.mjs +37 -1
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +53 -21
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +8 -5
- package/esm2022/lib/layout//311/265workbench-layout.mjs +382 -195
- package/esm2022/lib/logging/console-appender.service.mjs +3 -3
- package/esm2022/lib/logging/logger.mjs +3 -3
- package/esm2022/lib/logging/logging-support.mjs +4 -4
- package/esm2022/lib/logging/logging.model.mjs +3 -3
- package/esm2022/lib/logging//311/265logger.mjs +3 -3
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +18 -20
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +15 -6
- package/esm2022/lib/message-box/workbench-message-box.options.mjs +1 -1
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +26 -13
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +25 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +11 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +11 -9
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +112 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +43 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +16 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +34 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +88 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +121 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +9 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +9 -15
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +37 -32
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -11
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +14 -9
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +54 -23
- package/esm2022/lib/migration/workbench-migration.mjs +11 -0
- package/esm2022/lib/migration/workbench-migrator.mjs +38 -0
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +3 -3
- package/esm2022/lib/notification/notification.component.mjs +3 -3
- package/esm2022/lib/notification/notification.config.mjs +1 -1
- package/esm2022/lib/notification/notification.mjs +1 -1
- package/esm2022/lib/notification/notification.service.mjs +9 -9
- package/esm2022/lib/notification/text-notification.component.mjs +3 -3
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +26 -0
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +28 -0
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +10 -8
- package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
- package/esm2022/lib/part/part.component.mjs +6 -4
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +18 -18
- package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +3 -3
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +9 -9
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +13 -11
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -5
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +9 -9
- package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
- package/esm2022/lib/part/workbench-part.model.mjs +1 -1
- package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
- package/esm2022/lib/part//311/265workbench-part.model.mjs +3 -3
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +57 -0
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +19 -51
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +23 -18
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +27 -42
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +15 -10
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +62 -0
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +98 -78
- package/esm2022/lib/popup/popup.component.mjs +22 -10
- package/esm2022/lib/popup/popup.config.mjs +3 -1
- package/esm2022/lib/popup/popup.service.mjs +4 -4
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +6 -6
- package/esm2022/lib/public_api.mjs +3 -2
- package/esm2022/lib/registry/workbench-object-registry.mjs +3 -3
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +31 -0
- package/esm2022/lib/routing/public_api.mjs +1 -1
- package/esm2022/lib/routing/router.util.mjs +89 -35
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -49
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-navigational-states.mjs +4 -28
- package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-route-data.mjs +14 -4
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -32
- package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +69 -82
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +314 -0
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-launcher.service.mjs +11 -11
- package/esm2022/lib/storage/workbench-storage.mjs +3 -3
- package/esm2022/lib/testing/public_api.mjs +2 -1
- package/esm2022/lib/testing/workbench-testing.module.mjs +13 -39
- package/esm2022/lib/testing/workbench.provider.mjs +60 -0
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +3 -3
- package/esm2022/lib/view/public_api.mjs +2 -1
- package/esm2022/lib/view/view-move-handler.service.mjs +42 -62
- package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
- package/esm2022/lib/view/view.component.mjs +20 -40
- package/esm2022/lib/view/workbench-view-route-guards.mjs +47 -0
- package/esm2022/lib/view/workbench-view.model.mjs +6 -4
- package/esm2022/lib/view/workbench-view.registry.mjs +4 -4
- package/esm2022/lib/view//311/265workbench-view.model.mjs +106 -27
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +7 -7
- package/esm2022/lib/view-dnd/view-drag.service.mjs +6 -6
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -4
- package/esm2022/lib/workbench-config.mjs +15 -0
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +20 -12
- package/esm2022/lib/workbench.constants.mjs +7 -9
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.module.mjs +15 -86
- package/esm2022/lib/workbench.provider.mjs +117 -0
- package/esm2022/lib/workbench.service.mjs +5 -5
- package/esm2022/lib//311/265workbench.service.mjs +15 -21
- package/fesm2022/scion-workbench.mjs +5490 -4166
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/objects.util.d.ts +17 -0
- package/lib/common/uuid.util.d.ts +8 -0
- package/lib/dialog/workbench-dialog.component.d.ts +16 -7
- package/lib/dialog/workbench-dialog.d.ts +1 -1
- package/lib/dialog/workbench-dialog.options.d.ts +4 -3
- package/lib/dialog/workbench-dialog.registry.d.ts +4 -3
- package/lib/dialog/workbench-dialog.service.d.ts +1 -1
- package/lib/dialog//311/265workbench-dialog.d.ts +2 -2
- package/lib/executor/single-task-executor.d.ts +6 -1
- package/lib/filter-field/filter-field.component.d.ts +1 -1
- package/lib/glass-pane/glass-pane.directive.d.ts +21 -0
- package/lib/layout/grid-element/grid-element.component.d.ts +2 -2
- package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +16 -0
- package/lib/layout/migration/model/workbench-layout-migration-v2.model.d.ts +22 -0
- package/lib/layout/migration/model/workbench-layout-migration-v3.model.d.ts +30 -0
- package/lib/layout/migration/model/workbench-layout-migration-v4.model.d.ts +31 -0
- package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +13 -0
- package/lib/layout/migration/workbench-layout-migration-v3.service.d.ts +16 -0
- package/lib/layout/migration/workbench-layout-migration-v4.service.d.ts +12 -0
- package/lib/layout/workbench-layout.d.ts +61 -7
- package/lib/layout/workbench-layout.factory.d.ts +1 -1
- package/lib/layout/workbench-layout.model.d.ts +19 -9
- package/lib/layout/workbench-layouts.util.d.ts +18 -0
- package/lib/layout/workench-layout-serializer.service.d.ts +28 -7
- package/lib/layout//311/265workbench-layout.d.ts +172 -98
- package/lib/layout//311/265workbench-layout.factory.d.ts +4 -0
- package/lib/logging/logging-support.d.ts +2 -2
- package/lib/message-box/workbench-message-box.component.d.ts +3 -0
- package/lib/message-box/workbench-message-box.options.d.ts +4 -3
- package/lib/message-box/workbench-message-box.service.d.ts +1 -1
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -1
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +39 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +25 -0
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +4 -2
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.d.ts +48 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +3 -7
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +4 -9
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -3
- package/lib/migration/workbench-migration.d.ts +9 -0
- package/lib/migration/workbench-migrator.d.ts +18 -0
- package/lib/notification/notification.config.d.ts +1 -1
- package/lib/notification/notification.d.ts +1 -3
- package/lib/page-not-found/format-url.pipe.d.ts +11 -0
- package/lib/page-not-found/page-not-found.component.d.ts +8 -0
- package/lib/part/part-action-bar/part-action.directive.d.ts +1 -1
- package/lib/part/part-bar/part-bar.component.d.ts +4 -3
- package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
- package/lib/part/view-context-menu/view-menu.service.d.ts +5 -4
- package/lib/part/view-list-item/view-list-item.component.d.ts +5 -4
- package/lib/part/view-tab/view-tab.component.d.ts +6 -5
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +3 -3
- package/lib/part/workbench-part.model.d.ts +5 -4
- package/lib/part//311/265workbench-part.model.d.ts +5 -4
- package/lib/perspective/migration/model/workbench-perspective-migration-v1.model.d.ts +8 -0
- package/lib/perspective/migration/model/workbench-perspective-migration-v2.model.d.ts +10 -0
- package/lib/perspective/migration/workbench-perspective-migration-v2.service.d.ts +13 -0
- package/lib/perspective/workbench-grid-merger.service.d.ts +9 -16
- package/lib/perspective/workbench-perspective-storage.service.d.ts +10 -28
- package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +8 -25
- package/lib/perspective/workbench-perspective.model.d.ts +123 -14
- package/lib/perspective/workbench-perspective.service.d.ts +10 -3
- package/lib/perspective/workench-perspective-serializer.service.d.ts +26 -0
- package/lib/perspective//311/265workbench-perspective.model.d.ts +16 -14
- package/lib/popup/popup.component.d.ts +1 -0
- package/lib/popup/popup.config.d.ts +4 -3
- package/lib/portal/workbench-portal-outlet.directive.d.ts +2 -2
- package/lib/public_api.d.ts +4 -3
- package/lib/registry/workbench-object-registry.d.ts +2 -2
- package/lib/routing/empty-outlet/empty-outlet.component.d.ts +15 -0
- package/lib/routing/public_api.d.ts +2 -2
- package/lib/routing/router.util.d.ts +45 -19
- package/lib/routing/routing.model.d.ts +107 -8
- package/lib/routing/url-segment-matcher.d.ts +20 -0
- package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -15
- package/lib/routing/workbench-layout-differ.d.ts +4 -7
- package/lib/routing/workbench-message-box-differ.d.ts +25 -0
- package/lib/routing/workbench-navigational-states.d.ts +6 -19
- package/lib/routing/workbench-route-data.d.ts +13 -3
- package/lib/routing/workbench-router-link.directive.d.ts +22 -7
- package/lib/routing/workbench-router.service.d.ts +42 -142
- package/lib/routing/workbench-url-observer.service.d.ts +10 -28
- package/lib/routing//311/265workbench-router.service.d.ts +74 -0
- package/lib/startup/workbench-launcher.service.d.ts +4 -4
- package/lib/testing/public_api.d.ts +1 -0
- package/lib/testing/workbench-testing.module.d.ts +7 -6
- package/lib/testing/workbench.provider.d.ts +29 -0
- package/lib/view/public_api.d.ts +2 -1
- package/lib/view/view-move-handler.service.d.ts +2 -4
- package/lib/view/view-portal.pipe.d.ts +2 -1
- package/lib/view/view.component.d.ts +1 -11
- package/lib/view/workbench-view-route-guards.d.ts +36 -0
- package/lib/view/workbench-view.model.d.ts +37 -5
- package/lib/view/workbench-view.registry.d.ts +4 -3
- package/lib/view//311/265workbench-view.model.d.ts +61 -15
- package/lib/view-dnd/view-drag.service.d.ts +9 -4
- package/lib/view-dnd/view-drop-zone.directive.d.ts +1 -1
- package/lib/{workbench-module-config.d.ts → workbench-config.d.ts} +29 -71
- package/lib/workbench.component.d.ts +2 -2
- package/lib/workbench.constants.d.ts +6 -8
- package/lib/workbench.model.d.ts +20 -8
- package/lib/workbench.module.d.ts +12 -7
- package/lib/workbench.provider.d.ts +38 -0
- package/lib/workbench.service.d.ts +32 -8
- package/lib//311/265workbench.service.d.ts +9 -3
- package/package.json +8 -8
- package/esm2022/lib/layout/migration/workbench-layout-migrator.service.mjs +0 -38
- package/esm2022/lib/layout/migration/workbench-layout-v1-migrator.service.mjs +0 -59
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +0 -46
- package/esm2022/lib/view/workbench-view-pre-destroy.guard.mjs +0 -36
- package/esm2022/lib/workbench-module-config.mjs +0 -15
- package/lib/layout/migration/workbench-layout-migrator.service.d.ts +0 -15
- package/lib/layout/migration/workbench-layout-v1-migrator.service.d.ts +0 -12
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.d.ts +0 -17
- package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { Component, ElementRef, inject, ViewChild, ViewContainerRef } from '@angular/core';
|
|
11
11
|
import { IFRAME_HOST, VIEW_DROP_PLACEHOLDER_HOST, WORKBENCH_ELEMENT_REF } from './content-projection/view-container.reference';
|
|
12
|
-
import {
|
|
12
|
+
import { WorkbenchConfig } from './workbench-config';
|
|
13
13
|
import { SplashComponent } from './startup/splash/splash.component';
|
|
14
14
|
import { LoggerNames } from './logging';
|
|
15
15
|
import { AsyncPipe, DOCUMENT, NgComponentOutlet } from '@angular/common';
|
|
@@ -17,10 +17,11 @@ import { WorkbenchLayoutComponent } from './layout/workbench-layout.component';
|
|
|
17
17
|
import { NotificationListComponent } from './notification/notification-list.component';
|
|
18
18
|
import { combineLatest, lastValueFrom } from 'rxjs';
|
|
19
19
|
import { first, map } from 'rxjs/operators';
|
|
20
|
-
import { GLASS_PANE_BLOCKABLE, GLASS_PANE_TARGET_ELEMENT, GlassPaneDirective } from './glass-pane/glass-pane.directive';
|
|
20
|
+
import { GLASS_PANE_BLOCKABLE, GLASS_PANE_OPTIONS, GLASS_PANE_TARGET_ELEMENT, GlassPaneDirective } from './glass-pane/glass-pane.directive';
|
|
21
21
|
import { WorkbenchDialogRegistry } from './dialog/workbench-dialog.registry';
|
|
22
|
+
import { WORKBENCH_AUXILIARY_ROUTE_OUTLET } from './routing/workbench-auxiliary-routes-registrator.service';
|
|
22
23
|
import * as i0 from "@angular/core";
|
|
23
|
-
import * as i1 from "./workbench-
|
|
24
|
+
import * as i1 from "./workbench-config";
|
|
24
25
|
import * as i2 from "./startup/workbench-launcher.service";
|
|
25
26
|
import * as i3 from "./logging";
|
|
26
27
|
/**
|
|
@@ -33,7 +34,7 @@ export class WorkbenchComponent {
|
|
|
33
34
|
set injectViewDropPlaceholderHost(vcr) {
|
|
34
35
|
vcr && this.viewContainerReferences.viewDropPlaceholderHost.set(vcr);
|
|
35
36
|
}
|
|
36
|
-
constructor(
|
|
37
|
+
constructor(workbenchConfig, _workbenchLauncher, _logger, workbenchStartup) {
|
|
37
38
|
this._workbenchLauncher = _workbenchLauncher;
|
|
38
39
|
this._logger = _logger;
|
|
39
40
|
this.workbenchStartup = workbenchStartup;
|
|
@@ -46,8 +47,11 @@ export class WorkbenchComponent {
|
|
|
46
47
|
viewDropPlaceholderHost: inject(VIEW_DROP_PLACEHOLDER_HOST),
|
|
47
48
|
};
|
|
48
49
|
this._logger.debug(() => 'Constructing WorkbenchComponent.', LoggerNames.LIFECYCLE);
|
|
50
|
+
if (inject(WORKBENCH_AUXILIARY_ROUTE_OUTLET, { optional: true })) {
|
|
51
|
+
throw Error(`[WorkbenchError] Workbench must not be loaded into a view. Did you navigate to the empty path route? Make sure that the application's root route is guarded with 'canMatchWorkbenchView(false)'. Example: "{path: '', canMatch: [canMatchWorkbenchView(false), ...]}"`);
|
|
52
|
+
}
|
|
49
53
|
this.viewContainerReferences.workbenchElement.set(inject(ViewContainerRef));
|
|
50
|
-
this.splash =
|
|
54
|
+
this.splash = workbenchConfig?.startup?.splash || SplashComponent;
|
|
51
55
|
this.whenViewContainersInjected = this.createHostViewContainersInjectedPromise();
|
|
52
56
|
this.startWorkbench();
|
|
53
57
|
}
|
|
@@ -76,12 +80,12 @@ export class WorkbenchComponent {
|
|
|
76
80
|
ngOnDestroy() {
|
|
77
81
|
this.unsetViewContainerReferences();
|
|
78
82
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchComponent, deps: [{ token: i1.WorkbenchConfig }, { token: i2.WorkbenchLauncher }, { token: i3.Logger }, { token: i2.WorkbenchStartup }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.6", type: WorkbenchComponent, isStandalone: true, selector: "wb-workbench", viewQueries: [{ propertyName: "injectIframeHost", first: true, predicate: ["iframe_host"], descendants: true, read: ViewContainerRef }, { propertyName: "injectViewDropPlaceholderHost", first: true, predicate: ["view_drop_placeholder_host"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "@if (workbenchStartup.whenStarted | async) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n @if (whenViewContainersInjected | async) {\n <wb-workbench-layout/>\n }\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_placeholder_host class=\"view-drop-placeholder-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;position:relative;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-workbench-layout{flex:auto}:host>div.view-drop-placeholder-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: WorkbenchLayoutComponent, selector: "wb-workbench-layout" }, { kind: "component", type: NotificationListComponent, selector: "wb-notification-list" }, { kind: "directive", type: GlassPaneDirective, selector: "[wbGlassPane]" }], viewProviders: [
|
|
81
85
|
configureWorkbenchGlassPane(),
|
|
82
86
|
] }); }
|
|
83
87
|
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchComponent, decorators: [{
|
|
85
89
|
type: Component,
|
|
86
90
|
args: [{ selector: 'wb-workbench', standalone: true, imports: [
|
|
87
91
|
AsyncPipe,
|
|
@@ -91,8 +95,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
91
95
|
GlassPaneDirective,
|
|
92
96
|
], viewProviders: [
|
|
93
97
|
configureWorkbenchGlassPane(),
|
|
94
|
-
], template: "@if (workbenchStartup.whenStarted | async) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n @if (whenViewContainersInjected | async) {\n <wb-workbench-layout/>\n }\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_placeholder_host class=\"view-drop-placeholder-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n}
|
|
95
|
-
}], ctorParameters: () => [{ type: i1.
|
|
98
|
+
], template: "@if (workbenchStartup.whenStarted | async) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n @if (whenViewContainersInjected | async) {\n <wb-workbench-layout/>\n }\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_placeholder_host class=\"view-drop-placeholder-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;position:relative;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-workbench-layout{flex:auto}:host>div.view-drop-placeholder-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"] }]
|
|
99
|
+
}], ctorParameters: () => [{ type: i1.WorkbenchConfig }, { type: i2.WorkbenchLauncher }, { type: i3.Logger }, { type: i2.WorkbenchStartup }], propDecorators: { injectIframeHost: [{
|
|
96
100
|
type: ViewChild,
|
|
97
101
|
args: ['iframe_host', { read: ViewContainerRef }]
|
|
98
102
|
}], injectViewDropPlaceholderHost: [{
|
|
@@ -113,7 +117,7 @@ function configureWorkbenchGlassPane() {
|
|
|
113
117
|
{
|
|
114
118
|
provide: GLASS_PANE_TARGET_ELEMENT,
|
|
115
119
|
useFactory: () => {
|
|
116
|
-
if (inject(
|
|
120
|
+
if (inject(WorkbenchConfig).dialog?.modalityScope === 'viewport') {
|
|
117
121
|
return inject(DOCUMENT).body;
|
|
118
122
|
}
|
|
119
123
|
else {
|
|
@@ -121,6 +125,10 @@ function configureWorkbenchGlassPane() {
|
|
|
121
125
|
}
|
|
122
126
|
},
|
|
123
127
|
},
|
|
128
|
+
{
|
|
129
|
+
provide: GLASS_PANE_OPTIONS,
|
|
130
|
+
useValue: { cssClass: 'e2e-workbench' },
|
|
131
|
+
},
|
|
124
132
|
];
|
|
125
133
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsV0FBVyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFN0gsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFN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RUFDekIsa0JBQWtCLCtDQUVMO1lBQ2IsMkJBQTJCLEVBQUU7U0FDOUI7OzJGQUVVLGtCQUFrQjtrQkFoQjlCLFNBQVM7K0JBQ0UsY0FBYyxjQUdaLElBQUksV0FDUDt3QkFDUCxTQUFTO3dCQUNULGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLGtCQUFrQjtxQkFDbkIsaUJBQ2M7d0JBQ2IsMkJBQTJCLEVBQUU7cUJBQzlCOzhLQTRCYSxnQkFBZ0I7c0JBRDdCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDO2dCQU1wQyw2QkFBNkI7c0JBRDFDLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7O0FBaURuRTs7R0FFRztBQUNILFNBQVMsMkJBQTJCO0lBQ2xDLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsVUFBVSxFQUFFLEdBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLEVBQUU7YUFDbkQsQ0FBQztTQUNIO1FBQ0Q7WUFDRSxPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxLQUFLLFVBQVUsRUFBRTtvQkFDdEUsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUM5QjtxQkFDSTtvQkFDSCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDM0I7WUFDSCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgT25EZXN0cm95LCBQcm92aWRlciwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUZSQU1FX0hPU1QsIFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NULCBXT1JLQkVOQ0hfRUxFTUVOVF9SRUZ9IGZyb20gJy4vY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZSc7XG5pbXBvcnQge1dvcmtiZW5jaExhdW5jaGVyLCBXb3JrYmVuY2hTdGFydHVwfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hNb2R1bGVDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLW1vZHVsZS1jb25maWcnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7U3BsYXNoQ29tcG9uZW50fSBmcm9tICcuL3N0YXJ0dXAvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2dnZXIsIExvZ2dlck5hbWVzfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHtBc3luY1BpcGUsIERPQ1VNRU5ULCBOZ0NvbXBvbmVudE91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0Q29tcG9uZW50fSBmcm9tICcuL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQge05vdGlmaWNhdGlvbkxpc3RDb21wb25lbnR9IGZyb20gJy4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIGxhc3RWYWx1ZUZyb219IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0dMQVNTX1BBTkVfQkxPQ0tBQkxFLCBHTEFTU19QQU5FX1RBUkdFVF9FTEVNRU5ULCBHbGFzc1BhbmVEaXJlY3RpdmV9IGZyb20gJy4vZ2xhc3MtcGFuZS9nbGFzcy1wYW5lLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5fSBmcm9tICcuL2RpYWxvZy93b3JrYmVuY2gtZGlhbG9nLnJlZ2lzdHJ5JztcbmltcG9ydCB7QmxvY2thYmxlfSBmcm9tICcuL2dsYXNzLXBhbmUvYmxvY2thYmxlJztcblxuLyoqXG4gKiBNYWluIGVudHJ5IHBvaW50IGNvbXBvbmVudCBvZiB0aGUgU0NJT04gV29ya2JlbmNoLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi13b3JrYmVuY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2JlbmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2JlbmNoLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgR2xhc3NQYW5lRGlyZWN0aXZlLFxuICBdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgY29uZmlndXJlV29ya2JlbmNoR2xhc3NQYW5lKCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIFZpZXcgY29udGFpbmVycyByZXF1aXJlZCBmb3IgdGhlIHdvcmtiZW5jaCB0byBhdHRhY2ggZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWZlcmVuY2VzID0ge1xuICAgIHdvcmtiZW5jaEVsZW1lbnQ6IGluamVjdChXT1JLQkVOQ0hfRUxFTUVOVF9SRUYpLFxuICAgIGlmcmFtZUhvc3Q6IGluamVjdChJRlJBTUVfSE9TVCksXG4gICAgdmlld0Ryb3BQbGFjZWhvbGRlckhvc3Q6IGluamVjdChWSUVXX0RST1BfUExBQ0VIT0xERVJfSE9TVCksXG4gIH07XG5cbiAgLyoqXG4gICAqIFNwbGFzaCB0byBkaXNwbGF5IGR1cmluZyB3b3JrYmVuY2ggc3RhcnR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBzcGxhc2g6IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIGFsbCB0aGUgcmVxdWlyZWQgdmlldyBjb250YWluZXJzIGZvciB0aGUgd29ya2JlbmNoIHRvIGF0dGFjaCBlbGVtZW50cyBoYXZlIGJlZW4gaW5qZWN0ZWQgZnJvbSB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIFRvIGF2b2lkIGFuIGBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yYCwgbWFrZSBzdXJlIG5vdCB0byBhZGQgdGhlIHtAbGluayBXb3JrYmVuY2hMYXlvdXRDb21wb25lbnR9IGJlZm9yZSB0aGUgcmVsZXZhbnRcbiAgICogdmlldyBjb250YWluZXJzIGhhdmUgYmVlbiBpbmplY3RlZC4gT3RoZXJ3aXNlLCB3aGVuIGxvYWRpbmcgYW4gZXhpc3Rpbmcgd29ya2JlbmNoIGxheW91dCAoZS5nLiwgZnJvbSBVUkwpIGludG8gdGhlIHdvcmtiZW5jaCwgQW5ndWxhclxuICAgKiB3aWxsIHRocm93IHRoaXMgZXJyb3IgYmVjYXVzZSB2aWV3cyBhcmUgcmVuZGVyZWQgYmVmb3JlIHZpZXcgY29udGFpbmVycyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHdoZW5WaWV3Q29udGFpbmVyc0luamVjdGVkOiBQcm9taXNlPHRydWU+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZV9ob3N0Jywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICBwcm90ZWN0ZWQgc2V0IGluamVjdElmcmFtZUhvc3QodmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgdmNyICYmIHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMuaWZyYW1lSG9zdC5zZXQodmNyKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdfZHJvcF9wbGFjZWhvbGRlcl9ob3N0Jywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICBwcm90ZWN0ZWQgc2V0IGluamVjdFZpZXdEcm9wUGxhY2Vob2xkZXJIb3N0KHZjcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHZjciAmJiB0aGlzLnZpZXdDb250YWluZXJSZWZlcmVuY2VzLnZpZXdEcm9wUGxhY2Vob2xkZXJIb3N0LnNldCh2Y3IpO1xuICB9XG5cbiAgY29uc3RydWN0b3Iod29ya2JlbmNoTW9kdWxlQ29uZmlnOiBXb3JrYmVuY2hNb2R1bGVDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExhdW5jaGVyOiBXb3JrYmVuY2hMYXVuY2hlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCB3b3JrYmVuY2hTdGFydHVwOiBXb3JrYmVuY2hTdGFydHVwKSB7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+ICdDb25zdHJ1Y3RpbmcgV29ya2JlbmNoQ29tcG9uZW50LicsIExvZ2dlck5hbWVzLkxJRkVDWUNMRSk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy53b3JrYmVuY2hFbGVtZW50LnNldChpbmplY3QoVmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMuc3BsYXNoID0gd29ya2JlbmNoTW9kdWxlQ29uZmlnPy5zdGFydHVwPy5zcGxhc2ggfHwgU3BsYXNoQ29tcG9uZW50O1xuICAgIHRoaXMud2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQgPSB0aGlzLmNyZWF0ZUhvc3RWaWV3Q29udGFpbmVyc0luamVjdGVkUHJvbWlzZSgpO1xuICAgIHRoaXMuc3RhcnRXb3JrYmVuY2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIFNDSU9OIFdvcmtiZW5jaC4gSGFzIG5vIGVmZmVjdCBpZiBhbHJlYWR5IHN0YXJ0ZWQsIGUuZy4sIGluIGFuIGFwcCBpbml0aWFsaXplciBvciByb3V0ZSBndWFyZC5cbiAgICovXG4gIHByaXZhdGUgc3RhcnRXb3JrYmVuY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndvcmtiZW5jaFN0YXJ0dXAuaXNTdGFydGVkKCkpIHtcbiAgICAgIHRoaXMuX3dvcmtiZW5jaExhdW5jaGVyLmxhdW5jaCgpLmNhdGNoKGVycm9yID0+IHRoaXMuX2xvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IFNDSU9OIFdvcmtiZW5jaCcsIGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSBhbGwgdGhlIHJlcXVpcmVkIHZpZXcgY29udGFpbmVycyBmb3IgdGhlIHdvcmtiZW5jaCB0byBhdHRhY2ggZWxlbWVudHMgaGF2ZSBiZWVuIGluamVjdGVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVIb3N0Vmlld0NvbnRhaW5lcnNJbmplY3RlZFByb21pc2UoKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgY29uc3QgcmVmZXJlbmNlcyA9IE9iamVjdC52YWx1ZXModGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcyk7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20oY29tYmluZUxhdGVzdChyZWZlcmVuY2VzLm1hcChyZWZlcmVuY2UgPT4gcmVmZXJlbmNlLnJlZiQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KHZjcnMgPT4gdmNycy5ldmVyeShCb29sZWFuKSksXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc2V0cyB2aWV3IGNvbnRhaW5lciByZWZlcmVuY2VzIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSB1bnNldFZpZXdDb250YWluZXJSZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcykuZm9yRWFjaChyZWYgPT4gcmVmLnVuc2V0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zZXRWaWV3Q29udGFpbmVyUmVmZXJlbmNlcygpO1xuICB9XG59XG5cbi8qKlxuICogQmxvY2tzIHRoZSB3b3JrYmVuY2ggb3IgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCB3aGVuIG9wZW5pbmcgYW4gYXBwbGljYXRpb24tbW9kYWwgZGlhbG9nLlxuICovXG5mdW5jdGlvbiBjb25maWd1cmVXb3JrYmVuY2hHbGFzc1BhbmUoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9CTE9DS0FCTEUsXG4gICAgICB1c2VGYWN0b3J5OiAoKTogQmxvY2thYmxlID0+ICh7XG4gICAgICAgIGJsb2NrZWRCeSQ6IGluamVjdChXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeSkudG9wJCgpLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX1RBUkdFVF9FTEVNRU5ULFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBpZiAoaW5qZWN0KFdvcmtiZW5jaE1vZHVsZUNvbmZpZykuZGlhbG9nPy5tb2RhbGl0eVNjb3BlID09PSAndmlld3BvcnQnKSB7XG4gICAgICAgICAgcmV0dXJuIGluamVjdChET0NVTUVOVCkuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gIF07XG59XG4iLCJAaWYgKHdvcmtiZW5jaFN0YXJ0dXAud2hlblN0YXJ0ZWQgfCBhc3luYykge1xuICA8ZGl2IGNsYXNzPVwic3RhY2tpbmctY29udGV4dC1iYXJyaWVyXCIgd2JHbGFzc1BhbmU+XG4gICAgQGlmICh3aGVuVmlld0NvbnRhaW5lcnNJbmplY3RlZCB8IGFzeW5jKSB7XG4gICAgICA8d2Itd29ya2JlbmNoLWxheW91dC8+XG4gICAgfVxuICAgIDwhLS0gQWNob3IgdG8gYXR0YWNoIGlmcmFtZXMgb2YgZW1iZWRkZWQgbWljcm9mcm9udGVuZHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAjaWZyYW1lX2hvc3QvPlxuICA8L2Rpdj5cblxuICA8IS0tIEFuY2hvciB0byBhdHRhY2ggdGhlIHZpc3VhbCBwbGFjZWhvbGRlciB3aGVuIGRyYWdnaW5nIGEgdmlldyBvdmVyIGEgdmFsaWQgZHJvcCB6b25lIC0tPlxuICA8ZGl2ICN2aWV3X2Ryb3BfcGxhY2Vob2xkZXJfaG9zdCBjbGFzcz1cInZpZXctZHJvcC1wbGFjZWhvbGRlci1ob3N0XCI+PC9kaXY+XG5cbiAgPCEtLSBOb3RpZmljYXRpb25zIC0tPlxuICA8d2Itbm90aWZpY2F0aW9uLWxpc3QvPlxufVxuQGVsc2Uge1xuICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNwbGFzaFwiLz5cbn1cbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsV0FBVyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFN0gsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sbUNBQW1DLENBQUM7QUFDNUosT0FBTyxFQUFDLHVCQUF1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WUFDSCxDQUFDO1NBQ0Y7UUFDRDtZQUNFLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLGVBQWUsRUFBNEI7U0FDakU7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgT25EZXN0cm95LCBQcm92aWRlciwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUZSQU1FX0hPU1QsIFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NULCBXT1JLQkVOQ0hfRUxFTUVOVF9SRUZ9IGZyb20gJy4vY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZSc7XG5pbXBvcnQge1dvcmtiZW5jaExhdW5jaGVyLCBXb3JrYmVuY2hTdGFydHVwfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtTcGxhc2hDb21wb25lbnR9IGZyb20gJy4vc3RhcnR1cC9zcGxhc2gvc3BsYXNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQge0FzeW5jUGlwZSwgRE9DVU1FTlQsIE5nQ29tcG9uZW50T3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRDb21wb25lbnR9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7Tm90aWZpY2F0aW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbGFzdFZhbHVlRnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdMQVNTX1BBTkVfT1BUSU9OUywgR0xBU1NfUEFORV9UQVJHRVRfRUxFTUVOVCwgR2xhc3NQYW5lRGlyZWN0aXZlLCBHbGFzc1BhbmVPcHRpb25zfSBmcm9tICcuL2dsYXNzLXBhbmUvZ2xhc3MtcGFuZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi9nbGFzcy1wYW5lL2Jsb2NrYWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVUfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLWF1eGlsaWFyeS1yb3V0ZXMtcmVnaXN0cmF0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogTWFpbiBlbnRyeSBwb2ludCBjb21wb25lbnQgb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2Itd29ya2JlbmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtiZW5jaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmtiZW5jaC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgIFdvcmtiZW5jaExheW91dENvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25MaXN0Q29tcG9uZW50LFxuICAgIEdsYXNzUGFuZURpcmVjdGl2ZSxcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIGNvbmZpZ3VyZVdvcmtiZW5jaEdsYXNzUGFuZSgpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrYmVuY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBWaWV3IGNvbnRhaW5lcnMgcmVxdWlyZWQgZm9yIHRoZSB3b3JrYmVuY2ggdG8gYXR0YWNoIGVsZW1lbnRzLlxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmZXJlbmNlcyA9IHtcbiAgICB3b3JrYmVuY2hFbGVtZW50OiBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKSxcbiAgICBpZnJhbWVIb3N0OiBpbmplY3QoSUZSQU1FX0hPU1QpLFxuICAgIHZpZXdEcm9wUGxhY2Vob2xkZXJIb3N0OiBpbmplY3QoVklFV19EUk9QX1BMQUNFSE9MREVSX0hPU1QpLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTcGxhc2ggdG8gZGlzcGxheSBkdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3BsYXNoOiBDb21wb25lbnRUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSBhbGwgdGhlIHJlcXVpcmVkIHZpZXcgY29udGFpbmVycyBmb3IgdGhlIHdvcmtiZW5jaCB0byBhdHRhY2ggZWxlbWVudHMgaGF2ZSBiZWVuIGluamVjdGVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBUbyBhdm9pZCBhbiBgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcmAsIG1ha2Ugc3VyZSBub3QgdG8gYWRkIHRoZSB7QGxpbmsgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50fSBiZWZvcmUgdGhlIHJlbGV2YW50XG4gICAqIHZpZXcgY29udGFpbmVycyBoYXZlIGJlZW4gaW5qZWN0ZWQuIE90aGVyd2lzZSwgd2hlbiBsb2FkaW5nIGFuIGV4aXN0aW5nIHdvcmtiZW5jaCBsYXlvdXQgKGUuZy4sIGZyb20gVVJMKSBpbnRvIHRoZSB3b3JrYmVuY2gsIEFuZ3VsYXJcbiAgICogd2lsbCB0aHJvdyB0aGlzIGVycm9yIGJlY2F1c2Ugdmlld3MgYXJlIHJlbmRlcmVkIGJlZm9yZSB2aWV3IGNvbnRhaW5lcnMgYXJlIGF2YWlsYWJsZS5cbiAgICovXG4gIHByb3RlY3RlZCB3aGVuVmlld0NvbnRhaW5lcnNJbmplY3RlZDogUHJvbWlzZTx0cnVlPjtcblxuICBAVmlld0NoaWxkKCdpZnJhbWVfaG9zdCcsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHJvdGVjdGVkIHNldCBpbmplY3RJZnJhbWVIb3N0KHZjcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHZjciAmJiB0aGlzLnZpZXdDb250YWluZXJSZWZlcmVuY2VzLmlmcmFtZUhvc3Quc2V0KHZjcik7XG4gIH1cblxuICBAVmlld0NoaWxkKCd2aWV3X2Ryb3BfcGxhY2Vob2xkZXJfaG9zdCcsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHJvdGVjdGVkIHNldCBpbmplY3RWaWV3RHJvcFBsYWNlaG9sZGVySG9zdCh2Y3I6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB2Y3IgJiYgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy52aWV3RHJvcFBsYWNlaG9sZGVySG9zdC5zZXQodmNyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHdvcmtiZW5jaENvbmZpZzogV29ya2JlbmNoQ29uZmlnLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXVuY2hlcjogV29ya2JlbmNoTGF1bmNoZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgd29ya2JlbmNoU3RhcnR1cDogV29ya2JlbmNoU3RhcnR1cCkge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiAnQ29uc3RydWN0aW5nIFdvcmtiZW5jaENvbXBvbmVudC4nLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICAgIGlmIChpbmplY3QoV09SS0JFTkNIX0FVWElMSUFSWV9ST1VURV9PVVRMRVQsIHtvcHRpb25hbDogdHJ1ZX0pKSB7XG4gICAgICB0aHJvdyBFcnJvcihgW1dvcmtiZW5jaEVycm9yXSBXb3JrYmVuY2ggbXVzdCBub3QgYmUgbG9hZGVkIGludG8gYSB2aWV3LiBEaWQgeW91IG5hdmlnYXRlIHRvIHRoZSBlbXB0eSBwYXRoIHJvdXRlPyBNYWtlIHN1cmUgdGhhdCB0aGUgYXBwbGljYXRpb24ncyByb290IHJvdXRlIGlzIGd1YXJkZWQgd2l0aCAnY2FuTWF0Y2hXb3JrYmVuY2hWaWV3KGZhbHNlKScuIEV4YW1wbGU6IFwie3BhdGg6ICcnLCBjYW5NYXRjaDogW2Nhbk1hdGNoV29ya2JlbmNoVmlldyhmYWxzZSksIC4uLl19XCJgKTtcbiAgICB9XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy53b3JrYmVuY2hFbGVtZW50LnNldChpbmplY3QoVmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMuc3BsYXNoID0gd29ya2JlbmNoQ29uZmlnPy5zdGFydHVwPy5zcGxhc2ggfHwgU3BsYXNoQ29tcG9uZW50O1xuICAgIHRoaXMud2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQgPSB0aGlzLmNyZWF0ZUhvc3RWaWV3Q29udGFpbmVyc0luamVjdGVkUHJvbWlzZSgpO1xuICAgIHRoaXMuc3RhcnRXb3JrYmVuY2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIFNDSU9OIFdvcmtiZW5jaC4gSGFzIG5vIGVmZmVjdCBpZiBhbHJlYWR5IHN0YXJ0ZWQsIGUuZy4sIGluIGFuIGFwcCBpbml0aWFsaXplciBvciByb3V0ZSBndWFyZC5cbiAgICovXG4gIHByaXZhdGUgc3RhcnRXb3JrYmVuY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndvcmtiZW5jaFN0YXJ0dXAuaXNTdGFydGVkKCkpIHtcbiAgICAgIHRoaXMuX3dvcmtiZW5jaExhdW5jaGVyLmxhdW5jaCgpLmNhdGNoKGVycm9yID0+IHRoaXMuX2xvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IFNDSU9OIFdvcmtiZW5jaCcsIGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSBhbGwgdGhlIHJlcXVpcmVkIHZpZXcgY29udGFpbmVycyBmb3IgdGhlIHdvcmtiZW5jaCB0byBhdHRhY2ggZWxlbWVudHMgaGF2ZSBiZWVuIGluamVjdGVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVIb3N0Vmlld0NvbnRhaW5lcnNJbmplY3RlZFByb21pc2UoKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgY29uc3QgcmVmZXJlbmNlcyA9IE9iamVjdC52YWx1ZXModGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcyk7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20oY29tYmluZUxhdGVzdChyZWZlcmVuY2VzLm1hcChyZWZlcmVuY2UgPT4gcmVmZXJlbmNlLnJlZiQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KHZjcnMgPT4gdmNycy5ldmVyeShCb29sZWFuKSksXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc2V0cyB2aWV3IGNvbnRhaW5lciByZWZlcmVuY2VzIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSB1bnNldFZpZXdDb250YWluZXJSZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcykuZm9yRWFjaChyZWYgPT4gcmVmLnVuc2V0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zZXRWaWV3Q29udGFpbmVyUmVmZXJlbmNlcygpO1xuICB9XG59XG5cbi8qKlxuICogQmxvY2tzIHRoZSB3b3JrYmVuY2ggb3IgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCB3aGVuIG9wZW5pbmcgYW4gYXBwbGljYXRpb24tbW9kYWwgZGlhbG9nLlxuICovXG5mdW5jdGlvbiBjb25maWd1cmVXb3JrYmVuY2hHbGFzc1BhbmUoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9CTE9DS0FCTEUsXG4gICAgICB1c2VGYWN0b3J5OiAoKTogQmxvY2thYmxlID0+ICh7XG4gICAgICAgIGJsb2NrZWRCeSQ6IGluamVjdChXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeSkudG9wJCgpLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX1RBUkdFVF9FTEVNRU5ULFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBpZiAoaW5qZWN0KFdvcmtiZW5jaENvbmZpZykuZGlhbG9nPy5tb2RhbGl0eVNjb3BlID09PSAndmlld3BvcnQnKSB7XG4gICAgICAgICAgcmV0dXJuIGluamVjdChET0NVTUVOVCkuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IHtjc3NDbGFzczogJ2UyZS13b3JrYmVuY2gnfSBzYXRpc2ZpZXMgR2xhc3NQYW5lT3B0aW9ucyxcbiAgICB9LFxuICBdO1xufVxuIiwiQGlmICh3b3JrYmVuY2hTdGFydHVwLndoZW5TdGFydGVkIHwgYXN5bmMpIHtcbiAgPGRpdiBjbGFzcz1cInN0YWNraW5nLWNvbnRleHQtYmFycmllclwiIHdiR2xhc3NQYW5lPlxuICAgIEBpZiAod2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQgfCBhc3luYykge1xuICAgICAgPHdiLXdvcmtiZW5jaC1sYXlvdXQvPlxuICAgIH1cbiAgICA8IS0tIEFjaG9yIHRvIGF0dGFjaCBpZnJhbWVzIG9mIGVtYmVkZGVkIG1pY3JvZnJvbnRlbmRzIC0tPlxuICAgIDxuZy1jb250YWluZXIgI2lmcmFtZV9ob3N0Lz5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBbmNob3IgdG8gYXR0YWNoIHRoZSB2aXN1YWwgcGxhY2Vob2xkZXIgd2hlbiBkcmFnZ2luZyBhIHZpZXcgb3ZlciBhIHZhbGlkIGRyb3Agem9uZSAtLT5cbiAgPGRpdiAjdmlld19kcm9wX3BsYWNlaG9sZGVyX2hvc3QgY2xhc3M9XCJ2aWV3LWRyb3AtcGxhY2Vob2xkZXItaG9zdFwiPjwvZGl2PlxuXG4gIDwhLS0gTm90aWZpY2F0aW9ucyAtLT5cbiAgPHdiLW5vdGlmaWNhdGlvbi1saXN0Lz5cbn0gQGVsc2Uge1xuICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNwbGFzaFwiLz5cbn1cbiJdfQ==
|
|
@@ -9,15 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { InjectionToken } from '@angular/core';
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*/
|
|
14
|
-
export const WORKBENCH_FORROOT_GUARD = new InjectionToken('WORKBENCH_FORROOT_GUARD');
|
|
15
|
-
/**
|
|
16
|
-
* Prefix for views that are target of a primary route.
|
|
12
|
+
* Represents the id prefix of views.
|
|
17
13
|
*
|
|
18
|
-
*
|
|
19
|
-
* On the other hand, views with an id that does not begin with the view prefix can only be the target of secondary routes having the view
|
|
20
|
-
* id as their target outlet.
|
|
14
|
+
* @see ViewId
|
|
21
15
|
*/
|
|
22
16
|
export const VIEW_ID_PREFIX = 'view.';
|
|
23
17
|
/**
|
|
@@ -28,6 +22,10 @@ export const POPUP_ID_PREFIX = 'popup.';
|
|
|
28
22
|
* Represents the id prefix of dialogs.
|
|
29
23
|
*/
|
|
30
24
|
export const DIALOG_ID_PREFIX = 'dialog.';
|
|
25
|
+
/**
|
|
26
|
+
* Represents the id prefix of message boxes.
|
|
27
|
+
*/
|
|
28
|
+
export const MESSAGE_BOX_ID_PREFIX = 'messagebox.';
|
|
31
29
|
/**
|
|
32
30
|
* Name of the query parameter that contains the layout of the main area.
|
|
33
31
|
*/
|
|
@@ -44,4 +42,4 @@ export const WORKBENCH_LAYOUT_CONFIG = new InjectionToken('WORKBENCH_LAYOUT_CONF
|
|
|
44
42
|
* Prefix used to identify an anonymous perspective that the workbench creates for views moved to a new window.
|
|
45
43
|
*/
|
|
46
44
|
export const ANONYMOUS_PERSPECTIVE_ID_PREFIX = 'anonymous.';
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUV4Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUUxQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFdBQVcsQ0FBQztBQVd4RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUEwQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRXBIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQTRDLHlCQUF5QixDQUFDLENBQUM7QUFFaEk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRGbiwgV29ya2JlbmNoUGVyc3BlY3RpdmVzfSBmcm9tICcuL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5tb2RlbCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaWQgcHJlZml4IG9mIHZpZXdzLlxuICpcbiAqIEBzZWUgVmlld0lkXG4gKi9cbmV4cG9ydCBjb25zdCBWSUVXX0lEX1BSRUZJWCA9ICd2aWV3Lic7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaWQgcHJlZml4IG9mIHBvcHVwcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFBPUFVQX0lEX1BSRUZJWCA9ICdwb3B1cC4nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGlkIHByZWZpeCBvZiBkaWFsb2dzLlxuICovXG5leHBvcnQgY29uc3QgRElBTE9HX0lEX1BSRUZJWCA9ICdkaWFsb2cuJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBpZCBwcmVmaXggb2YgbWVzc2FnZSBib3hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQk9YX0lEX1BSRUZJWCA9ICdtZXNzYWdlYm94Lic7XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgcXVlcnkgcGFyYW1ldGVyIHRoYXQgY29udGFpbnMgdGhlIGxheW91dCBvZiB0aGUgbWFpbiBhcmVhLlxuICovXG5leHBvcnQgY29uc3QgTUFJTl9BUkVBX0xBWU9VVF9RVUVSWV9QQVJBTSA9ICdtYWluX2FyZWEnO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGNvbnRleHQgaW4gd2hpY2ggYSB2aWV3dGFiIGlzIHJlbmRlcmVkLlxuICpcbiAqIC0gYHRhYmA6IGlmIHJlbmRlcmVkIGFzIHZpZXcgdGFiIGluIHRoZSB0YWJiYXJcbiAqIC0gYGxpc3QtaXRlbWA6ICBpZiByZW5kZXJlZCBhcyBsaXN0IGl0ZW0gaW4gdGhlIHZpZXcgbGlzdCBtZW51XG4gKiAtIGBkcmFnLWltYWdlYDogaWYgcmVuZGVyZWQgYXMgZHJhZyBpbWFnZSB3aGlsZSBkcmFnZ2luZyBhIHZpZXcgdGFiXG4gKi9cbmV4cG9ydCB0eXBlIFZpZXdUYWJSZW5kZXJpbmdDb250ZXh0ID0gJ3RhYicgfCAnbGlzdC1pdGVtJyB8ICdkcmFnLWltYWdlJztcblxuLyoqXG4gKiBESSB0b2tlbiB0byBpbmplY3QgdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIHZpZXcgdGFiIGlzIHJlbmRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVklFV19UQUJfUkVOREVSSU5HX0NPTlRFWFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Vmlld1RhYlJlbmRlcmluZ0NvbnRleHQ+KCdWSUVXX1RBQl9SRU5ERVJJTkdfQ09OVEVYVCcpO1xuXG4vKipcbiAqIERJIHRva2VuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJlZCB3b3JrYmVuY2ggbGF5b3V0LlxuICovXG5leHBvcnQgY29uc3QgV09SS0JFTkNIX0xBWU9VVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48V29ya2JlbmNoTGF5b3V0Rm4gfCBXb3JrYmVuY2hQZXJzcGVjdGl2ZXM+KCdXT1JLQkVOQ0hfTEFZT1VUX0NPTkZJRycpO1xuXG4vKipcbiAqIFByZWZpeCB1c2VkIHRvIGlkZW50aWZ5IGFuIGFub255bW91cyBwZXJzcGVjdGl2ZSB0aGF0IHRoZSB3b3JrYmVuY2ggY3JlYXRlcyBmb3Igdmlld3MgbW92ZWQgdG8gYSBuZXcgd2luZG93LlxuICovXG5leHBvcnQgY29uc3QgQU5PTllNT1VTX1BFUlNQRUNUSVZFX0lEX1BSRUZJWCA9ICdhbm9ueW1vdXMuJztcbiJdfQ==
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
export {};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuXG4vKipcbiAqIEd1YXJkIHRoYXQgYSB2aWV3IGNhbiBpbXBsZW1lbnQgdG8gZGVjaWRlIHdoZXRoZXIgaXQgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaW1wbGVtZW50cyBhIGBDYW5DbG9zZWAgZ3VhcmQgdGhhdCBhc2tzIHRoZSB1c2VyIHdoZXRoZXIgdGhlIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENhbkNsb3NlIHtcbiAqXG4gKiAgIHB1YmxpYyBhc3luYyBjYW5DbG9zZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAqICAgICBjb25zdCBhY3Rpb24gPSBhd2FpdCBpbmplY3QoV29ya2JlbmNoTWVzc2FnZUJveFNlcnZpY2UpLm9wZW4oJ0RvIHlvdSB3YW50IHRvIGNsb3NlIHRoaXMgdmlldz8nLCB7XG4gKiAgICAgICBhY3Rpb25zOiB7eWVzOiAnWWVzJywgbm86ICdObyd9LFxuICogICAgIH0pO1xuICogICAgIHJldHVybiBhY3Rpb24gPT09ICd5ZXMnO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW5DbG9zZSB7XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGlzIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIGNhbkNsb3NlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gYWN0aW9uIGNvbnRyaWJ1dGVkIHRvIGEgcGFydC5cbiAqXG4gKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFiIGJhciBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFBhcnRBY3Rpb24ge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBwb3J0YWwgdG8gcmVuZGVyIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqIFVzZSBhIHtAbGluayBDb21wb25lbnRQb3J0YWx9IHRvIHJlbmRlciBhIGNvbXBvbmVudCwgb3IgYSB7QGxpbmsgVGVtcGxhdGVQb3J0YWx9IHRvIHJlbmRlciBhIHRlbXBsYXRlLlxuICAgKi9cbiAgcG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hlcmUgdG8gcGxhY2UgdGhpcyBhY3Rpb24gaW4gdGhlIGFjdGlvbiBiYXIuXG4gICAqL1xuICBhbGlnbj86ICdzdGFydCcgfCAnZW5kJztcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSB0byBtYXRjaCBhIHNwZWNpZmljIHBhcnQsIHBhcnRzIGluIGEgc3BlY2lmaWMgYXJlYSwgb3IgcGFydHMgZnJvbSBhIHNwZWNpZmljIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBtYXRjaGVzIGFueSBwYXJ0LlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBjYW5NYXRjaD86IENhbk1hdGNoUGFydEZuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBhY3Rpb24sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgYWN0aW9uIGluIHRlc3RzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGUgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24gdXNlZCBhcyBhIGBjYW5NYXRjaGAgY29uZGl0aW9uIGZvciBhIHBhcnQuXG4gKlxuICogVGhlIGZ1bmN0aW9uIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICovXG5leHBvcnQgdHlwZSBDYW5NYXRjaFBhcnRGbiA9IChwYXJ0OiBXb3JrYmVuY2hQYXJ0KSA9PiBib29sZWFuO1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEge0BsaW5rIFdvcmtiZW5jaE1lbnVJdGVtfS5cbiAqL1xuZXhwb3J0IHR5cGUgV29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm4gPSAodmlldzogV29ya2JlbmNoVmlldykgPT4gV29ya2JlbmNoTWVudUl0ZW0gfCBudWxsO1xuXG4vKipcbiAqIE1lbnUgaXRlbSBpbiBhIG1lbnUgb3IgY29udGV4dCBtZW51LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaE1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY29udGVudCBvZiB0aGUgbWVudSBpdGVtLlxuICAgKi9cbiAgcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbCB8IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjYWxsYmFjayB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGlzIG1lbnUgaXRlbS5cbiAgICpcbiAgICogVGhlIGZ1bmN0aW9uIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgb25BY3Rpb246ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWVudSBpdGVtIHVzaW5nIGtleXMgb24gdGhlIGtleWJvYXJkLCBlLmcuLCBbJ2N0cmwnLCAnYWx0JywgMV0uXG4gICAqXG4gICAqIFN1cHBvcnRlZCBtb2RpZmllcnMgYXJlICdjdHJsJywgJ3NoaWZ0JywgJ2FsdCcgYW5kICdtZXRhJy5cbiAgICovXG4gIGFjY2VsZXJhdG9yPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbGxvd3MgZ3JvdXBpbmcgbWVudSBpdGVtcyBvZiB0aGUgc2FtZSBncm91cC5cbiAgICovXG4gIGdyb3VwPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3dzIGRpc2FibGluZyB0aGUgbWVudSBpdGVtIGJhc2VkIG9uIGEgY29uZGl0aW9uLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86ICgpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzKGVzKSB0byBhZGQgdG8gdGhlIG1lbnUgaXRlbSwgZS5nLiwgdG8gbG9jYXRlIHRoZSBtZW51IGl0ZW0gaW4gdGVzdHMuXG4gICAqL1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgd29ya2JlbmNoIHRoZW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFRoZW1lIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0aGVtZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBzY2hlbWUgb2YgdGhlIHRoZW1lLlxuICAgKi9cbiAgY29sb3JTY2hlbWU6ICdsaWdodCcgfCAnZGFyayc7XG59XG4iXX0=
|
|
@@ -7,26 +7,12 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { NgModule } from '@angular/core';
|
|
11
11
|
import { WorkbenchComponent } from './workbench.component';
|
|
12
|
-
import { WorkbenchService } from './workbench.service';
|
|
13
12
|
import { WorkbenchRouterLinkDirective } from './routing/workbench-router-link.directive';
|
|
14
|
-
import { WorkbenchUrlObserver } from './routing/workbench-url-observer.service';
|
|
15
|
-
import { WorkbenchModuleConfig } from './workbench-module-config';
|
|
16
|
-
import { WORKBENCH_FORROOT_GUARD, WORKBENCH_LAYOUT_CONFIG } from './workbench.constants';
|
|
17
13
|
import { WorkbenchPartActionDirective } from './part/part-action-bar/part-action.directive';
|
|
18
14
|
import { WorkbenchViewMenuItemDirective } from './part/view-context-menu/view-menu.directive';
|
|
19
|
-
import {
|
|
20
|
-
import { ViewMoveHandler } from './view/view-move-handler.service';
|
|
21
|
-
import { provideWorkbenchMicrofrontendSupport } from './microfrontend-platform/workbench-microfrontend-support';
|
|
22
|
-
import { provideWorkbenchLauncher } from './startup/workbench-launcher.service';
|
|
23
|
-
import { provideLogging } from './logging';
|
|
24
|
-
import { WORKBENCH_POST_STARTUP, WORKBENCH_PRE_STARTUP, WORKBENCH_STARTUP } from './startup/workbench-initializer';
|
|
25
|
-
import { WorkbenchPerspectiveService } from './perspective/workbench-perspective.service';
|
|
26
|
-
import { DefaultWorkbenchStorage, WorkbenchStorage } from './storage/workbench-storage';
|
|
27
|
-
import { provideLocationPatch } from './routing/ɵlocation';
|
|
28
|
-
import { MAIN_AREA } from './layout/workbench-layout';
|
|
29
|
-
import { WorkbenchThemeSwitcher } from './theme/workbench-theme-switcher.service';
|
|
15
|
+
import { provideWorkbench } from './workbench.provider';
|
|
30
16
|
import * as i0 from "@angular/core";
|
|
31
17
|
/**
|
|
32
18
|
* Module of the SCION Workbench.
|
|
@@ -42,12 +28,12 @@ import * as i0 from "@angular/core";
|
|
|
42
28
|
* the user's workflow. Defining a main area is optional and recommended for applications requiring a dedicated and maximizable
|
|
43
29
|
* area for user interaction.
|
|
44
30
|
*
|
|
45
|
-
* Multiple layouts, called perspectives, are supported. Perspectives can be switched
|
|
31
|
+
* Multiple layouts, called perspectives, are supported. Perspectives can be switched. Only one perspective is active at a time.
|
|
46
32
|
* Perspectives share the same main area, if any.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function and import standalone components and directives instead; API will be removed in a future release.
|
|
47
35
|
*/
|
|
48
36
|
export class WorkbenchModule {
|
|
49
|
-
constructor(guard) {
|
|
50
|
-
}
|
|
51
37
|
/**
|
|
52
38
|
* To manifest a dependency to the workbench module from the application module.
|
|
53
39
|
*
|
|
@@ -63,64 +49,19 @@ export class WorkbenchModule {
|
|
|
63
49
|
* })
|
|
64
50
|
* export class AppModule { }
|
|
65
51
|
* ```
|
|
52
|
+
*
|
|
53
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function and import standalone components and directives instead; API will be removed in a future release.
|
|
66
54
|
*/
|
|
67
55
|
static forRoot(config = {}) {
|
|
68
56
|
return {
|
|
69
57
|
ngModule: WorkbenchModule,
|
|
70
|
-
providers: [
|
|
71
|
-
{
|
|
72
|
-
provide: WorkbenchModuleConfig,
|
|
73
|
-
useValue: config,
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
provide: WorkbenchStorage,
|
|
77
|
-
useClass: config.storage ?? DefaultWorkbenchStorage,
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
provide: WORKBENCH_LAYOUT_CONFIG,
|
|
81
|
-
useFactory: () => config.layout ?? ((factory) => factory.addPart(MAIN_AREA)),
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
provide: WORKBENCH_FORROOT_GUARD,
|
|
85
|
-
useFactory: provideForRootGuard,
|
|
86
|
-
deps: [[WorkbenchService, new Optional(), new SkipSelf()]],
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
provide: WORKBENCH_PRE_STARTUP,
|
|
90
|
-
useExisting: WorkbenchThemeSwitcher,
|
|
91
|
-
multi: true,
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
provide: WORKBENCH_STARTUP,
|
|
95
|
-
multi: true,
|
|
96
|
-
useExisting: WorkbenchPerspectiveService,
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
provide: WORKBENCH_POST_STARTUP,
|
|
100
|
-
useExisting: ViewMenuService,
|
|
101
|
-
multi: true,
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
provide: WORKBENCH_POST_STARTUP,
|
|
105
|
-
useClass: ViewMoveHandler,
|
|
106
|
-
multi: true,
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
110
|
-
multi: true,
|
|
111
|
-
useValue: () => inject(WorkbenchUrlObserver),
|
|
112
|
-
},
|
|
113
|
-
provideWorkbenchLauncher(config),
|
|
114
|
-
provideLogging(config),
|
|
115
|
-
provideLocationPatch(),
|
|
116
|
-
provideWorkbenchMicrofrontendSupport(config),
|
|
117
|
-
],
|
|
58
|
+
providers: [provideWorkbench(config)],
|
|
118
59
|
};
|
|
119
60
|
}
|
|
120
61
|
/**
|
|
121
62
|
* To manifest a dependency to the workbench module from a feature module.
|
|
122
63
|
*
|
|
123
|
-
* @deprecated since version 16.0.0-beta.1;
|
|
64
|
+
* @deprecated since version 16.0.0-beta.1; use standalone workbench component and directives instead; API will be removed in a future release.
|
|
124
65
|
*
|
|
125
66
|
* TODO [#312]: Remove when fixed issue https://github.com/SchweizerischeBundesbahnen/scion-workbench/issues/312
|
|
126
67
|
*/
|
|
@@ -130,17 +71,17 @@ export class WorkbenchModule {
|
|
|
130
71
|
providers: [], // do not register any providers in 'forChild' but in 'forRoot' instead
|
|
131
72
|
};
|
|
132
73
|
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
134
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
75
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, imports: [WorkbenchComponent,
|
|
135
76
|
WorkbenchRouterLinkDirective,
|
|
136
77
|
WorkbenchPartActionDirective,
|
|
137
78
|
WorkbenchViewMenuItemDirective], exports: [WorkbenchComponent,
|
|
138
79
|
WorkbenchRouterLinkDirective,
|
|
139
80
|
WorkbenchPartActionDirective,
|
|
140
81
|
WorkbenchViewMenuItemDirective] }); }
|
|
141
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
|
82
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, imports: [WorkbenchComponent] }); }
|
|
142
83
|
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, decorators: [{
|
|
144
85
|
type: NgModule,
|
|
145
86
|
args: [{
|
|
146
87
|
imports: [
|
|
@@ -156,17 +97,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
156
97
|
WorkbenchViewMenuItemDirective,
|
|
157
98
|
],
|
|
158
99
|
}]
|
|
159
|
-
}]
|
|
160
|
-
|
|
161
|
-
args: [WORKBENCH_FORROOT_GUARD]
|
|
162
|
-
}] }] });
|
|
163
|
-
/**
|
|
164
|
-
* @docs-private Not public API, intended for internal use only.
|
|
165
|
-
*/
|
|
166
|
-
export function provideForRootGuard(workbenchService) {
|
|
167
|
-
if (workbenchService) {
|
|
168
|
-
throw new Error('[ModuleForRootError] WorkbenchModule.forRoot() called twice. Lazy loaded modules should use WorkbenchModule.forChild() instead.');
|
|
169
|
-
}
|
|
170
|
-
return 'guarded';
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDMUYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDNUYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM5RyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXpELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFFaEY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFlSCxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUE2QyxLQUFVO0lBQ3ZELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWdDLEVBQUU7UUFDdEQsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixRQUFRLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksdUJBQXVCO2lCQUNwRDtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBK0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDckc7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtvQkFDaEMsVUFBVSxFQUFFLG1CQUFtQjtvQkFDL0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDM0Q7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtvQkFDOUIsV0FBVyxFQUFFLHNCQUFzQjtvQkFDbkMsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsV0FBVyxFQUFFLDJCQUEyQjtpQkFDekM7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHNCQUFzQjtvQkFDL0IsV0FBVyxFQUFFLGVBQWU7b0JBQzVCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxzQkFBc0I7b0JBQy9CLFFBQVEsRUFBRSxlQUFlO29CQUN6QixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2lCQUM3QztnQkFDRCx3QkFBd0IsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hDLGNBQWMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLG9CQUFvQixFQUFFO2dCQUN0QixvQ0FBb0MsQ0FBQyxNQUFNLENBQUM7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRO1FBQ3BCLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUUsRUFBRSxFQUFFLHVFQUF1RTtTQUN2RixDQUFDO0lBQ0osQ0FBQzs4R0F2RlUsZUFBZSxrQkFFTix1QkFBdUI7K0dBRmhDLGVBQWUsWUFaeEIsa0JBQWtCO1lBQ2xCLDRCQUE0QjtZQUM1Qiw0QkFBNEI7WUFDNUIsOEJBQThCLGFBRzlCLGtCQUFrQjtZQUNsQiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLDhCQUE4QjsrR0FHckIsZUFBZSxZQVp4QixrQkFBa0I7OzJGQVlULGVBQWU7a0JBZDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDhCQUE4QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDhCQUE4QjtxQkFDL0I7aUJBQ0Y7OzBCQUdjLE1BQU07MkJBQUMsdUJBQXVCOztBQXdGN0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsZ0JBQWtDO0lBQ3BFLElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpSUFBaUksQ0FBQyxDQUFDO0tBQ3BKO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgaW5qZWN0LCBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb21wb25lbnR9IGZyb20gJy4vd29ya2JlbmNoLmNvbXBvbmVudCc7XG5pbXBvcnQge1dvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4vd29ya2JlbmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZXJMaW5rRGlyZWN0aXZlfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlci1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1dvcmtiZW5jaFVybE9ic2VydmVyfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLXVybC1vYnNlcnZlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoTW9kdWxlQ29uZmlnfSBmcm9tICcuL3dvcmtiZW5jaC1tb2R1bGUtY29uZmlnJztcbmltcG9ydCB7V09SS0JFTkNIX0ZPUlJPT1RfR1VBUkQsIFdPUktCRU5DSF9MQVlPVVRfQ09ORklHfSBmcm9tICcuL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0QWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL3BhcnQvcGFydC1hY3Rpb24tYmFyL3BhcnQtYWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXdNZW51SXRlbURpcmVjdGl2ZX0gZnJvbSAnLi9wYXJ0L3ZpZXctY29udGV4dC1tZW51L3ZpZXctbWVudS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtWaWV3TWVudVNlcnZpY2V9IGZyb20gJy4vcGFydC92aWV3LWNvbnRleHQtbWVudS92aWV3LW1lbnUuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdNb3ZlSGFuZGxlcn0gZnJvbSAnLi92aWV3L3ZpZXctbW92ZS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlV29ya2JlbmNoTWljcm9mcm9udGVuZFN1cHBvcnR9IGZyb20gJy4vbWljcm9mcm9udGVuZC1wbGF0Zm9ybS93b3JrYmVuY2gtbWljcm9mcm9udGVuZC1zdXBwb3J0JztcbmltcG9ydCB7cHJvdmlkZVdvcmtiZW5jaExhdW5jaGVyfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlTG9nZ2luZ30gZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7V09SS0JFTkNIX1BPU1RfU1RBUlRVUCwgV09SS0JFTkNIX1BSRV9TVEFSVFVQLCBXT1JLQkVOQ0hfU1RBUlRVUH0gZnJvbSAnLi9zdGFydHVwL3dvcmtiZW5jaC1pbml0aWFsaXplcic7XG5pbXBvcnQge1dvcmtiZW5jaFBlcnNwZWN0aXZlU2VydmljZX0gZnJvbSAnLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUuc2VydmljZSc7XG5pbXBvcnQge0RlZmF1bHRXb3JrYmVuY2hTdG9yYWdlLCBXb3JrYmVuY2hTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2Uvd29ya2JlbmNoLXN0b3JhZ2UnO1xuaW1wb3J0IHtwcm92aWRlTG9jYXRpb25QYXRjaH0gZnJvbSAnLi9yb3V0aW5nL8m1bG9jYXRpb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRGYWN0b3J5fSBmcm9tICcuL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHtNQUlOX0FSRUF9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtXb3JrYmVuY2hUaGVtZVN3aXRjaGVyfSBmcm9tICcuL3RoZW1lL3dvcmtiZW5jaC10aGVtZS1zd2l0Y2hlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBNb2R1bGUgb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBTQ0lPTiBXb3JrYmVuY2ggZW5hYmxlcyB0aGUgY3JlYXRpb24gb2YgQW5ndWxhciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBhIGZsZXhpYmxlIGxheW91dCB0byBhcnJhbmdlIGNvbnRlbnQgc2lkZS1ieS1zaWRlXG4gKiBvciBzdGFja2VkLCBhbGwgcGVyc29uYWxpemFibGUgYnkgdGhlIHVzZXIgdmlhIGRyYWcgJiBkcm9wLiBUaGlzIHR5cGUgb2YgbGF5b3V0IGlzIGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgd2l0aCBub24tbGluZWFyIHdvcmtmbG93cyxcbiAqIGVuYWJsaW5nIHVzZXJzIHRvIHdvcmsgb24gY29udGVudCBpbiBwYXJhbGxlbC5cbiAqXG4gKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAqXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBkaXZpZGVkIGludG8gYSBtYWluIGFuZCBhIHBlcmlwaGVyYWwgYXJlYSwgd2l0aCB0aGUgbWFpbiBhcmVhIGFzIHRoZSBwcmltYXJ5IHBsYWNlIGZvciBvcGVuaW5nIHZpZXdzLlxuICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gKiB0aGUgdXNlcidzIHdvcmtmbG93LiBEZWZpbmluZyBhIG1haW4gYXJlYSBpcyBvcHRpb25hbCBhbmQgcmVjb21tZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYSBkZWRpY2F0ZWQgYW5kIG1heGltaXphYmxlXG4gKiBhcmVhIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICpcbiAqIE11bHRpcGxlIGxheW91dHMsIGNhbGxlZCBwZXJzcGVjdGl2ZXMsIGFyZSBzdXBwb3J0ZWQuIFBlcnNwZWN0aXZlcyBjYW4gYmUgc3dpdGNoZWQgd2l0aCBvbmUgcGVyc3BlY3RpdmUgYWN0aXZlIGF0IGEgdGltZS5cbiAqIFBlcnNwZWN0aXZlcyBzaGFyZSB0aGUgc2FtZSBtYWluIGFyZWEsIGlmIGFueS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFdvcmtiZW5jaENvbXBvbmVudCxcbiAgICBXb3JrYmVuY2hSb3V0ZXJMaW5rRGlyZWN0aXZlLFxuICAgIFdvcmtiZW5jaFBhcnRBY3Rpb25EaXJlY3RpdmUsXG4gICAgV29ya2JlbmNoVmlld01lbnVJdGVtRGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgV29ya2JlbmNoQ29tcG9uZW50LFxuICAgIFdvcmtiZW5jaFJvdXRlckxpbmtEaXJlY3RpdmUsXG4gICAgV29ya2JlbmNoUGFydEFjdGlvbkRpcmVjdGl2ZSxcbiAgICBXb3JrYmVuY2hWaWV3TWVudUl0ZW1EaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaE1vZHVsZSB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChXT1JLQkVOQ0hfRk9SUk9PVF9HVUFSRCkgZ3VhcmQ6IGFueSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICB9XG5cbiAgLyoqXG4gICAqIFRvIG1hbmlmZXN0IGEgZGVwZW5kZW5jeSB0byB0aGUgd29ya2JlbmNoIG1vZHVsZSBmcm9tIHRoZSBhcHBsaWNhdGlvbiBtb2R1bGUuXG4gICAqXG4gICAqIENhbGwgYGZvclJvb3RgIG9ubHkgaW4gdGhlIHJvb3QgYXBwbGljYXRpb24gbW9kdWxlLiBDYWxsaW5nIGl0IGluIGFueSBvdGhlciBtb2R1bGUsIHBhcnRpY3VsYXJseSBpbiBhIGxhenktbG9hZGVkIG1vZHVsZSwgd2lsbCBwcm9kdWNlIGEgcnVudGltZSBlcnJvci5cbiAgICpcbiAgICogYGBgXG4gICAqIEBOZ01vZHVsZSh7XG4gICAqICAgaW1wb3J0czogW1xuICAgKiAgICAgLi4uXG4gICAqICAgICBXb3JrYmVuY2hNb2R1bGUuZm9yUm9vdCgpXG4gICAqICAgXSxcbiAgICogICBib290c3RyYXA6IFtBcHBDb21wb25lbnRdLFxuICAgKiB9KVxuICAgKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IFdvcmtiZW5jaE1vZHVsZUNvbmZpZyA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxXb3JrYmVuY2hNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFdvcmtiZW5jaE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogV29ya2JlbmNoTW9kdWxlQ29uZmlnLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBXb3JrYmVuY2hTdG9yYWdlLFxuICAgICAgICAgIHVzZUNsYXNzOiBjb25maWcuc3RvcmFnZSA/PyBEZWZhdWx0V29ya2JlbmNoU3RvcmFnZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFdPUktCRU5DSF9MQVlPVVRfQ09ORklHLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGNvbmZpZy5sYXlvdXQgPz8gKChmYWN0b3J5OiBXb3JrYmVuY2hMYXlvdXRGYWN0b3J5KSA9PiBmYWN0b3J5LmFkZFBhcnQoTUFJTl9BUkVBKSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBXT1JLQkVOQ0hfRk9SUk9PVF9HVUFSRCxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBwcm92aWRlRm9yUm9vdEd1YXJkLFxuICAgICAgICAgIGRlcHM6IFtbV29ya2JlbmNoU2VydmljZSwgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXV0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBXT1JLQkVOQ0hfUFJFX1NUQVJUVVAsXG4gICAgICAgICAgdXNlRXhpc3Rpbmc6IFdvcmtiZW5jaFRoZW1lU3dpdGNoZXIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBXT1JLQkVOQ0hfU1RBUlRVUCxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICB1c2VFeGlzdGluZzogV29ya2JlbmNoUGVyc3BlY3RpdmVTZXJ2aWNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BPU1RfU1RBUlRVUCxcbiAgICAgICAgICB1c2VFeGlzdGluZzogVmlld01lbnVTZXJ2aWNlLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BPU1RfU1RBUlRVUCxcbiAgICAgICAgICB1c2VDbGFzczogVmlld01vdmVIYW5kbGVyLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgdXNlVmFsdWU6ICgpID0+IGluamVjdChXb3JrYmVuY2hVcmxPYnNlcnZlciksXG4gICAgICAgIH0sXG4gICAgICAgIHByb3ZpZGVXb3JrYmVuY2hMYXVuY2hlcihjb25maWcpLFxuICAgICAgICBwcm92aWRlTG9nZ2luZyhjb25maWcpLFxuICAgICAgICBwcm92aWRlTG9jYXRpb25QYXRjaCgpLFxuICAgICAgICBwcm92aWRlV29ya2JlbmNoTWljcm9mcm9udGVuZFN1cHBvcnQoY29uZmlnKSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBtYW5pZmVzdCBhIGRlcGVuZGVuY3kgdG8gdGhlIHdvcmtiZW5jaCBtb2R1bGUgZnJvbSBhIGZlYXR1cmUgbW9kdWxlLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjAuMC1iZXRhLjE7IEltcG9ydCB7QGxpbmsgV29ya2JlbmNoTW9kdWxlfSBvciBzdGFuZGFsb25lIGRpcmVjdGl2ZXMgZGlyZWN0bHk7IEFQSSB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cbiAgICpcbiAgICogVE9ETyBbIzMxMl06IFJlbW92ZSB3aGVuIGZpeGVkIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9TY2h3ZWl6ZXJpc2NoZUJ1bmRlc2JhaG5lbi9zY2lvbi13b3JrYmVuY2gvaXNzdWVzLzMxMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JDaGlsZCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFdvcmtiZW5jaE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogV29ya2JlbmNoTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSwgLy8gZG8gbm90IHJlZ2lzdGVyIGFueSBwcm92aWRlcnMgaW4gJ2ZvckNoaWxkJyBidXQgaW4gJ2ZvclJvb3QnIGluc3RlYWRcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQGRvY3MtcHJpdmF0ZSBOb3QgcHVibGljIEFQSSwgaW50ZW5kZWQgZm9yIGludGVybmFsIHVzZSBvbmx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZvclJvb3RHdWFyZCh3b3JrYmVuY2hTZXJ2aWNlOiBXb3JrYmVuY2hTZXJ2aWNlKTogYW55IHtcbiAgaWYgKHdvcmtiZW5jaFNlcnZpY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tNb2R1bGVGb3JSb290RXJyb3JdIFdvcmtiZW5jaE1vZHVsZS5mb3JSb290KCkgY2FsbGVkIHR3aWNlLiBMYXp5IGxvYWRlZCBtb2R1bGVzIHNob3VsZCB1c2UgV29ya2JlbmNoTW9kdWxlLmZvckNoaWxkKCkgaW5zdGVhZC4nKTtcbiAgfVxuICByZXR1cm4gJ2d1YXJkZWQnO1xufVxuIl19
|
|
100
|
+
}] });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUV2RixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQWVILE1BQU0sT0FBTyxlQUFlO0lBRTFCOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBZ0MsRUFBRTtRQUN0RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFLEVBQUUsRUFBRSx1RUFBdUU7U0FDdkYsQ0FBQztJQUNKLENBQUM7OEdBdkNVLGVBQWU7K0dBQWYsZUFBZSxZQVp4QixrQkFBa0I7WUFDbEIsNEJBQTRCO1lBQzVCLDRCQUE0QjtZQUM1Qiw4QkFBOEIsYUFHOUIsa0JBQWtCO1lBQ2xCLDRCQUE0QjtZQUM1Qiw0QkFBNEI7WUFDNUIsOEJBQThCOytHQUdyQixlQUFlLFlBWnhCLGtCQUFrQjs7MkZBWVQsZUFBZTtrQkFkM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsOEJBQThCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsOEJBQThCO3FCQUMvQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaENvbXBvbmVudH0gZnJvbSAnLi93b3JrYmVuY2guY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyTGlua0RpcmVjdGl2ZX0gZnJvbSAnLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXItbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnRBY3Rpb25EaXJlY3RpdmV9IGZyb20gJy4vcGFydC9wYXJ0LWFjdGlvbi1iYXIvcGFydC1hY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7V29ya2JlbmNoVmlld01lbnVJdGVtRGlyZWN0aXZlfSBmcm9tICcuL3BhcnQvdmlldy1jb250ZXh0LW1lbnUvdmlldy1tZW51LmRpcmVjdGl2ZSc7XG5pbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2h9IGZyb20gJy4vd29ya2JlbmNoLnByb3ZpZGVyJztcblxuLyoqXG4gKiBNb2R1bGUgb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBTQ0lPTiBXb3JrYmVuY2ggZW5hYmxlcyB0aGUgY3JlYXRpb24gb2YgQW5ndWxhciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBhIGZsZXhpYmxlIGxheW91dCB0byBhcnJhbmdlIGNvbnRlbnQgc2lkZS1ieS1zaWRlXG4gKiBvciBzdGFja2VkLCBhbGwgcGVyc29uYWxpemFibGUgYnkgdGhlIHVzZXIgdmlhIGRyYWcgJiBkcm9wLiBUaGlzIHR5cGUgb2YgbGF5b3V0IGlzIGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgd2l0aCBub24tbGluZWFyIHdvcmtmbG93cyxcbiAqIGVuYWJsaW5nIHVzZXJzIHRvIHdvcmsgb24gY29udGVudCBpbiBwYXJhbGxlbC5cbiAqXG4gKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAqXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBkaXZpZGVkIGludG8gYSBtYWluIGFuZCBhIHBlcmlwaGVyYWwgYXJlYSwgd2l0aCB0aGUgbWFpbiBhcmVhIGFzIHRoZSBwcmltYXJ5IHBsYWNlIGZvciBvcGVuaW5nIHZpZXdzLlxuICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gKiB0aGUgdXNlcidzIHdvcmtmbG93LiBEZWZpbmluZyBhIG1haW4gYXJlYSBpcyBvcHRpb25hbCBhbmQgcmVjb21tZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYSBkZWRpY2F0ZWQgYW5kIG1heGltaXphYmxlXG4gKiBhcmVhIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICpcbiAqIE11bHRpcGxlIGxheW91dHMsIGNhbGxlZCBwZXJzcGVjdGl2ZXMsIGFyZSBzdXBwb3J0ZWQuIFBlcnNwZWN0aXZlcyBjYW4gYmUgc3dpdGNoZWQuIE9ubHkgb25lIHBlcnNwZWN0aXZlIGlzIGFjdGl2ZSBhdCBhIHRpbWUuXG4gKiBQZXJzcGVjdGl2ZXMgc2hhcmUgdGhlIHNhbWUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gKlxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNy4wLjAtYmV0YS44OyBSZWdpc3RlciBTQ0lPTiBXb3JrYmVuY2ggcHJvdmlkZXJzIHVzaW5nIGBwcm92aWRlV29ya2JlbmNoYCBmdW5jdGlvbiBhbmQgaW1wb3J0IHN0YW5kYWxvbmUgY29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBpbnN0ZWFkOyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBXb3JrYmVuY2hDb21wb25lbnQsXG4gICAgV29ya2JlbmNoUm91dGVyTGlua0RpcmVjdGl2ZSxcbiAgICBXb3JrYmVuY2hQYXJ0QWN0aW9uRGlyZWN0aXZlLFxuICAgIFdvcmtiZW5jaFZpZXdNZW51SXRlbURpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFdvcmtiZW5jaENvbXBvbmVudCxcbiAgICBXb3JrYmVuY2hSb3V0ZXJMaW5rRGlyZWN0aXZlLFxuICAgIFdvcmtiZW5jaFBhcnRBY3Rpb25EaXJlY3RpdmUsXG4gICAgV29ya2JlbmNoVmlld01lbnVJdGVtRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrYmVuY2hNb2R1bGUge1xuXG4gIC8qKlxuICAgKiBUbyBtYW5pZmVzdCBhIGRlcGVuZGVuY3kgdG8gdGhlIHdvcmtiZW5jaCBtb2R1bGUgZnJvbSB0aGUgYXBwbGljYXRpb24gbW9kdWxlLlxuICAgKlxuICAgKiBDYWxsIGBmb3JSb290YCBvbmx5IGluIHRoZSByb290IGFwcGxpY2F0aW9uIG1vZHVsZS4gQ2FsbGluZyBpdCBpbiBhbnkgb3RoZXIgbW9kdWxlLCBwYXJ0aWN1bGFybHkgaW4gYSBsYXp5LWxvYWRlZCBtb2R1bGUsIHdpbGwgcHJvZHVjZSBhIHJ1bnRpbWUgZXJyb3IuXG4gICAqXG4gICAqIGBgYFxuICAgKiBATmdNb2R1bGUoe1xuICAgKiAgIGltcG9ydHM6IFtcbiAgICogICAgIC4uLlxuICAgKiAgICAgV29ya2JlbmNoTW9kdWxlLmZvclJvb3QoKVxuICAgKiAgIF0sXG4gICAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XSxcbiAgICogfSlcbiAgICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7IH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTcuMC4wLWJldGEuODsgUmVnaXN0ZXIgU0NJT04gV29ya2JlbmNoIHByb3ZpZGVycyB1c2luZyBgcHJvdmlkZVdvcmtiZW5jaGAgZnVuY3Rpb24gYW5kIGltcG9ydCBzdGFuZGFsb25lIGNvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgaW5zdGVhZDsgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogV29ya2JlbmNoTW9kdWxlQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFdvcmtiZW5jaE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogV29ya2JlbmNoTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZVdvcmtiZW5jaChjb25maWcpXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRvIG1hbmlmZXN0IGEgZGVwZW5kZW5jeSB0byB0aGUgd29ya2JlbmNoIG1vZHVsZSBmcm9tIGEgZmVhdHVyZSBtb2R1bGUuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTYuMC4wLWJldGEuMTsgdXNlIHN0YW5kYWxvbmUgd29ya2JlbmNoIGNvbXBvbmVudCBhbmQgZGlyZWN0aXZlcyBpbnN0ZWFkOyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAqXG4gICAqIFRPRE8gWyMzMTJdOiBSZW1vdmUgd2hlbiBmaXhlZCBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vU2Nod2VpemVyaXNjaGVCdW5kZXNiYWhuZW4vc2Npb24td29ya2JlbmNoL2lzc3Vlcy8zMTJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxXb3JrYmVuY2hNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFdvcmtiZW5jaE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW10sIC8vIGRvIG5vdCByZWdpc3RlciBhbnkgcHJvdmlkZXJzIGluICdmb3JDaGlsZCcgYnV0IGluICdmb3JSb290JyBpbnN0ZWFkXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE3LjAuMC1iZXRhLjg7IFJlZ2lzdGVyIFNDSU9OIFdvcmtiZW5jaCBwcm92aWRlcnMgdXNpbmcgYHByb3ZpZGVXb3JrYmVuY2hgIGZ1bmN0aW9uIGFuZCBpbXBvcnQgc3RhbmRhbG9uZSB3b3JrYmVuY2ggY29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBpbnN0ZWFkOyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2JlbmNoTW9kdWxlQ29uZmlnIGV4dGVuZHMgV29ya2JlbmNoQ29uZmlnIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2024 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 { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';
|
|
11
|
+
import { WorkbenchService } from './workbench.service';
|
|
12
|
+
import { WorkbenchUrlObserver } from './routing/workbench-url-observer.service';
|
|
13
|
+
import { WorkbenchConfig } from './workbench-config';
|
|
14
|
+
import { WORKBENCH_LAYOUT_CONFIG } from './workbench.constants';
|
|
15
|
+
import { ViewMenuService } from './part/view-context-menu/view-menu.service';
|
|
16
|
+
import { ViewMoveHandler } from './view/view-move-handler.service';
|
|
17
|
+
import { provideWorkbenchMicrofrontendSupport } from './microfrontend-platform/workbench-microfrontend-support';
|
|
18
|
+
import { provideWorkbenchLauncher } from './startup/workbench-launcher.service';
|
|
19
|
+
import { provideLogging } from './logging';
|
|
20
|
+
import { WORKBENCH_POST_STARTUP, WORKBENCH_PRE_STARTUP, WORKBENCH_STARTUP } from './startup/workbench-initializer';
|
|
21
|
+
import { WorkbenchPerspectiveService } from './perspective/workbench-perspective.service';
|
|
22
|
+
import { DefaultWorkbenchStorage, WorkbenchStorage } from './storage/workbench-storage';
|
|
23
|
+
import { provideLocationPatch } from './routing/ɵlocation';
|
|
24
|
+
import { MAIN_AREA } from './layout/workbench-layout';
|
|
25
|
+
import { WorkbenchThemeSwitcher } from './theme/workbench-theme-switcher.service';
|
|
26
|
+
/**
|
|
27
|
+
* Enables and configures the SCION Workbench in an application, returning a set of dependency-injection providers to be registered in Angular.
|
|
28
|
+
*
|
|
29
|
+
* SCION Workbench enables the creation of Angular web applications that require a flexible layout to arrange content side-by-side
|
|
30
|
+
* or stacked, all personalizable by the user via drag & drop. This type of layout is ideal for applications with non-linear workflows,
|
|
31
|
+
* enabling users to work on content in parallel.
|
|
32
|
+
*
|
|
33
|
+
* The workbench layout is a grid of parts. Parts are aligned relative to each other. A part is a stack of views. Content is displayed in views.
|
|
34
|
+
*
|
|
35
|
+
* The layout can be divided into a main and a peripheral area, with the main area as the primary place for opening views.
|
|
36
|
+
* The peripheral area arranges parts around the main area to provide navigation or context-sensitive assistance to support
|
|
37
|
+
* the user's workflow. Defining a main area is optional and recommended for applications requiring a dedicated and maximizable
|
|
38
|
+
* area for user interaction.
|
|
39
|
+
*
|
|
40
|
+
* Multiple layouts, called perspectives, are supported. Perspectives can be switched. Only one perspective is active at a time.
|
|
41
|
+
* Perspectives share the same main area, if any.
|
|
42
|
+
*
|
|
43
|
+
* ---
|
|
44
|
+
* Usage:
|
|
45
|
+
*
|
|
46
|
+
* ```ts
|
|
47
|
+
* import {bootstrapApplication} from '@angular/platform-browser';
|
|
48
|
+
* import {provideRouter} from '@angular/router';
|
|
49
|
+
* import {provideAnimations} from '@angular/platform-browser/animations';
|
|
50
|
+
* import {provideWorkbench} from '@scion/workbench';
|
|
51
|
+
*
|
|
52
|
+
* bootstrapApplication(AppComponent, {
|
|
53
|
+
* providers: [
|
|
54
|
+
* provideWorkbench(),
|
|
55
|
+
* provideRouter([]), // required by the SCION Workbench
|
|
56
|
+
* provideAnimations(), // required by the SCION Workbench
|
|
57
|
+
* ],
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export function provideWorkbench(config) {
|
|
62
|
+
config ??= {};
|
|
63
|
+
return makeEnvironmentProviders([
|
|
64
|
+
{
|
|
65
|
+
provide: WorkbenchConfig,
|
|
66
|
+
useValue: config,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
provide: WorkbenchStorage,
|
|
70
|
+
useClass: config.storage ?? DefaultWorkbenchStorage,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
provide: WORKBENCH_LAYOUT_CONFIG,
|
|
74
|
+
useFactory: () => config.layout ?? ((factory) => factory.addPart(MAIN_AREA)),
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
provide: WORKBENCH_PRE_STARTUP,
|
|
78
|
+
useExisting: WorkbenchThemeSwitcher,
|
|
79
|
+
multi: true,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
provide: WORKBENCH_STARTUP,
|
|
83
|
+
multi: true,
|
|
84
|
+
useExisting: WorkbenchPerspectiveService,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
provide: WORKBENCH_POST_STARTUP,
|
|
88
|
+
useExisting: ViewMenuService,
|
|
89
|
+
multi: true,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
provide: WORKBENCH_POST_STARTUP,
|
|
93
|
+
useClass: ViewMoveHandler,
|
|
94
|
+
multi: true,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
98
|
+
multi: true,
|
|
99
|
+
useValue: () => inject(WorkbenchUrlObserver),
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
103
|
+
multi: true,
|
|
104
|
+
useValue: () => {
|
|
105
|
+
if (inject(WorkbenchService, { optional: true, skipSelf: true })) {
|
|
106
|
+
throw Error('[ProvideWorkbenchError] SCION Workbench must be provided in root environment.');
|
|
107
|
+
}
|
|
108
|
+
return 'root';
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
provideWorkbenchLauncher(config),
|
|
112
|
+
provideLogging(config),
|
|
113
|
+
provideLocationPatch(),
|
|
114
|
+
provideWorkbenchMicrofrontendSupport(config),
|
|
115
|
+
]);
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDOUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqSCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFaEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBd0I7SUFDdkQsTUFBTSxLQUFLLEVBQUUsQ0FBQztJQUVkLE9BQU8sd0JBQXdCLENBQUM7UUFDOUI7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixRQUFRLEVBQUUsTUFBTTtTQUNqQjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSx1QkFBdUI7U0FDcEQ7UUFDRDtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQStCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEc7UUFDRDtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsV0FBVyxFQUFFLHNCQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLDJCQUEyQjtTQUN6QztRQUNEO1lBQ0UsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixXQUFXLEVBQUUsZUFBZTtZQUM1QixLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQzdDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLEVBQUU7b0JBQzlELE1BQU0sS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7aUJBQzlGO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtRQUNELHdCQUF3QixDQUFDLE1BQU0sQ0FBQztRQUNoQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3RCLG9CQUFvQixFQUFFO1FBQ3RCLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQztLQUM3QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0VOVklST05NRU5UX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoVXJsT2JzZXJ2ZXJ9IGZyb20gJy4vcm91dGluZy93b3JrYmVuY2gtdXJsLW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge1dPUktCRU5DSF9MQVlPVVRfQ09ORklHfSBmcm9tICcuL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuaW1wb3J0IHtWaWV3TWVudVNlcnZpY2V9IGZyb20gJy4vcGFydC92aWV3LWNvbnRleHQtbWVudS92aWV3LW1lbnUuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdNb3ZlSGFuZGxlcn0gZnJvbSAnLi92aWV3L3ZpZXctbW92ZS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlV29ya2JlbmNoTWljcm9mcm9udGVuZFN1cHBvcnR9IGZyb20gJy4vbWljcm9mcm9udGVuZC1wbGF0Zm9ybS93b3JrYmVuY2gtbWljcm9mcm9udGVuZC1zdXBwb3J0JztcbmltcG9ydCB7cHJvdmlkZVdvcmtiZW5jaExhdW5jaGVyfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlTG9nZ2luZ30gZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7V09SS0JFTkNIX1BPU1RfU1RBUlRVUCwgV09SS0JFTkNIX1BSRV9TVEFSVFVQLCBXT1JLQkVOQ0hfU1RBUlRVUH0gZnJvbSAnLi9zdGFydHVwL3dvcmtiZW5jaC1pbml0aWFsaXplcic7XG5pbXBvcnQge1dvcmtiZW5jaFBlcnNwZWN0aXZlU2VydmljZX0gZnJvbSAnLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUuc2VydmljZSc7XG5pbXBvcnQge0RlZmF1bHRXb3JrYmVuY2hTdG9yYWdlLCBXb3JrYmVuY2hTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2Uvd29ya2JlbmNoLXN0b3JhZ2UnO1xuaW1wb3J0IHtwcm92aWRlTG9jYXRpb25QYXRjaH0gZnJvbSAnLi9yb3V0aW5nL8m1bG9jYXRpb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRGYWN0b3J5fSBmcm9tICcuL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHtNQUlOX0FSRUF9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtXb3JrYmVuY2hUaGVtZVN3aXRjaGVyfSBmcm9tICcuL3RoZW1lL3dvcmtiZW5jaC10aGVtZS1zd2l0Y2hlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBFbmFibGVzIGFuZCBjb25maWd1cmVzIHRoZSBTQ0lPTiBXb3JrYmVuY2ggaW4gYW4gYXBwbGljYXRpb24sIHJldHVybmluZyBhIHNldCBvZiBkZXBlbmRlbmN5LWluamVjdGlvbiBwcm92aWRlcnMgdG8gYmUgcmVnaXN0ZXJlZCBpbiBBbmd1bGFyLlxuICpcbiAqIFNDSU9OIFdvcmtiZW5jaCBlbmFibGVzIHRoZSBjcmVhdGlvbiBvZiBBbmd1bGFyIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGEgZmxleGlibGUgbGF5b3V0IHRvIGFycmFuZ2UgY29udGVudCBzaWRlLWJ5LXNpZGVcbiAqIG9yIHN0YWNrZWQsIGFsbCBwZXJzb25hbGl6YWJsZSBieSB0aGUgdXNlciB2aWEgZHJhZyAmIGRyb3AuIFRoaXMgdHlwZSBvZiBsYXlvdXQgaXMgaWRlYWwgZm9yIGFwcGxpY2F0aW9ucyB3aXRoIG5vbi1saW5lYXIgd29ya2Zsb3dzLFxuICogZW5hYmxpbmcgdXNlcnMgdG8gd29yayBvbiBjb250ZW50IGluIHBhcmFsbGVsLlxuICpcbiAqIFRoZSB3b3JrYmVuY2ggbGF5b3V0IGlzIGEgZ3JpZCBvZiBwYXJ0cy4gUGFydHMgYXJlIGFsaWduZWQgcmVsYXRpdmUgdG8gZWFjaCBvdGhlci4gQSBwYXJ0IGlzIGEgc3RhY2sgb2Ygdmlld3MuIENvbnRlbnQgaXMgZGlzcGxheWVkIGluIHZpZXdzLlxuICpcbiAqIFRoZSBsYXlvdXQgY2FuIGJlIGRpdmlkZWQgaW50byBhIG1haW4gYW5kIGEgcGVyaXBoZXJhbCBhcmVhLCB3aXRoIHRoZSBtYWluIGFyZWEgYXMgdGhlIHByaW1hcnkgcGxhY2UgZm9yIG9wZW5pbmcgdmlld3MuXG4gKiBUaGUgcGVyaXBoZXJhbCBhcmVhIGFycmFuZ2VzIHBhcnRzIGFyb3VuZCB0aGUgbWFpbiBhcmVhIHRvIHByb3ZpZGUgbmF2aWdhdGlvbiBvciBjb250ZXh0LXNlbnNpdGl2ZSBhc3Npc3RhbmNlIHRvIHN1cHBvcnRcbiAqIHRoZSB1c2VyJ3Mgd29ya2Zsb3cuIERlZmluaW5nIGEgbWFpbiBhcmVhIGlzIG9wdGlvbmFsIGFuZCByZWNvbW1lbmRlZCBmb3IgYXBwbGljYXRpb25zIHJlcXVpcmluZyBhIGRlZGljYXRlZCBhbmQgbWF4aW1pemFibGVcbiAqIGFyZWEgZm9yIHVzZXIgaW50ZXJhY3Rpb24uXG4gKlxuICogTXVsdGlwbGUgbGF5b3V0cywgY2FsbGVkIHBlcnNwZWN0aXZlcywgYXJlIHN1cHBvcnRlZC4gUGVyc3BlY3RpdmVzIGNhbiBiZSBzd2l0Y2hlZC4gT25seSBvbmUgcGVyc3BlY3RpdmUgaXMgYWN0aXZlIGF0IGEgdGltZS5cbiAqIFBlcnNwZWN0aXZlcyBzaGFyZSB0aGUgc2FtZSBtYWluIGFyZWEsIGlmIGFueS5cbiAqXG4gKiAtLS1cbiAqIFVzYWdlOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQge2Jvb3RzdHJhcEFwcGxpY2F0aW9ufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7cHJvdmlkZVJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbiAqIGltcG9ydCB7cHJvdmlkZUFuaW1hdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG4gKiBpbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2h9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gnO1xuICpcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlV29ya2JlbmNoKCksXG4gKiAgICAgcHJvdmlkZVJvdXRlcihbXSksIC8vIHJlcXVpcmVkIGJ5IHRoZSBTQ0lPTiBXb3JrYmVuY2hcbiAqICAgICBwcm92aWRlQW5pbWF0aW9ucygpLCAvLyByZXF1aXJlZCBieSB0aGUgU0NJT04gV29ya2JlbmNoXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaChjb25maWc/OiBXb3JrYmVuY2hDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbmZpZyA/Pz0ge307XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAge1xuICAgICAgcHJvdmlkZTogV29ya2JlbmNoQ29uZmlnLFxuICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdvcmtiZW5jaFN0b3JhZ2UsXG4gICAgICB1c2VDbGFzczogY29uZmlnLnN0b3JhZ2UgPz8gRGVmYXVsdFdvcmtiZW5jaFN0b3JhZ2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXT1JLQkVOQ0hfTEFZT1VUX0NPTkZJRyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGNvbmZpZyEubGF5b3V0ID8/ICgoZmFjdG9yeTogV29ya2JlbmNoTGF5b3V0RmFjdG9yeSkgPT4gZmFjdG9yeS5hZGRQYXJ0KE1BSU5fQVJFQSkpLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BSRV9TVEFSVFVQLFxuICAgICAgdXNlRXhpc3Rpbmc6IFdvcmtiZW5jaFRoZW1lU3dpdGNoZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdPUktCRU5DSF9TVEFSVFVQLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogV29ya2JlbmNoUGVyc3BlY3RpdmVTZXJ2aWNlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BPU1RfU1RBUlRVUCxcbiAgICAgIHVzZUV4aXN0aW5nOiBWaWV3TWVudVNlcnZpY2UsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdPUktCRU5DSF9QT1NUX1NUQVJUVVAsXG4gICAgICB1c2VDbGFzczogVmlld01vdmVIYW5kbGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IGluamVjdChXb3JrYmVuY2hVcmxPYnNlcnZlciksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IHtcbiAgICAgICAgaWYgKGluamVjdChXb3JrYmVuY2hTZXJ2aWNlLCB7b3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlfSkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcignW1Byb3ZpZGVXb3JrYmVuY2hFcnJvcl0gU0NJT04gV29ya2JlbmNoIG11c3QgYmUgcHJvdmlkZWQgaW4gcm9vdCBlbnZpcm9ubWVudC4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ3Jvb3QnO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHByb3ZpZGVXb3JrYmVuY2hMYXVuY2hlcihjb25maWcpLFxuICAgIHByb3ZpZGVMb2dnaW5nKGNvbmZpZyksXG4gICAgcHJvdmlkZUxvY2F0aW9uUGF0Y2goKSxcbiAgICBwcm92aWRlV29ya2JlbmNoTWljcm9mcm9udGVuZFN1cHBvcnQoY29uZmlnKSxcbiAgXSk7XG59XG4iXX0=
|