@scion/workbench 18.0.0-beta.1 → 18.0.0-beta.10
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/_index.scss +7 -5
- package/design/_workbench-global-styles.scss +18 -0
- package/design/_workbench-icon-font.scss +1 -1
- package/design/_workbench-popup-global-styles.scss +1 -1
- package/design/{_workbench-view-drag-image-global-styles.scss → _workbench-view-global-styles.scss} +1 -2
- package/esm2022/lib/common/class-list.mjs +67 -29
- package/esm2022/lib/common/math.util.mjs +16 -0
- package/esm2022/lib/common/objects.util.mjs +7 -1
- package/esm2022/lib/common/operators.mjs +1 -12
- package/esm2022/lib/common/uid.util.mjs +22 -0
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +85 -28
- package/esm2022/lib/content-projection/workbench-element-references.mjs +32 -0
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -8
- 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 +25 -23
- package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +98 -60
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +26 -23
- package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
- package/esm2022/lib/executor/single-task-executor.mjs +9 -19
- package/esm2022/lib/filter-field/filter-field.component.mjs +5 -5
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +8 -18
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +18 -21
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +11 -0
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v6.model.mjs +11 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +4 -4
- package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +67 -0
- package/esm2022/lib/layout/migration/workbench-layout-migration-v6.service.mjs +59 -0
- package/esm2022/lib/layout/stringifier.mjs +70 -0
- package/esm2022/lib/layout/workbench-layout.component.mjs +18 -22
- package/esm2022/lib/layout/workbench-layout.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
- package/esm2022/lib/layout/workbench-layout.service.mjs +26 -24
- package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -9
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +19 -27
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +3 -2
- package/esm2022/lib/layout//311/265workbench-layout.mjs +73 -62
- package/esm2022/lib/logging/logging-support.mjs +7 -13
- package/esm2022/lib/logging//311/265logger.mjs +10 -10
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +7 -6
- 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 +2 -2
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +3 -2
- package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +22 -6
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +28 -21
- 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 +11 -1
- package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +63 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +5 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +6 -10
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +18 -9
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +7 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +15 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +3 -2
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +6 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +39 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +120 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +55 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +19 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +4 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +11 -12
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +12 -28
- 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 +11 -27
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +91 -71
- package/esm2022/lib/microfrontend-platform/public_api.mjs +2 -1
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +5 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +18 -16
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +30 -8
- package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +26 -8
- package/esm2022/lib/notification/notification-list.component.mjs +4 -8
- package/esm2022/lib/notification/notification.component.mjs +4 -5
- package/esm2022/lib/notification/notification.service.mjs +5 -4
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +5 -7
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +11 -19
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +333 -264
- package/esm2022/lib/part/part-portal.pipe.mjs +8 -8
- package/esm2022/lib/part/part.component.mjs +33 -42
- package/esm2022/lib/part/view-context-menu/text.component.mjs +16 -12
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -6
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +2 -2
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +48 -49
- package/esm2022/lib/part/view-list/view-list.component.mjs +41 -48
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +22 -26
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +15 -17
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +99 -110
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -4
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +16 -17
- package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
- package/esm2022/lib/part/workbench-part.model.mjs +10 -1
- package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
- package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +71 -62
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +2 -2
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +62 -47
- package/esm2022/lib/popup/popup.component.mjs +3 -3
- package/esm2022/lib/popup/popup.config.mjs +27 -25
- package/esm2022/lib/popup/popup.service.mjs +169 -174
- package/esm2022/lib/portal/wb-component-portal.mjs +18 -17
- package/esm2022/lib/public_api.mjs +1 -1
- package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
- package/esm2022/lib/routing/public_api.mjs +2 -2
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/routing.util.mjs +215 -0
- package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +110 -0
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-layout-differ.mjs +3 -10
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-navigational-states.mjs +2 -2
- package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-route-guards.mjs +57 -0
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +140 -148
- package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +58 -0
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +119 -74
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-launcher.service.mjs +22 -10
- package/esm2022/lib/testing/workbench.provider.mjs +2 -2
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +15 -19
- package/esm2022/lib/view/public_api.mjs +1 -2
- package/esm2022/lib/view/view-move-handler.service.mjs +71 -56
- package/esm2022/lib/view/view-portal.pipe.mjs +7 -7
- package/esm2022/lib/view/view.component.mjs +54 -42
- package/esm2022/lib/view/workbench-view.model.mjs +1 -1
- package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
- package/esm2022/lib/view//311/265workbench-view.model.mjs +183 -153
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +2 -2
- package/esm2022/lib/view-dnd/view-drag.service.mjs +87 -71
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +6 -6
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +6 -6
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +43 -56
- package/esm2022/lib/workbench-config.mjs +2 -2
- package/esm2022/lib/workbench-id.mjs +3 -3
- package/esm2022/lib/workbench.component.mjs +66 -54
- package/esm2022/lib/workbench.constants.mjs +1 -5
- package/esm2022/lib/workbench.model.mjs +1 -1
- package/esm2022/lib/workbench.provider.mjs +3 -9
- package/esm2022/lib/workbench.service.mjs +1 -1
- package/esm2022/lib//311/265workbench.service.mjs +38 -42
- package/fesm2022/scion-workbench.mjs +4054 -3276
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/class-list.d.ts +35 -22
- package/lib/common/math.util.d.ts +7 -0
- package/lib/common/objects.util.d.ts +4 -0
- package/lib/common/operators.d.ts +1 -6
- package/lib/common/uid.util.d.ts +9 -0
- package/lib/content-projection/content-as-overlay.component.d.ts +39 -22
- package/lib/content-projection/workbench-element-references.d.ts +13 -0
- package/lib/dialog/workbench-dialog.component.d.ts +3 -2
- package/lib/dialog/workbench-dialog.d.ts +57 -13
- package/lib/dialog//311/265workbench-dialog.d.ts +38 -24
- package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
- package/lib/executor/latest-task-executor.d.ts +26 -0
- package/lib/executor/single-task-executor.d.ts +5 -8
- package/lib/filter-field/filter-field.component.d.ts +1 -1
- package/lib/layout/grid-element/grid-element.component.d.ts +1 -8
- package/lib/layout/main-area-layout/main-area-layout.component.d.ts +0 -4
- package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +36 -0
- package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
- package/lib/layout/migration/workbench-layout-migration-v5.service.d.ts +12 -0
- package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
- package/lib/layout/stringifier.d.ts +26 -0
- package/lib/layout/workbench-layout.component.d.ts +4 -5
- package/lib/layout/workbench-layout.d.ts +9 -6
- package/lib/layout/workbench-layout.model.d.ts +4 -3
- package/lib/layout/workbench-layout.service.d.ts +14 -16
- package/lib/layout/workbench-layouts.util.d.ts +0 -6
- package/lib/layout/workench-layout-serializer.service.d.ts +13 -16
- package/lib/layout//311/265workbench-layout.d.ts +18 -19
- package/lib/layout//311/265workbench-layout.factory.d.ts +3 -2
- package/lib/logging//311/265logger.d.ts +2 -3
- package/lib/microfrontend-platform/common/microfrontend.util.d.ts +5 -1
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -3
- package/lib/microfrontend-platform/manifest-object-cache.service.d.ts +33 -0
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +3 -6
- package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +2 -1
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +1 -1
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
- package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.d.ts +24 -0
- package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.d.ts +20 -0
- package/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.d.ts +9 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +0 -4
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -12
- package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +23 -33
- package/lib/microfrontend-platform/public_api.d.ts +1 -0
- package/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.d.ts +1 -1
- package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
- package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +9 -2
- package/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.d.ts +11 -0
- package/lib/notification/notification-list.component.d.ts +0 -2
- package/lib/page-not-found/page-not-found.component.d.ts +1 -0
- package/lib/part/part-action-bar/part-action-bar.component.d.ts +3 -4
- package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
- package/lib/part/part-bar/part-bar.component.d.ts +73 -63
- package/lib/part/part-portal.pipe.d.ts +3 -5
- package/lib/part/part.component.d.ts +9 -12
- package/lib/part/view-context-menu/text.component.d.ts +3 -4
- package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
- package/lib/part/view-context-menu/view-menu.service.d.ts +13 -17
- package/lib/part/view-list/view-list.component.d.ts +8 -21
- package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
- package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
- package/lib/part/view-tab/view-tab.component.d.ts +19 -29
- package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
- package/lib/part/workbench-part-action.registry.d.ts +3 -23
- package/lib/part/workbench-part.model.d.ts +8 -27
- package/lib/part/workbench-part.registry.d.ts +3 -26
- package/lib/part//311/265workbench-part.model.d.ts +23 -17
- package/lib/perspective/workbench-perspective.model.d.ts +18 -25
- package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
- package/lib/perspective/workbench-perspective.service.d.ts +16 -14
- package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
- package/lib/perspective//311/265workbench-perspective.model.d.ts +30 -21
- package/lib/popup/popup.config.d.ts +11 -10
- package/lib/popup/popup.service.d.ts +15 -28
- package/lib/portal/wb-component-portal.d.ts +21 -5
- package/lib/public_api.d.ts +1 -1
- package/lib/registry/workbench-object-registry.d.ts +10 -6
- package/lib/routing/public_api.d.ts +2 -2
- package/lib/routing/routing.model.d.ts +25 -13
- package/lib/routing/{router.util.d.ts → routing.util.d.ts} +28 -1
- package/lib/routing/{workbench-auxiliary-routes-registrator.service.d.ts → workbench-auxiliary-route-installer.service.d.ts} +10 -3
- package/lib/routing/workbench-layout-differ.d.ts +1 -2
- package/lib/routing/workbench-navigational-states.d.ts +8 -4
- package/lib/{view/workbench-view-route-guards.d.ts → routing/workbench-route-guards.d.ts} +8 -2
- package/lib/routing/workbench-url-observer.service.d.ts +31 -55
- package/lib/routing/workbench-view-outlet-differ.d.ts +32 -0
- package/lib/routing//311/265workbench-router.service.d.ts +22 -18
- package/lib/startup/workbench-launcher.service.d.ts +4 -5
- package/lib/testing/workbench.provider.d.ts +3 -1
- package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
- package/lib/view/public_api.d.ts +0 -1
- package/lib/view/view-move-handler.service.d.ts +16 -14
- package/lib/view/view-portal.pipe.d.ts +1 -3
- package/lib/view/view.component.d.ts +21 -12
- package/lib/view/workbench-view.model.d.ts +88 -36
- package/lib/view/workbench-view.registry.d.ts +3 -27
- package/lib/view//311/265workbench-view.model.d.ts +62 -71
- package/lib/view-dnd/view-drag.service.d.ts +79 -49
- package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +1 -1
- package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +12 -36
- package/lib/workbench-config.d.ts +19 -7
- package/lib/workbench.component.d.ts +16 -30
- package/lib/workbench.constants.d.ts +0 -5
- package/lib/workbench.model.d.ts +31 -3
- package/lib/workbench.service.d.ts +58 -56
- package/lib//311/265workbench.service.d.ts +18 -31
- package/package.json +5 -5
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
- package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
- package/esm2022/lib/common/uuid.util.mjs +0 -17
- package/esm2022/lib/content-projection/content-projection.directive.mjs +0 -101
- package/esm2022/lib/content-projection/view-container.reference.mjs +0 -68
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +0 -41
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +0 -26
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
- package/esm2022/lib/routing/router.util.mjs +0 -126
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +0 -94
- package/esm2022/lib/view/workbench-view-route-guards.mjs +0 -47
- package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
- package/lib/common/filter-by-text.pipe.d.ts +0 -12
- package/lib/common/uuid.util.d.ts +0 -8
- package/lib/content-projection/content-projection.directive.d.ts +0 -30
- package/lib/content-projection/view-container.reference.d.ts +0 -42
- package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +0 -10
- package/lib/page-not-found/format-url.pipe.d.ts +0 -11
- package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
package/_index.scss
CHANGED
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
* ```scss
|
|
100
100
|
* @use '@scion/workbench' with (
|
|
101
101
|
* $icon-font: (
|
|
102
|
-
* directory: '/path/to/font', // defaults to '/
|
|
102
|
+
* directory: '/path/to/font', // defaults to '/fonts' if omitted
|
|
103
103
|
* filename: 'scion-workbench-icons' // defaults to 'scion-workbench-icons' if omitted
|
|
104
104
|
* version: '1.0.0' // appended to the HTTP request to load the icon font, enabling browser cache invalidation when icons change
|
|
105
105
|
* );
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
* ```scss
|
|
117
117
|
* @use '@scion/workbench' with (
|
|
118
118
|
* $icon-font: (
|
|
119
|
-
* directory: 'path/to/font' // no leading slash, typically `
|
|
119
|
+
* directory: 'path/to/font' // no leading slash, typically `fonts`
|
|
120
120
|
* )
|
|
121
121
|
* );
|
|
122
122
|
* ```
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
* ```scss
|
|
135
135
|
* @use '@scion/workbench' with (
|
|
136
136
|
* $icon-font: (
|
|
137
|
-
* directory: '^path/to/font' // no leading slash but with a caret (^), typically `^
|
|
137
|
+
* directory: '^path/to/font' // no leading slash but with a caret (^), typically `^fonts`
|
|
138
138
|
* )
|
|
139
139
|
* );
|
|
140
140
|
* ```
|
|
@@ -144,9 +144,10 @@
|
|
|
144
144
|
@use '@angular/cdk';
|
|
145
145
|
@use './design/workbench-light-theme-design-tokens';
|
|
146
146
|
@use './design/workbench-dark-theme-design-tokens';
|
|
147
|
+
@use './design/workbench-global-styles' as workbench;
|
|
147
148
|
@use './design/workbench-icon-font' as workbench-icons;
|
|
149
|
+
@use './design/workbench-view-global-styles' as workbench-view;
|
|
148
150
|
@use './design/workbench-popup-global-styles' as workbench-popup;
|
|
149
|
-
@use './design/workbench-view-drag-image-global-styles' as workbench-view-drag-image;
|
|
150
151
|
@use './design/workbench-dialog-global-styles' as workbench-dialog;
|
|
151
152
|
|
|
152
153
|
// Install workbench theme
|
|
@@ -163,8 +164,9 @@ $icon-font: null !default;
|
|
|
163
164
|
@include workbench-icons.install-icon-font($icon-font);
|
|
164
165
|
|
|
165
166
|
// Install global workbench styles
|
|
167
|
+
@include workbench.install-global-styles();
|
|
168
|
+
@include workbench-view.install-global-styles();
|
|
166
169
|
@include workbench-popup.install-global-styles();
|
|
167
|
-
@include workbench-view-drag-image.install-global-styles();
|
|
168
170
|
@include workbench-dialog.install-global-styles();
|
|
169
171
|
|
|
170
172
|
// Install Angular CDK styles
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds styles required by the workbench to the document root (`<html>`) element.
|
|
3
|
+
*/
|
|
4
|
+
@mixin install-global-styles() {
|
|
5
|
+
// Ensure the CSS layer of @scion/workbench to have higher precedence than the CSS layer of @scion/toolkit.
|
|
6
|
+
@layer sci-toolkit, sci-workbench;
|
|
7
|
+
|
|
8
|
+
// Declare styles for the document root element (`<html>`) in a CSS layer.
|
|
9
|
+
// CSS layers have lower priority than "regular" CSS declarations, and the layer name indicates the styles are from @scion/workbench.
|
|
10
|
+
@layer sci-workbench {
|
|
11
|
+
:root {
|
|
12
|
+
// Ensure the document root element is positioned to support `@scion/toolkit/observable/fromBoundingClientRect$` for observing element bounding boxes.
|
|
13
|
+
position: absolute;
|
|
14
|
+
// Align the document root with the page viewport so the top-level positioning context fills the page viewport (as expected by applications).
|
|
15
|
+
inset: 0;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -21,7 +21,7 @@ $-default-icon-font-config: (
|
|
|
21
21
|
// To keep the workbench configuration minimal for Angular projects deployed in the context root, we reference font files by
|
|
22
22
|
// their root relative path. Consequently, applications deployed in a subdirectory require additional configuration depending
|
|
23
23
|
// on whether the application is built with esbuild or webpack.
|
|
24
|
-
directory: '/
|
|
24
|
+
directory: '/fonts',
|
|
25
25
|
filename: 'scion-workbench-icons',
|
|
26
26
|
version: $-version,
|
|
27
27
|
);
|
|
@@ -7,55 +7,93 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import { Subject } from 'rxjs';
|
|
11
|
-
import { map, startWith } from 'rxjs/operators';
|
|
12
10
|
import { Arrays } from '@scion/toolkit/util';
|
|
11
|
+
import { computed, signal } from '@angular/core';
|
|
13
12
|
/**
|
|
14
13
|
* Container for managing CSS classes set in different scopes.
|
|
15
14
|
*/
|
|
16
15
|
export class ClassList {
|
|
17
16
|
constructor() {
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
|
|
17
|
+
this._layout = signal([], { equal: isEqualArray });
|
|
18
|
+
this._navigation = signal([], { equal: isEqualArray });
|
|
19
|
+
this._route = signal([], { equal: isEqualArray });
|
|
20
|
+
this._application = signal([], { equal: isEqualArray });
|
|
21
|
+
this.asList = computed(() => Arrays.distinct(new Array()
|
|
22
|
+
.concat(this._layout())
|
|
23
|
+
.concat(this._navigation())
|
|
24
|
+
.concat(this._route())
|
|
25
|
+
.concat(this._application())));
|
|
26
|
+
this.asMap = computed(() => removeEmptyEntries(new Map()
|
|
27
|
+
.set('layout', this._layout())
|
|
28
|
+
.set('navigation', this._navigation())
|
|
29
|
+
.set('route', this._route())
|
|
30
|
+
.set('application', this._application())));
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
|
-
*
|
|
33
|
+
* Specifies CSS classes defined by the layout.
|
|
26
34
|
*/
|
|
27
|
-
set(cssClasses
|
|
28
|
-
this.
|
|
29
|
-
this.computeValue();
|
|
35
|
+
set layout(cssClasses) {
|
|
36
|
+
this._layout.set(Arrays.coerce(cssClasses));
|
|
30
37
|
}
|
|
31
38
|
/**
|
|
32
|
-
*
|
|
39
|
+
* Returns CSS classes defined in the scope 'layout'.
|
|
33
40
|
*/
|
|
34
|
-
get(
|
|
35
|
-
return this.
|
|
41
|
+
get layout() {
|
|
42
|
+
return this._layout;
|
|
36
43
|
}
|
|
37
44
|
/**
|
|
38
|
-
*
|
|
45
|
+
* Specifies CSS classes associated with the navigation.
|
|
39
46
|
*/
|
|
40
|
-
|
|
41
|
-
this.
|
|
42
|
-
this.computeValue();
|
|
47
|
+
set navigation(cssClasses) {
|
|
48
|
+
this._navigation.set(Arrays.coerce(cssClasses));
|
|
43
49
|
}
|
|
44
50
|
/**
|
|
45
|
-
* Returns
|
|
46
|
-
* useful to transfer the class list to a different browsing context.
|
|
51
|
+
* Returns CSS classes defined in the scope 'navigation'.
|
|
47
52
|
*/
|
|
48
|
-
|
|
49
|
-
return
|
|
53
|
+
get navigation() {
|
|
54
|
+
return this._navigation;
|
|
50
55
|
}
|
|
51
56
|
/**
|
|
52
|
-
*
|
|
57
|
+
* Specifies CSS classes defined by the route.
|
|
53
58
|
*/
|
|
54
|
-
|
|
55
|
-
this.
|
|
56
|
-
const classes = new Set(Array.from(this._cssClasses.values()).flat());
|
|
57
|
-
classes.forEach(clazz => this.value.push(clazz));
|
|
58
|
-
this._change$.next();
|
|
59
|
+
set route(cssClasses) {
|
|
60
|
+
this._route.set(Arrays.coerce(cssClasses));
|
|
59
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Returns CSS classes defined in the scope 'route'.
|
|
64
|
+
*/
|
|
65
|
+
get route() {
|
|
66
|
+
return this._route;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Specifies CSS classes set by the application.
|
|
70
|
+
*/
|
|
71
|
+
set application(cssClasses) {
|
|
72
|
+
this._application.set(Arrays.coerce(cssClasses));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Returns classes defined in the scope 'application'.
|
|
76
|
+
*/
|
|
77
|
+
get application() {
|
|
78
|
+
return this._application;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates a copy with empty map entries removed.
|
|
83
|
+
*/
|
|
84
|
+
function removeEmptyEntries(map) {
|
|
85
|
+
const copy = new Map(map);
|
|
86
|
+
for (const key of copy.keys()) {
|
|
87
|
+
if (!copy.get(key)?.length) {
|
|
88
|
+
copy.delete(key);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return copy;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Compares two arrays of strings for equality, ignoring element order.
|
|
95
|
+
*/
|
|
96
|
+
function isEqualArray(a, b) {
|
|
97
|
+
return Arrays.isEqual(a, b, { exactOrder: false });
|
|
60
98
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbW1vbi9jbGFzcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxRQUFRLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFpQnBCO1FBZmlCLFlBQU8sR0FBRyxNQUFNLENBQVcsRUFBRSxFQUFFLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUM7UUFDdEQsZ0JBQVcsR0FBRyxNQUFNLENBQVcsRUFBRSxFQUFFLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUM7UUFDMUQsV0FBTSxHQUFHLE1BQU0sQ0FBVyxFQUFFLEVBQUUsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztRQUNyRCxpQkFBWSxHQUFHLE1BQU0sQ0FBVyxFQUFFLEVBQUUsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztRQWExRSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxFQUFVO2FBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLEVBQTZCO2FBQ2hGLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzdCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3JDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsTUFBTSxDQUFDLFVBQWdEO1FBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVLENBQUMsVUFBZ0Q7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLLENBQUMsVUFBZ0Q7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFdBQVcsQ0FBQyxVQUFnRDtRQUNyRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFpQkQ7O0dBRUc7QUFDSCxTQUFTLGtCQUFrQixDQUFPLEdBQWdCO0lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxZQUFZLENBQUMsQ0FBVyxFQUFFLENBQVc7SUFDNUMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0FycmF5c30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge2NvbXB1dGVkLCBTaWduYWwsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29udGFpbmVyIGZvciBtYW5hZ2luZyBDU1MgY2xhc3NlcyBzZXQgaW4gZGlmZmVyZW50IHNjb3Blcy5cbiAqL1xuZXhwb3J0IGNsYXNzIENsYXNzTGlzdCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbGF5b3V0ID0gc2lnbmFsPHN0cmluZ1tdPihbXSwge2VxdWFsOiBpc0VxdWFsQXJyYXl9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbiA9IHNpZ25hbDxzdHJpbmdbXT4oW10sIHtlcXVhbDogaXNFcXVhbEFycmF5fSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlID0gc2lnbmFsPHN0cmluZ1tdPihbXSwge2VxdWFsOiBpc0VxdWFsQXJyYXl9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXBwbGljYXRpb24gPSBzaWduYWw8c3RyaW5nW10+KFtdLCB7ZXF1YWw6IGlzRXF1YWxBcnJheX0pO1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3NlcyBhcyBsaXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzTGlzdDogU2lnbmFsPHN0cmluZ1tdPjtcblxuICAvKipcbiAgICogQ1NTIGNsYXNzZXMgYXMge0BsaW5rIE1hcH0gZ3JvdXBlZCBieSBzY29wZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhc01hcDogU2lnbmFsPENsYXNzTGlzdE1hcD47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hc0xpc3QgPSBjb21wdXRlZCgoKSA9PiBBcnJheXMuZGlzdGluY3QobmV3IEFycmF5PHN0cmluZz4oKVxuICAgICAgLmNvbmNhdCh0aGlzLl9sYXlvdXQoKSlcbiAgICAgIC5jb25jYXQodGhpcy5fbmF2aWdhdGlvbigpKVxuICAgICAgLmNvbmNhdCh0aGlzLl9yb3V0ZSgpKVxuICAgICAgLmNvbmNhdCh0aGlzLl9hcHBsaWNhdGlvbigpKSkpO1xuXG4gICAgdGhpcy5hc01hcCA9IGNvbXB1dGVkKCgpID0+IHJlbW92ZUVtcHR5RW50cmllcyhuZXcgTWFwPENsYXNzTGlzdFNjb3Blcywgc3RyaW5nW10+KClcbiAgICAgIC5zZXQoJ2xheW91dCcsIHRoaXMuX2xheW91dCgpKVxuICAgICAgLnNldCgnbmF2aWdhdGlvbicsIHRoaXMuX25hdmlnYXRpb24oKSlcbiAgICAgIC5zZXQoJ3JvdXRlJywgdGhpcy5fcm91dGUoKSlcbiAgICAgIC5zZXQoJ2FwcGxpY2F0aW9uJywgdGhpcy5fYXBwbGljYXRpb24oKSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzZXMgZGVmaW5lZCBieSB0aGUgbGF5b3V0LlxuICAgKi9cbiAgcHVibGljIHNldCBsYXlvdXQoY3NzQ2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbGF5b3V0LnNldChBcnJheXMuY29lcmNlKGNzc0NsYXNzZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIENTUyBjbGFzc2VzIGRlZmluZWQgaW4gdGhlIHNjb3BlICdsYXlvdXQnLlxuICAgKi9cbiAgcHVibGljIGdldCBsYXlvdXQoKTogU2lnbmFsPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xheW91dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHNldCBuYXZpZ2F0aW9uKGNzc0NsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX25hdmlnYXRpb24uc2V0KEFycmF5cy5jb2VyY2UoY3NzQ2xhc3NlcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgQ1NTIGNsYXNzZXMgZGVmaW5lZCBpbiB0aGUgc2NvcGUgJ25hdmlnYXRpb24nLlxuICAgKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uKCk6IFNpZ25hbDxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBDU1MgY2xhc3NlcyBkZWZpbmVkIGJ5IHRoZSByb3V0ZS5cbiAgICovXG4gIHB1YmxpYyBzZXQgcm91dGUoY3NzQ2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcm91dGUuc2V0KEFycmF5cy5jb2VyY2UoY3NzQ2xhc3NlcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgQ1NTIGNsYXNzZXMgZGVmaW5lZCBpbiB0aGUgc2NvcGUgJ3JvdXRlJy5cbiAgICovXG4gIHB1YmxpYyBnZXQgcm91dGUoKTogU2lnbmFsPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBDU1MgY2xhc3NlcyBzZXQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHNldCBhcHBsaWNhdGlvbihjc3NDbGFzc2VzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hcHBsaWNhdGlvbi5zZXQoQXJyYXlzLmNvZXJjZShjc3NDbGFzc2VzKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjbGFzc2VzIGRlZmluZWQgaW4gdGhlIHNjb3BlICdhcHBsaWNhdGlvbicuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFwcGxpY2F0aW9uKCk6IFNpZ25hbDxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLl9hcHBsaWNhdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgc2NvcGVzIHVzZWQgaW4ge0BsaW5rIENsYXNzTGlzdH0uXG4gKlxuICogYGxheW91dGA6IFVzZSBmb3IgQ1NTIGNsYXNzZXMgZGVmaW5lZCBvbiB0aGUgbGF5b3V0LlxuICogYG5hdmlnYXRpb25gOiBVc2UgZm9yIENTUyBjbGFzc2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmF2aWdhdGlvbi5cbiAqIGByb3V0ZWA6IFVzZSBmb3IgQ1NTIGNsYXNzZXMgZGVmaW5lZCBvbiB0aGUgcm91dGUuXG4gKiBgYXBwbGljYXRpb25gOiBVc2UgZm9yIENTUyBjbGFzc2VzIHNldCBieSB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIENsYXNzTGlzdFNjb3BlcyA9ICdsYXlvdXQnIHwgJ25hdmlnYXRpb24nIHwgJ3JvdXRlJyB8ICdhcHBsaWNhdGlvbic7XG5cbi8qKlxuICogQ1NTIGNsYXNzZXMgZ3JvdXBlZCBieSBzY29wZS5cbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NMaXN0TWFwID0gUmVhZG9ubHlNYXA8Q2xhc3NMaXN0U2NvcGVzLCBzdHJpbmdbXT47XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvcHkgd2l0aCBlbXB0eSBtYXAgZW50cmllcyByZW1vdmVkLlxuICovXG5mdW5jdGlvbiByZW1vdmVFbXB0eUVudHJpZXM8SywgVj4obWFwOiBNYXA8SywgVltdPik6IE1hcDxLLCBWW10+IHtcbiAgY29uc3QgY29weSA9IG5ldyBNYXA8SywgVltdPihtYXApO1xuICBmb3IgKGNvbnN0IGtleSBvZiBjb3B5LmtleXMoKSkge1xuICAgIGlmICghY29weS5nZXQoa2V5KT8ubGVuZ3RoKSB7XG4gICAgICBjb3B5LmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29weTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gYXJyYXlzIG9mIHN0cmluZ3MgZm9yIGVxdWFsaXR5LCBpZ25vcmluZyBlbGVtZW50IG9yZGVyLlxuICovXG5mdW5jdGlvbiBpc0VxdWFsQXJyYXkoYTogc3RyaW5nW10sIGI6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gIHJldHVybiBBcnJheXMuaXNFcXVhbChhLCBiLCB7ZXhhY3RPcmRlcjogZmFsc2V9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
/**
|
|
11
|
+
* Returns the value clamped to the inclusive range of min and max.
|
|
12
|
+
*/
|
|
13
|
+
export function clamp(value, minmax) {
|
|
14
|
+
return Math.max(minmax.min, Math.min(value, minmax.max));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29tbW9uL21hdGgudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFhLEVBQUUsTUFBa0M7SUFDckUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB2YWx1ZSBjbGFtcGVkIHRvIHRoZSBpbmNsdXNpdmUgcmFuZ2Ugb2YgbWluIGFuZCBtYXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW5tYXg6IHttaW46IG51bWJlcjsgbWF4OiBudW1iZXJ9KTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubWF4KG1pbm1heC5taW4sIE1hdGgubWluKHZhbHVlLCBtaW5tYXgubWF4KSk7XG59XG4iXX0=
|
|
@@ -30,5 +30,11 @@ export const Objects = {
|
|
|
30
30
|
withoutUndefinedEntries: (object) => {
|
|
31
31
|
return Dictionaries.withoutUndefinedEntries(object);
|
|
32
32
|
},
|
|
33
|
+
/**
|
|
34
|
+
* Stringifies given object to matrix notation: a=b;c=d;e=f
|
|
35
|
+
*/
|
|
36
|
+
toMatrixNotation: (object) => {
|
|
37
|
+
return Object.entries(object ?? {}).map(([key, value]) => `${key}=${value}`).join(';');
|
|
38
|
+
},
|
|
33
39
|
};
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29tbW9uL29iamVjdHMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUVyQjs7T0FFRztJQUNILElBQUksRUFBRSxDQUFJLE1BQVMsRUFBa0IsRUFBRTtRQUNyQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBa0MsQ0FBbUIsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLEVBQUUsQ0FBZ0IsTUFBd0MsRUFBaUIsRUFBRTtRQUNsRixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFrQixDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QixFQUFFLENBQUksTUFBbUMsRUFBSyxFQUFFO1FBQ3JFLE9BQU8sWUFBWSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBTSxDQUFDO0lBQzNELENBQUM7SUFDRDs7T0FFRztJQUNILGdCQUFnQixFQUFFLENBQUMsTUFBa0QsRUFBVSxFQUFFO1FBQy9FLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0RpY3Rpb25hcmllc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5cbi8qKlxuICogUHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyBmb3Igd29ya2luZyB3aXRoIG9iamVjdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBPYmplY3RzID0ge1xuXG4gIC8qKlxuICAgKiBMaWtlIHtAbGluayBPYmplY3Qua2V5c30sIGJ1dCBwcmVzZXJ2aW5nIHRoZSBkYXRhIHR5cGUgb2Yga2V5cy5cbiAgICovXG4gIGtleXM6IDxUPihvYmplY3Q6IFQpOiBBcnJheTxrZXlvZiBUPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCBhcyBSZWNvcmQ8a2V5b2YgVCwgdW5rbm93bj4pIGFzIEFycmF5PGtleW9mIFQ+O1xuICB9LFxuXG4gIC8qKlxuICAgKiBMaWtlIHtAbGluayBPYmplY3QuZW50cmllc30sIGJ1dCBwcmVzZXJ2aW5nIHRoZSBkYXRhIHR5cGUgb2Yga2V5cy5cbiAgICovXG4gIGVudHJpZXM6IDxWLCBLID0gc3RyaW5nPihvYmplY3Q6IFJlY29yZDxzdHJpbmcsIFY+IHwgQXJyYXlMaWtlPFY+KTogQXJyYXk8W0ssIFZdPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iamVjdCkgYXMgQXJyYXk8W0ssIFZdPjtcbiAgfSxcblxuICAvKipcbiAgICogTGlrZSB7QGxpbmsgRGljdGlvbmFyaWVzLndpdGhvdXRVbmRlZmluZWRFbnRyaWVzfSwgYnV0IHByZXNlcnZpbmcgdGhlIG9iamVjdCBkYXRhIHR5cGUuXG4gICAqL1xuICB3aXRob3V0VW5kZWZpbmVkRW50cmllczogPFQ+KG9iamVjdDogVCAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogVCA9PiB7XG4gICAgcmV0dXJuIERpY3Rpb25hcmllcy53aXRob3V0VW5kZWZpbmVkRW50cmllcyhvYmplY3QpIGFzIFQ7XG4gIH0sXG4gIC8qKlxuICAgKiBTdHJpbmdpZmllcyBnaXZlbiBvYmplY3QgdG8gbWF0cml4IG5vdGF0aW9uOiBhPWI7Yz1kO2U9ZlxuICAgKi9cbiAgdG9NYXRyaXhOb3RhdGlvbjogKG9iamVjdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqZWN0ID8/IHt9KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApLmpvaW4oJzsnKTtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -7,10 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import { audit } from 'rxjs';
|
|
11
10
|
import { filter, mergeMap } from 'rxjs/operators';
|
|
12
|
-
import { inject } from '@angular/core';
|
|
13
|
-
import { WorkbenchLayoutService } from '../layout/workbench-layout.service';
|
|
14
11
|
/**
|
|
15
12
|
* Serializes the execution of elements emitted by the source Observable.
|
|
16
13
|
*
|
|
@@ -27,12 +24,4 @@ export function serializeExecution(fn) {
|
|
|
27
24
|
export function filterNull() {
|
|
28
25
|
return filter((item) => item !== null);
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
* Buffers the most recent value from the source Observable until the next layout change.
|
|
32
|
-
* Use this operator to avoid emitting a partially updated layout.
|
|
33
|
-
*/
|
|
34
|
-
export function bufferLatestUntilLayoutChange() {
|
|
35
|
-
const onLayoutChange$ = inject(WorkbenchLayoutService).onLayoutChange$;
|
|
36
|
-
return audit(() => onLayoutChange$);
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29tbW9uL29wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxLQUFLLEVBQXlELE1BQU0sTUFBTSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUUxRTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQVUsRUFBaUQ7SUFDM0YsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxNQUFNLENBQUMsQ0FBQyxJQUFjLEVBQWEsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QjtJQUMzQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFDdkUsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHthdWRpdCwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJpYWxpemVzIHRoZSBleGVjdXRpb24gb2YgZWxlbWVudHMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKlxuICogRm9yIGVhY2ggZWxlbWVudCBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UsIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gaXMgY2FsbGVkLlxuICogVGhlIG5leHQgZWxlbWVudCB3aWxsIG9ubHkgYmUgcHJvY2Vzc2VkIG9uY2UgdGhlIFByb21pc2Ugb3IgT2JzZXJ2YWJsZSByZXR1cm5lZCBieVxuICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHJlc29sdmVzIG9yIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZUV4ZWN1dGlvbjxJTiwgT1VUPihmbjogKHZhbHVlOiBJTikgPT4gT2JzZXJ2YWJsZTxPVVQ+IHwgUHJvbWlzZTxPVVQ+KTogT3BlcmF0b3JGdW5jdGlvbjxJTiwgT1VUPiB7XG4gIHJldHVybiBtZXJnZU1hcChlbGVtZW50ID0+IGZuKGVsZW1lbnQpLCAxKTtcbn1cblxuLyoqXG4gKiBNaXJyb3JzIHRoZSBzb3VyY2UgZXhjZXB0IGZvciBgbnVsbGAgZW1pc3Npb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyTnVsbDxUPigpOiBPcGVyYXRvckZ1bmN0aW9uPFQgfCBudWxsLCBUPiB7XG4gIHJldHVybiBmaWx0ZXIoKGl0ZW06IFQgfCBudWxsKTogaXRlbSBpcyBUID0+IGl0ZW0gIT09IG51bGwpO1xufVxuXG4vKipcbiAqIEJ1ZmZlcnMgdGhlIG1vc3QgcmVjZW50IHZhbHVlIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHVudGlsIHRoZSBuZXh0IGxheW91dCBjaGFuZ2UuXG4gKiBVc2UgdGhpcyBvcGVyYXRvciB0byBhdm9pZCBlbWl0dGluZyBhIHBhcnRpYWxseSB1cGRhdGVkIGxheW91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlckxhdGVzdFVudGlsTGF5b3V0Q2hhbmdlPFQ+KCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIGNvbnN0IG9uTGF5b3V0Q2hhbmdlJCA9IGluamVjdChXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlKS5vbkxheW91dENoYW5nZSQ7XG4gIHJldHVybiBhdWRpdCgoKSA9PiBvbkxheW91dENoYW5nZSQpO1xufVxuIl19
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29tbW9uL29wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUdILE9BQU8sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFVLEVBQWlEO0lBQzNGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sTUFBTSxDQUFDLENBQUMsSUFBYyxFQUFhLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGV4ZWN1dGlvbiBvZiBlbGVtZW50cyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqXG4gKiBGb3IgZWFjaCBlbGVtZW50IGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSwgdGhlIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiBpcyBjYWxsZWQuXG4gKiBUaGUgbmV4dCBlbGVtZW50IHdpbGwgb25seSBiZSBwcm9jZXNzZWQgb25jZSB0aGUgUHJvbWlzZSBvciBPYnNlcnZhYmxlIHJldHVybmVkIGJ5XG4gKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gcmVzb2x2ZXMgb3IgY29tcGxldGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplRXhlY3V0aW9uPElOLCBPVVQ+KGZuOiAodmFsdWU6IElOKSA9PiBPYnNlcnZhYmxlPE9VVD4gfCBQcm9taXNlPE9VVD4pOiBPcGVyYXRvckZ1bmN0aW9uPElOLCBPVVQ+IHtcbiAgcmV0dXJuIG1lcmdlTWFwKGVsZW1lbnQgPT4gZm4oZWxlbWVudCksIDEpO1xufVxuXG4vKipcbiAqIE1pcnJvcnMgdGhlIHNvdXJjZSBleGNlcHQgZm9yIGBudWxsYCBlbWlzc2lvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJOdWxsPFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248VCB8IG51bGwsIFQ+IHtcbiAgcmV0dXJuIGZpbHRlcigoaXRlbTogVCB8IG51bGwpOiBpdGVtIGlzIFQgPT4gaXRlbSAhPT0gbnVsbCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
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 { UUID } from '@scion/toolkit/uuid';
|
|
11
|
+
/**
|
|
12
|
+
* Generates a UID (unique identifier).
|
|
13
|
+
*/
|
|
14
|
+
export const UID = {
|
|
15
|
+
/**
|
|
16
|
+
* Generates a UID (unique identifier) with length 8.
|
|
17
|
+
*/
|
|
18
|
+
randomUID: () => {
|
|
19
|
+
return UUID.randomUUID().substring(0, 8);
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlkLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9jb21tb24vdWlkLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFekM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakI7O09BRUc7SUFDSCxTQUFTLEVBQUUsR0FBVyxFQUFFO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7VVVJRH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXVpZCc7XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgVUlEICh1bmlxdWUgaWRlbnRpZmllcikuXG4gKi9cbmV4cG9ydCBjb25zdCBVSUQgPSB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBVSUQgKHVuaXF1ZSBpZGVudGlmaWVyKSB3aXRoIGxlbmd0aCA4LlxuICAgKi9cbiAgcmFuZG9tVUlEOiAoKTogc3RyaW5nID0+IHtcbiAgICByZXR1cm4gVVVJRC5yYW5kb21VVUlEKCkuc3Vic3RyaW5nKDAsIDgpO1xuICB9LFxufTtcblxuXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2024 Swiss Federal Railways
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made
|
|
5
5
|
* available under the terms of the Eclipse Public License 2.0
|
|
@@ -7,51 +7,108 @@
|
|
|
7
7
|
*
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
|
-
import { Component,
|
|
11
|
-
import {
|
|
10
|
+
import { Component, computed, effect, ElementRef, inject, input, signal, TemplateRef, untracked, viewChild } from '@angular/core';
|
|
11
|
+
import { setStyle } from '../common/dom.util';
|
|
12
|
+
import { boundingClientRect } from '@scion/components/dimension';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
+
* Projects `ng-content` to a top-level DOM element and aligns it with this component's bounding box.
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
* For
|
|
17
|
+
* When this component is moved in the DOM, projected content is not moved in the DOM; only its position and size are changed.
|
|
18
|
+
* For example, an iframe would reload when moved in the DOM.
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* The <ng-content> is added to a CSS grid container with a single column, thus, content fills remaining space vertically and horizontally.
|
|
22
|
-
* To style elements of `ng-content`, do not combine CSS selectors with the `:host` CSS pseudo-class because, in the DOM, they are not children
|
|
23
|
-
* of the host component.
|
|
24
|
-
*
|
|
25
|
-
* #### Example HTML template:
|
|
20
|
+
* Style `ng-content` outside the `:host` CSS pseudo-class as not a direct child of this component.
|
|
26
21
|
*
|
|
22
|
+
* ---
|
|
23
|
+
* Usage:
|
|
27
24
|
* ```html
|
|
28
|
-
* <wb-content-as-overlay
|
|
25
|
+
* <wb-content-as-overlay [config]="...">
|
|
29
26
|
* <iframe [src]="..."></iframe>
|
|
30
27
|
* </wb-content-as-overlay>
|
|
31
28
|
* ```
|
|
32
29
|
*
|
|
33
|
-
*
|
|
34
|
-
* #### Example SCSS styles:
|
|
35
|
-
*
|
|
36
30
|
* ```scss
|
|
37
|
-
* :host {
|
|
38
|
-
* display: grid; // fills remaining space vertically and horizontall
|
|
39
|
-
* }
|
|
40
|
-
*
|
|
41
31
|
* iframe {
|
|
42
32
|
* background-color: gray;
|
|
43
33
|
* }
|
|
44
34
|
* ```
|
|
45
35
|
*/
|
|
46
36
|
export class ContentAsOverlayComponent {
|
|
37
|
+
constructor() {
|
|
38
|
+
/**
|
|
39
|
+
* Configures content projection of `ng-content`.
|
|
40
|
+
*
|
|
41
|
+
* A config input is used instead of separate input properties to support updating the config if detached from the Angular change detector.
|
|
42
|
+
*/
|
|
43
|
+
this.config = input.required();
|
|
44
|
+
this._template = viewChild.required(TemplateRef);
|
|
45
|
+
this._visible = computed(() => this.config().visible());
|
|
46
|
+
this._location = computed(() => this.config().location());
|
|
47
|
+
this._overlay = signal(undefined);
|
|
48
|
+
this.createOverlay();
|
|
49
|
+
this.alignOverlayToHostBounds();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Creates the overlay for rendering projected content.
|
|
53
|
+
*/
|
|
54
|
+
createOverlay() {
|
|
55
|
+
effect(onCleanup => {
|
|
56
|
+
const location = this._location();
|
|
57
|
+
if (!location) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const template = this._template();
|
|
61
|
+
untracked(() => {
|
|
62
|
+
// Create an embedded view from the content template.
|
|
63
|
+
const overlayViewRef = location.createEmbeddedView(template, null);
|
|
64
|
+
overlayViewRef.detectChanges();
|
|
65
|
+
if (overlayViewRef.rootNodes.length !== 1) {
|
|
66
|
+
throw Error(`[ContentAsOverlayError] Expected single root node for content projection, but received ${overlayViewRef.rootNodes.length} root nodes.`);
|
|
67
|
+
}
|
|
68
|
+
const [overlayElement] = overlayViewRef.rootNodes;
|
|
69
|
+
// Position projected content out of the document flow relative to the page viewport.
|
|
70
|
+
setStyle(overlayElement, { position: 'fixed' });
|
|
71
|
+
this._overlay.set(overlayElement);
|
|
72
|
+
// Destroy overlay when the location or template changes.
|
|
73
|
+
onCleanup(() => untracked(() => {
|
|
74
|
+
overlayViewRef.destroy();
|
|
75
|
+
this._overlay.set(undefined);
|
|
76
|
+
}));
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Aligns the overlay to the bounding box of this component.
|
|
82
|
+
*/
|
|
83
|
+
alignOverlayToHostBounds() {
|
|
84
|
+
const hostBounds = boundingClientRect(inject((ElementRef)));
|
|
85
|
+
effect(() => {
|
|
86
|
+
const overlay = this._overlay();
|
|
87
|
+
if (!overlay) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
// Maintain position and size when hidden to prevent flickering when visible again and to support for virtual scrolling in projected content.
|
|
91
|
+
const visible = this._visible();
|
|
92
|
+
if (!visible) {
|
|
93
|
+
setStyle(overlay, { visibility: 'hidden' }); // Hide via `visibility` instead of `display` property to retain the size.
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// IMPORTANT: Track host bounds only if visible to prevent flickering.
|
|
97
|
+
const { top, left, width, height } = hostBounds();
|
|
98
|
+
setStyle(overlay, {
|
|
99
|
+
top: `${top}px`,
|
|
100
|
+
left: `${left}px`,
|
|
101
|
+
width: `${width}px`,
|
|
102
|
+
height: `${height}px`,
|
|
103
|
+
visibility: null,
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
47
107
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ContentAsOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.2", type: ContentAsOverlayComponent, isStandalone: true, selector: "wb-content-as-overlay", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template>\n <ng-content/>\n</ng-template>\n" }); }
|
|
49
109
|
}
|
|
50
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ContentAsOverlayComponent, decorators: [{
|
|
51
111
|
type: Component,
|
|
52
|
-
args: [{ selector: 'wb-content-as-overlay', standalone: true,
|
|
53
|
-
}],
|
|
54
|
-
|
|
55
|
-
args: [{ required: true }]
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hcy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbnRlbnQtcHJvamVjdGlvbi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29udGVudC1wcm9qZWN0aW9uL2NvbnRlbnQtYXMtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBUUgsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCO2tHQUF6Qix5QkFBeUIseUhDckR0Qyx1V0FVQSwrRUR5Q1ksMEJBQTBCOzsyRkFFekIseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQywwQkFBMEIsQ0FBQzs4QkFROUIsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRlbnRQcm9qZWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL2NvbnRlbnQtcHJvamVjdGlvbi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFN0cnVjdHVyYWwgY29tcG9uZW50IHdoaWNoIGFkZHMgaXRzIGBuZy1jb250ZW50YCB0byBhIHRvcC1sZXZlbCB3b3JrYmVuY2ggRE9NIGVsZW1lbnQgYW5kIHByb2plY3RzIGl0IGludG8gdGhpcyBjb21wb25lbnQncyBib3VuZGluZyBib3guXG4gKlxuICogVGhpcyBjb21wb25lbnQgZW5zdXJlcyB0aGF0IGl0cyBjb250ZW50IGNoaWxkcmVuIGFyZSBub3QgcmVwYXJlbnRlZCBpbiB0aGUgRE9NIHdoZW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQgaXMgY2hhbmdlZC5cbiAqIEZvciBpbnN0YW5jZSwgYW4gaWZyYW1lIHdvdWxkIHJlbG9hZCB3aGVuIGl0IGlzIHJlcGFyZW50ZWQgaW4gdGhlIERPTS5cbiAqXG4gKiBVc2UgdGhpcyBjb21wb25lbnQgdG8gd3JhcCB0aGUgZW50aXJlIGNvbnRlbnQgb2YgeW91ciBjb21wb25lbnQsIHNvIGA8d2ItY29udGVudC1hcy1vdmVybGF5PmAgaXMgdGhlIG9ubHkgcm9vdCB2aWV3IGNoaWxkIG9mIHlvdXIgY29tcG9uZW50LlxuICpcbiAqIFRoZSA8bmctY29udGVudD4gaXMgYWRkZWQgdG8gYSBDU1MgZ3JpZCBjb250YWluZXIgd2l0aCBhIHNpbmdsZSBjb2x1bW4sIHRodXMsIGNvbnRlbnQgZmlsbHMgcmVtYWluaW5nIHNwYWNlIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseS5cbiAqIFRvIHN0eWxlIGVsZW1lbnRzIG9mIGBuZy1jb250ZW50YCwgZG8gbm90IGNvbWJpbmUgQ1NTIHNlbGVjdG9ycyB3aXRoIHRoZSBgOmhvc3RgIENTUyBwc2V1ZG8tY2xhc3MgYmVjYXVzZSwgaW4gdGhlIERPTSwgdGhleSBhcmUgbm90IGNoaWxkcmVuXG4gKiBvZiB0aGUgaG9zdCBjb21wb25lbnQuXG4gKlxuICogIyMjIyBFeGFtcGxlIEhUTUwgdGVtcGxhdGU6XG4gKlxuICogYGBgaHRtbFxuICogPHdiLWNvbnRlbnQtYXMtb3ZlcmxheSBvdmVybGF5SG9zdD1cIi4uLlwiPlxuICogICA8aWZyYW1lIFtzcmNdPVwiLi4uXCI+PC9pZnJhbWU+XG4gKiA8L3diLWNvbnRlbnQtYXMtb3ZlcmxheT5cbiAqIGBgYFxuICpcbiAqXG4gKiAjIyMjIEV4YW1wbGUgU0NTUyBzdHlsZXM6XG4gKlxuICogYGBgc2Nzc1xuICogOmhvc3Qge1xuICogICBkaXNwbGF5OiBncmlkOyAvLyBmaWxscyByZW1haW5pbmcgc3BhY2UgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGxcbiAqIH1cbiAqXG4gKiBpZnJhbWUge1xuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLWNvbnRlbnQtYXMtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbnRlbnRQcm9qZWN0aW9uRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudEFzT3ZlcmxheUNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdmlldyBjb250YWluZXIgd2hlcmUgdG8gaW5zZXJ0IHRoZSBvdmVybGF5LlxuICAgKi9cbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBvdmVybGF5SG9zdDogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCB8IG51bGw7XG59XG4iLCI8IS0tIGRlZmluZSB0aGUgYXJlYSB3aGVyZSB0byBwcm9qZWN0IGBuZy1jb250ZW50YCBpbnRvIC0tPlxuPGRpdiB3YkNvbnRlbnRQcm9qZWN0aW9uXG4gICAgIFt3YkNvbnRlbnRQcm9qZWN0aW9uQ29udGVudF09XCJuZ19jb250ZW50X3RlbXBsYXRlXCJcbiAgICAgW3diQ29udGVudFByb2plY3Rpb25PdmVybGF5SG9zdF09XCJvdmVybGF5SG9zdFwiPlxuPC9kaXY+XG5cbjwhLS0gbWFrZSBgbmctY29udGVudGAgYXZhaWxhYmxlIGluIHRoZSBmb3JtIG9mIGEgdGVtcGxhdGUgLS0+XG48bmctdGVtcGxhdGUgI25nX2NvbnRlbnRfdGVtcGxhdGU+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
112
|
+
args: [{ selector: 'wb-content-as-overlay', standalone: true, template: "<ng-template>\n <ng-content/>\n</ng-template>\n" }]
|
|
113
|
+
}], ctorParameters: () => [] });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hcy1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbnRlbnQtcHJvamVjdGlvbi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29udGVudC1wcm9qZWN0aW9uL2NvbnRlbnQtYXMtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFjcEM7UUFaQTs7OztXQUlHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7UUFFeEMsY0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELGFBQVEsR0FBRyxNQUFNLENBQTBCLFNBQVMsQ0FBQyxDQUFDO1FBR3JFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRWxDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IscURBQXFEO2dCQUNyRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNuRSxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQy9CLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE1BQU0sS0FBSyxDQUFDLDBGQUEwRixjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7Z0JBQ3ZKLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBRWxELHFGQUFxRjtnQkFDckYsUUFBUSxDQUFDLGNBQWMsRUFBRSxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO2dCQUU5QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFFbEMseURBQXlEO2dCQUN6RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDN0IsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx3QkFBd0I7UUFDOUIsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsQ0FBQztRQUV2RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixPQUFPO1lBQ1QsQ0FBQztZQUVELDZJQUE2STtZQUM3SSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLDBFQUEwRTtnQkFDckgsT0FBTztZQUNULENBQUM7WUFFRCxzRUFBc0U7WUFDdEUsTUFBTSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ2hELFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSTtnQkFDZixJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUk7Z0JBQ2pCLEtBQUssRUFBRSxHQUFHLEtBQUssSUFBSTtnQkFDbkIsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJO2dCQUNyQixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBbkZVLHlCQUF5QjtrR0FBekIseUJBQXlCLGtRQVNZLFdBQVcsZ0VDbEQ3RCxrREFHQTs7MkZEc0NhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUIsY0FFckIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgU2lnbmFsLCBUZW1wbGF0ZVJlZiwgdW50cmFja2VkLCB2aWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZXRTdHlsZX0gZnJvbSAnLi4vY29tbW9uL2RvbS51dGlsJztcbmltcG9ydCB7Ym91bmRpbmdDbGllbnRSZWN0fSBmcm9tICdAc2Npb24vY29tcG9uZW50cy9kaW1lbnNpb24nO1xuXG4vKipcbiAqIFByb2plY3RzIGBuZy1jb250ZW50YCB0byBhIHRvcC1sZXZlbCBET00gZWxlbWVudCBhbmQgYWxpZ25zIGl0IHdpdGggdGhpcyBjb21wb25lbnQncyBib3VuZGluZyBib3guXG4gKlxuICogV2hlbiB0aGlzIGNvbXBvbmVudCBpcyBtb3ZlZCBpbiB0aGUgRE9NLCBwcm9qZWN0ZWQgY29udGVudCBpcyBub3QgbW92ZWQgaW4gdGhlIERPTTsgb25seSBpdHMgcG9zaXRpb24gYW5kIHNpemUgYXJlIGNoYW5nZWQuXG4gKiBGb3IgZXhhbXBsZSwgYW4gaWZyYW1lIHdvdWxkIHJlbG9hZCB3aGVuIG1vdmVkIGluIHRoZSBET00uXG4gKlxuICogU3R5bGUgYG5nLWNvbnRlbnRgIG91dHNpZGUgdGhlIGA6aG9zdGAgQ1NTIHBzZXVkby1jbGFzcyBhcyBub3QgYSBkaXJlY3QgY2hpbGQgb2YgdGhpcyBjb21wb25lbnQuXG4gKlxuICogLS0tXG4gKiBVc2FnZTpcbiAqIGBgYGh0bWxcbiAqIDx3Yi1jb250ZW50LWFzLW92ZXJsYXkgW2NvbmZpZ109XCIuLi5cIj5cbiAqICAgPGlmcmFtZSBbc3JjXT1cIi4uLlwiPjwvaWZyYW1lPlxuICogPC93Yi1jb250ZW50LWFzLW92ZXJsYXk+XG4gKiBgYGBcbiAqXG4gKiBgYGBzY3NzXG4gKiBpZnJhbWUge1xuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLWNvbnRlbnQtYXMtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWFzLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50QXNPdmVybGF5Q29tcG9uZW50IHtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyBjb250ZW50IHByb2plY3Rpb24gb2YgYG5nLWNvbnRlbnRgLlxuICAgKlxuICAgKiBBIGNvbmZpZyBpbnB1dCBpcyB1c2VkIGluc3RlYWQgb2Ygc2VwYXJhdGUgaW5wdXQgcHJvcGVydGllcyB0byBzdXBwb3J0IHVwZGF0aW5nIHRoZSBjb25maWcgaWYgZGV0YWNoZWQgZnJvbSB0aGUgQW5ndWxhciBjaGFuZ2UgZGV0ZWN0b3IuXG4gICAqL1xuICBwdWJsaWMgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8Q29udGVudEFzT3ZlcmxheUNvbmZpZz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZSA9IHZpZXdDaGlsZC5yZXF1aXJlZChUZW1wbGF0ZVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Zpc2libGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLnZpc2libGUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvY2F0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5sb2NhdGlvbigpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheSA9IHNpZ25hbDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLmFsaWduT3ZlcmxheVRvSG9zdEJvdW5kcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIG92ZXJsYXkgZm9yIHJlbmRlcmluZyBwcm9qZWN0ZWQgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICBlZmZlY3Qob25DbGVhbnVwID0+IHtcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5fbG9jYXRpb24oKTtcbiAgICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMuX3RlbXBsYXRlKCk7XG5cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIC8vIENyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20gdGhlIGNvbnRlbnQgdGVtcGxhdGUuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlWaWV3UmVmID0gbG9jYXRpb24uY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCBudWxsKTtcbiAgICAgICAgb3ZlcmxheVZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAob3ZlcmxheVZpZXdSZWYucm9vdE5vZGVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IEVycm9yKGBbQ29udGVudEFzT3ZlcmxheUVycm9yXSBFeHBlY3RlZCBzaW5nbGUgcm9vdCBub2RlIGZvciBjb250ZW50IHByb2plY3Rpb24sIGJ1dCByZWNlaXZlZCAke292ZXJsYXlWaWV3UmVmLnJvb3ROb2Rlcy5sZW5ndGh9IHJvb3Qgbm9kZXMuYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW292ZXJsYXlFbGVtZW50XSA9IG92ZXJsYXlWaWV3UmVmLnJvb3ROb2RlcztcblxuICAgICAgICAvLyBQb3NpdGlvbiBwcm9qZWN0ZWQgY29udGVudCBvdXQgb2YgdGhlIGRvY3VtZW50IGZsb3cgcmVsYXRpdmUgdG8gdGhlIHBhZ2Ugdmlld3BvcnQuXG4gICAgICAgIHNldFN0eWxlKG92ZXJsYXlFbGVtZW50LCB7cG9zaXRpb246ICdmaXhlZCd9KTtcblxuICAgICAgICB0aGlzLl9vdmVybGF5LnNldChvdmVybGF5RWxlbWVudCk7XG5cbiAgICAgICAgLy8gRGVzdHJveSBvdmVybGF5IHdoZW4gdGhlIGxvY2F0aW9uIG9yIHRlbXBsYXRlIGNoYW5nZXMuXG4gICAgICAgIG9uQ2xlYW51cCgoKSA9PiB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIG92ZXJsYXlWaWV3UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLl9vdmVybGF5LnNldCh1bmRlZmluZWQpO1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlnbnMgdGhlIG92ZXJsYXkgdG8gdGhlIGJvdW5kaW5nIGJveCBvZiB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgYWxpZ25PdmVybGF5VG9Ib3N0Qm91bmRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3RCb3VuZHMgPSBib3VuZGluZ0NsaWVudFJlY3QoaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuX292ZXJsYXkoKTtcbiAgICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIE1haW50YWluIHBvc2l0aW9uIGFuZCBzaXplIHdoZW4gaGlkZGVuIHRvIHByZXZlbnQgZmxpY2tlcmluZyB3aGVuIHZpc2libGUgYWdhaW4gYW5kIHRvIHN1cHBvcnQgZm9yIHZpcnR1YWwgc2Nyb2xsaW5nIGluIHByb2plY3RlZCBjb250ZW50LlxuICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuX3Zpc2libGUoKTtcbiAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICBzZXRTdHlsZShvdmVybGF5LCB7dmlzaWJpbGl0eTogJ2hpZGRlbid9KTsgLy8gSGlkZSB2aWEgYHZpc2liaWxpdHlgIGluc3RlYWQgb2YgYGRpc3BsYXlgIHByb3BlcnR5IHRvIHJldGFpbiB0aGUgc2l6ZS5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBJTVBPUlRBTlQ6IFRyYWNrIGhvc3QgYm91bmRzIG9ubHkgaWYgdmlzaWJsZSB0byBwcmV2ZW50IGZsaWNrZXJpbmcuXG4gICAgICBjb25zdCB7dG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0fSA9IGhvc3RCb3VuZHMoKTtcbiAgICAgIHNldFN0eWxlKG92ZXJsYXksIHtcbiAgICAgICAgdG9wOiBgJHt0b3B9cHhgLFxuICAgICAgICBsZWZ0OiBgJHtsZWZ0fXB4YCxcbiAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxuICAgICAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmVzIGNvbnRlbnQgcHJvamVjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250ZW50QXNPdmVybGF5Q29uZmlnIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbG9jYXRpb24gd2hlcmUgdG8gYXR0YWNoIHByb2plY3RlZCBjb250ZW50IGluIHRoZSBET00uXG4gICAqL1xuICBsb2NhdGlvbjogU2lnbmFsPFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHByb2plY3RlZCBjb250ZW50LlxuICAgKi9cbiAgdmlzaWJsZTogU2lnbmFsPGJvb2xlYW4+O1xufVxuIiwiPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
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 { InjectionToken, signal } from '@angular/core';
|
|
11
|
+
/**
|
|
12
|
+
* DI token to inject the DOM location where to attach iframes.
|
|
13
|
+
*/
|
|
14
|
+
export const IFRAME_OVERLAY_HOST = new InjectionToken('IFRAME_OVERLAY_HOST', {
|
|
15
|
+
providedIn: 'root',
|
|
16
|
+
factory: () => signal(undefined),
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* DI token to inject the DOM location where to attach the visual placeholder when dragging a view over a drop zone.
|
|
20
|
+
*/
|
|
21
|
+
export const VIEW_DROP_ZONE_OVERLAY_HOST = new InjectionToken('VIEW_DROP_ZONE_OVERLAY_HOST', {
|
|
22
|
+
providedIn: 'root',
|
|
23
|
+
factory: () => signal(undefined),
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* DI token to inject the DOM location of the {@link WorkbenchComponent} HTML element.
|
|
27
|
+
*/
|
|
28
|
+
export const WORKBENCH_ELEMENT_REF = new InjectionToken('WORKBENCH_ELEMENT_REF', {
|
|
29
|
+
providedIn: 'root',
|
|
30
|
+
factory: () => signal(undefined),
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWVsZW1lbnQtcmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2NvbnRlbnQtcHJvamVjdGlvbi93b3JrYmVuY2gtZWxlbWVudC1yZWZlcmVuY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBRXZGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQStDLHFCQUFxQixFQUFFO0lBQ3pILFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQStDLDZCQUE2QixFQUFFO0lBQ3pJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQStDLHVCQUF1QixFQUFFO0lBQzdILFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgc2lnbmFsLCBWaWV3Q29udGFpbmVyUmVmLCBXcml0YWJsZVNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogREkgdG9rZW4gdG8gaW5qZWN0IHRoZSBET00gbG9jYXRpb24gd2hlcmUgdG8gYXR0YWNoIGlmcmFtZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBJRlJBTUVfT1ZFUkxBWV9IT1NUID0gbmV3IEluamVjdGlvblRva2VuPFdyaXRhYmxlU2lnbmFsPFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ+PignSUZSQU1FX09WRVJMQVlfSE9TVCcsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBzaWduYWwodW5kZWZpbmVkKSxcbn0pO1xuXG4vKipcbiAqIERJIHRva2VuIHRvIGluamVjdCB0aGUgRE9NIGxvY2F0aW9uIHdoZXJlIHRvIGF0dGFjaCB0aGUgdmlzdWFsIHBsYWNlaG9sZGVyIHdoZW4gZHJhZ2dpbmcgYSB2aWV3IG92ZXIgYSBkcm9wIHpvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWSUVXX0RST1BfWk9ORV9PVkVSTEFZX0hPU1QgPSBuZXcgSW5qZWN0aW9uVG9rZW48V3JpdGFibGVTaWduYWw8Vmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZD4+KCdWSUVXX0RST1BfWk9ORV9PVkVSTEFZX0hPU1QnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gc2lnbmFsKHVuZGVmaW5lZCksXG59KTtcblxuLyoqXG4gKiBESSB0b2tlbiB0byBpbmplY3QgdGhlIERPTSBsb2NhdGlvbiBvZiB0aGUge0BsaW5rIFdvcmtiZW5jaENvbXBvbmVudH0gSFRNTCBlbGVtZW50LlxuICovXG5leHBvcnQgY29uc3QgV09SS0JFTkNIX0VMRU1FTlRfUkVGID0gbmV3IEluamVjdGlvblRva2VuPFdyaXRhYmxlU2lnbmFsPFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ+PignV09SS0JFTkNIX0VMRU1FTlRfUkVGJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHNpZ25hbCh1bmRlZmluZWQpLFxufSk7XG4iXX0=
|
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
* SPDX-License-Identifier: EPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
import { Component } from '@angular/core';
|
|
11
|
-
import { AsyncPipe } from '@angular/common';
|
|
12
|
-
import { CoerceObservablePipe } from '../../common/coerce-observable.pipe';
|
|
13
11
|
import * as i0 from "@angular/core";
|
|
14
12
|
import * as i1 from "../\u0275workbench-dialog";
|
|
15
13
|
/**
|
|
@@ -26,13 +24,10 @@ export class DialogHeaderComponent {
|
|
|
26
24
|
event.stopPropagation(); // Prevent dragging the dialog with the close button.
|
|
27
25
|
}
|
|
28
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DialogHeaderComponent, deps: [{ token: i1.ɵWorkbenchDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: DialogHeaderComponent, isStandalone: true, selector: "wb-dialog-header", ngImport: i0, template: "@if (dialog.title
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: DialogHeaderComponent, isStandalone: true, selector: "wb-dialog-header", ngImport: i0, template: "@if (dialog.title(); as title) {\n <div class=\"title e2e-title\">\n <span>{{title}}</span>\n </div>\n}\n\n@if (dialog.closable()) {\n <button tabindex=\"-1\" class=\"close scion-workbench-icons e2e-close\"\n (mousedown)=\"onCloseMouseDown($event)\"\n (click)=\"onCloseClick()\">\n close\n </button>\n}\n", styles: [":host{display:flex;gap:var(--sci-workbench-dialog-padding);place-content:flex-end;padding-inline:var(--sci-workbench-dialog-padding);background-color:var(--sci-workbench-dialog-header-background-color);-webkit-user-select:none;user-select:none;height:var(--sci-workbench-dialog-header-height)}:host>div.title{flex:auto;display:flex;align-items:center;position:relative}:host>div.title>span{position:absolute;left:0;right:0;line-height:1.5;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--sci-workbench-dialog-title-font-family);font-size:var(--sci-workbench-dialog-title-font-size);font-weight:var(--sci-workbench-dialog-title-font-weight);text-align:var(--sci-workbench-dialog-title-align)}:host>button.close{all:unset;flex:none;cursor:pointer;align-self:center}:host>button.close:not(:hover){opacity:.75}\n"] }); }
|
|
30
28
|
}
|
|
31
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DialogHeaderComponent, decorators: [{
|
|
32
30
|
type: Component,
|
|
33
|
-
args: [{ selector: 'wb-dialog-header', standalone: true,
|
|
34
|
-
AsyncPipe,
|
|
35
|
-
CoerceObservablePipe,
|
|
36
|
-
], template: "@if (dialog.title | wbCoerceObservable$ | async; as title) {\n <div class=\"title e2e-title\">\n <span>{{ title }}</span>\n </div>\n}\n\n@if (dialog.closable) {\n <button tabindex=\"-1\" class=\"close scion-workbench-icons e2e-close\"\n (mousedown)=\"onCloseMouseDown($event)\"\n (click)=\"onCloseClick()\">\n close\n </button>\n}\n", styles: [":host{display:flex;gap:var(--sci-workbench-dialog-padding);place-content:flex-end;padding-inline:var(--sci-workbench-dialog-padding);background-color:var(--sci-workbench-dialog-header-background-color);-webkit-user-select:none;user-select:none;height:var(--sci-workbench-dialog-header-height)}:host>div.title{flex:auto;display:flex;align-items:center;position:relative}:host>div.title>span{position:absolute;left:0;right:0;line-height:1.5;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--sci-workbench-dialog-title-font-family);font-size:var(--sci-workbench-dialog-title-font-size);font-weight:var(--sci-workbench-dialog-title-font-weight);text-align:var(--sci-workbench-dialog-title-align)}:host>button.close{all:unset;flex:none;cursor:pointer;align-self:center}:host>button.close:not(:hover){opacity:.75}\n"] }]
|
|
31
|
+
args: [{ selector: 'wb-dialog-header', standalone: true, template: "@if (dialog.title(); as title) {\n <div class=\"title e2e-title\">\n <span>{{title}}</span>\n </div>\n}\n\n@if (dialog.closable()) {\n <button tabindex=\"-1\" class=\"close scion-workbench-icons e2e-close\"\n (mousedown)=\"onCloseMouseDown($event)\"\n (click)=\"onCloseClick()\">\n close\n </button>\n}\n", styles: [":host{display:flex;gap:var(--sci-workbench-dialog-padding);place-content:flex-end;padding-inline:var(--sci-workbench-dialog-padding);background-color:var(--sci-workbench-dialog-header-background-color);-webkit-user-select:none;user-select:none;height:var(--sci-workbench-dialog-header-height)}:host>div.title{flex:auto;display:flex;align-items:center;position:relative}:host>div.title>span{position:absolute;left:0;right:0;line-height:1.5;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--sci-workbench-dialog-title-font-family);font-size:var(--sci-workbench-dialog-title-font-size);font-weight:var(--sci-workbench-dialog-title-font-weight);text-align:var(--sci-workbench-dialog-title-align)}:host>button.close{all:unset;flex:none;cursor:pointer;align-self:center}:host>button.close:not(:hover){opacity:.75}\n"] }]
|
|
37
32
|
}], ctorParameters: () => [{ type: i1.ɵWorkbenchDialog }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9kaWFsb2cvZGlhbG9nLWhlYWRlci9kaWFsb2ctaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2RpYWxvZy9kaWFsb2ctaGVhZGVyL2RpYWxvZy1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHeEM7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQXNCLE1BQXdCO1FBQXhCLFdBQU0sR0FBTixNQUFNLENBQWtCO0lBQzlDLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEtBQVk7UUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMscURBQXFEO0lBQ2hGLENBQUM7OEdBWFUscUJBQXFCO2tHQUFyQixxQkFBcUIsNEVDdEJsQyw4VUFhQTs7MkZEU2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoRGlhbG9nfSBmcm9tICcuLi/JtXdvcmtiZW5jaC1kaWFsb2cnO1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGRpYWxvZyBoZWFkZXIgd2l0aCBhIGNsb3NlIGJ1dHRvbiBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLWRpYWxvZy1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nSGVhZGVyQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGlhbG9nOiDJtVdvcmtiZW5jaERpYWxvZykge1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xvc2VNb3VzZURvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIFByZXZlbnQgZHJhZ2dpbmcgdGhlIGRpYWxvZyB3aXRoIHRoZSBjbG9zZSBidXR0b24uXG4gIH1cbn1cbiIsIkBpZiAoZGlhbG9nLnRpdGxlKCk7IGFzIHRpdGxlKSB7XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZSBlMmUtdGl0bGVcIj5cbiAgICA8c3Bhbj57e3RpdGxlfX08L3NwYW4+XG4gIDwvZGl2PlxufVxuXG5AaWYgKGRpYWxvZy5jbG9zYWJsZSgpKSB7XG4gIDxidXR0b24gdGFiaW5kZXg9XCItMVwiIGNsYXNzPVwiY2xvc2Ugc2Npb24td29ya2JlbmNoLWljb25zIGUyZS1jbG9zZVwiXG4gICAgICAgICAgKG1vdXNlZG93bik9XCJvbkNsb3NlTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlQ2xpY2soKVwiPlxuICAgIGNsb3NlXG4gIDwvYnV0dG9uPlxufVxuIl19
|