@scion/workbench 18.0.0-beta.3 → 18.0.0-beta.5

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.
Files changed (169) hide show
  1. package/esm2022/lib/common/class-list.mjs +67 -29
  2. package/esm2022/lib/common/operators.mjs +1 -12
  3. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
  4. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -8
  5. package/esm2022/lib/dialog/workbench-dialog.component.mjs +22 -20
  6. package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
  7. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +71 -26
  8. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +25 -23
  9. package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
  10. package/esm2022/lib/executor/single-task-executor.mjs +7 -17
  11. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +5 -6
  12. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +1 -1
  13. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +3 -3
  14. package/esm2022/lib/layout/stringifier.mjs +2 -2
  15. package/esm2022/lib/layout/workbench-layout.component.mjs +4 -5
  16. package/esm2022/lib/layout/workbench-layout.mjs +1 -1
  17. package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
  18. package/esm2022/lib/layout/workbench-layout.service.mjs +6 -7
  19. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +3 -2
  20. package/esm2022/lib/layout//311/265workbench-layout.mjs +34 -31
  21. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +3 -3
  22. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
  23. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +5 -6
  24. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +3 -3
  25. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +14 -6
  26. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +3 -3
  27. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +5 -5
  28. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +3 -3
  29. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +11 -12
  30. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +3 -3
  31. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
  32. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +11 -12
  33. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +18 -16
  34. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -14
  35. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +3 -3
  36. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +4 -4
  37. package/esm2022/lib/notification/notification-list.component.mjs +4 -8
  38. package/esm2022/lib/notification/notification.component.mjs +4 -5
  39. package/esm2022/lib/page-not-found/page-not-found.component.mjs +3 -3
  40. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +7 -13
  41. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
  42. package/esm2022/lib/part/part-bar/part-bar.component.mjs +56 -75
  43. package/esm2022/lib/part/part-portal.pipe.mjs +8 -8
  44. package/esm2022/lib/part/part.component.mjs +32 -40
  45. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -6
  46. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +2 -2
  47. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +27 -28
  48. package/esm2022/lib/part/view-list/view-list.component.mjs +41 -48
  49. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +20 -24
  50. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +15 -17
  51. package/esm2022/lib/part/view-tab/view-tab.component.mjs +77 -88
  52. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -4
  53. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +14 -15
  54. package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
  55. package/esm2022/lib/part/workbench-part.model.mjs +10 -1
  56. package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
  57. package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
  58. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  59. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
  60. package/esm2022/lib/perspective/workbench-perspective.service.mjs +27 -28
  61. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +53 -47
  62. package/esm2022/lib/popup/popup.component.mjs +3 -3
  63. package/esm2022/lib/popup/popup.config.mjs +23 -13
  64. package/esm2022/lib/popup/popup.service.mjs +48 -45
  65. package/esm2022/lib/portal/wb-component-portal.mjs +2 -2
  66. package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
  67. package/esm2022/lib/routing/public_api.mjs +2 -1
  68. package/esm2022/lib/routing/routing.model.mjs +1 -1
  69. package/esm2022/lib/routing/routing.util.mjs +210 -0
  70. package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +19 -3
  71. package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
  72. package/esm2022/lib/routing/workbench-message-box-differ.mjs +3 -3
  73. package/esm2022/lib/routing/workbench-navigational-states.mjs +2 -2
  74. package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
  75. package/esm2022/lib/routing/workbench-route-guards.mjs +57 -0
  76. package/esm2022/lib/routing/workbench-url-observer.service.mjs +132 -144
  77. package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +3 -3
  78. package/esm2022/lib/routing//311/265workbench-router.service.mjs +52 -40
  79. package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
  80. package/esm2022/lib/startup/workbench-launcher.service.mjs +7 -10
  81. package/esm2022/lib/testing/workbench.provider.mjs +2 -2
  82. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +15 -19
  83. package/esm2022/lib/view/public_api.mjs +1 -2
  84. package/esm2022/lib/view/view-move-handler.service.mjs +7 -7
  85. package/esm2022/lib/view/view-portal.pipe.mjs +7 -7
  86. package/esm2022/lib/view/view.component.mjs +22 -34
  87. package/esm2022/lib/view/workbench-view.model.mjs +1 -1
  88. package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
  89. package/esm2022/lib/view//311/265workbench-view.model.mjs +136 -150
  90. package/esm2022/lib/view-dnd/view-drag.service.mjs +1 -1
  91. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +18 -20
  92. package/esm2022/lib/workbench.component.mjs +3 -3
  93. package/esm2022/lib/workbench.model.mjs +1 -1
  94. package/esm2022/lib/workbench.service.mjs +1 -1
  95. package/esm2022/lib//311/265workbench.service.mjs +31 -42
  96. package/fesm2022/scion-workbench.mjs +2028 -1953
  97. package/fesm2022/scion-workbench.mjs.map +1 -1
  98. package/lib/common/class-list.d.ts +35 -22
  99. package/lib/common/operators.d.ts +1 -6
  100. package/lib/dialog/workbench-dialog.component.d.ts +3 -2
  101. package/lib/dialog/workbench-dialog.d.ts +57 -13
  102. package/lib/dialog//311/265workbench-dialog.d.ts +36 -17
  103. package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
  104. package/lib/executor/latest-task-executor.d.ts +26 -0
  105. package/lib/executor/single-task-executor.d.ts +3 -6
  106. package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +4 -0
  107. package/lib/layout/workbench-layout.d.ts +9 -6
  108. package/lib/layout/workbench-layout.model.d.ts +2 -0
  109. package/lib/layout/workbench-layout.service.d.ts +4 -4
  110. package/lib/layout//311/265workbench-layout.d.ts +12 -13
  111. package/lib/layout//311/265workbench-layout.factory.d.ts +3 -2
  112. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -5
  113. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
  114. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -8
  115. package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
  116. package/lib/notification/notification-list.component.d.ts +0 -2
  117. package/lib/part/part-action-bar/part-action-bar.component.d.ts +4 -1
  118. package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
  119. package/lib/part/part-bar/part-bar.component.d.ts +8 -12
  120. package/lib/part/part-portal.pipe.d.ts +3 -5
  121. package/lib/part/part.component.d.ts +9 -12
  122. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  123. package/lib/part/view-context-menu/view-menu.service.d.ts +8 -12
  124. package/lib/part/view-list/view-list.component.d.ts +8 -21
  125. package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
  126. package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
  127. package/lib/part/view-tab/view-tab.component.d.ts +17 -28
  128. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
  129. package/lib/part/workbench-part-action.registry.d.ts +3 -23
  130. package/lib/part/workbench-part.model.d.ts +8 -27
  131. package/lib/part/workbench-part.registry.d.ts +3 -26
  132. package/lib/part//311/265workbench-part.model.d.ts +24 -17
  133. package/lib/perspective/workbench-perspective.model.d.ts +2 -8
  134. package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
  135. package/lib/perspective/workbench-perspective.service.d.ts +8 -14
  136. package/lib/perspective//311/265workbench-perspective.model.d.ts +26 -21
  137. package/lib/popup/popup.config.d.ts +2 -0
  138. package/lib/popup/popup.service.d.ts +12 -14
  139. package/lib/registry/workbench-object-registry.d.ts +10 -6
  140. package/lib/routing/public_api.d.ts +2 -1
  141. package/lib/routing/routing.model.d.ts +25 -13
  142. package/lib/routing/{router.util.d.ts → routing.util.d.ts} +24 -1
  143. package/lib/routing/workbench-auxiliary-route-installer.service.d.ts +7 -0
  144. package/lib/routing/workbench-navigational-states.d.ts +8 -4
  145. package/lib/{view/workbench-view-route-guards.d.ts → routing/workbench-route-guards.d.ts} +8 -2
  146. package/lib/routing/workbench-url-observer.service.d.ts +31 -57
  147. package/lib/routing//311/265workbench-router.service.d.ts +10 -16
  148. package/lib/startup/workbench-launcher.service.d.ts +4 -5
  149. package/lib/testing/workbench.provider.d.ts +3 -1
  150. package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
  151. package/lib/view/public_api.d.ts +0 -1
  152. package/lib/view/view-portal.pipe.d.ts +1 -3
  153. package/lib/view/view.component.d.ts +2 -4
  154. package/lib/view/workbench-view.model.d.ts +49 -35
  155. package/lib/view/workbench-view.registry.d.ts +3 -27
  156. package/lib/view//311/265workbench-view.model.d.ts +51 -61
  157. package/lib/view-dnd/view-drag.service.d.ts +5 -2
  158. package/lib/workbench.model.d.ts +6 -2
  159. package/lib/workbench.service.d.ts +58 -56
  160. package/lib//311/265workbench.service.d.ts +18 -31
  161. package/package.json +1 -1
  162. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
  163. package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
  164. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
  165. package/esm2022/lib/routing/router.util.mjs +0 -126
  166. package/esm2022/lib/view/workbench-view-route-guards.mjs +0 -47
  167. package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
  168. package/lib/common/filter-by-text.pipe.d.ts +0 -12
  169. package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
