@scion/workbench 17.0.0-beta.7 → 17.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/activation-instant.provider.mjs +3 -3
- package/esm2022/lib/common/asserts.util.mjs +2 -2
- package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +6 -6
- package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
- package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
- package/esm2022/lib/common/null-if-empty.pipe.mjs +3 -3
- package/esm2022/lib/common/objects.util.mjs +34 -0
- package/esm2022/lib/common/typeof.pipe.mjs +3 -3
- package/esm2022/lib/common/uuid.util.mjs +17 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +9 -6
- package/esm2022/lib/dialog/movable.directive.mjs +3 -3
- package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +53 -24
- package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +5 -5
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +7 -7
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/executor/single-task-executor.mjs +26 -7
- package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +15 -7
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -10
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +6 -4
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +11 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +59 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +117 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +57 -0
- package/esm2022/lib/layout/workbench-layout.component.mjs +6 -4
- package/esm2022/lib/layout/workbench-layout.factory.mjs +4 -4
- package/esm2022/lib/layout/workbench-layout.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.model.mjs +5 -6
- package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
- package/esm2022/lib/layout/workbench-layouts.util.mjs +37 -1
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +53 -21
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +8 -5
- package/esm2022/lib/layout//311/265workbench-layout.mjs +382 -195
- package/esm2022/lib/logging/console-appender.service.mjs +3 -3
- package/esm2022/lib/logging/logger.mjs +3 -3
- package/esm2022/lib/logging/logging-support.mjs +4 -4
- package/esm2022/lib/logging/logging.model.mjs +3 -3
- package/esm2022/lib/logging//311/265logger.mjs +3 -3
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +18 -20
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +15 -6
- package/esm2022/lib/message-box/workbench-message-box.options.mjs +1 -1
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +26 -13
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +25 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +11 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +11 -9
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +112 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +43 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +16 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +34 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +88 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +121 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +9 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +9 -15
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +37 -32
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -11
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +14 -9
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +54 -23
- package/esm2022/lib/migration/workbench-migration.mjs +11 -0
- package/esm2022/lib/migration/workbench-migrator.mjs +38 -0
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +3 -3
- package/esm2022/lib/notification/notification.component.mjs +3 -3
- package/esm2022/lib/notification/notification.config.mjs +1 -1
- package/esm2022/lib/notification/notification.mjs +1 -1
- package/esm2022/lib/notification/notification.service.mjs +9 -9
- package/esm2022/lib/notification/text-notification.component.mjs +3 -3
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +26 -0
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +28 -0
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +10 -8
- package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
- package/esm2022/lib/part/part.component.mjs +6 -4
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +18 -18
- package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +3 -3
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +9 -9
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +13 -11
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -5
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +9 -9
- package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
- package/esm2022/lib/part/workbench-part.model.mjs +1 -1
- package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
- package/esm2022/lib/part//311/265workbench-part.model.mjs +3 -3
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +11 -0
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +57 -0
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +19 -51
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +23 -18
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +27 -42
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +15 -10
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +62 -0
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +98 -78
- package/esm2022/lib/popup/popup.component.mjs +22 -10
- package/esm2022/lib/popup/popup.config.mjs +3 -1
- package/esm2022/lib/popup/popup.service.mjs +4 -4
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +6 -6
- package/esm2022/lib/public_api.mjs +3 -2
- package/esm2022/lib/registry/workbench-object-registry.mjs +3 -3
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +31 -0
- package/esm2022/lib/routing/public_api.mjs +1 -1
- package/esm2022/lib/routing/router.util.mjs +89 -35
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -49
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-navigational-states.mjs +4 -28
- package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
- package/esm2022/lib/routing/workbench-route-data.mjs +14 -4
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -32
- package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +69 -82
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +314 -0
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-launcher.service.mjs +11 -11
- package/esm2022/lib/storage/workbench-storage.mjs +3 -3
- package/esm2022/lib/testing/public_api.mjs +2 -1
- package/esm2022/lib/testing/workbench-testing.module.mjs +13 -39
- package/esm2022/lib/testing/workbench.provider.mjs +60 -0
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +3 -3
- package/esm2022/lib/view/public_api.mjs +2 -1
- package/esm2022/lib/view/view-move-handler.service.mjs +42 -62
- package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
- package/esm2022/lib/view/view.component.mjs +20 -40
- package/esm2022/lib/view/workbench-view-route-guards.mjs +47 -0
- package/esm2022/lib/view/workbench-view.model.mjs +6 -4
- package/esm2022/lib/view/workbench-view.registry.mjs +4 -4
- package/esm2022/lib/view//311/265workbench-view.model.mjs +106 -27
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +7 -7
- package/esm2022/lib/view-dnd/view-drag.service.mjs +6 -6
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -4
- package/esm2022/lib/workbench-config.mjs +15 -0
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +20 -12
- package/esm2022/lib/workbench.constants.mjs +7 -9
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.module.mjs +15 -86
- package/esm2022/lib/workbench.provider.mjs +117 -0
- package/esm2022/lib/workbench.service.mjs +5 -5
- package/esm2022/lib//311/265workbench.service.mjs +15 -21
- package/fesm2022/scion-workbench.mjs +5490 -4166
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/objects.util.d.ts +17 -0
- package/lib/common/uuid.util.d.ts +8 -0
- package/lib/dialog/workbench-dialog.component.d.ts +16 -7
- package/lib/dialog/workbench-dialog.d.ts +1 -1
- package/lib/dialog/workbench-dialog.options.d.ts +4 -3
- package/lib/dialog/workbench-dialog.registry.d.ts +4 -3
- package/lib/dialog/workbench-dialog.service.d.ts +1 -1
- package/lib/dialog//311/265workbench-dialog.d.ts +2 -2
- package/lib/executor/single-task-executor.d.ts +6 -1
- package/lib/filter-field/filter-field.component.d.ts +1 -1
- package/lib/glass-pane/glass-pane.directive.d.ts +21 -0
- package/lib/layout/grid-element/grid-element.component.d.ts +2 -2
- package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +16 -0
- package/lib/layout/migration/model/workbench-layout-migration-v2.model.d.ts +22 -0
- package/lib/layout/migration/model/workbench-layout-migration-v3.model.d.ts +30 -0
- package/lib/layout/migration/model/workbench-layout-migration-v4.model.d.ts +31 -0
- package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +13 -0
- package/lib/layout/migration/workbench-layout-migration-v3.service.d.ts +16 -0
- package/lib/layout/migration/workbench-layout-migration-v4.service.d.ts +12 -0
- package/lib/layout/workbench-layout.d.ts +61 -7
- package/lib/layout/workbench-layout.factory.d.ts +1 -1
- package/lib/layout/workbench-layout.model.d.ts +19 -9
- package/lib/layout/workbench-layouts.util.d.ts +18 -0
- package/lib/layout/workench-layout-serializer.service.d.ts +28 -7
- package/lib/layout//311/265workbench-layout.d.ts +172 -98
- package/lib/layout//311/265workbench-layout.factory.d.ts +4 -0
- package/lib/logging/logging-support.d.ts +2 -2
- package/lib/message-box/workbench-message-box.component.d.ts +3 -0
- package/lib/message-box/workbench-message-box.options.d.ts +4 -3
- package/lib/message-box/workbench-message-box.service.d.ts +1 -1
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -1
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +39 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +25 -0
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +4 -2
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.d.ts +48 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +3 -7
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +4 -9
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -3
- package/lib/migration/workbench-migration.d.ts +9 -0
- package/lib/migration/workbench-migrator.d.ts +18 -0
- package/lib/notification/notification.config.d.ts +1 -1
- package/lib/notification/notification.d.ts +1 -3
- package/lib/page-not-found/format-url.pipe.d.ts +11 -0
- package/lib/page-not-found/page-not-found.component.d.ts +8 -0
- package/lib/part/part-action-bar/part-action.directive.d.ts +1 -1
- package/lib/part/part-bar/part-bar.component.d.ts +4 -3
- package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
- package/lib/part/view-context-menu/view-menu.service.d.ts +5 -4
- package/lib/part/view-list-item/view-list-item.component.d.ts +5 -4
- package/lib/part/view-tab/view-tab.component.d.ts +6 -5
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +3 -3
- package/lib/part/workbench-part.model.d.ts +5 -4
- package/lib/part//311/265workbench-part.model.d.ts +5 -4
- package/lib/perspective/migration/model/workbench-perspective-migration-v1.model.d.ts +8 -0
- package/lib/perspective/migration/model/workbench-perspective-migration-v2.model.d.ts +10 -0
- package/lib/perspective/migration/workbench-perspective-migration-v2.service.d.ts +13 -0
- package/lib/perspective/workbench-grid-merger.service.d.ts +9 -16
- package/lib/perspective/workbench-perspective-storage.service.d.ts +10 -28
- package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +8 -25
- package/lib/perspective/workbench-perspective.model.d.ts +123 -14
- package/lib/perspective/workbench-perspective.service.d.ts +10 -3
- package/lib/perspective/workench-perspective-serializer.service.d.ts +26 -0
- package/lib/perspective//311/265workbench-perspective.model.d.ts +16 -14
- package/lib/popup/popup.component.d.ts +1 -0
- package/lib/popup/popup.config.d.ts +4 -3
- package/lib/portal/workbench-portal-outlet.directive.d.ts +2 -2
- package/lib/public_api.d.ts +4 -3
- package/lib/registry/workbench-object-registry.d.ts +2 -2
- package/lib/routing/empty-outlet/empty-outlet.component.d.ts +15 -0
- package/lib/routing/public_api.d.ts +2 -2
- package/lib/routing/router.util.d.ts +45 -19
- package/lib/routing/routing.model.d.ts +107 -8
- package/lib/routing/url-segment-matcher.d.ts +20 -0
- package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -15
- package/lib/routing/workbench-layout-differ.d.ts +4 -7
- package/lib/routing/workbench-message-box-differ.d.ts +25 -0
- package/lib/routing/workbench-navigational-states.d.ts +6 -19
- package/lib/routing/workbench-route-data.d.ts +13 -3
- package/lib/routing/workbench-router-link.directive.d.ts +22 -7
- package/lib/routing/workbench-router.service.d.ts +42 -142
- package/lib/routing/workbench-url-observer.service.d.ts +10 -28
- package/lib/routing//311/265workbench-router.service.d.ts +74 -0
- package/lib/startup/workbench-launcher.service.d.ts +4 -4
- package/lib/testing/public_api.d.ts +1 -0
- package/lib/testing/workbench-testing.module.d.ts +7 -6
- package/lib/testing/workbench.provider.d.ts +29 -0
- package/lib/view/public_api.d.ts +2 -1
- package/lib/view/view-move-handler.service.d.ts +2 -4
- package/lib/view/view-portal.pipe.d.ts +2 -1
- package/lib/view/view.component.d.ts +1 -11
- package/lib/view/workbench-view-route-guards.d.ts +36 -0
- package/lib/view/workbench-view.model.d.ts +37 -5
- package/lib/view/workbench-view.registry.d.ts +4 -3
- package/lib/view//311/265workbench-view.model.d.ts +61 -15
- package/lib/view-dnd/view-drag.service.d.ts +9 -4
- package/lib/view-dnd/view-drop-zone.directive.d.ts +1 -1
- package/lib/{workbench-module-config.d.ts → workbench-config.d.ts} +29 -71
- package/lib/workbench.component.d.ts +2 -2
- package/lib/workbench.constants.d.ts +6 -8
- package/lib/workbench.model.d.ts +20 -8
- package/lib/workbench.module.d.ts +12 -7
- package/lib/workbench.provider.d.ts +38 -0
- package/lib/workbench.service.d.ts +32 -8
- package/lib//311/265workbench.service.d.ts +9 -3
- package/package.json +8 -8
- package/esm2022/lib/layout/migration/workbench-layout-migrator.service.mjs +0 -38
- package/esm2022/lib/layout/migration/workbench-layout-v1-migrator.service.mjs +0 -59
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +0 -46
- package/esm2022/lib/view/workbench-view-pre-destroy.guard.mjs +0 -36
- package/esm2022/lib/workbench-module-config.mjs +0 -15
- package/lib/layout/migration/workbench-layout-migrator.service.d.ts +0 -15
- package/lib/layout/migration/workbench-layout-v1-migrator.service.d.ts +0 -12
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.d.ts +0 -17
- package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ActivationInstantProvider } from '../activation-instant.provider';
|
|
4
|
-
import { MAIN_AREA_INITIAL_PART_ID } from '../layout/ɵworkbench-layout';
|
|
5
|
-
import { Router } from '@angular/router';
|
|
6
|
-
import { provideNoopAnimations } from '@angular/platform-browser/animations';
|
|
7
|
-
import { ComponentFixtureAutoDetect } from '@angular/core/testing';
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { provideWorkbenchForTest } from './workbench.provider';
|
|
8
3
|
import * as i0 from "@angular/core";
|
|
9
4
|
/**
|
|
10
5
|
* Sets up the SCION Workbench to be used for testing.
|
|
11
6
|
*
|
|
12
|
-
*
|
|
13
|
-
* - provides the workbench
|
|
7
|
+
* Does the following:
|
|
8
|
+
* - provides the workbench with given config
|
|
14
9
|
* - configures the workbench to name the initial part 'main'
|
|
15
10
|
* - installs a sequence for activation instants
|
|
16
11
|
* - configures the testbed to auto-detect changes
|
|
@@ -31,6 +26,8 @@ import * as i0 from "@angular/core";
|
|
|
31
26
|
* });
|
|
32
27
|
* });
|
|
33
28
|
* ```
|
|
29
|
+
*
|
|
30
|
+
* @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function instead; API will be removed in a future release; API will be removed in a future release.
|
|
34
31
|
*/
|
|
35
32
|
export class WorkbenchTestingModule {
|
|
36
33
|
/**
|
|
@@ -39,37 +36,14 @@ export class WorkbenchTestingModule {
|
|
|
39
36
|
static forTest(config) {
|
|
40
37
|
return {
|
|
41
38
|
ngModule: WorkbenchTestingModule,
|
|
42
|
-
providers: [
|
|
43
|
-
importProvidersFrom(WorkbenchModule.forRoot(config)),
|
|
44
|
-
provideNoopAnimations(),
|
|
45
|
-
{ provide: ActivationInstantProvider, useClass: SequenceInstantProvider },
|
|
46
|
-
{ provide: MAIN_AREA_INITIAL_PART_ID, useValue: 'main' },
|
|
47
|
-
{ provide: ComponentFixtureAutoDetect, useValue: true },
|
|
48
|
-
{ provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => inject(Router).initialNavigation() },
|
|
49
|
-
{ provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => localStorage.clear() },
|
|
50
|
-
{ provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => window.name = '' },
|
|
51
|
-
],
|
|
39
|
+
providers: [provideWorkbenchForTest(config)],
|
|
52
40
|
};
|
|
53
41
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
55
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
|
56
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchTestingModule, decorators: [{
|
|
59
|
-
type: NgModule,
|
|
60
|
-
args: [{ exports: [WorkbenchModule] }]
|
|
61
|
-
}] });
|
|
62
|
-
class SequenceInstantProvider {
|
|
63
|
-
constructor() {
|
|
64
|
-
this._sequence = 0;
|
|
65
|
-
}
|
|
66
|
-
now() {
|
|
67
|
-
return this._sequence++;
|
|
68
|
-
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: SequenceInstantProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: SequenceInstantProvider }); }
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
43
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule }); }
|
|
44
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule }); }
|
|
71
45
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
73
|
-
type:
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule, decorators: [{
|
|
47
|
+
type: NgModule
|
|
74
48
|
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF3QjtRQUM1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQzs4R0FWVSxzQkFBc0I7K0dBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaENvbmZpZ30gZnJvbSAnLi4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2hGb3JUZXN0fSBmcm9tICcuL3dvcmtiZW5jaC5wcm92aWRlcic7XG5cbi8qKlxuICogU2V0cyB1cCB0aGUgU0NJT04gV29ya2JlbmNoIHRvIGJlIHVzZWQgZm9yIHRlc3RpbmcuXG4gKlxuICogRG9lcyB0aGUgZm9sbG93aW5nOlxuICogLSBwcm92aWRlcyB0aGUgd29ya2JlbmNoIHdpdGggZ2l2ZW4gY29uZmlnXG4gKiAtIGNvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCB0byBuYW1lIHRoZSBpbml0aWFsIHBhcnQgJ21haW4nXG4gKiAtIGluc3RhbGxzIGEgc2VxdWVuY2UgZm9yIGFjdGl2YXRpb24gaW5zdGFudHNcbiAqIC0gY29uZmlndXJlcyB0aGUgdGVzdGJlZCB0byBhdXRvLWRldGVjdCBjaGFuZ2VzXG4gKiAtIGRpc2FibGVzIGFuaW1hdGlvbnNcbiAqIC0gcGVyZm9ybXMgdGhlIGluaXRpYWwgbmF2aWdhdGlvblxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYFxuICogYmVmb3JlRWFjaCgoKSA9PiB7XG4gKiAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gKiAgICAgIGltcG9ydHM6IFtcbiAqICAgICAgICBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlLmZvclRlc3QoKSxcbiAqICAgICAgICBSb3V0ZXJUZXN0aW5nTW9kdWxlLndpdGhSb3V0ZXMoW1xuICogICAgICAgICAge3BhdGg6ICd0ZXN0LXZpZXcnLCBjb21wb25lbnQ6IFRlc3RDb21wb25lbnR9LFxuICogICAgICAgIF0pLFxuICogICAgICBdLFxuICogICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTcuMC4wLWJldGEuODsgUmVnaXN0ZXIgU0NJT04gV29ya2JlbmNoIHByb3ZpZGVycyB1c2luZyBgcHJvdmlkZVdvcmtiZW5jaGAgZnVuY3Rpb24gaW5zdGVhZDsgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlOyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gKi9cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoVGVzdGluZ01vZHVsZSB7XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIFNDSU9OIFdvcmtiZW5jaCB0byBiZSB1c2VkIGZvciB0ZXN0aW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JUZXN0KGNvbmZpZz86IFdvcmtiZW5jaENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8V29ya2JlbmNoVGVzdGluZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogV29ya2JlbmNoVGVzdGluZ01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3Byb3ZpZGVXb3JrYmVuY2hGb3JUZXN0KGNvbmZpZyldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ENVIRONMENT_INITIALIZER, inject, Injectable, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { provideWorkbench } from '../workbench.provider';
|
|
3
|
+
import { provideNoopAnimations } from '@angular/platform-browser/animations';
|
|
4
|
+
import { ActivationInstantProvider } from '../activation-instant.provider';
|
|
5
|
+
import { MAIN_AREA_INITIAL_PART_ID } from '../layout/ɵworkbench-layout';
|
|
6
|
+
import { ComponentFixtureAutoDetect } from '@angular/core/testing';
|
|
7
|
+
import { Router } from '@angular/router';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Returns the set of dependency-injection providers to enable and configure the SCION Workbench in tests.
|
|
11
|
+
*
|
|
12
|
+
* Does the following:
|
|
13
|
+
* - provides the workbench with given config
|
|
14
|
+
* - configures the workbench to name the initial part 'main'
|
|
15
|
+
* - installs a sequence for activation instants
|
|
16
|
+
* - configures the testbed to auto-detect changes
|
|
17
|
+
* - disables animations
|
|
18
|
+
* - performs the initial navigation
|
|
19
|
+
*
|
|
20
|
+
* ### Usage
|
|
21
|
+
*
|
|
22
|
+
* ```
|
|
23
|
+
* beforeEach(() => {
|
|
24
|
+
* TestBed.configureTestingModule({
|
|
25
|
+
* imports: [
|
|
26
|
+
* WorkbenchTestingModule.forTest(),
|
|
27
|
+
* RouterTestingModule.withRoutes([
|
|
28
|
+
* {path: 'test-view', component: TestComponent},
|
|
29
|
+
* ]),
|
|
30
|
+
* ],
|
|
31
|
+
* });
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function provideWorkbenchForTest(config) {
|
|
36
|
+
return makeEnvironmentProviders([
|
|
37
|
+
provideWorkbench(config),
|
|
38
|
+
provideNoopAnimations(),
|
|
39
|
+
{ provide: ActivationInstantProvider, useClass: SequenceInstantProvider },
|
|
40
|
+
{ provide: MAIN_AREA_INITIAL_PART_ID, useValue: 'main' },
|
|
41
|
+
{ provide: ComponentFixtureAutoDetect, useValue: true },
|
|
42
|
+
{ provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => inject(Router).initialNavigation() },
|
|
43
|
+
{ provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => localStorage.clear() },
|
|
44
|
+
{ provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => window.name = '' },
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
class SequenceInstantProvider {
|
|
48
|
+
constructor() {
|
|
49
|
+
this._sequence = 0;
|
|
50
|
+
}
|
|
51
|
+
now() {
|
|
52
|
+
return this._sequence++;
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SequenceInstantProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SequenceInstantProvider }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SequenceInstantProvider, decorators: [{
|
|
58
|
+
type: Injectable
|
|
59
|
+
}] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLHVCQUF1QixFQUF3QixNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBd0I7SUFDOUQsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDeEIscUJBQXFCLEVBQUU7UUFDdkIsRUFBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFDO1FBQ3ZFLEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7UUFDdEQsRUFBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQztRQUNyRCxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBQztRQUNuRyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUM7UUFDckYsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUM7S0FDbEYsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQ00sdUJBQXVCO0lBRDdCO1FBR1UsY0FBUyxHQUFHLENBQUMsQ0FBQztLQUt2QjtJQUhRLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQU5HLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4uL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0YWJsZSwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7cHJvdmlkZVdvcmtiZW5jaH0gZnJvbSAnLi4vd29ya2JlbmNoLnByb3ZpZGVyJztcbmltcG9ydCB7cHJvdmlkZU5vb3BBbmltYXRpb25zfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyfSBmcm9tICcuLi9hY3RpdmF0aW9uLWluc3RhbnQucHJvdmlkZXInO1xuaW1wb3J0IHtNQUlOX0FSRUFfSU5JVElBTF9QQVJUX0lEfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Q29tcG9uZW50Rml4dHVyZUF1dG9EZXRlY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzZXQgb2YgZGVwZW5kZW5jeS1pbmplY3Rpb24gcHJvdmlkZXJzIHRvIGVuYWJsZSBhbmQgY29uZmlndXJlIHRoZSBTQ0lPTiBXb3JrYmVuY2ggaW4gdGVzdHMuXG4gKlxuICogRG9lcyB0aGUgZm9sbG93aW5nOlxuICogLSBwcm92aWRlcyB0aGUgd29ya2JlbmNoIHdpdGggZ2l2ZW4gY29uZmlnXG4gKiAtIGNvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCB0byBuYW1lIHRoZSBpbml0aWFsIHBhcnQgJ21haW4nXG4gKiAtIGluc3RhbGxzIGEgc2VxdWVuY2UgZm9yIGFjdGl2YXRpb24gaW5zdGFudHNcbiAqIC0gY29uZmlndXJlcyB0aGUgdGVzdGJlZCB0byBhdXRvLWRldGVjdCBjaGFuZ2VzXG4gKiAtIGRpc2FibGVzIGFuaW1hdGlvbnNcbiAqIC0gcGVyZm9ybXMgdGhlIGluaXRpYWwgbmF2aWdhdGlvblxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYFxuICogYmVmb3JlRWFjaCgoKSA9PiB7XG4gKiAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gKiAgICAgIGltcG9ydHM6IFtcbiAqICAgICAgICBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlLmZvclRlc3QoKSxcbiAqICAgICAgICBSb3V0ZXJUZXN0aW5nTW9kdWxlLndpdGhSb3V0ZXMoW1xuICogICAgICAgICAge3BhdGg6ICd0ZXN0LXZpZXcnLCBjb21wb25lbnQ6IFRlc3RDb21wb25lbnR9LFxuICogICAgICAgIF0pLFxuICogICAgICBdLFxuICogICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaEZvclRlc3QoY29uZmlnPzogV29ya2JlbmNoQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlV29ya2JlbmNoKGNvbmZpZyksXG4gICAgcHJvdmlkZU5vb3BBbmltYXRpb25zKCksXG4gICAge3Byb3ZpZGU6IEFjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIsIHVzZUNsYXNzOiBTZXF1ZW5jZUluc3RhbnRQcm92aWRlcn0sXG4gICAge3Byb3ZpZGU6IE1BSU5fQVJFQV9JTklUSUFMX1BBUlRfSUQsIHVzZVZhbHVlOiAnbWFpbid9LFxuICAgIHtwcm92aWRlOiBDb21wb25lbnRGaXh0dXJlQXV0b0RldGVjdCwgdXNlVmFsdWU6IHRydWV9LFxuICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiBpbmplY3QoUm91dGVyKS5pbml0aWFsTmF2aWdhdGlvbigpfSxcbiAgICB7cHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIG11bHRpOiB0cnVlLCB1c2VWYWx1ZTogKCkgPT4gbG9jYWxTdG9yYWdlLmNsZWFyKCl9LFxuICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiB3aW5kb3cubmFtZSA9ICcnfSxcbiAgXSk7XG59XG5cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgcmVnaXN0ZXJlZCBvbmx5IGlmIHVzaW5nIGBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlYC4gKi8pXG5jbGFzcyBTZXF1ZW5jZUluc3RhbnRQcm92aWRlciBpbXBsZW1lbnRzIEFjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIge1xuXG4gIHByaXZhdGUgX3NlcXVlbmNlID0gMDtcblxuICBwdWJsaWMgbm93KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcXVlbmNlKys7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -66,10 +66,10 @@ export class WorkbenchThemeSwitcher {
|
|
|
66
66
|
await this.switchTheme(theme);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
70
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchThemeSwitcher, deps: [{ token: i1.WorkbenchStorage }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchThemeSwitcher, providedIn: 'root' }); }
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchThemeSwitcher, decorators: [{
|
|
73
73
|
type: Injectable,
|
|
74
74
|
args: [{ providedIn: 'root' }]
|
|
75
75
|
}], ctorParameters: () => [{ type: i1.WorkbenchStorage }] });
|
|
@@ -8,4 +8,5 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
export { WorkbenchView } from './workbench-view.model';
|
|
11
|
-
|
|
11
|
+
export { canMatchWorkbenchView } from './workbench-view-route-guards';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxhQUFhLEVBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuZXhwb3J0IHtXb3JrYmVuY2hWaWV3LCBWaWV3SWR9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuZXhwb3J0IHtjYW5NYXRjaFdvcmtiZW5jaFZpZXd9IGZyb20gJy4vd29ya2JlbmNoLXZpZXctcm91dGUtZ3VhcmRzJztcbiJdfQ==
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { Inject, Injectable
|
|
2
|
-
import { UUID } from '@scion/toolkit/uuid';
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
3
2
|
import { RouterUtils } from '../routing/router.util';
|
|
4
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
4
|
import { Defined } from '@scion/toolkit/util';
|
|
6
5
|
import { generatePerspectiveWindowName } from '../perspective/workbench-perspective.service';
|
|
7
6
|
import { ANONYMOUS_PERSPECTIVE_ID_PREFIX } from '../workbench.constants';
|
|
8
|
-
import { MAIN_AREA_INITIAL_PART_ID } from '../layout/ɵworkbench-layout';
|
|
9
7
|
import { WORKBENCH_ID } from '../workbench-id';
|
|
8
|
+
import { randomUUID } from '../common/uuid.util';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../routing
|
|
10
|
+
import * as i1 from "../routing/\u0275workbench-router.service";
|
|
12
11
|
import * as i2 from "../layout/\u0275workbench-layout.factory";
|
|
13
12
|
import * as i3 from "../view-dnd/view-drag.service";
|
|
14
13
|
import * as i4 from "@angular/router";
|
|
@@ -17,14 +16,13 @@ import * as i5 from "@angular/common";
|
|
|
17
16
|
* Updates the workbench layout when the user moves a view.
|
|
18
17
|
*/
|
|
19
18
|
export class ViewMoveHandler {
|
|
20
|
-
constructor(_workbenchId, _workbenchRouter, _workbenchLayoutFactory, _viewDragService, _router, _locationStrategy
|
|
19
|
+
constructor(_workbenchId, _workbenchRouter, _workbenchLayoutFactory, _viewDragService, _router, _locationStrategy) {
|
|
21
20
|
this._workbenchId = _workbenchId;
|
|
22
21
|
this._workbenchRouter = _workbenchRouter;
|
|
23
22
|
this._workbenchLayoutFactory = _workbenchLayoutFactory;
|
|
24
23
|
this._viewDragService = _viewDragService;
|
|
25
24
|
this._router = _router;
|
|
26
25
|
this._locationStrategy = _locationStrategy;
|
|
27
|
-
this._injector = _injector;
|
|
28
26
|
this.installViewMoveListener();
|
|
29
27
|
}
|
|
30
28
|
installViewMoveListener() {
|
|
@@ -60,94 +58,76 @@ export class ViewMoveHandler {
|
|
|
60
58
|
const region = event.target.region;
|
|
61
59
|
const addToNewPart = !!region;
|
|
62
60
|
const commands = RouterUtils.segmentsToCommands(event.source.viewUrlSegments);
|
|
63
|
-
await this._workbenchRouter
|
|
64
|
-
const newViewId =
|
|
61
|
+
await this._workbenchRouter.navigate(layout => {
|
|
62
|
+
const newViewId = event.source.alternativeViewId ?? layout.computeNextViewId();
|
|
65
63
|
if (addToNewPart) {
|
|
66
|
-
const newPartId = event.target.newPart?.id ??
|
|
67
|
-
return
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
viewOutlets: { [newViewId]: commands },
|
|
72
|
-
};
|
|
64
|
+
const newPartId = event.target.newPart?.id ?? randomUUID();
|
|
65
|
+
return layout
|
|
66
|
+
.addPart(newPartId, { relativeTo: event.target.elementId, align: coerceAlignProperty(region), ratio: event.target.newPart?.ratio }, { structural: false })
|
|
67
|
+
.addView(newViewId, { partId: newPartId, activateView: true, activatePart: true, cssClass: event.source.classList?.get('layout') })
|
|
68
|
+
.navigateView(newViewId, commands, { hint: event.source.navigationHint, cssClass: event.source.classList?.get('navigation') });
|
|
73
69
|
}
|
|
74
70
|
else {
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
71
|
+
return layout
|
|
72
|
+
.addView(newViewId, {
|
|
73
|
+
partId: Defined.orElseThrow(event.target.elementId, () => Error(`[ViewMoveError] Target part required for region 'center'.`)),
|
|
74
|
+
position: event.target.position ?? 'after-active-view',
|
|
75
|
+
cssClass: event.source.classList?.get('layout'),
|
|
76
|
+
activateView: true,
|
|
77
|
+
activatePart: true,
|
|
78
|
+
})
|
|
79
|
+
.navigateView(newViewId, commands, { hint: event.source.navigationHint, cssClass: event.source.classList?.get('navigation') });
|
|
84
80
|
}
|
|
85
81
|
});
|
|
86
82
|
}
|
|
87
83
|
async moveViewToNewWindow(event) {
|
|
88
84
|
// Open the view "standalone" in a blank window in an anonymous perspective.
|
|
89
|
-
const urlTree = await this._workbenchRouter.createUrlTree(
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
})
|
|
100
|
-
.addView(event.source.viewId, {
|
|
101
|
-
partId: mainAreaPartId,
|
|
102
|
-
activateView: true,
|
|
103
|
-
activatePart: true,
|
|
104
|
-
}),
|
|
105
|
-
viewOutlets: layout.views() // Remove other views
|
|
106
|
-
.map(view => view.id)
|
|
107
|
-
.filter(viewId => viewId !== event.source.viewId)
|
|
108
|
-
.reduce((acc, viewId) => ({ ...acc, [viewId]: null }), {}),
|
|
109
|
-
};
|
|
85
|
+
const urlTree = await this._workbenchRouter.createUrlTree(() => {
|
|
86
|
+
const newLayout = this._workbenchLayoutFactory.create();
|
|
87
|
+
const newViewId = event.source.alternativeViewId ?? newLayout.computeNextViewId();
|
|
88
|
+
const commands = RouterUtils.segmentsToCommands(event.source.viewUrlSegments);
|
|
89
|
+
return newLayout
|
|
90
|
+
.addView(newViewId, {
|
|
91
|
+
partId: newLayout.activePart({ grid: 'mainArea' }).id,
|
|
92
|
+
activateView: true,
|
|
93
|
+
cssClass: event.source.classList?.get('layout'),
|
|
94
|
+
})
|
|
95
|
+
.navigateView(newViewId, commands, { hint: event.source.navigationHint, cssClass: event.source.classList?.get('navigation') });
|
|
110
96
|
});
|
|
111
|
-
const target = generatePerspectiveWindowName(`${ANONYMOUS_PERSPECTIVE_ID_PREFIX}${
|
|
97
|
+
const target = generatePerspectiveWindowName(`${ANONYMOUS_PERSPECTIVE_ID_PREFIX}${randomUUID()}`);
|
|
112
98
|
if (window.open(this._locationStrategy.prepareExternalUrl(this._router.serializeUrl(urlTree)), target)) {
|
|
113
99
|
await this.removeView(event);
|
|
114
100
|
}
|
|
115
101
|
}
|
|
116
102
|
async removeView(event) {
|
|
117
|
-
|
|
118
|
-
await this._workbenchRouter.ɵnavigate(layout => {
|
|
119
|
-
return {
|
|
120
|
-
layout: layout.removeView(viewId),
|
|
121
|
-
viewOutlets: { [viewId]: null },
|
|
122
|
-
};
|
|
123
|
-
});
|
|
103
|
+
await this._workbenchRouter.navigate(layout => layout.removeView(event.source.viewId, { force: true }));
|
|
124
104
|
}
|
|
125
105
|
async moveView(event) {
|
|
126
106
|
const addToNewPart = !!event.target.region;
|
|
127
107
|
if (addToNewPart) {
|
|
128
|
-
const newPartId = event.target.newPart?.id ??
|
|
129
|
-
await this._workbenchRouter
|
|
108
|
+
const newPartId = event.target.newPart?.id ?? randomUUID();
|
|
109
|
+
await this._workbenchRouter.navigate(layout => layout
|
|
130
110
|
.addPart(newPartId, { relativeTo: event.target.elementId, align: coerceAlignProperty(event.target.region), ratio: event.target.newPart?.ratio }, { structural: false })
|
|
131
111
|
.moveView(event.source.viewId, newPartId, { activatePart: true, activateView: true }));
|
|
132
112
|
}
|
|
133
113
|
else {
|
|
134
|
-
const targetPartId = Defined.orElseThrow(event.target.elementId, () => Error(`[
|
|
135
|
-
await this._workbenchRouter
|
|
114
|
+
const targetPartId = Defined.orElseThrow(event.target.elementId, () => Error(`[ViewMoveError] Target part required for region 'center'.`));
|
|
115
|
+
await this._workbenchRouter.navigate(layout => layout.moveView(event.source.viewId, targetPartId, {
|
|
136
116
|
position: event.target.position ?? (event.source.partId === targetPartId ? undefined : 'after-active-view'),
|
|
137
117
|
activateView: true,
|
|
138
118
|
activatePart: true,
|
|
139
119
|
}));
|
|
140
120
|
}
|
|
141
121
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
143
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewMoveHandler, deps: [{ token: WORKBENCH_ID }, { token: i1.ɵWorkbenchRouter }, { token: i2.ɵWorkbenchLayoutFactory }, { token: i3.ViewDragService }, { token: i4.Router }, { token: i5.LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
123
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewMoveHandler }); }
|
|
144
124
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewMoveHandler, decorators: [{
|
|
146
126
|
type: Injectable
|
|
147
127
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
148
128
|
type: Inject,
|
|
149
129
|
args: [WORKBENCH_ID]
|
|
150
|
-
}] }, { type: i1
|
|
130
|
+
}] }, { type: i1.ɵWorkbenchRouter }, { type: i2.ɵWorkbenchLayoutFactory }, { type: i3.ViewDragService }, { type: i4.Router }, { type: i5.LocationStrategy }] });
|
|
151
131
|
function coerceAlignProperty(region) {
|
|
152
132
|
switch (region) {
|
|
153
133
|
case 'west':
|
|
@@ -162,4 +142,4 @@ function coerceAlignProperty(region) {
|
|
|
162
142
|
throw Error(`[UnsupportedRegionError] Supported regions are 'north', 'east', 'south' or 'west', but is '${region}'.`);
|
|
163
143
|
}
|
|
164
144
|
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSXpDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBRTdDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBMEMsWUFBb0IsRUFDMUMsZ0JBQWlDLEVBQ2pDLHVCQUFnRCxFQUNoRCxnQkFBaUMsRUFDakMsT0FBZSxFQUNmLGlCQUFtQyxFQUNuQyxTQUFtQjtRQU5HLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixzQkFBaUIsR0FBakIsaUJB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QUMsTUFBTSxFQUFFLFlBQVksRUFBRTtnQkFDakcsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO2dCQUMzRyxZQUFZLEVBQUUsSUFBSTtnQkFDbEIsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTDtJQUNILENBQUM7OEdBcklVLGVBQWUsa0JBRU4sWUFBWTtrSEFGckIsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBR0ksTUFBTTsyQkFBQyxZQUFZOztBQXNJbEMsU0FBUyxtQkFBbUIsQ0FBQyxNQUFzRDtJQUNqRixRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssTUFBTTtZQUNULE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxPQUFPO1lBQ1YsT0FBTyxRQUFRLENBQUM7UUFDbEI7WUFDRSxNQUFNLEtBQUssQ0FBQyw4RkFBOEYsTUFBTSxJQUFJLENBQUMsQ0FBQztLQUN6SDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2UsIFZpZXdNb3ZlRXZlbnR9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7VVVJRH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXVpZCc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TG9jYXRpb25TdHJhdGVneX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge1JvdXRlclV0aWxzfSBmcm9tICcuLi9yb3V0aW5nL3JvdXRlci51dGlsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXRGYWN0b3J5fSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RGVmaW5lZH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge2dlbmVyYXRlUGVyc3BlY3RpdmVXaW5kb3dOYW1lfSBmcm9tICcuLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUuc2VydmljZSc7XG5pbXBvcnQge0FOT05ZTU9VU19QRVJTUEVDVElWRV9JRF9QUkVGSVh9IGZyb20gJy4uL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuaW1wb3J0IHtNQUlOX0FSRUFfSU5JVElBTF9QQVJUX0lEfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi93b3JrYmVuY2gtaWQnO1xuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIHdvcmtiZW5jaCBsYXlvdXQgd2hlbiB0aGUgdXNlciBtb3ZlcyBhIHZpZXcuXG4gKi9cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgcmVnaXN0ZXJlZCB2aWEgd29ya2JlbmNoIHN0YXJ0dXAgaG9vay4gKi8pXG5leHBvcnQgY2xhc3MgVmlld01vdmVIYW5kbGVyIHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdPUktCRU5DSF9JRCkgcHJpdmF0ZSBfd29ya2JlbmNoSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoUm91dGVyOiBXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExheW91dEZhY3Rvcnk6IMm1V29ya2JlbmNoTGF5b3V0RmFjdG9yeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2NhdGlvblN0cmF0ZWd5OiBMb2NhdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmluc3RhbGxWaWV3TW92ZUxpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3TW92ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3TW92ZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQ6IFZpZXdNb3ZlRXZlbnQpID0+IHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByeGpzL25vLWFzeW5jLXN1YnNjcmliZVxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHdvcmtiZW5jaCBpbnN0YW5jZSB0YWtlcyBwYXJ0IGluIHRoZSB2aWV3IGRyYWcgb3BlcmF0aW9uLiBJZiBub3QsIGRvIG5vdGhpbmcuXG4gICAgICAgIGlmIChldmVudC5zb3VyY2Uud29ya2JlbmNoSWQgIT09IHRoaXMuX3dvcmtiZW5jaElkICYmIGV2ZW50LnRhcmdldC53b3JrYmVuY2hJZCAhPT0gdGhpcy5fd29ya2JlbmNoSWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjcm9zc1dvcmtiZW5jaFZpZXdEcmFnID0gKGV2ZW50LnNvdXJjZS53b3JrYmVuY2hJZCAhPT0gZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB0byByZW1vdmUgdGhlIHZpZXcgZnJvbSB0aGlzIHdvcmtiZW5jaCBpbnN0YW5jZSBpZiBiZWluZyBtb3ZlZCB0byBhbm90aGVyIHdvcmtiZW5jaCBpbnN0YW5jZS5cbiAgICAgICAgaWYgKGNyb3NzV29ya2JlbmNoVmlld0RyYWcgJiYgZXZlbnQuc291cmNlLndvcmtiZW5jaElkID09PSB0aGlzLl93b3JrYmVuY2hJZCkge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRvIGFkZCB0aGUgdmlldyB0byBhIG5ldyBicm93c2VyIHdpbmRvdy5cbiAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkID09PSAnbmV3LXdpbmRvdycpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubW92ZVZpZXdUb05ld1dpbmRvdyhldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVWaWV3KGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgaWYgdG8gYWRkIHRoZSB2aWV3IHRvIHRoaXMgd29ya2JlbmNoIGluc3RhbmNlIGlmIGJlaW5nIG1vdmVkIGZyb20gYW5vdGhlciB3b3JrYmVuY2ggaW5zdGFuY2UgdG8gdGhpcyB3b3JrYmVuY2ggaW5zdGFuY2UuXG4gICAgICAgIGVsc2UgaWYgKGNyb3NzV29ya2JlbmNoVmlld0RyYWcgJiYgZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkID09PSB0aGlzLl93b3JrYmVuY2hJZCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWRkVmlldyhldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTW92ZSB0aGUgdmlldyB3aXRoaW4gdGhlIHNhbWUgd29ya2JlbmNoIGluc3RhbmNlLlxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLm1vdmVWaWV3KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZFZpZXcoZXZlbnQ6IFZpZXdNb3ZlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZWdpb24gPSBldmVudC50YXJnZXQucmVnaW9uO1xuICAgIGNvbnN0IGFkZFRvTmV3UGFydCA9ICEhcmVnaW9uO1xuICAgIGNvbnN0IGNvbW1hbmRzID0gUm91dGVyVXRpbHMuc2VnbWVudHNUb0NvbW1hbmRzKGV2ZW50LnNvdXJjZS52aWV3VXJsU2VnbWVudHMpO1xuXG4gICAgYXdhaXQgdGhpcy5fd29ya2JlbmNoUm91dGVyLsm1bmF2aWdhdGUobGF5b3V0ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdJZCA9IFJvdXRlclV0aWxzLmlzUHJpbWFyeVJvdXRlVGFyZ2V0KGV2ZW50LnNvdXJjZS52aWV3SWQpID8gbGF5b3V0LmNvbXB1dGVOZXh0Vmlld0lkKCkgOiBldmVudC5zb3VyY2Uudmlld0lkO1xuICAgICAgaWYgKGFkZFRvTmV3UGFydCkge1xuICAgICAgICBjb25zdCBuZXdQYXJ0SWQgPSBldmVudC50YXJnZXQubmV3UGFydD8uaWQgPz8gVVVJRC5yYW5kb21VVUlEKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgICAgICAgIC5hZGRQYXJ0KG5ld1BhcnRJZCwge3JlbGF0aXZlVG86IGV2ZW50LnRhcmdldC5lbGVtZW50SWQsIGFsaWduOiBjb2VyY2VBbGlnblByb3BlcnR5KHJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgICAgIC5hZGRWaWV3KG5ld1ZpZXdJZCwge3BhcnRJZDogbmV3UGFydElkLCBhY3RpdmF0ZVZpZXc6IHRydWUsIGFjdGl2YXRlUGFydDogdHJ1ZX0pLFxuICAgICAgICAgIHZpZXdPdXRsZXRzOiB7W25ld1ZpZXdJZF06IGNvbW1hbmRzfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxheW91dDogbGF5b3V0LmFkZFZpZXcobmV3Vmlld0lkLCB7XG4gICAgICAgICAgICBwYXJ0SWQ6IERlZmluZWQub3JFbHNlVGhyb3coZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgKCkgPT4gRXJyb3IoYFtJbGxlZ2FsQXJndW1lbnRFcnJvcl0gVGFyZ2V0IHBhcnQgbWFuZGF0b3J5IGZvciByZWdpb24gJ2NlbnRlcicuYCkpLFxuICAgICAgICAgICAgcG9zaXRpb246IGV2ZW50LnRhcmdldC5wb3NpdGlvbiA/PyAnYWZ0ZXItYWN0aXZlLXZpZXcnLFxuICAgICAgICAgICAgYWN0aXZhdGVWaWV3OiB0cnVlLFxuICAgICAgICAgICAgYWN0aXZhdGVQYXJ0OiB0cnVlLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHZpZXdPdXRsZXRzOiB7W25ld1ZpZXdJZF06IGNvbW1hbmRzfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbW92ZVZpZXdUb05ld1dpbmRvdyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE9wZW4gdGhlIHZpZXcgXCJzdGFuZGFsb25lXCIgaW4gYSBibGFuayB3aW5kb3cgaW4gYW4gYW5vbnltb3VzIHBlcnNwZWN0aXZlLlxuICAgIGNvbnN0IHVybFRyZWUgPSBhd2FpdCB0aGlzLl93b3JrYmVuY2hSb3V0ZXIuY3JlYXRlVXJsVHJlZShsYXlvdXQgPT4ge1xuICAgICAgY29uc3QgbWFpbkFyZWFQYXJ0SWQgPSBVVUlELnJhbmRvbVVVSUQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGF5b3V0OiB0aGlzLl93b3JrYmVuY2hMYXlvdXRGYWN0b3J5XG4gICAgICAgICAgLmNyZWF0ZSh7XG4gICAgICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvcixcbiAgICAgICAgICAgICAgLy8gSW5zdHJ1Y3QgZmFjdG9yeSBub3QgdG8gdXNlIFVVSUQgYXMgaWRlbnRpdHkgZm9yIHRoZSBpbml0aWFsIHBhcnQgb2YgdGhlIG1haW4gYXJlYVxuICAgICAgICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogTUFJTl9BUkVBX0lOSVRJQUxfUEFSVF9JRCwgdXNlVmFsdWU6IG1haW5BcmVhUGFydElkfV0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5hZGRWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIHtcbiAgICAgICAgICAgICAgcGFydElkOiBtYWluQXJlYVBhcnRJZCxcbiAgICAgICAgICAgICAgYWN0aXZhdGVWaWV3OiB0cnVlLFxuICAgICAgICAgICAgICBhY3RpdmF0ZVBhcnQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgIHZpZXdPdXRsZXRzOiBsYXlvdXQudmlld3MoKSAvLyBSZW1vdmUgb3RoZXIgdmlld3NcbiAgICAgICAgICAubWFwKHZpZXcgPT4gdmlldy5pZClcbiAgICAgICAgICAuZmlsdGVyKHZpZXdJZCA9PiB2aWV3SWQgIT09IGV2ZW50LnNvdXJjZS52aWV3SWQpXG4gICAgICAgICAgLnJlZHVjZSgoYWNjLCB2aWV3SWQpID0+ICh7Li4uYWNjLCBbdmlld0lkXTogbnVsbH0pLCB7fSksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IGdlbmVyYXRlUGVyc3BlY3RpdmVXaW5kb3dOYW1lKGAke0FOT05ZTU9VU19QRVJTUEVDVElWRV9JRF9QUkVGSVh9JHtVVUlELnJhbmRvbVVVSUQoKX1gKTtcbiAgICBpZiAod2luZG93Lm9wZW4odGhpcy5fbG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5fcm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKSksIHRhcmdldCkpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVtb3ZlVmlldyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZW1vdmVWaWV3KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgdmlld0lkID0gZXZlbnQuc291cmNlLnZpZXdJZDtcbiAgICBhd2FpdCB0aGlzLl93b3JrYmVuY2hSb3V0ZXIuybVuYXZpZ2F0ZShsYXlvdXQgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGF5b3V0OiBsYXlvdXQucmVtb3ZlVmlldyh2aWV3SWQpLFxuICAgICAgICB2aWV3T3V0bGV0czoge1t2aWV3SWRdOiBudWxsfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1vdmVWaWV3KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWRkVG9OZXdQYXJ0ID0gISFldmVudC50YXJnZXQucmVnaW9uO1xuICAgIGlmIChhZGRUb05ld1BhcnQpIHtcbiAgICAgIGNvbnN0IG5ld1BhcnRJZCA9IGV2ZW50LnRhcmdldC5uZXdQYXJ0Py5pZCA/PyBVVUlELnJhbmRvbVVVSUQoKTtcbiAgICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci7JtW5hdmlnYXRlKGxheW91dCA9PiBsYXlvdXRcbiAgICAgICAgLmFkZFBhcnQobmV3UGFydElkLCB7cmVsYXRpdmVUbzogZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgYWxpZ246IGNvZXJjZUFsaWduUHJvcGVydHkoZXZlbnQudGFyZ2V0LnJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgLm1vdmVWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIG5ld1BhcnRJZCwge2FjdGl2YXRlUGFydDogdHJ1ZSwgYWN0aXZhdGVWaWV3OiB0cnVlfSksXG4gICAgICApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHRhcmdldFBhcnRJZCA9IERlZmluZWQub3JFbHNlVGhyb3coZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgKCkgPT4gRXJyb3IoYFtJbGxlZ2FsQXJndW1lbnRFcnJvcl0gVGFyZ2V0IHBhcnQgbWFuZGF0b3J5IGZvciByZWdpb24gJ2NlbnRlcicuYCkpO1xuICAgICAgYXdhaXQgdGhpcy5fd29ya2JlbmNoUm91dGVyLsm1bmF2aWdhdGUobGF5b3V0ID0+IGxheW91dC5tb3ZlVmlldyhldmVudC5zb3VyY2Uudmlld0lkLCB0YXJnZXRQYXJ0SWQsIHtcbiAgICAgICAgcG9zaXRpb246IGV2ZW50LnRhcmdldC5wb3NpdGlvbiA/PyAoZXZlbnQuc291cmNlLnBhcnRJZCA9PT0gdGFyZ2V0UGFydElkID8gdW5kZWZpbmVkIDogJ2FmdGVyLWFjdGl2ZS12aWV3JyksXG4gICAgICAgIGFjdGl2YXRlVmlldzogdHJ1ZSxcbiAgICAgICAgYWN0aXZhdGVQYXJ0OiB0cnVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb2VyY2VBbGlnblByb3BlcnR5KHJlZ2lvbjogJ25vcnRoJyB8ICdlYXN0JyB8ICdzb3V0aCcgfCAnd2VzdCcgfCAnY2VudGVyJyk6ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nIHtcbiAgc3dpdGNoIChyZWdpb24pIHtcbiAgICBjYXNlICd3ZXN0JzpcbiAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgY2FzZSAnZWFzdCc6XG4gICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICBjYXNlICdub3J0aCc6XG4gICAgICByZXR1cm4gJ3RvcCc7XG4gICAgY2FzZSAnc291dGgnOlxuICAgICAgcmV0dXJuICdib3R0b20nO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBFcnJvcihgW1Vuc3VwcG9ydGVkUmVnaW9uRXJyb3JdIFN1cHBvcnRlZCByZWdpb25zIGFyZSAnbm9ydGgnLCAnZWFzdCcsICdzb3V0aCcgb3IgJ3dlc3QnLCBidXQgaXMgJyR7cmVnaW9ufScuYCk7XG4gIH1cbn1cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUtqRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFFL0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUEwQyxZQUFvQixFQUMxQyxnQkFBa0MsRUFDbEMsdUJBQWdELEVBQ2hELGdCQUFpQyxFQUNqQyxPQUFlLEVBQ2YsaUJBQW1DO1FBTGIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDckQsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLHVCQUF1QjtR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QUFtQixDQUFDO2dCQUMzRyxZQUFZLEVBQUUsSUFBSTtnQkFDbEIsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTDtJQUNILENBQUM7OEdBaEhVLGVBQWUsa0JBRU4sWUFBWTtrSEFGckIsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBR0ksTUFBTTsyQkFBQyxZQUFZOztBQWlIbEMsU0FBUyxtQkFBbUIsQ0FBQyxNQUFzRDtJQUNqRixRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssTUFBTTtZQUNULE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxPQUFPO1lBQ1YsT0FBTyxRQUFRLENBQUM7UUFDbEI7WUFDRSxNQUFNLEtBQUssQ0FBQyw4RkFBOEYsTUFBTSxJQUFJLENBQUMsQ0FBQztLQUN6SDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZSwgVmlld01vdmVFdmVudH0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xvY2F0aW9uU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge8m1V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7Um91dGVyVXRpbHN9IGZyb20gJy4uL3JvdXRpbmcvcm91dGVyLnV0aWwnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaExheW91dEZhY3Rvcnl9IGZyb20gJy4uL2xheW91dC/JtXdvcmtiZW5jaC1sYXlvdXQuZmFjdG9yeSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtEZWZpbmVkfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7Z2VuZXJhdGVQZXJzcGVjdGl2ZVdpbmRvd05hbWV9IGZyb20gJy4uL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5zZXJ2aWNlJztcbmltcG9ydCB7QU5PTllNT1VTX1BFUlNQRUNUSVZFX0lEX1BSRUZJWH0gZnJvbSAnLi4vd29ya2JlbmNoLmNvbnN0YW50cyc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vd29ya2JlbmNoLWlkJztcbmltcG9ydCB7cmFuZG9tVVVJRH0gZnJvbSAnLi4vY29tbW9uL3V1aWQudXRpbCc7XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgd29ya2JlbmNoIGxheW91dCB3aGVuIHRoZSB1c2VyIG1vdmVzIGEgdmlldy5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyByZWdpc3RlcmVkIHZpYSB3b3JrYmVuY2ggc3RhcnR1cCBob29rLiAqLylcbmV4cG9ydCBjbGFzcyBWaWV3TW92ZUhhbmRsZXIge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hSb3V0ZXI6IMm1V29ya2JlbmNoUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRGYWN0b3J5OiDJtVdvcmtiZW5jaExheW91dEZhY3RvcnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9jYXRpb25TdHJhdGVneTogTG9jYXRpb25TdHJhdGVneSkge1xuICAgIHRoaXMuaW5zdGFsbFZpZXdNb3ZlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbFZpZXdNb3ZlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdNb3ZlJFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIChldmVudDogVmlld01vdmVFdmVudCkgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJ4anMvbm8tYXN5bmMtc3Vic2NyaWJlXG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgd29ya2JlbmNoIGluc3RhbmNlIHRha2VzIHBhcnQgaW4gdGhlIHZpZXcgZHJhZyBvcGVyYXRpb24uIElmIG5vdCwgZG8gbm90aGluZy5cbiAgICAgICAgaWYgKGV2ZW50LnNvdXJjZS53b3JrYmVuY2hJZCAhPT0gdGhpcy5fd29ya2JlbmNoSWQgJiYgZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkICE9PSB0aGlzLl93b3JrYmVuY2hJZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNyb3NzV29ya2JlbmNoVmlld0RyYWcgPSAoZXZlbnQuc291cmNlLndvcmtiZW5jaElkICE9PSBldmVudC50YXJnZXQud29ya2JlbmNoSWQpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRvIHJlbW92ZSB0aGUgdmlldyBmcm9tIHRoaXMgd29ya2JlbmNoIGluc3RhbmNlIGlmIGJlaW5nIG1vdmVkIHRvIGFub3RoZXIgd29ya2JlbmNoIGluc3RhbmNlLlxuICAgICAgICBpZiAoY3Jvc3NXb3JrYmVuY2hWaWV3RHJhZyAmJiBldmVudC5zb3VyY2Uud29ya2JlbmNoSWQgPT09IHRoaXMuX3dvcmtiZW5jaElkKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdG8gYWRkIHRoZSB2aWV3IHRvIGEgbmV3IGJyb3dzZXIgd2luZG93LlxuICAgICAgICAgIGlmIChldmVudC50YXJnZXQud29ya2JlbmNoSWQgPT09ICduZXctd2luZG93Jykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5tb3ZlVmlld1RvTmV3V2luZG93KGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlbW92ZVZpZXcoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBDaGVjayBpZiB0byBhZGQgdGhlIHZpZXcgdG8gdGhpcyB3b3JrYmVuY2ggaW5zdGFuY2UgaWYgYmVpbmcgbW92ZWQgZnJvbSBhbm90aGVyIHdvcmtiZW5jaCBpbnN0YW5jZSB0byB0aGlzIHdvcmtiZW5jaCBpbnN0YW5jZS5cbiAgICAgICAgZWxzZSBpZiAoY3Jvc3NXb3JrYmVuY2hWaWV3RHJhZyAmJiBldmVudC50YXJnZXQud29ya2JlbmNoSWQgPT09IHRoaXMuX3dvcmtiZW5jaElkKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5hZGRWaWV3KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBNb3ZlIHRoZSB2aWV3IHdpdGhpbiB0aGUgc2FtZSB3b3JrYmVuY2ggaW5zdGFuY2UuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHRoaXMubW92ZVZpZXcoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkVmlldyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlZ2lvbiA9IGV2ZW50LnRhcmdldC5yZWdpb247XG4gICAgY29uc3QgYWRkVG9OZXdQYXJ0ID0gISFyZWdpb247XG4gICAgY29uc3QgY29tbWFuZHMgPSBSb3V0ZXJVdGlscy5zZWdtZW50c1RvQ29tbWFuZHMoZXZlbnQuc291cmNlLnZpZXdVcmxTZWdtZW50cyk7XG5cbiAgICBhd2FpdCB0aGlzLl93b3JrYmVuY2hSb3V0ZXIubmF2aWdhdGUobGF5b3V0ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdJZCA9IGV2ZW50LnNvdXJjZS5hbHRlcm5hdGl2ZVZpZXdJZCA/PyBsYXlvdXQuY29tcHV0ZU5leHRWaWV3SWQoKTtcbiAgICAgIGlmIChhZGRUb05ld1BhcnQpIHtcbiAgICAgICAgY29uc3QgbmV3UGFydElkID0gZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LmlkID8/IHJhbmRvbVVVSUQoKTtcbiAgICAgICAgcmV0dXJuIGxheW91dFxuICAgICAgICAgIC5hZGRQYXJ0KG5ld1BhcnRJZCwge3JlbGF0aXZlVG86IGV2ZW50LnRhcmdldC5lbGVtZW50SWQsIGFsaWduOiBjb2VyY2VBbGlnblByb3BlcnR5KHJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgICAuYWRkVmlldyhuZXdWaWV3SWQsIHtwYXJ0SWQ6IG5ld1BhcnRJZCwgYWN0aXZhdGVWaWV3OiB0cnVlLCBhY3RpdmF0ZVBhcnQ6IHRydWUsIGNzc0NsYXNzOiBldmVudC5zb3VyY2UuY2xhc3NMaXN0Py5nZXQoJ2xheW91dCcpfSlcbiAgICAgICAgICAubmF2aWdhdGVWaWV3KG5ld1ZpZXdJZCwgY29tbWFuZHMsIHtoaW50OiBldmVudC5zb3VyY2UubmF2aWdhdGlvbkhpbnQsIGNzc0NsYXNzOiBldmVudC5zb3VyY2UuY2xhc3NMaXN0Py5nZXQoJ25hdmlnYXRpb24nKX0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBsYXlvdXRcbiAgICAgICAgICAuYWRkVmlldyhuZXdWaWV3SWQsIHtcbiAgICAgICAgICAgIHBhcnRJZDogRGVmaW5lZC5vckVsc2VUaHJvdyhldmVudC50YXJnZXQuZWxlbWVudElkLCAoKSA9PiBFcnJvcihgW1ZpZXdNb3ZlRXJyb3JdIFRhcmdldCBwYXJ0IHJlcXVpcmVkIGZvciByZWdpb24gJ2NlbnRlcicuYCkpLFxuICAgICAgICAgICAgcG9zaXRpb246IGV2ZW50LnRhcmdldC5wb3NpdGlvbiA/PyAnYWZ0ZXItYWN0aXZlLXZpZXcnLFxuICAgICAgICAgICAgY3NzQ2xhc3M6IGV2ZW50LnNvdXJjZS5jbGFzc0xpc3Q/LmdldCgnbGF5b3V0JyksXG4gICAgICAgICAgICBhY3RpdmF0ZVZpZXc6IHRydWUsXG4gICAgICAgICAgICBhY3RpdmF0ZVBhcnQ6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAubmF2aWdhdGVWaWV3KG5ld1ZpZXdJZCwgY29tbWFuZHMsIHtoaW50OiBldmVudC5zb3VyY2UubmF2aWdhdGlvbkhpbnQsIGNzc0NsYXNzOiBldmVudC5zb3VyY2UuY2xhc3NMaXN0Py5nZXQoJ25hdmlnYXRpb24nKX0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtb3ZlVmlld1RvTmV3V2luZG93KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gT3BlbiB0aGUgdmlldyBcInN0YW5kYWxvbmVcIiBpbiBhIGJsYW5rIHdpbmRvdyBpbiBhbiBhbm9ueW1vdXMgcGVyc3BlY3RpdmUuXG4gICAgY29uc3QgdXJsVHJlZSA9IGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5jcmVhdGVVcmxUcmVlKCgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0xheW91dCA9IHRoaXMuX3dvcmtiZW5jaExheW91dEZhY3RvcnkuY3JlYXRlKCk7XG4gICAgICBjb25zdCBuZXdWaWV3SWQgPSBldmVudC5zb3VyY2UuYWx0ZXJuYXRpdmVWaWV3SWQgPz8gbmV3TGF5b3V0LmNvbXB1dGVOZXh0Vmlld0lkKCk7XG4gICAgICBjb25zdCBjb21tYW5kcyA9IFJvdXRlclV0aWxzLnNlZ21lbnRzVG9Db21tYW5kcyhldmVudC5zb3VyY2Uudmlld1VybFNlZ21lbnRzKTtcbiAgICAgIHJldHVybiBuZXdMYXlvdXRcbiAgICAgICAgLmFkZFZpZXcobmV3Vmlld0lkLCB7XG4gICAgICAgICAgcGFydElkOiBuZXdMYXlvdXQuYWN0aXZlUGFydCh7Z3JpZDogJ21haW5BcmVhJ30pIS5pZCxcbiAgICAgICAgICBhY3RpdmF0ZVZpZXc6IHRydWUsXG4gICAgICAgICAgY3NzQ2xhc3M6IGV2ZW50LnNvdXJjZS5jbGFzc0xpc3Q/LmdldCgnbGF5b3V0JyksXG4gICAgICAgIH0pXG4gICAgICAgIC5uYXZpZ2F0ZVZpZXcobmV3Vmlld0lkLCBjb21tYW5kcywge2hpbnQ6IGV2ZW50LnNvdXJjZS5uYXZpZ2F0aW9uSGludCwgY3NzQ2xhc3M6IGV2ZW50LnNvdXJjZS5jbGFzc0xpc3Q/LmdldCgnbmF2aWdhdGlvbicpfSk7XG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZ2VuZXJhdGVQZXJzcGVjdGl2ZVdpbmRvd05hbWUoYCR7QU5PTllNT1VTX1BFUlNQRUNUSVZFX0lEX1BSRUZJWH0ke3JhbmRvbVVVSUQoKX1gKTtcbiAgICBpZiAod2luZG93Lm9wZW4odGhpcy5fbG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5fcm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlISkpLCB0YXJnZXQpKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlbW92ZVZpZXcoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVtb3ZlVmlldyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LnJlbW92ZVZpZXcoZXZlbnQuc291cmNlLnZpZXdJZCwge2ZvcmNlOiB0cnVlfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtb3ZlVmlldyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFkZFRvTmV3UGFydCA9ICEhZXZlbnQudGFyZ2V0LnJlZ2lvbjtcbiAgICBpZiAoYWRkVG9OZXdQYXJ0KSB7XG4gICAgICBjb25zdCBuZXdQYXJ0SWQgPSBldmVudC50YXJnZXQubmV3UGFydD8uaWQgPz8gcmFuZG9tVVVJRCgpO1xuICAgICAgYXdhaXQgdGhpcy5fd29ya2JlbmNoUm91dGVyLm5hdmlnYXRlKGxheW91dCA9PiBsYXlvdXRcbiAgICAgICAgLmFkZFBhcnQobmV3UGFydElkLCB7cmVsYXRpdmVUbzogZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgYWxpZ246IGNvZXJjZUFsaWduUHJvcGVydHkoZXZlbnQudGFyZ2V0LnJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgLm1vdmVWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIG5ld1BhcnRJZCwge2FjdGl2YXRlUGFydDogdHJ1ZSwgYWN0aXZhdGVWaWV3OiB0cnVlfSksXG4gICAgICApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHRhcmdldFBhcnRJZCA9IERlZmluZWQub3JFbHNlVGhyb3coZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgKCkgPT4gRXJyb3IoYFtWaWV3TW92ZUVycm9yXSBUYXJnZXQgcGFydCByZXF1aXJlZCBmb3IgcmVnaW9uICdjZW50ZXInLmApKTtcbiAgICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0Lm1vdmVWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIHRhcmdldFBhcnRJZCwge1xuICAgICAgICBwb3NpdGlvbjogZXZlbnQudGFyZ2V0LnBvc2l0aW9uID8/IChldmVudC5zb3VyY2UucGFydElkID09PSB0YXJnZXRQYXJ0SWQgPyB1bmRlZmluZWQgOiAnYWZ0ZXItYWN0aXZlLXZpZXcnKSxcbiAgICAgICAgYWN0aXZhdGVWaWV3OiB0cnVlLFxuICAgICAgICBhY3RpdmF0ZVBhcnQ6IHRydWUsXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvZXJjZUFsaWduUHJvcGVydHkocmVnaW9uOiAnbm9ydGgnIHwgJ2Vhc3QnIHwgJ3NvdXRoJyB8ICd3ZXN0JyB8ICdjZW50ZXInKTogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbScge1xuICBzd2l0Y2ggKHJlZ2lvbikge1xuICAgIGNhc2UgJ3dlc3QnOlxuICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICBjYXNlICdlYXN0JzpcbiAgICAgIHJldHVybiAncmlnaHQnO1xuICAgIGNhc2UgJ25vcnRoJzpcbiAgICAgIHJldHVybiAndG9wJztcbiAgICBjYXNlICdzb3V0aCc6XG4gICAgICByZXR1cm4gJ2JvdHRvbSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IEVycm9yKGBbVW5zdXBwb3J0ZWRSZWdpb25FcnJvcl0gU3VwcG9ydGVkIHJlZ2lvbnMgYXJlICdub3J0aCcsICdlYXN0JywgJ3NvdXRoJyBvciAnd2VzdCcsIGJ1dCBpcyAnJHtyZWdpb259Jy5gKTtcbiAgfVxufVxuIl19
|
|
@@ -23,11 +23,11 @@ export class ViewPortalPipe {
|
|
|
23
23
|
}
|
|
24
24
|
return this._viewRegistry.get(viewId).portal;
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
27
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewPortalPipe, deps: [{ token: i1.WorkbenchViewRegistry }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
27
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: ViewPortalPipe, isStandalone: true, name: "wbViewPortal" }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewPortalPipe, decorators: [{
|
|
30
30
|
type: Pipe,
|
|
31
31
|
args: [{ name: 'wbViewPortal', standalone: true }]
|
|
32
32
|
}], ctorParameters: () => [{ type: i1.WorkbenchViewRegistry }] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1wb3J0YWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1wb3J0YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7QUFNbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFDeEQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFxQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLENBQUM7OEdBVlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtXYkNvbXBvbmVudFBvcnRhbH0gZnJvbSAnLi4vcG9ydGFsL3diLWNvbXBvbmVudC1wb3J0YWwnO1xuaW1wb3J0IHR5cGUge1ZpZXdDb21wb25lbnR9IGZyb20gJy4uL3ZpZXcvdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtWaWV3SWR9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwb3J0YWwgZm9yIHRoZSBnaXZlbiB2aWV3LCBvciB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHZpZXcgaXMgbm90IHJlZ2lzdGVyZWQuXG4gKi9cbkBQaXBlKHtuYW1lOiAnd2JWaWV3UG9ydGFsJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgVmlld1BvcnRhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF92aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSkge1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybSh2aWV3SWQ6IFZpZXdJZCB8IG51bGwpOiBXYkNvbXBvbmVudFBvcnRhbDxWaWV3Q29tcG9uZW50PiB8IG51bGwge1xuICAgIGlmICghdmlld0lkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdSZWdpc3RyeS5nZXQodmlld0lkKS5wb3J0YWw7XG4gIH1cbn1cbiJdfQ==
|