@@ -1,7 +1,4 @@
1
1
  import { OnDestroy } from '@angular/core';
2
- import { MessageClient } from '@scion/microfrontend-platform';
3
- import { Logger } from '../../logging';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
5
2
  import * as i0 from "@angular/core";
6
3
  /**
7
4
  * Handles commands of microfrontends loaded into workbench views, such as setting view tab properties or closing the view.
@@ -9,11 +6,11 @@ import * as i0 from "@angular/core";
9
6
  * This class is constructed after connected to the SCION Microfrontend Platform via {@link MICROFRONTEND_PLATFORM_POST_STARTUP} DI token.
10
7
  */
11
8
  export declare class MicrofrontendViewCommandHandler implements OnDestroy {
12
- private _messageClient;
13
- private _viewRegistry;
14
- private _logger;
15
- private _subscriptions;
16
- constructor(_messageClient: MessageClient, _viewRegistry: WorkbenchViewRegistry, _logger: Logger);
9
+ private readonly _messageClient;
10
+ private readonly _viewRegistry;
11
+ private readonly _logger;
12
+ private readonly _subscriptions;
13
+ constructor();
17
14
  /**
18
15
  * Handles commands to update the title of a view.
19
16
  */
@@ -1,7 +1,4 @@
1
1
  import { Handler, IntentInterceptor, IntentMessage } from '@scion/microfrontend-platform';
2
- import { WorkbenchRouter } from '../../routing/workbench-router.service';
3
- import { Logger } from '../../logging';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
5
2
  import * as i0 from "@angular/core";
6
3
  /**
7
4
  * Handles microfrontend view intents, instructing the workbench to navigate to the microfrontend of the resolved capability.
@@ -10,10 +7,9 @@ import * as i0 from "@angular/core";
10
7
  * that are not connected to the SCION Workbench.
11
8
  */
12
9
  export declare class MicrofrontendViewIntentHandler implements IntentInterceptor {
13
- private _workbenchRouter;
14
- private _viewRegistry;
15
- private _logger;
16
- constructor(_workbenchRouter: WorkbenchRouter, _viewRegistry: WorkbenchViewRegistry, _logger: Logger);
10
+ private readonly _workbenchRouter;
11
+ private readonly _viewRegistry;
12
+ private readonly _logger;
17
13
  /**
18
14
  * View intents are handled in this interceptor and then swallowed.
19
15
  */
@@ -1,4 +1,3 @@
1
- import { TrackByFunction } from '@angular/core';
2
1
  import { NotificationService } from './notification.service';
3
2
  import { ɵNotification } from './ɵnotification';
4
3
  import { Observable } from 'rxjs';
@@ -11,7 +10,6 @@ export declare class NotificationListComponent {
11
10
  notifications$: Observable<ɵNotification[]>;
12
11
  constructor(_notificationService: NotificationService);
13
12
  onNotificationClose(notification: ɵNotification): void;
14
- trackByFn: TrackByFunction<ɵNotification>;
15
13
  /**
16
14
  * Returns animation metadata to slide-in a new notification, and to fade-out upon dismiss.
17
15
  */
@@ -1,7 +1,10 @@
1
+ import { Signal } from '@angular/core';
1
2
  import { WorkbenchPart } from '../workbench-part.model';
3
+ import { WorkbenchPartAction } from '../../workbench.model';
2
4
  import * as i0 from "@angular/core";
3
5
  export declare class PartActionBarComponent {
4
- part: WorkbenchPart;
6
+ protected startActions: Signal<WorkbenchPartAction[]>;
7
+ protected endActions: Signal<WorkbenchPartAction[]>;
5
8
  constructor(part: WorkbenchPart);
6
9
  static ɵfac: i0.ɵɵFactoryDeclaration<PartActionBarComponent, never>;
7
10
  static ɵcmp: i0.ɵɵComponentDeclaration<PartActionBarComponent, "wb-part-action-bar", never, {}, {}, never, never, true, never>;
@@ -4,9 +4,9 @@ import { WorkbenchView } from '../../view/workbench-view.model';
4
4
  import { CanMatchPartFn } from '../../workbench.model';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
- * Use this directive to contribute an action to a part's action bar.
7
+ * Use this directive to contribute an action to the action bar of a {@link WorkbenchPart}.
8
8
  *
9
- * Part actions are displayed to the right of the view tab bar and enable interaction with the part and its content.
9
+ * Part actions are displayed to the right of the view tabs and enable interaction with the part and its content.
10
10
  *
11
11
  * The host element of this modeling directive must be a <ng-template>. The action shares the lifecycle of the host element.
12
12
  *
@@ -1,4 +1,4 @@
1
- import { DestroyRef, ElementRef, NgZone, OnInit, QueryList } from '@angular/core';
1
+ import { DestroyRef, ElementRef, NgZone, OnInit } from '@angular/core';
2
2
  import { ViewTabComponent } from '../view-tab/view-tab.component';
3
3
  import { WorkbenchLayoutService } from '../../layout/workbench-layout.service';
4
4
  import { Observable } from 'rxjs';
@@ -6,7 +6,6 @@ import { ViewTabDragImageRenderer } from '../../view-dnd/view-tab-drag-image-ren
6
6
  import { ViewDragService } from '../../view-dnd/view-drag.service';
7
7
  import { ɵWorkbenchPart } from '../ɵworkbench-part.model';
8
8
  import { ɵWorkbenchRouter } from '../../routing/ɵworkbench-router.service';
9
- import { ViewId } from '../../view/workbench-view.model';
10
9
  import * as i0 from "@angular/core";
11
10
  /**
12
11
  * Renders view tabs and actions of a {@link WorkbenchPart}.
@@ -33,25 +32,24 @@ import * as i0 from "@angular/core";
33
32
  */
34
33
  export declare class PartBarComponent implements OnInit {
35
34
  private _workbenchId;
35
+ protected part: ɵWorkbenchPart;
36
36
  private _workbenchLayoutService;
37
37
  private _router;
38
38
  private _viewTabDragImageRenderer;
39
- private _part;
40
39
  private _viewDragService;
41
40
  private _destroyRef;
42
41
  private _zone;
43
42
  private readonly _host;
44
43
  private readonly _viewportChange$;
45
- private readonly _viewTabs$;
44
+ private readonly _viewTabs;
46
45
  private readonly _dragenter$;
47
46
  private readonly _dragleave$;
48
47
  private readonly _dragend$;
49
48
  readonly dragover$: Observable<boolean>;
50
- private _viewportElement;
51
- private _viewportComponent;
52
- private _tabCornerRadiusElement;
53
- private _paddingInlineElement;
54
- set injectViewTabs(queryList: QueryList<ViewTabComponent>);
49
+ private readonly _viewportElement;
50
+ private readonly _viewportComponent;
51
+ private readonly _tabCornerRadiusElement;
52
+ private readonly _paddingInlineElement;
55
53
  /**
56
54
  * Reference to the tab before which to insert the drag source on drop, or `end` if dropping it after the last tab.
57
55
  */
@@ -77,10 +75,9 @@ export declare class PartBarComponent implements OnInit {
77
75
  * Notifies when the drag animation has finished, i.e., tabs have transitioned to their final position.
78
76
  */
79
77
  private _dragAnimationStable$;
80
- constructor(host: ElementRef<HTMLElement>, _workbenchId: string, _workbenchLayoutService: WorkbenchLayoutService, _router: ɵWorkbenchRouter, _viewTabDragImageRenderer: ViewTabDragImageRenderer, _part: ɵWorkbenchPart, _viewDragService: ViewDragService, _destroyRef: DestroyRef, _zone: NgZone);
78
+ constructor(host: ElementRef<HTMLElement>, _workbenchId: string, part: ɵWorkbenchPart, _workbenchLayoutService: WorkbenchLayoutService, _router: ɵWorkbenchRouter, _viewTabDragImageRenderer: ViewTabDragImageRenderer, _viewDragService: ViewDragService, _destroyRef: DestroyRef, _zone: NgZone);
81
79
  ngOnInit(): void;
82
80
  onDoubleClick(event: MouseEvent): void;
83
- get viewIds$(): Observable<ViewId[]>;
84
81
  onTabbarViewportDimensionChange(): void;
85
82
  onScroll(): void;
86
83
  /**
@@ -139,7 +136,6 @@ export declare class PartBarComponent implements OnInit {
139
136
  */
140
137
  private isDragAnimationStable;
141
138
  private unsetDragState;
142
- private get _viewTabs();
143
139
  /**
144
140
  * Scrolls the tab of the active view into view.
145
141
  */
@@ -1,5 +1,4 @@
1
- import { Injector, PipeTransform } from '@angular/core';
2
- import { WorkbenchPartRegistry } from './workbench-part.registry';
1
+ import { PipeTransform } from '@angular/core';
3
2
  import type { PartComponent } from './part.component';
4
3
  import type { MainAreaLayoutComponent } from '../layout/main-area-layout/main-area-layout.component';
5
4
  import { ComponentPortal } from '@angular/cdk/portal';
@@ -9,9 +8,8 @@ import * as i0 from "@angular/core";
9
8
  * or throws an error if the part is not registered.
10
9
  */
11
10
  export declare class PartPortalPipe implements PipeTransform {
12
- private _partRegistry;
13
- private _injector;
14
- constructor(_partRegistry: WorkbenchPartRegistry, _injector: Injector);
11
+ private readonly _partRegistry;
12
+ private readonly _injector;
15
13
  transform(partId: string | null): ComponentPortal<PartComponent | MainAreaLayoutComponent> | null;
16
14
  static ɵfac: i0.ɵɵFactoryDeclaration<PartPortalPipe, never>;
17
15
  static ɵpipe: i0.ɵɵPipeDeclaration<PartPortalPipe, "wbPartPortal", true>;
@@ -1,24 +1,21 @@
1
- import { ChangeDetectorRef, Injector, OnDestroy, OnInit } from '@angular/core';
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { WbViewDropEvent } from '../view-dnd/view-drop-zone.directive';
3
- import { ViewDragService } from '../view-dnd/view-drag.service';
4
3
  import { ɵWorkbenchPart } from './ɵworkbench-part.model';
5
- import { Logger } from '../logging';
6
- import { WorkbenchViewRegistry } from '../view/workbench-view.registry';
7
4
  import * as i0 from "@angular/core";
8
5
  export declare class PartComponent implements OnInit, OnDestroy {
9
- private _workbenchId;
10
- private _viewRegistry;
11
- private _viewDragService;
12
- private _injector;
13
- private _logger;
14
- private _cd;
15
- part: ɵWorkbenchPart;
16
6
  tabIndex: number;
17
7
  get partId(): string;
18
8
  get isInMainArea(): boolean;
19
9
  get isMainArea(): boolean;
20
10
  get isActive(): boolean;
21
- constructor(_workbenchId: string, _viewRegistry: WorkbenchViewRegistry, _viewDragService: ViewDragService, _injector: Injector, _logger: Logger, _cd: ChangeDetectorRef, part: ɵWorkbenchPart);
11
+ private readonly _workbenchId;
12
+ private readonly _viewRegistry;
13
+ private readonly _viewDragService;
14
+ private readonly _injector;
15
+ private readonly _logger;
16
+ private readonly _cd;
17
+ protected readonly part: ɵWorkbenchPart;
18
+ constructor();
22
19
  ngOnInit(): void;
23
20
  /**
24
21
  * Method invoked to move a view into this part.
@@ -3,7 +3,7 @@ import { WorkbenchService } from '../../workbench.service';
3
3
  import { WorkbenchView } from '../../view/workbench-view.model';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
- * Use this directive to model a menu item added to the context menu of a view.
6
+ * Use this directive to contribute a menu item to a view's context menu.
7
7
  *
8
8
  * The host element of this modeling directive must be a <ng-template>.
9
9
  * A menu item shares the lifecycle of the host element.
@@ -1,9 +1,5 @@
1
- import { ElementRef, Injector, NgZone } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
1
+ import { ElementRef } from '@angular/core';
4
2
  import { Observable } from 'rxjs';
5
- import { WorkbenchConfig } from '../../workbench-config';
6
- import { WorkbenchService } from '../../workbench.service';
7
3
  import { ɵWorkbenchView } from '../../view/ɵworkbench-view.model';
8
4
  import { ViewId } from '../../view/workbench-view.model';
9
5
  import * as i0 from "@angular/core";
@@ -11,17 +7,17 @@ import * as i0 from "@angular/core";
11
7
  * Shows menu items of a {@link WorkbenchView} in a menu.
12
8
  */
13
9
  export declare class ViewMenuService {
14
- private _overlay;
15
- private _injector;
16
- private _zone;
17
- private _viewRegistry;
18
- private _workbenchService;
19
- private _workbenchConfig;
20
10
  private static readonly TOP_LEFT;
21
11
  private static readonly TOP_RIGHT;
22
12
  private static readonly BOTTOM_LEFT;
23
13
  private static readonly BOTTOM_RIGHT;
24
- constructor(_overlay: Overlay, _injector: Injector, _zone: NgZone, _viewRegistry: WorkbenchViewRegistry, _workbenchService: WorkbenchService, _workbenchConfig: WorkbenchConfig);
14
+ private readonly _overlay;
15
+ private readonly _injector;
16
+ private readonly _zone;
17
+ private readonly _viewRegistry;
18
+ private readonly _workbenchService;
19
+ private readonly _workbenchConfig;
20
+ constructor();
25
21
  /**
26
22
  * Shows a menu with menu items registered in given {@link WorkbenchView}.
27
23
  *
@@ -1,10 +1,6 @@
1
- import { OnInit } from '@angular/core';
2
- import { OverlayRef } from '@angular/cdk/overlay';
3
- import { Observable } from 'rxjs';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
1
+ import { OnInit, Signal } from '@angular/core';
5
2
  import { WorkbenchView } from '../../view/workbench-view.model';
6
3
  import { FormControl } from '@angular/forms';
7
- import { WorkbenchPart } from '../workbench-part.model';
8
4
  import * as i0 from "@angular/core";
9
5
  /**
10
6
  * Reference to inputs of {@link ViewListComponent}.
@@ -13,32 +9,23 @@ export declare const ViewListComponentInputs: {
13
9
  POSITION: string;
14
10
  };
15
11
  export declare class ViewListComponent implements OnInit {
12
+ private _filterFieldComponent;
16
13
  private _part;
17
14
  private _overlayRef;
18
- views$: Observable<WorkbenchView[]>;
19
- filterFormControl: FormControl<string>;
20
- private _filterFieldComponent;
15
+ /** Views that are scrolled into the tab bar. */
16
+ protected viewsInsideTabbar: Signal<WorkbenchView[]>;
17
+ /** Views that are scrolled out of the tab bar. */
18
+ protected viewsOutsideTabbar: Signal<WorkbenchView[]>;
19
+ protected filterFormControl: FormControl<string>;
21
20
  position?: 'north' | 'south' | undefined;
22
21
  get isSouthPosition(): boolean;
23
22
  get partId(): string;
24
- constructor(_part: WorkbenchPart, viewRegistry: WorkbenchViewRegistry, _overlayRef: OverlayRef);
23
+ constructor();
25
24
  ngOnInit(): void;
26
25
  onActivateView(view: WorkbenchView): void;
27
26
  onEscape(): void;
28
27
  onHostCloseEvent(event: Event): void;
29
28
  onDocumentCloseEvent(): void;
30
- /**
31
- * Returns the filter text of given view.
32
- */
33
- viewTextFn: (view: WorkbenchView) => string;
34
- /**
35
- * Tests if given view is scrolled into view.
36
- */
37
- scrolledIntoViewFilterFn: (view: WorkbenchView) => boolean;
38
- /**
39
- * Tests if given view is scrolled out of view.
40
- */
41
- scrolledOutOfViewFilterFn: (view: WorkbenchView) => boolean;
42
29
  static ɵfac: i0.ɵɵFactoryDeclaration<ViewListComponent, never>;
43
30
  static ɵcmp: i0.ɵɵComponentDeclaration<ViewListComponent, "wb-view-list", never, { "position": { "alias": "position"; "required": false; }; }, {}, never, never, true, never>;
44
31
  }
@@ -1,19 +1,16 @@
1
- import { ElementRef, Injector, NgZone, OnDestroy } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { WorkbenchPart } from '../workbench-part.model';
4
- import { Observable } from 'rxjs';
5
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
1
+ import { OnDestroy, Signal } from '@angular/core';
6
2
  import * as i0 from "@angular/core";
7
3
  export declare class ViewListButtonComponent implements OnDestroy {
8
- private _host;
9
- private _overlay;
10
- private _injector;
11
- private _zone;
12
4
  private static readonly SOUTH;
13
5
  private static readonly NORTH;
6
+ private readonly _host;
7
+ private readonly _overlay;
8
+ private readonly _injector;
9
+ private readonly _zone;
14
10
  private _overlayRef;
15
- scrolledOutOfViewTabCount$: Observable<number>;
16
- constructor(_host: ElementRef, _overlay: Overlay, _injector: Injector, _zone: NgZone, part: WorkbenchPart, viewRegistry: WorkbenchViewRegistry);
11
+ /** Number of views that are scrolled out of the tab bar. */
12
+ protected readonly scrolledOutOfViewTabCount: Signal<number>;
13
+ constructor();
17
14
  onClick(): void;
18
15
  /**
19
16
  * Updates 'position' input of {@link ViewListComponent} when the overlay position changes.
@@ -1,18 +1,14 @@
1
- import { Injector } from '@angular/core';
2
1
  import { ComponentPortal } from '@angular/cdk/portal';
3
2
  import { ɵWorkbenchView } from '../../view/ɵworkbench-view.model';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
5
- import { WorkbenchConfig } from '../../workbench-config';
6
3
  import { ViewId } from '../../view/workbench-view.model';
7
4
  import * as i0 from "@angular/core";
8
5
  export declare class ViewListItemComponent {
9
- private _viewRegistry;
10
- private _workbenchConfig;
11
- private _injector;
6
+ private readonly _viewRegistry;
7
+ private readonly _workbenchConfig;
8
+ private readonly _injector;
12
9
  view: ɵWorkbenchView;
13
10
  viewTabContentPortal: ComponentPortal<unknown>;
14
11
  set viewId(viewId: ViewId);
15
- constructor(_viewRegistry: WorkbenchViewRegistry, _workbenchConfig: WorkbenchConfig, _injector: Injector);
16
12
  get active(): boolean;
17
13
  onClose(): void;
18
14
  private createViewTabContentPortal;
@@ -1,40 +1,32 @@
1
- import { ElementRef, Injector, IterableDiffers, OnChanges, SimpleChanges } from '@angular/core';
2
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
3
- import { ViewDragService } from '../../view-dnd/view-drag.service';
1
+ import { Signal } from '@angular/core';
4
2
  import { ComponentPortal } from '@angular/cdk/portal';
5
- import { WorkbenchConfig } from '../../workbench-config';
6
- import { ViewMenuService } from '../view-context-menu/view-menu.service';
7
- import { ɵWorkbenchView } from '../../view/ɵworkbench-view.model';
8
3
  import { ViewId } from '../../view/workbench-view.model';
9
- import { ɵWorkbenchRouter } from '../../routing/ɵworkbench-router.service';
10
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
11
6
  /**
12
7
  * IMPORTANT: HTML and CSS also used by {@link ViewTabDragImageComponent}.
13
8
  *
14
9
  * @see ViewTabDragImageComponent
15
10
  */
16
- export declare class ViewTabComponent implements OnChanges {
17
- private _workbenchId;
18
- private _workbenchConfig;
19
- private _viewRegistry;
20
- private _router;
21
- private _viewDragService;
22
- private _differs;
23
- private _viewContextMenuService;
24
- private _injector;
25
- private _ngOnChanges$;
26
- host: HTMLElement;
27
- view: ɵWorkbenchView;
28
- viewTabContentPortal: ComponentPortal<unknown>;
29
- viewId: ViewId;
11
+ export declare class ViewTabComponent {
12
+ private readonly _workbenchId;
13
+ private readonly _workbenchConfig;
14
+ private readonly _viewRegistry;
15
+ private readonly _router;
16
+ private readonly _viewDragService;
17
+ private readonly _viewContextMenuService;
18
+ private readonly _injector;
19
+ readonly host: any;
20
+ readonly view: import("@angular/core").InputSignalWithTransform<import("../../view/\u0275workbench-view.model").ɵWorkbenchView, `view.${number}`>;
21
+ readonly viewTabContentPortal: Signal<ComponentPortal<unknown>>;
30
22
  draggable: boolean;
31
23
  tabindex: number;
32
24
  /**
33
25
  * Indicates if dragging a view tab over this view tab's tabbar.
34
26
  */
35
27
  get isDragOverTabbar(): boolean;
36
- constructor(host: ElementRef<HTMLElement>, _workbenchId: string, _workbenchConfig: WorkbenchConfig, _viewRegistry: WorkbenchViewRegistry, _router: ɵWorkbenchRouter, _viewDragService: ViewDragService, _differs: IterableDiffers, _viewContextMenuService: ViewMenuService, _injector: Injector);
37
- ngOnChanges(changes: SimpleChanges): void;
28
+ get viewId(): ViewId;
29
+ constructor();
38
30
  get active(): boolean;
39
31
  get partActive(): boolean;
40
32
  get dirty(): boolean;
@@ -51,12 +43,9 @@ export declare class ViewTabComponent implements OnChanges {
51
43
  * views (if they have different tab widths) could result in unintended maximization or minimization.
52
44
  */
53
45
  private installMaximizeListener;
54
- /**
55
- * Adds view specific CSS classes to the view-tab.
56
- */
57
- private installViewCssClassListener;
46
+ private addHostCssClasses;
58
47
  private installViewMenuItemAccelerators;
59
48
  private createViewTabContentPortal;
60
49
  static ɵfac: i0.ɵɵFactoryDeclaration<ViewTabComponent, never>;
61
- static ɵcmp: i0.ɵɵComponentDeclaration<ViewTabComponent, "wb-view-tab", never, { "viewId": { "alias": "viewId"; "required": true; }; }, {}, never, never, true, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<ViewTabComponent, "wb-view-tab", never, { "view": { "alias": "viewId"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgClass; inputs: {}; outputs: {}; }]>;
62
51
  }
@@ -1,4 +1,4 @@
1
- import { Injector } from '@angular/core';
1
+ import { Injector, Signal } from '@angular/core';
2
2
  import { ViewDragService } from '../../view-dnd/view-drag.service';
3
3
  import { ComponentPortal } from '@angular/cdk/portal';
4
4
  import { WorkbenchConfig } from '../../workbench-config';
@@ -8,11 +8,11 @@ import * as i0 from "@angular/core";
8
8
  * @see ViewTabComponent
9
9
  */
10
10
  export declare class ViewTabDragImageComponent {
11
- view: WorkbenchView;
12
11
  private _workbenchConfig;
13
12
  private _viewDragService;
14
13
  private _injector;
15
- viewTabContentPortal: ComponentPortal<unknown>;
14
+ readonly view: import("@angular/core").WritableSignal<WorkbenchView>;
15
+ readonly viewTabContentPortal: Signal<ComponentPortal<unknown>>;
16
16
  active: boolean;
17
17
  partActive: boolean;
18
18
  /**
@@ -23,7 +23,7 @@ export declare class ViewTabDragImageComponent {
23
23
  * Indicates if dragging this view tab over a tabbar located in the peripheral area.
24
24
  */
25
25
  isDragOverPeripheralTabbar: boolean;
26
- constructor(view: WorkbenchView, _workbenchConfig: WorkbenchConfig, _viewDragService: ViewDragService, _injector: Injector);
26
+ constructor(_workbenchConfig: WorkbenchConfig, _viewDragService: ViewDragService, _injector: Injector);
27
27
  onClose(..._: unknown[]): void;
28
28
  private createViewTabContentPortal;
29
29
  private installDragOverTabbarDetector;
@@ -1,27 +1,7 @@
1
- import { Disposable } from '../common/disposable';
2
1
  import { WorkbenchPartAction } from '../workbench.model';
3
- import { OnDestroy } from '@angular/core';
4
- import { Observable } from 'rxjs';
5
- import * as i0 from "@angular/core";
2
+ import { InjectionToken } from '@angular/core';
3
+ import { WorkbenchObjectRegistry } from '../registry/workbench-object-registry';
6
4
  /**
7
5
  * Registry for {@link WorkbenchPartAction} model objects.
8
6
  */
9
- export declare class WorkbenchPartActionRegistry implements OnDestroy {
10
- private _registry;
11
- /**
12
- * Registers given part action.
13
- *
14
- * @return handle to unregister the part action.
15
- */
16
- register(action: WorkbenchPartAction): Disposable;
17
- /**
18
- * Emits registered part actions.
19
- *
20
- * Upon subscription, the currently registerd actions are emitted, and then emits continuously
21
- * when new actions are registered or unregistered. It never completes.
22
- */
23
- get actions$(): Observable<readonly WorkbenchPartAction[]>;
24
- ngOnDestroy(): void;
25
- static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchPartActionRegistry, never>;
26
- static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchPartActionRegistry>;
27
- }
7
+ export declare const WORKBENCH_PART_ACTION_REGISTRY: InjectionToken<WorkbenchObjectRegistry<WorkbenchPartAction, WorkbenchPartAction>>;
@@ -1,6 +1,6 @@
1
- import { Observable } from 'rxjs';
2
1
  import { WorkbenchPartAction } from '../workbench.model';
3
2
  import { ViewId } from '../view/workbench-view.model';
3
+ import { Signal } from '@angular/core';
4
4
  /**
5
5
  * Represents a part of the workbench layout.
6
6
  *
@@ -20,36 +20,17 @@ export declare abstract class WorkbenchPart {
20
20
  /**
21
21
  * Indicates whether this part is active or inactive.
22
22
  */
23
- abstract readonly active: boolean;
23
+ abstract readonly active: Signal<boolean>;
24
24
  /**
25
- * Notifies when this part becomes active or inactive.
26
- *
27
- * Upon subscription, emits the current state, and then each time the state changes. The observable never completes.
25
+ * Identifies the active view, or `null` if none.
28
26
  */
29
- abstract readonly active$: Observable<boolean>;
27
+ abstract readonly activeViewId: Signal<ViewId | null>;
30
28
  /**
31
- * Emits the currently active view in this part.
29
+ * Identifies views opened in this part.
32
30
  */
33
- abstract readonly activeViewId$: Observable<ViewId | null>;
31
+ abstract readonly viewIds: Signal<ViewId[]>;
34
32
  /**
35
- * The currently active view, if any.
33
+ * Actions matching this part and its active view.
36
34
  */
37
- abstract readonly activeViewId: ViewId | null;
38
- /**
39
- * Emits the views opened in this part.
40
- *
41
- * Upon subscription, emits the current views, and then each time the views change. The observable never completes.
42
- */
43
- abstract readonly viewIds$: Observable<ViewId[]>;
44
- /**
45
- * The currently opened views in this part.
46
- */
47
- abstract readonly viewIds: ViewId[];
48
- /**
49
- * Emits actions associated with this part.
50
- *
51
- * Upon subscription, the currently associated actions are emitted, and then emits continuously
52
- * when new actions are registered or unregistered. It never completes.
53
- */
54
- abstract readonly actions$: Observable<readonly WorkbenchPartAction[]>;
35
+ abstract readonly actions: Signal<WorkbenchPartAction[]>;
55
36
  }
@@ -1,30 +1,7 @@
1
- import { OnDestroy } from '@angular/core';
1
+ import { InjectionToken } from '@angular/core';
2
2
  import { ɵWorkbenchPart } from './ɵworkbench-part.model';
3
- import { Observable } from 'rxjs';
4
- import * as i0 from "@angular/core";
3
+ import { WorkbenchObjectRegistry } from '../registry/workbench-object-registry';
5
4
  /**
6
5
  * Registry for {@link WorkbenchPart} model objects.
7
6
  */
8
- export declare class WorkbenchPartRegistry implements OnDestroy {
9
- private _registry;
10
- parts$: Observable<readonly ɵWorkbenchPart[]>;
11
- /**
12
- * Registers given part.
13
- */
14
- register(part: ɵWorkbenchPart): void;
15
- /**
16
- * Unregisters specified part and destroys it.
17
- */
18
- unregister(partId: string): void;
19
- /**
20
- * Returns the {@link ɵWorkbenchPart} of the given identity. If not found, by default, throws an error unless setting the `orElseNull` option.
21
- */
22
- get(partId: string): ɵWorkbenchPart;
23
- get(partId: string, options: {
24
- orElse: null;
25
- }): ɵWorkbenchPart | null;
26
- get parts(): readonly ɵWorkbenchPart[];
27
- ngOnDestroy(): void;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchPartRegistry, never>;
29
- static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchPartRegistry>;
30
- }
7
+ export declare const WORKBENCH_PART_REGISTRY: InjectionToken<WorkbenchObjectRegistry<string, ɵWorkbenchPart>>;