@scion/workbench 20.0.0-beta.5 → 20.0.0-beta.6
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/fesm2022/scion-workbench.mjs +972 -699
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/index.d.ts +62 -28
- package/package.json +2 -2
|
@@ -6,7 +6,7 @@ import { toObservable, takeUntilDestroyed, toSignal } from '@angular/core/rxjs-i
|
|
|
6
6
|
import { skipUntil, mergeMap, filter, observeOn, catchError, startWith, take, map, switchMap as switchMap$1, skip, subscribeOn, finalize, distinctUntilChanged, tap, takeUntil, first, combineLatestWith } from 'rxjs/operators';
|
|
7
7
|
import { coerceElement } from '@angular/cdk/coercion';
|
|
8
8
|
import { UUID } from '@scion/toolkit/uuid';
|
|
9
|
-
import { Observable, Subject, asapScheduler, AsyncSubject, lastValueFrom, iif, switchMap, race, pairwise, EMPTY, of, firstValueFrom, from, animationFrameScheduler, merge, fromEvent, BehaviorSubject, delay, identity, audit, share, noop, map as map$1, concatWith, withLatestFrom, mergeMap as mergeMap$1, mergeWith,
|
|
9
|
+
import { Observable, Subject, asapScheduler, AsyncSubject, lastValueFrom, iif, switchMap, race, pairwise, EMPTY, of, firstValueFrom, from, animationFrameScheduler, merge, fromEvent, BehaviorSubject, delay, identity, audit, share, noop, map as map$1, concatWith, withLatestFrom, mergeMap as mergeMap$1, mergeWith, combineLatest, asyncScheduler, timer } from 'rxjs';
|
|
10
10
|
import { fromMutation$, fromResize$ } from '@scion/toolkit/observable';
|
|
11
11
|
import { subscribeIn, observeIn, filterArray, tapFirst } from '@scion/toolkit/operators';
|
|
12
12
|
import { SciViewportComponent } from '@scion/components/viewport';
|
|
@@ -21,7 +21,7 @@ import { FocusMonitor, CdkTrapFocus } from '@angular/cdk/a11y';
|
|
|
21
21
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
22
22
|
import { ManifestService, MicrofrontendPlatform, PlatformState, MessageHeaders, MessageClient, ResponseStatusCodes, OutletRouter, MicrofrontendPlatformConfig, APP_IDENTITY, mapToBody, HostManifestInterceptor, ObservableDecorator, IntentInterceptor, CapabilityInterceptor, MicrofrontendPlatformHost, IntentClient, PlatformPropertyService } from '@scion/microfrontend-platform';
|
|
23
23
|
import { Beans } from '@scion/toolkit/bean-manager';
|
|
24
|
-
import { ɵMicrofrontendRouteParams as _MicrofrontendRouteParams, WorkbenchCapabilities, WorkbenchMessageBox, eMESSAGE_BOX_MESSAGE_PARAM, ɵTHEME_CONTEXT_KEY as _THEME_CONTEXT_KEY, ɵWorkbenchCommands as _WorkbenchCommands, ɵPOPUP_CONTEXT as _POPUP_CONTEXT, ɵWorkbenchPopupMessageHeaders as _WorkbenchPopupMessageHeaders, WorkbenchPopup, ɵMESSAGE_BOX_CONTEXT as _MESSAGE_BOX_CONTEXT, ɵDIALOG_CONTEXT as _DIALOG_CONTEXT, ɵWorkbenchDialogMessageHeaders as _WorkbenchDialogMessageHeaders, WorkbenchDialog as WorkbenchDialog$1, WorkbenchRouter as WorkbenchRouter$1, WorkbenchPopupService, WorkbenchMessageBoxService as WorkbenchMessageBoxService$1, ɵWorkbenchMessageBoxService as _WorkbenchMessageBoxService, WorkbenchDialogService as WorkbenchDialogService$1, ɵWorkbenchDialogService as _WorkbenchDialogService, WorkbenchNotificationService, ɵVIEW_ID_CONTEXT_KEY as _VIEW_ID_CONTEXT_KEY } from '@scion/workbench-client';
|
|
24
|
+
import { ɵMicrofrontendRouteParams as _MicrofrontendRouteParams, WorkbenchCapabilities, WorkbenchTextService, WorkbenchMessageBox, eMESSAGE_BOX_MESSAGE_PARAM, ɵTHEME_CONTEXT_KEY as _THEME_CONTEXT_KEY, ɵWorkbenchCommands as _WorkbenchCommands, ɵPOPUP_CONTEXT as _POPUP_CONTEXT, ɵWorkbenchPopupMessageHeaders as _WorkbenchPopupMessageHeaders, WorkbenchPopup, ɵMESSAGE_BOX_CONTEXT as _MESSAGE_BOX_CONTEXT, ɵDIALOG_CONTEXT as _DIALOG_CONTEXT, ɵWorkbenchDialogMessageHeaders as _WorkbenchDialogMessageHeaders, WorkbenchDialog as WorkbenchDialog$1, WorkbenchRouter as WorkbenchRouter$1, WorkbenchPopupService, WorkbenchMessageBoxService as WorkbenchMessageBoxService$1, ɵWorkbenchMessageBoxService as _WorkbenchMessageBoxService, WorkbenchDialogService as WorkbenchDialogService$1, ɵWorkbenchDialogService as _WorkbenchDialogService, WorkbenchNotificationService, ɵWorkbenchTextService as _WorkbenchTextService, ɵVIEW_ID_CONTEXT_KEY as _VIEW_ID_CONTEXT_KEY, WorkbenchClient } from '@scion/workbench-client';
|
|
25
25
|
import { SciThrobberComponent } from '@scion/components/throbber';
|
|
26
26
|
import { Crypto } from '@scion/toolkit/crypto';
|
|
27
27
|
|
|
@@ -77,7 +77,7 @@ function resolveWhen(condition, options) {
|
|
|
77
77
|
untracked(() => resolve());
|
|
78
78
|
effectRef.destroy();
|
|
79
79
|
}
|
|
80
|
-
}, { injector: options?.injector });
|
|
80
|
+
}, ...(ngDevMode ? [{ debugName: "effectRef", injector: options?.injector }] : [{ injector: options?.injector }]));
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -109,10 +109,10 @@ class DefaultWorkbenchStorage {
|
|
|
109
109
|
store(key, value) {
|
|
110
110
|
localStorage.setItem(key, value);
|
|
111
111
|
}
|
|
112
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
113
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DefaultWorkbenchStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
113
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DefaultWorkbenchStorage });
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DefaultWorkbenchStorage, decorators: [{
|
|
116
116
|
type: Injectable
|
|
117
117
|
}] });
|
|
118
118
|
|
|
@@ -131,7 +131,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
131
131
|
function renderingFlag(storageKey, defaultValue, options) {
|
|
132
132
|
const injector = options?.injector ?? inject(Injector);
|
|
133
133
|
const workbenchStorage = injector.get(WorkbenchStorage);
|
|
134
|
-
const flag = signal(defaultValue);
|
|
134
|
+
const flag = signal(defaultValue, ...(ngDevMode ? [{ debugName: "flag" }] : []));
|
|
135
135
|
// Read flag from storage.
|
|
136
136
|
const whenReadFromStorage = readFromStorage(storageKey).then(storedValue => {
|
|
137
137
|
if (storedValue === null) {
|
|
@@ -371,18 +371,18 @@ function nextAnimationFrame$() {
|
|
|
371
371
|
* Provides access to the workbench layout.
|
|
372
372
|
*/
|
|
373
373
|
class WorkbenchLayoutService {
|
|
374
|
-
_layout = signal(null);
|
|
375
|
-
_dragging = signal(false);
|
|
376
|
-
_moving = signal(false);
|
|
377
|
-
_resizing = signal(false);
|
|
374
|
+
_layout = signal(null, ...(ngDevMode ? [{ debugName: "_layout" }] : []));
|
|
375
|
+
_dragging = signal(false, ...(ngDevMode ? [{ debugName: "_dragging" }] : []));
|
|
376
|
+
_moving = signal(false, ...(ngDevMode ? [{ debugName: "_moving" }] : []));
|
|
377
|
+
_resizing = signal(false, ...(ngDevMode ? [{ debugName: "_resizing" }] : []));
|
|
378
378
|
/**
|
|
379
379
|
* Provides the layout of the workbench, throwing an error if the initial layout is not yet available.
|
|
380
380
|
*/
|
|
381
|
-
layout = computed(() => this._layout() ?? throwError('[NullLayoutError] Workbench layout not available yet.'));
|
|
381
|
+
layout = computed(() => this._layout() ?? throwError('[NullLayoutError] Workbench layout not available yet.'), ...(ngDevMode ? [{ debugName: "layout" }] : []));
|
|
382
382
|
/**
|
|
383
383
|
* Indicates whether the layout is available, i.e., after Angular has performed the initial navigation.
|
|
384
384
|
*/
|
|
385
|
-
hasLayout = computed(() => this._layout() !== null);
|
|
385
|
+
hasLayout = computed(() => this._layout() !== null, ...(ngDevMode ? [{ debugName: "hasLayout" }] : []));
|
|
386
386
|
/**
|
|
387
387
|
* Resolves when the layout is available, i.e., after Angular has performed the initial navigation.
|
|
388
388
|
*/
|
|
@@ -390,7 +390,7 @@ class WorkbenchLayoutService {
|
|
|
390
390
|
/**
|
|
391
391
|
* Indicates if a drag operation is active, such as moving a view or dialog, or resizing a part.
|
|
392
392
|
*/
|
|
393
|
-
dragging = computed(() => this._dragging() || this._moving() || this._resizing());
|
|
393
|
+
dragging = computed(() => this._dragging() || this._moving() || this._resizing(), ...(ngDevMode ? [{ debugName: "dragging" }] : []));
|
|
394
394
|
/**
|
|
395
395
|
* Controls the alignment of the bottom activity panel.
|
|
396
396
|
*
|
|
@@ -427,10 +427,10 @@ class WorkbenchLayoutService {
|
|
|
427
427
|
setLayout(layout) {
|
|
428
428
|
this._layout.set(layout);
|
|
429
429
|
}
|
|
430
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
431
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
430
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
431
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutService, providedIn: 'root' });
|
|
432
432
|
}
|
|
433
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutService, decorators: [{
|
|
434
434
|
type: Injectable,
|
|
435
435
|
args: [{ providedIn: 'root' }]
|
|
436
436
|
}] });
|
|
@@ -1032,7 +1032,7 @@ const Objects = {
|
|
|
1032
1032
|
* Provides a registry for workbench model objects.
|
|
1033
1033
|
*/
|
|
1034
1034
|
class WorkbenchObjectRegistry {
|
|
1035
|
-
_objects = signal([]);
|
|
1035
|
+
_objects = signal([], ...(ngDevMode ? [{ debugName: "_objects" }] : []));
|
|
1036
1036
|
_objectsById = new Map();
|
|
1037
1037
|
_nullObjectErrorFn;
|
|
1038
1038
|
_onUnregister;
|
|
@@ -1528,10 +1528,10 @@ class ɵWorkbenchRouter {
|
|
|
1528
1528
|
setCurrentNavigationContext(context) {
|
|
1529
1529
|
this._currentNavigationContext = context;
|
|
1530
1530
|
}
|
|
1531
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
1532
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
1531
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchRouter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1532
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchRouter, providedIn: 'root' });
|
|
1533
1533
|
}
|
|
1534
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
1534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchRouter, decorators: [{
|
|
1535
1535
|
type: Injectable,
|
|
1536
1536
|
args: [{ providedIn: 'root' }]
|
|
1537
1537
|
}], ctorParameters: () => [] });
|
|
@@ -1700,10 +1700,10 @@ function computeNavigationCommands(currentOutlets, newOutlets) {
|
|
|
1700
1700
|
* A view can inject `ActivatedRoute` to get parameters passed to the navigation and read data associated with the route.
|
|
1701
1701
|
*/
|
|
1702
1702
|
class WorkbenchRouter {
|
|
1703
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
1704
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
1703
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchRouter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1704
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchRouter, providedIn: 'root', useExisting: ɵWorkbenchRouter });
|
|
1705
1705
|
}
|
|
1706
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
1706
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchRouter, decorators: [{
|
|
1707
1707
|
type: Injectable,
|
|
1708
1708
|
args: [{ providedIn: 'root', useExisting: ɵWorkbenchRouter }]
|
|
1709
1709
|
}] });
|
|
@@ -1833,10 +1833,10 @@ class WorkbenchGridMigrationV3 {
|
|
|
1833
1833
|
getCurrentUrl() {
|
|
1834
1834
|
return this._router.getCurrentNavigation()?.initialUrl ?? this._router.parseUrl(this._router.url);
|
|
1835
1835
|
}
|
|
1836
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
1837
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
1836
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV3, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1837
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV3, providedIn: 'root' });
|
|
1838
1838
|
}
|
|
1839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
1839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV3, decorators: [{
|
|
1840
1840
|
type: Injectable,
|
|
1841
1841
|
args: [{ providedIn: 'root' }]
|
|
1842
1842
|
}] });
|
|
@@ -1908,10 +1908,10 @@ class WorkbenchGridMigrationV4 {
|
|
|
1908
1908
|
return { ...viewV3, uid: undefined }; // `uid` is transient, i.e., set when deserializing the grid.
|
|
1909
1909
|
}
|
|
1910
1910
|
}
|
|
1911
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
1912
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
1911
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV4, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1912
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV4, providedIn: 'root' });
|
|
1913
1913
|
}
|
|
1914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
1914
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV4, decorators: [{
|
|
1915
1915
|
type: Injectable,
|
|
1916
1916
|
args: [{ providedIn: 'root' }]
|
|
1917
1917
|
}] });
|
|
@@ -1970,10 +1970,10 @@ class WorkbenchGridMigrationV5 {
|
|
|
1970
1970
|
return viewV5;
|
|
1971
1971
|
}
|
|
1972
1972
|
}
|
|
1973
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
1974
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
1973
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV5, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1974
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV5, providedIn: 'root' });
|
|
1975
1975
|
}
|
|
1976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
1976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV5, decorators: [{
|
|
1977
1977
|
type: Injectable,
|
|
1978
1978
|
args: [{ providedIn: 'root' }]
|
|
1979
1979
|
}] });
|
|
@@ -2025,10 +2025,10 @@ class WorkbenchGridMigrationV6 {
|
|
|
2025
2025
|
return viewV6;
|
|
2026
2026
|
}
|
|
2027
2027
|
}
|
|
2028
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2029
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2028
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV6, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2029
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV6, providedIn: 'root' });
|
|
2030
2030
|
}
|
|
2031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV6, decorators: [{
|
|
2032
2032
|
type: Injectable,
|
|
2033
2033
|
args: [{ providedIn: 'root' }]
|
|
2034
2034
|
}] });
|
|
@@ -2174,10 +2174,10 @@ class WorkbenchGridMigrationV7 {
|
|
|
2174
2174
|
};
|
|
2175
2175
|
}
|
|
2176
2176
|
}
|
|
2177
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2178
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2177
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV7, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2178
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV7, providedIn: 'root' });
|
|
2179
2179
|
}
|
|
2180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchGridMigrationV7, decorators: [{
|
|
2181
2181
|
type: Injectable,
|
|
2182
2182
|
args: [{ providedIn: 'root' }]
|
|
2183
2183
|
}] });
|
|
@@ -2218,10 +2218,10 @@ class WorkbenchLayoutMigrationV2 {
|
|
|
2218
2218
|
return [viewId, commandsToSegments(commands)];
|
|
2219
2219
|
})));
|
|
2220
2220
|
}
|
|
2221
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2222
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV2, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2222
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV2, providedIn: 'root' });
|
|
2223
2223
|
}
|
|
2224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV2, decorators: [{
|
|
2225
2225
|
type: Injectable,
|
|
2226
2226
|
args: [{ providedIn: 'root' }]
|
|
2227
2227
|
}] });
|
|
@@ -2265,10 +2265,10 @@ class WorkbenchLayoutMigrationV3 {
|
|
|
2265
2265
|
};
|
|
2266
2266
|
return JSON.stringify(perspectiveLayoutV3);
|
|
2267
2267
|
}
|
|
2268
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2269
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2268
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV3, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2269
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV3, providedIn: 'root' });
|
|
2270
2270
|
}
|
|
2271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV3, decorators: [{
|
|
2272
2272
|
type: Injectable,
|
|
2273
2273
|
args: [{ providedIn: 'root' }]
|
|
2274
2274
|
}] });
|
|
@@ -2306,10 +2306,10 @@ class WorkbenchLayoutMigrationV4 {
|
|
|
2306
2306
|
};
|
|
2307
2307
|
return JSON.stringify(workbenchLayoutV4);
|
|
2308
2308
|
}
|
|
2309
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2310
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2309
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV4, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2310
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV4, providedIn: 'root' });
|
|
2311
2311
|
}
|
|
2312
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV4, decorators: [{
|
|
2313
2313
|
type: Injectable,
|
|
2314
2314
|
args: [{ providedIn: 'root' }]
|
|
2315
2315
|
}] });
|
|
@@ -2375,10 +2375,10 @@ class WorkbenchLayoutMigrationV5 {
|
|
|
2375
2375
|
};
|
|
2376
2376
|
return JSON.stringify(workbenchLayoutV5);
|
|
2377
2377
|
}
|
|
2378
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2379
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2378
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV5, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2379
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV5, providedIn: 'root' });
|
|
2380
2380
|
}
|
|
2381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV5, decorators: [{
|
|
2382
2382
|
type: Injectable,
|
|
2383
2383
|
args: [{ providedIn: 'root' }]
|
|
2384
2384
|
}] });
|
|
@@ -2436,10 +2436,10 @@ class WorkbenchLayoutMigrationV6 {
|
|
|
2436
2436
|
grid.referencePartId = referencePartId;
|
|
2437
2437
|
return inject(WorkbenchLayoutSerializer).serializeGrid(grid);
|
|
2438
2438
|
}
|
|
2439
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2440
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2439
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV6, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2440
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV6, providedIn: 'root' });
|
|
2441
2441
|
}
|
|
2442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMigrationV6, decorators: [{
|
|
2443
2443
|
type: Injectable,
|
|
2444
2444
|
args: [{ providedIn: 'root' }]
|
|
2445
2445
|
}] });
|
|
@@ -2616,10 +2616,10 @@ class WorkbenchLayoutSerializer {
|
|
|
2616
2616
|
return [outlet, segments.map(segment => new UrlSegment(segment.path, segment.parameters))];
|
|
2617
2617
|
}));
|
|
2618
2618
|
}
|
|
2619
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2620
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2619
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2620
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutSerializer, providedIn: 'root' });
|
|
2621
2621
|
}
|
|
2622
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutSerializer, decorators: [{
|
|
2623
2623
|
type: Injectable,
|
|
2624
2624
|
args: [{ providedIn: 'root' }]
|
|
2625
2625
|
}] });
|
|
@@ -2677,10 +2677,10 @@ var LogLevel;
|
|
|
2677
2677
|
* Delivers log events to a destination, e.g., writing logs to the console.
|
|
2678
2678
|
*/
|
|
2679
2679
|
class LogAppender {
|
|
2680
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2681
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2680
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LogAppender, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2681
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LogAppender });
|
|
2682
2682
|
}
|
|
2683
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LogAppender, decorators: [{
|
|
2684
2684
|
type: Injectable
|
|
2685
2685
|
}] });
|
|
2686
2686
|
/**
|
|
@@ -2731,10 +2731,10 @@ class ConsoleAppender {
|
|
|
2731
2731
|
}
|
|
2732
2732
|
}
|
|
2733
2733
|
}
|
|
2734
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2735
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2734
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ConsoleAppender, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2735
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ConsoleAppender });
|
|
2736
2736
|
}
|
|
2737
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2737
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ConsoleAppender, decorators: [{
|
|
2738
2738
|
type: Injectable
|
|
2739
2739
|
}] });
|
|
2740
2740
|
|
|
@@ -2754,7 +2754,7 @@ class ɵLogger {
|
|
|
2754
2754
|
constructor() {
|
|
2755
2755
|
const defaultLogLevel = inject(WorkbenchConfig, { optional: true })?.logging?.logLevel ?? LogLevel.INFO;
|
|
2756
2756
|
const logLevel = queryParam('loglevel');
|
|
2757
|
-
this._logLevel = computed(() => parseLogLevel(logLevel()) ?? defaultLogLevel);
|
|
2757
|
+
this._logLevel = computed(() => parseLogLevel(logLevel()) ?? defaultLogLevel, ...(ngDevMode ? [{ debugName: "_logLevel" }] : []));
|
|
2758
2758
|
}
|
|
2759
2759
|
/** @inheritDoc */
|
|
2760
2760
|
get logLevel() {
|
|
@@ -2785,10 +2785,10 @@ class ɵLogger {
|
|
|
2785
2785
|
}
|
|
2786
2786
|
this._logAppenders.forEach(logAppender => logAppender.onLogMessage(event));
|
|
2787
2787
|
}
|
|
2788
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2789
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2788
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2789
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵLogger });
|
|
2790
2790
|
}
|
|
2791
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2791
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵLogger, decorators: [{
|
|
2792
2792
|
type: Injectable
|
|
2793
2793
|
}], ctorParameters: () => [] });
|
|
2794
2794
|
/**
|
|
@@ -2842,10 +2842,10 @@ function coerceLogEvent(level, message, args) {
|
|
|
2842
2842
|
* @see {@link LogAppender}
|
|
2843
2843
|
*/
|
|
2844
2844
|
class Logger {
|
|
2845
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2846
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2845
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2846
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Logger, providedIn: 'root', useClass: ɵLogger });
|
|
2847
2847
|
}
|
|
2848
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: Logger, decorators: [{
|
|
2849
2849
|
type: Injectable,
|
|
2850
2850
|
args: [{ providedIn: 'root', useClass: ɵLogger }]
|
|
2851
2851
|
}] });
|
|
@@ -2962,10 +2962,10 @@ class ActivationInstantProvider {
|
|
|
2962
2962
|
next() {
|
|
2963
2963
|
return ++this._origin;
|
|
2964
2964
|
}
|
|
2965
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
2966
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
2965
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivationInstantProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2966
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivationInstantProvider, providedIn: 'root' });
|
|
2967
2967
|
}
|
|
2968
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
2968
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivationInstantProvider, decorators: [{
|
|
2969
2969
|
type: Injectable,
|
|
2970
2970
|
args: [{ providedIn: 'root' }]
|
|
2971
2971
|
}] });
|
|
@@ -4341,10 +4341,10 @@ class ɵWorkbenchLayoutFactory {
|
|
|
4341
4341
|
create(config) {
|
|
4342
4342
|
return runInInjectionContext(this._injector, () => new ɵWorkbenchLayout(config));
|
|
4343
4343
|
}
|
|
4344
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
4345
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
4344
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchLayoutFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4345
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchLayoutFactory, providedIn: 'root' });
|
|
4346
4346
|
}
|
|
4347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
4347
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchLayoutFactory, decorators: [{
|
|
4348
4348
|
type: Injectable,
|
|
4349
4349
|
args: [{ providedIn: 'root' }]
|
|
4350
4350
|
}] });
|
|
@@ -4373,10 +4373,10 @@ class WorkbenchLayoutMerger {
|
|
|
4373
4373
|
}
|
|
4374
4374
|
return layouts.local;
|
|
4375
4375
|
}
|
|
4376
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
4377
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
4376
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMerger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4377
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMerger, providedIn: 'root' });
|
|
4378
4378
|
}
|
|
4379
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
4379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutMerger, decorators: [{
|
|
4380
4380
|
type: Injectable,
|
|
4381
4381
|
args: [{ providedIn: 'root' }]
|
|
4382
4382
|
}] });
|
|
@@ -4445,10 +4445,10 @@ class WorkbenchLayoutStorageService {
|
|
|
4445
4445
|
async storeActivePerspectiveId(perspectiveId) {
|
|
4446
4446
|
return this._storage.store(storageKeys.activePerspectiveId, perspectiveId);
|
|
4447
4447
|
}
|
|
4448
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
4449
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
4448
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4449
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutStorageService, providedIn: 'root' });
|
|
4450
4450
|
}
|
|
4451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
4451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutStorageService, decorators: [{
|
|
4452
4452
|
type: Injectable,
|
|
4453
4453
|
args: [{ providedIn: 'root' }]
|
|
4454
4454
|
}] });
|
|
@@ -4659,7 +4659,7 @@ class ɵWorkbenchLauncher {
|
|
|
4659
4659
|
_zone;
|
|
4660
4660
|
_injector;
|
|
4661
4661
|
_whenStarted = resolveWhen(computed(() => this.state() === LaunchState.Started));
|
|
4662
|
-
state = signal(LaunchState.Stopped);
|
|
4662
|
+
state = signal(LaunchState.Stopped, ...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
4663
4663
|
constructor() {
|
|
4664
4664
|
const workbenchConfig = inject(WorkbenchConfig, { optional: true });
|
|
4665
4665
|
if (!workbenchConfig) {
|
|
@@ -4695,10 +4695,10 @@ class ɵWorkbenchLauncher {
|
|
|
4695
4695
|
}
|
|
4696
4696
|
}
|
|
4697
4697
|
}
|
|
4698
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
4699
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
4698
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchLauncher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4699
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchLauncher, providedIn: 'root' });
|
|
4700
4700
|
}
|
|
4701
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
4701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchLauncher, decorators: [{
|
|
4702
4702
|
type: Injectable,
|
|
4703
4703
|
args: [{ providedIn: 'root' }]
|
|
4704
4704
|
}], ctorParameters: () => [] });
|
|
@@ -4722,17 +4722,17 @@ class ɵWorkbenchStartup {
|
|
|
4722
4722
|
_launcher = inject(ɵWorkbenchLauncher);
|
|
4723
4723
|
_workbenchLayoutService = inject(WorkbenchLayoutService);
|
|
4724
4724
|
/** @inheritDoc */
|
|
4725
|
-
done = computed(() => this._launcher.state() === LaunchState.Started && this._workbenchLayoutService.hasLayout());
|
|
4725
|
+
done = computed(() => this._launcher.state() === LaunchState.Started && this._workbenchLayoutService.hasLayout(), ...(ngDevMode ? [{ debugName: "done" }] : []));
|
|
4726
4726
|
/** @inheritDoc */
|
|
4727
4727
|
whenDone = resolveWhen(this.done);
|
|
4728
4728
|
/** @inheritDoc */
|
|
4729
4729
|
isStarted = this.done;
|
|
4730
4730
|
/** @inheritDoc */
|
|
4731
4731
|
whenStarted = this.whenDone.then(() => true);
|
|
4732
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
4733
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
4732
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchStartup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4733
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchStartup });
|
|
4734
4734
|
}
|
|
4735
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
4735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchStartup, decorators: [{
|
|
4736
4736
|
type: Injectable
|
|
4737
4737
|
}] });
|
|
4738
4738
|
|
|
@@ -4749,10 +4749,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
4749
4749
|
* Provides the status of the SCION Workbench startup.
|
|
4750
4750
|
*/
|
|
4751
4751
|
class WorkbenchStartup {
|
|
4752
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
4753
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
4752
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchStartup, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4753
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchStartup, providedIn: 'root', useClass: ɵWorkbenchStartup });
|
|
4754
4754
|
}
|
|
4755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
4755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchStartup, decorators: [{
|
|
4756
4756
|
type: Injectable,
|
|
4757
4757
|
args: [{ providedIn: 'root', useClass: ɵWorkbenchStartup }]
|
|
4758
4758
|
}] });
|
|
@@ -4789,7 +4789,7 @@ class ɵWorkbenchPerspective {
|
|
|
4789
4789
|
this.transient = definition.transient ?? false;
|
|
4790
4790
|
this.data = definition.data ?? {};
|
|
4791
4791
|
const activePerspective = inject(ACTIVE_PERSPECTIVE);
|
|
4792
|
-
this.active = computed(() => activePerspective()?.id === this.id);
|
|
4792
|
+
this.active = computed(() => activePerspective()?.id === this.id, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
4793
4793
|
this._initialLayoutFn = definition.layout;
|
|
4794
4794
|
this.installLayoutPersister();
|
|
4795
4795
|
}
|
|
@@ -4992,8 +4992,8 @@ class WorkbenchPerspectiveService {
|
|
|
4992
4992
|
_environmentInjector = inject(EnvironmentInjector);
|
|
4993
4993
|
_applicationInitStatus = inject(ApplicationInitStatus);
|
|
4994
4994
|
_layoutStorageService = inject(WorkbenchLayoutStorageService);
|
|
4995
|
-
_switchingPerspective = signal(false);
|
|
4996
|
-
_resettingPerspective = signal(false);
|
|
4995
|
+
_switchingPerspective = signal(false, ...(ngDevMode ? [{ debugName: "_switchingPerspective" }] : []));
|
|
4996
|
+
_resettingPerspective = signal(false, ...(ngDevMode ? [{ debugName: "_resettingPerspective" }] : []));
|
|
4997
4997
|
activePerspective = inject(ACTIVE_PERSPECTIVE);
|
|
4998
4998
|
async init() {
|
|
4999
4999
|
await this.registerPerspectivesFromConfig();
|
|
@@ -5146,10 +5146,10 @@ class WorkbenchPerspectiveService {
|
|
|
5146
5146
|
}
|
|
5147
5147
|
return undefined;
|
|
5148
5148
|
}
|
|
5149
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5150
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5149
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPerspectiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5150
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPerspectiveService, providedIn: 'root' });
|
|
5151
5151
|
}
|
|
5152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPerspectiveService, decorators: [{
|
|
5153
5153
|
type: Injectable,
|
|
5154
5154
|
args: [{ providedIn: 'root' }]
|
|
5155
5155
|
}] });
|
|
@@ -5263,10 +5263,10 @@ class WorkbenchThemeSwitcher {
|
|
|
5263
5263
|
this.theme.set(theme);
|
|
5264
5264
|
});
|
|
5265
5265
|
}
|
|
5266
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5267
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5266
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchThemeSwitcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5267
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchThemeSwitcher, providedIn: 'root' });
|
|
5268
5268
|
}
|
|
5269
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchThemeSwitcher, decorators: [{
|
|
5270
5270
|
type: Injectable,
|
|
5271
5271
|
args: [{ providedIn: 'root' }]
|
|
5272
5272
|
}], ctorParameters: () => [] });
|
|
@@ -5301,10 +5301,10 @@ const WORKBENCH_VIEW_MENU_ITEM_REGISTRY = new InjectionToken('WORKBENCH_VIEW_MEN
|
|
|
5301
5301
|
* Provides the workbench element that contains the focused DOM element, which is currently receiving keyboard events.
|
|
5302
5302
|
*/
|
|
5303
5303
|
class WorkbenchFocusMonitor {
|
|
5304
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5305
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5304
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchFocusMonitor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5305
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchFocusMonitor, providedIn: 'root', useExisting: i0.forwardRef(() => ɵWorkbenchFocusMonitor) });
|
|
5306
5306
|
}
|
|
5307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchFocusMonitor, decorators: [{
|
|
5308
5308
|
type: Injectable,
|
|
5309
5309
|
args: [{ providedIn: 'root', useExisting: forwardRef(() => ɵWorkbenchFocusMonitor) }]
|
|
5310
5310
|
}] });
|
|
@@ -5330,7 +5330,7 @@ function trackFocus(target, workbenchElement) {
|
|
|
5330
5330
|
};
|
|
5331
5331
|
}
|
|
5332
5332
|
class ɵWorkbenchFocusMonitor {
|
|
5333
|
-
activeElement = signal(null);
|
|
5333
|
+
activeElement = signal(null, ...(ngDevMode ? [{ debugName: "activeElement" }] : []));
|
|
5334
5334
|
setActiveElement(element) {
|
|
5335
5335
|
this.activeElement.set(element);
|
|
5336
5336
|
}
|
|
@@ -5339,10 +5339,10 @@ class ɵWorkbenchFocusMonitor {
|
|
|
5339
5339
|
this.activeElement.set(null);
|
|
5340
5340
|
}
|
|
5341
5341
|
}
|
|
5342
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5343
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5342
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchFocusMonitor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5343
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchFocusMonitor, providedIn: 'root' });
|
|
5344
5344
|
}
|
|
5345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchFocusMonitor, decorators: [{
|
|
5346
5346
|
type: Injectable,
|
|
5347
5347
|
args: [{ providedIn: 'root' }]
|
|
5348
5348
|
}] });
|
|
@@ -5444,10 +5444,10 @@ class ɵWorkbenchService {
|
|
|
5444
5444
|
});
|
|
5445
5445
|
});
|
|
5446
5446
|
}
|
|
5447
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5448
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5447
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5448
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchService, providedIn: 'root' });
|
|
5449
5449
|
}
|
|
5450
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchService, decorators: [{
|
|
5451
5451
|
type: Injectable,
|
|
5452
5452
|
args: [{ providedIn: 'root' }]
|
|
5453
5453
|
}] });
|
|
@@ -5474,10 +5474,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
5474
5474
|
* multiple perspectives is optional.
|
|
5475
5475
|
*/
|
|
5476
5476
|
class WorkbenchService {
|
|
5477
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5478
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5477
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5478
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchService, providedIn: 'root', useExisting: ɵWorkbenchService });
|
|
5479
5479
|
}
|
|
5480
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5480
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchService, decorators: [{
|
|
5481
5481
|
type: Injectable,
|
|
5482
5482
|
args: [{ providedIn: 'root', useExisting: ɵWorkbenchService }]
|
|
5483
5483
|
}] });
|
|
@@ -5525,7 +5525,7 @@ function text(translatable, options) {
|
|
|
5525
5525
|
// Call text provider.
|
|
5526
5526
|
return runInInjectionContext(provideTextInjector, () => provideText(keyOrText));
|
|
5527
5527
|
});
|
|
5528
|
-
});
|
|
5528
|
+
}, ...(ngDevMode ? [{ debugName: "translation" }] : []));
|
|
5529
5529
|
// Track translation in separate reactive context to not call the text provider function on translation change.
|
|
5530
5530
|
return computed(() => translation()());
|
|
5531
5531
|
}
|
|
@@ -5552,9 +5552,9 @@ function provideText(translatable) {
|
|
|
5552
5552
|
* Parses a translation key into its key and parameters, if any.
|
|
5553
5553
|
*
|
|
5554
5554
|
* Examples:
|
|
5555
|
-
* -
|
|
5556
|
-
* -
|
|
5557
|
-
* -
|
|
5555
|
+
* - `%key`: translation key
|
|
5556
|
+
* - `%key;param=value`: translation key with a single interpolation parameter
|
|
5557
|
+
* - `%key;param1=value1;param2=value2`: translation key with multiple interpolation parameters
|
|
5558
5558
|
*/
|
|
5559
5559
|
function parseTranslatable(translationKey) {
|
|
5560
5560
|
const { key, params } = /^%(?<key>[^;]+)(;(?<params>.*))?$/.exec(translationKey).groups;
|
|
@@ -5602,18 +5602,18 @@ function parseMatrixParams(matrixParams) {
|
|
|
5602
5602
|
* Enables the translation of a given {@link Translatable}.
|
|
5603
5603
|
*
|
|
5604
5604
|
* A {@link Translatable} is a string that, if starting with the percent symbol (`%`), is passed to the text provider for translation, with the percent symbol omitted.
|
|
5605
|
-
* Otherwise, the text is returned as is. A translation key
|
|
5605
|
+
* Otherwise, the text is returned as is. A translation key may include parameters in matrix notation for text interpolation.
|
|
5606
5606
|
*
|
|
5607
5607
|
* Examples:
|
|
5608
|
-
* - `text`: no translatable text
|
|
5609
5608
|
* - `%key`: translation key
|
|
5610
|
-
* - `%key;param=value`: translation key with a single
|
|
5611
|
-
* - `%key;param1=value1;param2=value2`: translation key with multiple parameters
|
|
5609
|
+
* - `%key;param=value`: translation key with a single interpolation parameter
|
|
5610
|
+
* - `%key;param1=value1;param2=value2`: translation key with multiple interpolation parameters
|
|
5611
|
+
* - `text`: no translation key, text is returned as is
|
|
5612
5612
|
*
|
|
5613
5613
|
* @experimental since 20.0.0-beta.3; API and behavior may change in any version without notice.
|
|
5614
5614
|
*/
|
|
5615
5615
|
class TextPipe {
|
|
5616
|
-
_translatable = signal(undefined);
|
|
5616
|
+
_translatable = signal(undefined, ...(ngDevMode ? [{ debugName: "_translatable" }] : []));
|
|
5617
5617
|
_text = text(this._translatable);
|
|
5618
5618
|
transform(translatable) {
|
|
5619
5619
|
// DO NOT call text() on key change to avoid stale RxJS subscriptions of previous texts,
|
|
@@ -5621,10 +5621,10 @@ class TextPipe {
|
|
|
5621
5621
|
untracked(() => this._translatable.set(translatable));
|
|
5622
5622
|
return this._text;
|
|
5623
5623
|
}
|
|
5624
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5625
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
5624
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
5625
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: TextPipe, isStandalone: true, name: "wbText" });
|
|
5626
5626
|
}
|
|
5627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5627
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextPipe, decorators: [{
|
|
5628
5628
|
type: Pipe,
|
|
5629
5629
|
args: [{ name: 'wbText' }]
|
|
5630
5630
|
}] });
|
|
@@ -5690,12 +5690,12 @@ class WorkbenchDialog {
|
|
|
5690
5690
|
}
|
|
5691
5691
|
/** @inheritDoc */
|
|
5692
5692
|
class ɵWorkbenchDialogSize {
|
|
5693
|
-
_minHeight = signal(undefined);
|
|
5694
|
-
_height = signal(undefined);
|
|
5695
|
-
_maxHeight = signal(undefined);
|
|
5696
|
-
_minWidth = signal(undefined);
|
|
5697
|
-
_width = signal(undefined);
|
|
5698
|
-
_maxWidth = signal(undefined);
|
|
5693
|
+
_minHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "_minHeight" }] : []));
|
|
5694
|
+
_height = signal(undefined, ...(ngDevMode ? [{ debugName: "_height" }] : []));
|
|
5695
|
+
_maxHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "_maxHeight" }] : []));
|
|
5696
|
+
_minWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "_minWidth" }] : []));
|
|
5697
|
+
_width = signal(undefined, ...(ngDevMode ? [{ debugName: "_width" }] : []));
|
|
5698
|
+
_maxWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "_maxWidth" }] : []));
|
|
5699
5699
|
/** @inheritDoc */
|
|
5700
5700
|
get minHeight() {
|
|
5701
5701
|
return this._minHeight;
|
|
@@ -5805,10 +5805,10 @@ class WorkbenchDialogRegistry {
|
|
|
5805
5805
|
this._dialogs$.value.forEach(dialog => dialog.destroy());
|
|
5806
5806
|
this._dialogs$.next([]);
|
|
5807
5807
|
}
|
|
5808
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
5809
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
5808
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5809
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogRegistry, providedIn: 'root' });
|
|
5810
5810
|
}
|
|
5811
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
5811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogRegistry, decorators: [{
|
|
5812
5812
|
type: Injectable,
|
|
5813
5813
|
args: [{ providedIn: 'root' }]
|
|
5814
5814
|
}] });
|
|
@@ -5870,10 +5870,10 @@ class WorkbenchBroadcastChannel {
|
|
|
5870
5870
|
* Container for managing CSS classes set in different scopes.
|
|
5871
5871
|
*/
|
|
5872
5872
|
class ClassList {
|
|
5873
|
-
_layout = signal([], { equal: isEqualArray });
|
|
5874
|
-
_navigation = signal([], { equal: isEqualArray });
|
|
5875
|
-
_route = signal([], { equal: isEqualArray });
|
|
5876
|
-
_application = signal([], { equal: isEqualArray });
|
|
5873
|
+
_layout = signal([], ...(ngDevMode ? [{ debugName: "_layout", equal: isEqualArray }] : [{ equal: isEqualArray }]));
|
|
5874
|
+
_navigation = signal([], ...(ngDevMode ? [{ debugName: "_navigation", equal: isEqualArray }] : [{ equal: isEqualArray }]));
|
|
5875
|
+
_route = signal([], ...(ngDevMode ? [{ debugName: "_route", equal: isEqualArray }] : [{ equal: isEqualArray }]));
|
|
5876
|
+
_application = signal([], ...(ngDevMode ? [{ debugName: "_application", equal: isEqualArray }] : [{ equal: isEqualArray }]));
|
|
5877
5877
|
/**
|
|
5878
5878
|
* CSS classes as list.
|
|
5879
5879
|
*/
|
|
@@ -5887,12 +5887,12 @@ class ClassList {
|
|
|
5887
5887
|
.concat(this._layout())
|
|
5888
5888
|
.concat(this._navigation())
|
|
5889
5889
|
.concat(this._route())
|
|
5890
|
-
.concat(this._application())));
|
|
5890
|
+
.concat(this._application())), ...(ngDevMode ? [{ debugName: "asList" }] : []));
|
|
5891
5891
|
this.asMap = computed(() => removeEmptyEntries(new Map()
|
|
5892
5892
|
.set('layout', this._layout())
|
|
5893
5893
|
.set('navigation', this._navigation())
|
|
5894
5894
|
.set('route', this._route())
|
|
5895
|
-
.set('application', this._application())));
|
|
5895
|
+
.set('application', this._application())), ...(ngDevMode ? [{ debugName: "asMap" }] : []));
|
|
5896
5896
|
}
|
|
5897
5897
|
/**
|
|
5898
5898
|
* Specifies CSS classes defined by the layout.
|
|
@@ -6024,9 +6024,9 @@ const WorkbenchRouteData = {
|
|
|
6024
6024
|
class WbComponentPortal {
|
|
6025
6025
|
_componentType;
|
|
6026
6026
|
_options;
|
|
6027
|
-
_viewContainerRef = signal(null);
|
|
6028
|
-
_componentRef = signal(undefined);
|
|
6029
|
-
_attached = signal(false);
|
|
6027
|
+
_viewContainerRef = signal(null, ...(ngDevMode ? [{ debugName: "_viewContainerRef" }] : []));
|
|
6028
|
+
_componentRef = signal(undefined, ...(ngDevMode ? [{ debugName: "_componentRef" }] : []));
|
|
6029
|
+
_attached = signal(false, ...(ngDevMode ? [{ debugName: "_attached" }] : []));
|
|
6030
6030
|
_logger = inject(Logger);
|
|
6031
6031
|
/**
|
|
6032
6032
|
* Gets the {@link ComponentRef} of the portal, or `undefined` if not constructed.
|
|
@@ -6035,11 +6035,11 @@ class WbComponentPortal {
|
|
|
6035
6035
|
/**
|
|
6036
6036
|
* Gets the {@link HTMLElement} of the portal, or `undefined` if not constructed.
|
|
6037
6037
|
*/
|
|
6038
|
-
element = computed(() => this.componentRef()?.location.nativeElement);
|
|
6038
|
+
element = computed(() => this.componentRef()?.location.nativeElement, ...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
6039
6039
|
/**
|
|
6040
6040
|
* Indicates if the portal has been constructed.
|
|
6041
6041
|
*/
|
|
6042
|
-
constructed = computed(() => !!this._componentRef());
|
|
6042
|
+
constructed = computed(() => !!this._componentRef(), ...(ngDevMode ? [{ debugName: "constructed" }] : []));
|
|
6043
6043
|
/**
|
|
6044
6044
|
* Indicates if the portal is attached to the DOM.
|
|
6045
6045
|
*/
|
|
@@ -6047,7 +6047,7 @@ class WbComponentPortal {
|
|
|
6047
6047
|
/**
|
|
6048
6048
|
* Indicates if the portal has been destroyed.
|
|
6049
6049
|
*/
|
|
6050
|
-
destroyed = computed(() => this._componentRef() === null);
|
|
6050
|
+
destroyed = computed(() => this._componentRef() === null, ...(ngDevMode ? [{ debugName: "destroyed" }] : []));
|
|
6051
6051
|
constructor(_componentType, _options) {
|
|
6052
6052
|
// IMPORTANT: In order for the component to have the "correct" injection context, construct it the time attaching it to the Angular component tree,
|
|
6053
6053
|
// or by calling {@link construct}. The "correct" injection context is crucial, for example, if the portal is displayed in a router outlet, so that
|
|
@@ -6156,12 +6156,12 @@ function createPortalComponent(componentType, options) {
|
|
|
6156
6156
|
* Use this directive on nested router outlets to be the target of top-level routes, i.e., routes registered by the workbench for each part and view.
|
|
6157
6157
|
*/
|
|
6158
6158
|
class RouterOutletRootContextDirective {
|
|
6159
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6160
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
6159
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RouterOutletRootContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6160
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: RouterOutletRootContextDirective, isStandalone: true, selector: "router-outlet[wbRouterOutletRootContext]", providers: [
|
|
6161
6161
|
{ provide: ChildrenOutletContexts, useFactory: () => inject(ApplicationRef).injector.get(ChildrenOutletContexts) },
|
|
6162
6162
|
], ngImport: i0 });
|
|
6163
6163
|
}
|
|
6164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RouterOutletRootContextDirective, decorators: [{
|
|
6165
6165
|
type: Directive,
|
|
6166
6166
|
args: [{
|
|
6167
6167
|
selector: 'router-outlet[wbRouterOutletRootContext]',
|
|
@@ -6237,10 +6237,10 @@ class PartSlotComponent {
|
|
|
6237
6237
|
}
|
|
6238
6238
|
});
|
|
6239
6239
|
}
|
|
6240
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6241
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
6240
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6241
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: PartSlotComponent, isStandalone: true, selector: "wb-part-slot", viewQueries: [{ propertyName: "_viewport", first: true, predicate: SciViewportComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<sci-viewport>\r\n <router-outlet [name]=\"part.id\" wbRouterOutletRootContext/>\r\n</sci-viewport>\r\n", styles: [":host{display:flex;flex-direction:column}:host>sci-viewport{flex:1 1 0}:host>sci-viewport>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterOutletRootContextDirective, selector: "router-outlet[wbRouterOutletRootContext]" }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }] });
|
|
6242
6242
|
}
|
|
6243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartSlotComponent, decorators: [{
|
|
6244
6244
|
type: Component,
|
|
6245
6245
|
args: [{ selector: 'wb-part-slot', imports: [
|
|
6246
6246
|
RouterOutlet,
|
|
@@ -6346,10 +6346,10 @@ class ViewDropPlaceholderRenderer {
|
|
|
6346
6346
|
},
|
|
6347
6347
|
});
|
|
6348
6348
|
}
|
|
6349
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6350
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
6349
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDropPlaceholderRenderer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6350
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDropPlaceholderRenderer, providedIn: 'root' });
|
|
6351
6351
|
}
|
|
6352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDropPlaceholderRenderer, decorators: [{
|
|
6353
6353
|
type: Injectable,
|
|
6354
6354
|
args: [{ providedIn: 'root' }]
|
|
6355
6355
|
}] });
|
|
@@ -6375,20 +6375,20 @@ class ViewDropZoneDirective {
|
|
|
6375
6375
|
/**
|
|
6376
6376
|
* Specifies the regions where views can be dropped. Defaults to every region.
|
|
6377
6377
|
*/
|
|
6378
|
-
regions = input(undefined, { alias: 'wbViewDropZoneRegions' });
|
|
6378
|
+
regions = input(undefined, ...(ngDevMode ? [{ debugName: "regions", alias: 'wbViewDropZoneRegions' }] : [{ alias: 'wbViewDropZoneRegions' }]));
|
|
6379
6379
|
/**
|
|
6380
6380
|
* Specifies attribute(s) to add to the drop zone.
|
|
6381
6381
|
*/
|
|
6382
|
-
attributes = input(undefined, { alias: 'wbViewDropZoneAttributes' });
|
|
6382
|
+
attributes = input(undefined, ...(ngDevMode ? [{ debugName: "attributes", alias: 'wbViewDropZoneAttributes' }] : [{ alias: 'wbViewDropZoneAttributes' }]));
|
|
6383
6383
|
/**
|
|
6384
6384
|
* Specifies the size of a drop zone region, either as percentage value [0,1] or absolute pixel value.
|
|
6385
6385
|
*/
|
|
6386
|
-
dropRegionSize = input(.5, { alias: 'wbViewDropZoneRegionSize', transform: (value) => value ?? .5 });
|
|
6386
|
+
dropRegionSize = input(.5, ...(ngDevMode ? [{ debugName: "dropRegionSize", alias: 'wbViewDropZoneRegionSize', transform: (value) => value ?? .5 }] : [{ alias: 'wbViewDropZoneRegionSize', transform: (value) => value ?? .5 }]));
|
|
6387
6387
|
/**
|
|
6388
6388
|
* Specifies the size of the visual placeholder when dragging a view over a drop region.
|
|
6389
6389
|
* Can be a percentage value [0,1] or absolute pixel value. Defaults to {@link dropRegionSize}.
|
|
6390
6390
|
*/
|
|
6391
|
-
dropPlaceholderSize = input(undefined, { alias: 'wbViewDropZonePlaceholderSize' });
|
|
6391
|
+
dropPlaceholderSize = input(undefined, ...(ngDevMode ? [{ debugName: "dropPlaceholderSize", alias: 'wbViewDropZonePlaceholderSize' }] : [{ alias: 'wbViewDropZonePlaceholderSize' }]));
|
|
6392
6392
|
/**
|
|
6393
6393
|
* Notifies when dropping a view.
|
|
6394
6394
|
*/
|
|
@@ -6403,7 +6403,7 @@ class ViewDropZoneDirective {
|
|
|
6403
6403
|
_dropRegionSize = computed(() => ({
|
|
6404
6404
|
maxHeight: coercePixelValue(this.dropRegionSize(), { containerSize: this._boundingClientRect().height }),
|
|
6405
6405
|
maxWidth: coercePixelValue(this.dropRegionSize(), { containerSize: this._boundingClientRect().width }),
|
|
6406
|
-
}));
|
|
6406
|
+
}), ...(ngDevMode ? [{ debugName: "_dropRegionSize" }] : []));
|
|
6407
6407
|
constructor() {
|
|
6408
6408
|
this.installDropZone();
|
|
6409
6409
|
this.installDropPlaceholderRenderer();
|
|
@@ -6598,10 +6598,10 @@ class ViewDropZoneDirective {
|
|
|
6598
6598
|
const { x, y, width, height } = this._boundingClientRect();
|
|
6599
6599
|
return new DOMRect(x + (region === 'east' ? width - coercePixelValue(size, { containerSize: width }) : 0), y + (region === 'south' ? height - coercePixelValue(size, { containerSize: height }) : 0), region === 'west' || region === 'east' ? coercePixelValue(size, { containerSize: width }) : width, region === 'north' || region === 'south' ? coercePixelValue(size, { containerSize: height }) : height);
|
|
6600
6600
|
}
|
|
6601
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6602
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
6601
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDropZoneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6602
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: ViewDropZoneDirective, isStandalone: true, selector: "[wbViewDropZone]", inputs: { regions: { classPropertyName: "regions", publicName: "wbViewDropZoneRegions", isSignal: true, isRequired: false, transformFunction: null }, attributes: { classPropertyName: "attributes", publicName: "wbViewDropZoneAttributes", isSignal: true, isRequired: false, transformFunction: null }, dropRegionSize: { classPropertyName: "dropRegionSize", publicName: "wbViewDropZoneRegionSize", isSignal: true, isRequired: false, transformFunction: null }, dropPlaceholderSize: { classPropertyName: "dropPlaceholderSize", publicName: "wbViewDropZonePlaceholderSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { viewDrop: "wbViewDropZoneDrop" }, ngImport: i0 });
|
|
6603
6603
|
}
|
|
6604
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDropZoneDirective, decorators: [{
|
|
6605
6605
|
type: Directive,
|
|
6606
6606
|
args: [{ selector: '[wbViewDropZone]' }]
|
|
6607
6607
|
}], ctorParameters: () => [] });
|
|
@@ -6704,11 +6704,11 @@ class WorkbenchPortalOutletDirective {
|
|
|
6704
6704
|
/**
|
|
6705
6705
|
* Specifies the portal.
|
|
6706
6706
|
*/
|
|
6707
|
-
portal = input.required({ alias: 'wbPortalOutlet' });
|
|
6707
|
+
portal = input.required(...(ngDevMode ? [{ debugName: "portal", alias: 'wbPortalOutlet' }] : [{ alias: 'wbPortalOutlet' }]));
|
|
6708
6708
|
/**
|
|
6709
6709
|
* Controls if to detach the portal's component instead of destroying it when this directive is destroyed, such as during a page re-layout
|
|
6710
6710
|
*/
|
|
6711
|
-
destroyOnDetach = input.required({ alias: 'wbPortalOutletDestroyOnDetach' });
|
|
6711
|
+
destroyOnDetach = input.required(...(ngDevMode ? [{ debugName: "destroyOnDetach", alias: 'wbPortalOutletDestroyOnDetach' }] : [{ alias: 'wbPortalOutletDestroyOnDetach' }]));
|
|
6712
6712
|
_viewContainerRef = inject(ViewContainerRef);
|
|
6713
6713
|
constructor() {
|
|
6714
6714
|
const nullTemplate = inject(TemplateRef);
|
|
@@ -6742,10 +6742,10 @@ class WorkbenchPortalOutletDirective {
|
|
|
6742
6742
|
portal.detach();
|
|
6743
6743
|
}
|
|
6744
6744
|
}
|
|
6745
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6746
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
6745
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPortalOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6746
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchPortalOutletDirective, isStandalone: true, selector: "ng-template[wbPortalOutlet]", inputs: { portal: { classPropertyName: "portal", publicName: "wbPortalOutlet", isSignal: true, isRequired: true, transformFunction: null }, destroyOnDetach: { classPropertyName: "destroyOnDetach", publicName: "wbPortalOutletDestroyOnDetach", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
6747
6747
|
}
|
|
6748
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPortalOutletDirective, decorators: [{
|
|
6749
6749
|
type: Directive,
|
|
6750
6750
|
args: [{ selector: 'ng-template[wbPortalOutlet]' }]
|
|
6751
6751
|
}], ctorParameters: () => [] });
|
|
@@ -6770,10 +6770,10 @@ class PartPortalPipe {
|
|
|
6770
6770
|
}
|
|
6771
6771
|
return this._partRegistry.get(partId).portal;
|
|
6772
6772
|
}
|
|
6773
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6774
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
6773
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartPortalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
6774
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: PartPortalPipe, isStandalone: true, name: "wbPartPortal" });
|
|
6775
6775
|
}
|
|
6776
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6776
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartPortalPipe, decorators: [{
|
|
6777
6777
|
type: Pipe,
|
|
6778
6778
|
args: [{ name: 'wbPartPortal' }]
|
|
6779
6779
|
}] });
|
|
@@ -6801,10 +6801,10 @@ class TreeNodeSashSizesPipe {
|
|
|
6801
6801
|
}
|
|
6802
6802
|
return [`${1 / (1 - ratio)}`, `${1 / ratio}`];
|
|
6803
6803
|
}
|
|
6804
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6805
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
6804
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TreeNodeSashSizesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
6805
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: TreeNodeSashSizesPipe, isStandalone: true, name: "wbTreeNodeSashSizes" });
|
|
6806
6806
|
}
|
|
6807
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6807
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TreeNodeSashSizesPipe, decorators: [{
|
|
6808
6808
|
type: Pipe,
|
|
6809
6809
|
args: [{ name: 'wbTreeNodeSashSizes' }]
|
|
6810
6810
|
}] });
|
|
@@ -6828,11 +6828,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
6828
6828
|
* Nodes are rendered as {@link SciSashboxComponent} and parts as {@link PartComponent} or {@link MainAreaPartComponent}.
|
|
6829
6829
|
*/
|
|
6830
6830
|
class GridElementComponent {
|
|
6831
|
-
element = input.required();
|
|
6831
|
+
element = input.required(...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
6832
6832
|
_workbenchRouter = inject(ɵWorkbenchRouter);
|
|
6833
6833
|
_workbenchLayoutService = inject(WorkbenchLayoutService);
|
|
6834
|
-
nodeId = computed(() => this.element() instanceof MTreeNode ? this.element().id : undefined);
|
|
6835
|
-
partId = computed(() => this.element() instanceof MPart ? this.element().id : undefined);
|
|
6834
|
+
nodeId = computed(() => this.element() instanceof MTreeNode ? this.element().id : undefined, ...(ngDevMode ? [{ debugName: "nodeId" }] : []));
|
|
6835
|
+
partId = computed(() => this.element() instanceof MPart ? this.element().id : undefined, ...(ngDevMode ? [{ debugName: "partId" }] : []));
|
|
6836
6836
|
onSashStart() {
|
|
6837
6837
|
this._workbenchLayoutService.signalResizing(true);
|
|
6838
6838
|
}
|
|
@@ -6841,10 +6841,10 @@ class GridElementComponent {
|
|
|
6841
6841
|
this._workbenchLayoutService.signalResizing(false);
|
|
6842
6842
|
void this._workbenchRouter.navigate(layout => layout.setTreeNodeSplitRatio(treeNode.id, ratio));
|
|
6843
6843
|
}
|
|
6844
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6845
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
6844
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: GridElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6845
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: GridElementComponent, isStandalone: true, selector: "wb-grid-element", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-parentnodeid": "element().parent?.id", "attr.data-nodeid": "nodeId()", "attr.data-partid": "partId()" } }, ngImport: i0, template: "@let element = this.element();\n\n@if (element.type === 'MPart') {\n <ng-container *wbPortalOutlet=\"element.id | wbPartPortal; destroyOnDetach: true\"/>\n} @else if (element.child1.visible && element.child2.visible) {\n @let sashSizes = element.ratio | wbTreeNodeSashSizes;\n <sci-sashbox [direction]=\"element.direction\"\n [attr.data-nodeid]=\"element.id\"\n (sashStart)=\"onSashStart()\"\n (sashEnd)=\"onSashEnd(element, $event)\">\n <!-- Child 1 -->\n <ng-template sciSash [size]=\"sashSizes[0]\" key=\"sash1\">\n <wb-grid-element [element]=\"element.child1\" class=\"sash-1\"/>\n </ng-template>\n <!-- Child 2 -->\n <ng-template sciSash [size]=\"sashSizes[1]\" key=\"sash2\">\n <wb-grid-element [element]=\"element.child2\" class=\"sash-2\"/>\n </ng-template>\n </sci-sashbox>\n} @else if (element.child1.visible) {\n <wb-grid-element [element]=\"element.child1\"/>\n} @else if (element.child2.visible) {\n <wb-grid-element [element]=\"element.child2\"/>\n}\n", styles: [":host{display:grid;overflow:hidden}:host>sci-sashbox{z-index:auto}\n"], dependencies: [{ kind: "component", type: GridElementComponent, selector: "wb-grid-element", inputs: ["element"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet", "wbPortalOutletDestroyOnDetach"] }, { kind: "component", type: SciSashboxComponent, selector: "sci-sashbox", inputs: ["direction"], outputs: ["sashStart", "sashEnd"] }, { kind: "directive", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: ["size", "minSize", "key", "animate"], exportAs: ["sciSash"] }, { kind: "pipe", type: PartPortalPipe, name: "wbPartPortal" }, { kind: "pipe", type: TreeNodeSashSizesPipe, name: "wbTreeNodeSashSizes" }] });
|
|
6846
6846
|
}
|
|
6847
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: GridElementComponent, decorators: [{
|
|
6848
6848
|
type: Component,
|
|
6849
6849
|
args: [{ selector: 'wb-grid-element', imports: [
|
|
6850
6850
|
WorkbenchPortalOutletDirective,
|
|
@@ -6877,10 +6877,10 @@ class RequiresDropZonePipe {
|
|
|
6877
6877
|
transform(element, region) {
|
|
6878
6878
|
return requiresDropZone(element, region);
|
|
6879
6879
|
}
|
|
6880
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6881
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
6880
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RequiresDropZonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
6881
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: RequiresDropZonePipe, isStandalone: true, name: "wbRequiresDropZone" });
|
|
6882
6882
|
}
|
|
6883
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6883
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: RequiresDropZonePipe, decorators: [{
|
|
6884
6884
|
type: Pipe,
|
|
6885
6885
|
args: [{ name: 'wbRequiresDropZone' }]
|
|
6886
6886
|
}] });
|
|
@@ -6946,11 +6946,11 @@ class GridComponent {
|
|
|
6946
6946
|
/**
|
|
6947
6947
|
* Specifies the grid to render.
|
|
6948
6948
|
*/
|
|
6949
|
-
grid = input.required();
|
|
6949
|
+
grid = input.required(...(ngDevMode ? [{ debugName: "grid" }] : []));
|
|
6950
6950
|
/**
|
|
6951
6951
|
* Controls dropping at the grid boundaries.
|
|
6952
6952
|
*/
|
|
6953
|
-
gridDropZone = input(false);
|
|
6953
|
+
gridDropZone = input(false, ...(ngDevMode ? [{ debugName: "gridDropZone" }] : []));
|
|
6954
6954
|
_workbenchId = inject(WORKBENCH_ID);
|
|
6955
6955
|
_viewDragService = inject(ViewDragService);
|
|
6956
6956
|
canDrop = inject(ViewDragService).canDrop(this.grid);
|
|
@@ -6972,10 +6972,10 @@ class GridComponent {
|
|
|
6972
6972
|
dragData: event.dragData,
|
|
6973
6973
|
});
|
|
6974
6974
|
}
|
|
6975
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
6976
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
6975
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: GridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6976
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: GridComponent, isStandalone: true, selector: "wb-grid", inputs: { grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: true, transformFunction: null }, gridDropZone: { classPropertyName: "gridDropZone", publicName: "gridDropZone", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let dropZone = gridDropZone();\n@if (dropZone) {\n <wb-grid-element [element]=\"grid().root\"\n wbViewDropZone\n [wbViewDropZoneRegionSize]=\"dropZone.dropRegionSize\"\n [wbViewDropZonePlaceholderSize]=\"dropZone.dropPlaceholderSize\"\n [wbViewDropZoneRegions]=\"canDrop() && {\n north: false,\n south: grid().root | wbRequiresDropZone:'south',\n west: grid().root | wbRequiresDropZone:'west',\n east: grid().root | wbRequiresDropZone:'east',\n center: false,\n }\"\n [wbViewDropZoneAttributes]=\"dropZone.dropZoneAttributes\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\"/>\n} @else {\n <wb-grid-element [element]=\"grid().root\"/>\n}\n", styles: [":host{display:grid}\n"], dependencies: [{ kind: "component", type: GridElementComponent, selector: "wb-grid-element", inputs: ["element"] }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneAttributes", "wbViewDropZoneRegionSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "pipe", type: RequiresDropZonePipe, name: "wbRequiresDropZone" }] });
|
|
6977
6977
|
}
|
|
6978
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
6978
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: GridComponent, decorators: [{
|
|
6979
6979
|
type: Component,
|
|
6980
6980
|
args: [{ selector: 'wb-grid', imports: [
|
|
6981
6981
|
GridElementComponent,
|
|
@@ -7078,10 +7078,10 @@ class DesktopSlotComponent {
|
|
|
7078
7078
|
</wb-workbench>
|
|
7079
7079
|
`);
|
|
7080
7080
|
}
|
|
7081
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7082
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7081
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DesktopSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7082
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: DesktopSlotComponent, isStandalone: true, selector: "wb-desktop-slot", viewQueries: [{ propertyName: "_viewport", first: true, predicate: SciViewportComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<sci-viewport>\r\n @let template = desktop.template();\r\n @if (template) {\r\n <ng-container *ngTemplateOutlet=\"template\"/>\r\n } @else {\r\n <router-outlet (activate)=\"onLegacyDesktopActivate()\"/>\r\n }\r\n</sci-viewport>\r\n", styles: [":host{display:flex;flex-direction:column}:host>sci-viewport{flex:1 1 0}:host>sci-viewport>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
7083
7083
|
}
|
|
7084
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7084
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DesktopSlotComponent, decorators: [{
|
|
7085
7085
|
type: Component,
|
|
7086
7086
|
args: [{ selector: 'wb-desktop-slot', imports: [
|
|
7087
7087
|
RouterOutlet,
|
|
@@ -7103,7 +7103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
7103
7103
|
* A desktop is a visual workbench element for displaying content when the layout is empty (no view and no navigated part).
|
|
7104
7104
|
*/
|
|
7105
7105
|
class WorkbenchDesktop {
|
|
7106
|
-
template = signal(undefined);
|
|
7106
|
+
template = signal(undefined, ...(ngDevMode ? [{ debugName: "template" }] : []));
|
|
7107
7107
|
slot;
|
|
7108
7108
|
constructor() {
|
|
7109
7109
|
this.slot = { portal: this.createPortal() };
|
|
@@ -7115,10 +7115,10 @@ class WorkbenchDesktop {
|
|
|
7115
7115
|
],
|
|
7116
7116
|
});
|
|
7117
7117
|
}
|
|
7118
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7119
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
7118
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDesktop, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7119
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDesktop, providedIn: 'root' });
|
|
7120
7120
|
}
|
|
7121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDesktop, decorators: [{
|
|
7122
7122
|
type: Injectable,
|
|
7123
7123
|
args: [{ providedIn: 'root' }]
|
|
7124
7124
|
}], ctorParameters: () => [] });
|
|
@@ -7158,7 +7158,7 @@ class MainAreaPartComponent {
|
|
|
7158
7158
|
_layout = inject(WorkbenchLayoutService).layout;
|
|
7159
7159
|
_viewDragService = inject(ViewDragService);
|
|
7160
7160
|
part = inject(ɵWorkbenchPart);
|
|
7161
|
-
mainAreaGrid = computed(() => this._layout().grids.mainArea);
|
|
7161
|
+
mainAreaGrid = computed(() => this._layout().grids.mainArea, ...(ngDevMode ? [{ debugName: "mainAreaGrid" }] : []));
|
|
7162
7162
|
desktop = inject(WorkbenchDesktop);
|
|
7163
7163
|
dasherize = dasherize;
|
|
7164
7164
|
canDrop = inject(ViewDragService).canDrop(computed(() => this._layout().grids.mainArea));
|
|
@@ -7180,10 +7180,10 @@ class MainAreaPartComponent {
|
|
|
7180
7180
|
dragData: event.dragData,
|
|
7181
7181
|
});
|
|
7182
7182
|
}
|
|
7183
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7184
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7183
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MainAreaPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7184
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: MainAreaPartComponent, isStandalone: true, selector: "wb-part[data-partid=\"part.main-area\"]", host: { properties: { "attr.data-grid": "dasherize(part.gridName())", "attr.data-active": "part.active() ? '' : null" } }, ngImport: i0, template: "@if (mainAreaGrid().root.visible) {\n <wb-grid [grid]=\"mainAreaGrid()\"\n [gridDropZone]=\"{\n dropRegionSize: 100,\n dropPlaceholderSize: 100,\n dropZoneAttributes: {\n 'data-grid': 'main-area',\n 'data-partid': part.id,\n }\n }\"\n [attr.data-grid]=\"'main-area'\"\n class=\"e2e-content\"/>\n} @else {\n <div wbViewDropZone\n [wbViewDropZoneRegions]=\"canDrop() && {center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneAttributes]=\"{\n 'data-desktop': '',\n 'data-partid': part.id,\n }\"\n (wbViewDropZoneDrop)=\"onDesktopViewDrop($event)\"\n class=\"desktop e2e-part-content e2e-content\">\n @if (part.navigation()) {\n <ng-container *wbPortalOutlet=\"part.slot.portal; destroyOnDetach: false\"/>\n } @else {\n <ng-container *wbPortalOutlet=\"desktop.slot.portal; destroyOnDetach: false\"/>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>wb-grid{flex:auto}:host>div.desktop{flex:auto;display:grid;position:relative}\n"], dependencies: [{ kind: "component", type: GridComponent, selector: "wb-grid", inputs: ["grid", "gridDropZone"] }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneAttributes", "wbViewDropZoneRegionSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet", "wbPortalOutletDestroyOnDetach"] }] });
|
|
7185
7185
|
}
|
|
7186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MainAreaPartComponent, decorators: [{
|
|
7187
7187
|
type: Component,
|
|
7188
7188
|
args: [{ selector: `wb-part[data-partid="${MAIN_AREA}"]`, imports: [
|
|
7189
7189
|
GridComponent,
|
|
@@ -7211,10 +7211,10 @@ class InstanceofPipe {
|
|
|
7211
7211
|
transform(object, type) {
|
|
7212
7212
|
return object instanceof type ? object : null;
|
|
7213
7213
|
}
|
|
7214
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7215
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
7214
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: InstanceofPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
7215
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: InstanceofPipe, isStandalone: true, name: "wbInstanceof" });
|
|
7216
7216
|
}
|
|
7217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: InstanceofPipe, decorators: [{
|
|
7218
7218
|
type: Pipe,
|
|
7219
7219
|
args: [{ name: 'wbInstanceof' }]
|
|
7220
7220
|
}] });
|
|
@@ -7229,14 +7229,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
7229
7229
|
* SPDX-License-Identifier: EPL-2.0
|
|
7230
7230
|
*/
|
|
7231
7231
|
class PartActionComponent {
|
|
7232
|
-
action = input.required({ transform: (action) => runInInjectionContext(this._injector, () => transform$1(action)) });
|
|
7232
|
+
action = input.required(...(ngDevMode ? [{ debugName: "action", transform: (action) => runInInjectionContext(this._injector, () => transform$1(action)) }] : [{ transform: (action) => runInInjectionContext(this._injector, () => transform$1(action)) }]));
|
|
7233
7233
|
_injector = inject(Injector);
|
|
7234
7234
|
TemplatePartAction = TemplatePartAction;
|
|
7235
7235
|
ComponentPartAction = ComponentPartAction;
|
|
7236
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7237
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7237
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: PartActionComponent, isStandalone: true, selector: "wb-part-action", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (action() | wbInstanceof:TemplatePartAction; as action) {\r\n <ng-container *ngTemplateOutlet=\"action.template; context: action.context; injector: action.injector\"/>\r\n}\r\n@if (action() | wbInstanceof:ComponentPartAction; as action) {\r\n <ng-container *ngComponentOutlet=\"action.component; inputs: action.inputs; injector: action.injector\"/>\r\n}\r\n", styles: [":host{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: InstanceofPipe, name: "wbInstanceof" }] });
|
|
7238
7238
|
}
|
|
7239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartActionComponent, decorators: [{
|
|
7240
7240
|
type: Component,
|
|
7241
7241
|
args: [{ selector: 'wb-part-action', imports: [
|
|
7242
7242
|
NgTemplateOutlet,
|
|
@@ -7330,7 +7330,7 @@ class IconComponent {
|
|
|
7330
7330
|
*
|
|
7331
7331
|
* Refer to the installed icon providers for a list of supported icons.
|
|
7332
7332
|
*/
|
|
7333
|
-
icon = input.required();
|
|
7333
|
+
icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
7334
7334
|
_injector = inject(Injector);
|
|
7335
7335
|
_host = inject(ElementRef).nativeElement;
|
|
7336
7336
|
_renderer = inject(Renderer2);
|
|
@@ -7370,10 +7370,10 @@ class IconComponent {
|
|
|
7370
7370
|
});
|
|
7371
7371
|
}, { injector: this._injector });
|
|
7372
7372
|
}
|
|
7373
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7374
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
7373
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7374
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: IconComponent, isStandalone: true, selector: "wb-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true, styles: [":host{display:inline-grid;place-content:center;font-size:1em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7375
7375
|
}
|
|
7376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: IconComponent, decorators: [{
|
|
7377
7377
|
type: Component,
|
|
7378
7378
|
args: [{ selector: 'wb-icon', template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-grid;place-content:center;font-size:1em}\n"] }]
|
|
7379
7379
|
}], ctorParameters: () => [] });
|
|
@@ -7405,10 +7405,10 @@ function computeIconDescriptor(icon) {
|
|
|
7405
7405
|
* Acts as placeholder if no icon could be found.
|
|
7406
7406
|
*/
|
|
7407
7407
|
class NullIconComponent {
|
|
7408
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7409
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
7408
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NullIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7409
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: NullIconComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
7410
7410
|
}
|
|
7411
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NullIconComponent, decorators: [{
|
|
7412
7412
|
type: Component,
|
|
7413
7413
|
args: [{ template: '' }]
|
|
7414
7414
|
}] });
|
|
@@ -7430,12 +7430,12 @@ class FilterFieldComponent {
|
|
|
7430
7430
|
* Sets focus order in sequential keyboard navigation.
|
|
7431
7431
|
* If not specified, the focus order is according to the position in the document (tabindex=0).
|
|
7432
7432
|
*/
|
|
7433
|
-
tabindex = input();
|
|
7433
|
+
tabindex = input(...(ngDevMode ? [undefined, { debugName: "tabindex" }] : []));
|
|
7434
7434
|
/**
|
|
7435
7435
|
* Specifies the hint displayed when this field is empty.
|
|
7436
7436
|
*/
|
|
7437
|
-
placeholder = input();
|
|
7438
|
-
disabled = input(false, { transform: booleanAttribute });
|
|
7437
|
+
placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
|
|
7438
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
7439
7439
|
/**
|
|
7440
7440
|
* Emits on filter change.
|
|
7441
7441
|
*/
|
|
@@ -7510,12 +7510,12 @@ class FilterFieldComponent {
|
|
|
7510
7510
|
this.formControl.setValue(value ?? '', { emitEvent: false });
|
|
7511
7511
|
this._cd.markForCheck();
|
|
7512
7512
|
}
|
|
7513
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7514
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
7513
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FilterFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7514
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: FilterFieldComponent, isStandalone: true, selector: "wb-filter-field", inputs: { tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filter: "filter" }, host: { listeners: { "focus": "focus()" }, properties: { "attr.tabindex": "this.componentTabindex", "class.empty": "this.empty" } }, providers: [
|
|
7515
7515
|
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => FilterFieldComponent) },
|
|
7516
|
-
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "<label [for]=\"id\" class=\"filter-icon\">\n <wb-icon icon=\"workbench.search\"/>\n</label>\n<input #input\n [attr.id]=\"id\"\n autocomplete=\"off\"\n [formControl]=\"formControl\"\n [tabindex]=\"tabindex() ?? 0\"\n [placeholder]=\"placeholder() ?? ''\">\n<button class=\"clear\" tabindex=\"-1\" (click)=\"onClear()\" [title]=\"('%workbench.clear.tooltip' | wbText)()\">\n <wb-icon icon=\"workbench.clear\"/>\n</button>\n", styles: [":host{display:inline-flex;flex-direction:row;gap:.5em;padding:.25em .5em}:host>label.filter-icon{flex:none;align-self:center;-webkit-user-select:none;user-select:none;font-size:1.25em}:host>input{all:unset;flex:auto;min-width:0}:host>input::placeholder{color:var(--sci-color-gray-400)}:host>button.clear:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:.25em;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);flex:none;align-self:center}:host>button.clear:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.clear:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.clear:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.clear:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.clear:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host:not(:focus-within):not(:hover)>button.clear:is(button,#sci-reset),:host:has(>input:disabled)>button.clear:is(button,#sci-reset),:host.empty>button.clear:is(button,#sci-reset){visibility:hidden}:host:has(>input:disabled)>label.filter-icon{color:var(--sci-color-text-subtlest)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "
|
|
7516
|
+
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "<label [for]=\"id\" class=\"filter-icon\">\n <wb-icon icon=\"workbench.search\"/>\n</label>\n<input #input\n [attr.id]=\"id\"\n autocomplete=\"off\"\n [formControl]=\"formControl\"\n [tabindex]=\"tabindex() ?? 0\"\n [placeholder]=\"placeholder() ?? ''\">\n<button class=\"clear\" tabindex=\"-1\" (click)=\"onClear()\" [title]=\"('%workbench.clear.tooltip' | wbText)()\">\n <wb-icon icon=\"workbench.clear\"/>\n</button>\n", styles: [":host{display:inline-flex;flex-direction:row;gap:.5em;padding:.25em .5em}:host>label.filter-icon{flex:none;align-self:center;-webkit-user-select:none;user-select:none;font-size:1.25em}:host>input{all:unset;flex:auto;min-width:0}:host>input::placeholder{color:var(--sci-color-gray-400)}:host>button.clear:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:.25em;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);flex:none;align-self:center}:host>button.clear:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.clear:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.clear:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.clear:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.clear:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host:not(:focus-within):not(:hover)>button.clear:is(button,#sci-reset),:host:has(>input:disabled)>button.clear:is(button,#sci-reset),:host.empty>button.clear:is(button,#sci-reset){visibility:hidden}:host:has(>input:disabled)>label.filter-icon{color:var(--sci-color-text-subtlest)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7517
7517
|
}
|
|
7518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FilterFieldComponent, decorators: [{
|
|
7519
7519
|
type: Component,
|
|
7520
7520
|
args: [{ selector: 'wb-filter-field', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
7521
7521
|
ReactiveFormsModule,
|
|
@@ -7546,10 +7546,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
7546
7546
|
*/
|
|
7547
7547
|
class ViewTabContentComponent {
|
|
7548
7548
|
view = inject(WorkbenchView);
|
|
7549
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7550
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7549
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7550
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewTabContentComponent, isStandalone: true, selector: "wb-view-tab-content", ngImport: i0, template: "@if (view.dirty()) {\n <wb-icon icon=\"workbench.dirty\" class=\"dirty e2e-dirty\"/>\n}\n\n<span class=\"title e2e-title\">\n {{(view.title() | wbText)()}}\n</span>\n\n@if (view.heading()) {\n <span class=\"heading e2e-heading\">\n {{(view.heading() | wbText)()}}\n </span>\n}\n", styles: [":host{display:inline-grid;grid-template-columns:1fr;grid-template-rows:1em;gap:.25em}:host:has(wb-icon.dirty){grid-template-columns:auto 1fr}:host>wb-icon.dirty{align-self:center;color:var(--sci-workbench-tab-text-color)}:host>span.title{align-self:center;margin-right:var(--sci-workbench-tab-title-offset-right);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host>span.heading{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;grid-column:1/-1;font-family:var(--sci-workbench-tab-heading-font-family),sans-serif;font-size:var(--sci-workbench-tab-heading-font-size);font-weight:var(--sci-workbench-tab-heading-font-weight)}@container viewtab (height < 3.5rem){:host>span.heading{display:none}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
7551
7551
|
}
|
|
7552
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7552
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabContentComponent, decorators: [{
|
|
7553
7553
|
type: Component,
|
|
7554
7554
|
args: [{ selector: 'wb-view-tab-content', imports: [
|
|
7555
7555
|
TextPipe,
|
|
@@ -7567,9 +7567,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
7567
7567
|
* SPDX-License-Identifier: EPL-2.0
|
|
7568
7568
|
*/
|
|
7569
7569
|
class ViewListItemComponent {
|
|
7570
|
-
viewId = input.required();
|
|
7570
|
+
viewId = input.required(...(ngDevMode ? [{ debugName: "viewId" }] : []));
|
|
7571
7571
|
_viewRegistry = inject(WORKBENCH_VIEW_REGISTRY);
|
|
7572
|
-
view = computed(() => this._viewRegistry.get(this.viewId()));
|
|
7572
|
+
view = computed(() => this._viewRegistry.get(this.viewId()), ...(ngDevMode ? [{ debugName: "view" }] : []));
|
|
7573
7573
|
viewTabContentPortal = this.computeViewTabContentPortal();
|
|
7574
7574
|
onClose() {
|
|
7575
7575
|
void this.view().close();
|
|
@@ -7588,10 +7588,10 @@ class ViewListItemComponent {
|
|
|
7588
7588
|
}));
|
|
7589
7589
|
});
|
|
7590
7590
|
}
|
|
7591
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7592
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7591
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7592
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewListItemComponent, isStandalone: true, selector: "wb-view-list-item", inputs: { viewId: { classPropertyName: "viewId", publicName: "viewId", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.active": "view().active()", "attr.data-viewid": "view().id" } }, ngImport: i0, template: "<div class=\"content\">\n <ng-container *cdkPortalOutlet=\"viewTabContentPortal()\"/>\n</div>\n\n@if (view().closable()) {\n <button (click)=\"onClose()\"\n [title]=\"('%workbench.close.tooltip' | wbText)()\"\n [disabled]=\"!view().isClosable()\"\n class=\"close e2e-close\">\n <wb-icon icon=\"workbench.close\"/>\n </button>\n}\n", styles: [":host{display:flex;align-items:center;padding:.6em 1em;position:relative;-webkit-user-select:none;user-select:none;gap:1em}:host.active{color:var(--sci-color-accent)}:host.active:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background-color:var(--sci-color-accent)}:host>div.content{flex:auto;display:grid;position:relative}:host>button.close:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);flex:none;visibility:hidden;padding:.125em;border-radius:var(--sci-corner-small);color:var(--sci-color-text)}:host>button.close:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.close:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.close:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.close:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.close:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host:hover>button.close:is(button,#sci-reset){visibility:visible}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7593
7593
|
}
|
|
7594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewListItemComponent, decorators: [{
|
|
7595
7595
|
type: Component,
|
|
7596
7596
|
args: [{ selector: 'wb-view-list-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
7597
7597
|
CdkPortalOutlet,
|
|
@@ -7630,15 +7630,15 @@ class ViewListComponent {
|
|
|
7630
7630
|
this.viewsInsideTabbar = computed(() => views
|
|
7631
7631
|
.filter(({ view }) => view.scrolledIntoView())
|
|
7632
7632
|
.filter(view => view.matches(filterText()))
|
|
7633
|
-
.map(({ view }) => view));
|
|
7633
|
+
.map(({ view }) => view), ...(ngDevMode ? [{ debugName: "viewsInsideTabbar" }] : []));
|
|
7634
7634
|
this.viewsOutsideTabbar = computed(() => views
|
|
7635
7635
|
.filter(({ view }) => !view.scrolledIntoView())
|
|
7636
7636
|
.filter(view => view.matches(filterText()))
|
|
7637
|
-
.map(({ view }) => view));
|
|
7637
|
+
.map(({ view }) => view), ...(ngDevMode ? [{ debugName: "viewsOutsideTabbar" }] : []));
|
|
7638
7638
|
const effectRef = effect(() => {
|
|
7639
7639
|
this._filterFieldComponent().focus();
|
|
7640
7640
|
effectRef.destroy();
|
|
7641
|
-
});
|
|
7641
|
+
}, ...(ngDevMode ? [{ debugName: "effectRef" }] : []));
|
|
7642
7642
|
}
|
|
7643
7643
|
onActivateView(view) {
|
|
7644
7644
|
void view.activate();
|
|
@@ -7653,10 +7653,10 @@ class ViewListComponent {
|
|
|
7653
7653
|
onDocumentCloseEvent() {
|
|
7654
7654
|
this._overlayRef.dispose();
|
|
7655
7655
|
}
|
|
7656
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7657
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7656
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7657
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewListComponent, isStandalone: true, selector: "wb-view-list", host: { listeners: { "document:keydown.escape": "onEscape()", "mousedown": "onHostCloseEvent($event)", "sci-microfrontend-focusin": "onHostCloseEvent($event)", "document:mousedown": "onDocumentCloseEvent()", "document:sci-microfrontend-focusin": "onDocumentCloseEvent()" }, properties: { "attr.data-partid": "this.partId" } }, viewQueries: [{ propertyName: "_filterFieldComponent", first: true, predicate: FilterFieldComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<wb-filter-field [formControl]=\"filterFormControl\" class=\"e2e-view-filter\"/>\n\n@if (viewsOutsideTabbar().length || viewsInsideTabbar().length) {\n <sci-viewport>\n @for (view of viewsOutsideTabbar(); track view.id) {\n <wb-view-list-item [viewId]=\"view.id\" (click)=\"onActivateView(view)\"/>\n }\n @if (viewsOutsideTabbar().length && viewsInsideTabbar().length) {\n <hr>\n }\n @for (view of viewsInsideTabbar(); track view.id) {\n <wb-view-list-item [viewId]=\"view.id\" (click)=\"onActivateView(view)\"/>\n }\n </sci-viewport>\n}\n", styles: [":host{display:flex;flex-direction:column;gap:.75em;width:var(--sci-workbench-contextmenu-width);border:1px solid var(--sci-color-border);color:var(--sci-color-text);background-color:var(--sci-color-background-elevation);border-radius:var(--sci-corner);overflow:hidden}.cdk-overlay-pane.wb-view-list-menu.wb-south :host{margin-top:1px}.cdk-overlay-pane.wb-view-list-menu.wb-north :host{margin-bottom:1px}:host>wb-filter-field{flex:none;margin:.5em .25em}:host>sci-viewport{flex:auto;max-height:350px}:host>sci-viewport::part(content){display:flex;flex-direction:column;gap:1px;padding-top:1px}:host>sci-viewport>wb-view-list-item{position:relative;cursor:var(--sci-workbench-button-cursor)}:host>sci-viewport>wb-view-list-item:hover{background-color:var(--sci-color-background-elevation-hover);box-shadow:0 0 0 1px var(--sci-color-border)}:host>sci-viewport>wb-view-list-item:has(+hr):after{position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:var(--sci-color-border);content:\"\"}:host>sci-viewport>hr{display:none}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FilterFieldComponent, selector: "wb-filter-field", inputs: ["tabindex", "placeholder", "disabled"], outputs: ["filter"] }, { kind: "component", type: ViewListItemComponent, selector: "wb-view-list-item", inputs: ["viewId"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7658
7658
|
}
|
|
7659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7659
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewListComponent, decorators: [{
|
|
7660
7660
|
type: Component,
|
|
7661
7661
|
args: [{ selector: 'wb-view-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
7662
7662
|
ReactiveFormsModule,
|
|
@@ -7730,10 +7730,10 @@ class ViewListButtonComponent {
|
|
|
7730
7730
|
_destroyRef = inject(DestroyRef);
|
|
7731
7731
|
/** Number of views that are scrolled out of the tab bar. */
|
|
7732
7732
|
scrolledOutOfViewTabCount;
|
|
7733
|
-
menuState = signal('closed');
|
|
7733
|
+
menuState = signal('closed', ...(ngDevMode ? [{ debugName: "menuState" }] : []));
|
|
7734
7734
|
constructor() {
|
|
7735
7735
|
const part = inject(WorkbenchPart);
|
|
7736
|
-
this.scrolledOutOfViewTabCount = computed(() => part.views().reduce((count, view) => view.scrolledIntoView() ? count : count + 1, 0));
|
|
7736
|
+
this.scrolledOutOfViewTabCount = computed(() => part.views().reduce((count, view) => view.scrolledIntoView() ? count : count + 1, 0), ...(ngDevMode ? [{ debugName: "scrolledOutOfViewTabCount" }] : []));
|
|
7737
7737
|
}
|
|
7738
7738
|
onClick() {
|
|
7739
7739
|
this.menuState.set('open');
|
|
@@ -7757,10 +7757,10 @@ class ViewListButtonComponent {
|
|
|
7757
7757
|
this._destroyRef.onDestroy(() => overlayRef.dispose());
|
|
7758
7758
|
return new Promise(resolve => componentRef.onDestroy(resolve));
|
|
7759
7759
|
}
|
|
7760
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7761
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
7760
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewListButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7761
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewListButtonComponent, isStandalone: true, selector: "wb-view-list-button", host: { listeners: { "click": "onClick()", "keydown.enter": "onClick()", "keydown.space": "onClick()" }, properties: { "class.menu-open": "menuState() === 'open'", "attr.tabindex": "0" } }, ngImport: i0, template: "<wb-icon icon=\"workbench.menu_down\" class=\"menu-down\"/>\n@if (scrolledOutOfViewTabCount(); as count) {\n <span class=\"count e2e-hidden-tab-count\">{{count}}</span>\n}\n", styles: [":host{all:unset;display:inline-grid;place-content:center;place-items:center;padding:.25em;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);display:flex;flex-direction:column}:host:hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host:active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host:focus:not(:focus-visible){outline:none}:host:focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host:disabled{color:var(--sci-color-gray-500)}:host.menu-open{background-color:var(--sci-workbench-button-background-color-hover)}:host>wb-icon.menu-down{flex:none}:host>span.count{flex:none;font-size:var(--sci-workbench-part-hidden-tab-count-size);line-height:.75}@container style(--sci-workbench-part-hidden-tab-count-size: 0){:host>span.count{display:none}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }] });
|
|
7762
7762
|
}
|
|
7763
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7763
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewListButtonComponent, decorators: [{
|
|
7764
7764
|
type: Component,
|
|
7765
7765
|
args: [{ selector: 'wb-view-list-button', host: {
|
|
7766
7766
|
'[class.menu-open]': `menuState() === 'open'`,
|
|
@@ -7800,10 +7800,10 @@ class WbFormatAcceleratorPipe {
|
|
|
7800
7800
|
.map(key => key[0].toUpperCase() + key.substring(1).toLowerCase())
|
|
7801
7801
|
.join('+');
|
|
7802
7802
|
}
|
|
7803
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
7804
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
7803
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WbFormatAcceleratorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
7804
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: WbFormatAcceleratorPipe, isStandalone: true, name: "wbFormatAccelerator" });
|
|
7805
7805
|
}
|
|
7806
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
7806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WbFormatAcceleratorPipe, decorators: [{
|
|
7807
7807
|
type: Pipe,
|
|
7808
7808
|
args: [{ name: 'wbFormatAccelerator' }]
|
|
7809
7809
|
}] });
|
|
@@ -7924,7 +7924,7 @@ function fromMoveHandle$(handle) {
|
|
|
7924
7924
|
* respective DOM properties.
|
|
7925
7925
|
*/
|
|
7926
7926
|
class MovableDirective {
|
|
7927
|
-
wbHandleElement = input.required({ alias: 'wbHandle' });
|
|
7927
|
+
wbHandleElement = input.required(...(ngDevMode ? [{ debugName: "wbHandleElement", alias: 'wbHandle' }] : [{ alias: 'wbHandle' }]));
|
|
7928
7928
|
wbMove = output({ alias: 'wbMovableMove' });
|
|
7929
7929
|
_workbenchLayoutService = inject(WorkbenchLayoutService);
|
|
7930
7930
|
_host = inject(ElementRef).nativeElement;
|
|
@@ -8006,10 +8006,10 @@ class MovableDirective {
|
|
|
8006
8006
|
dispose: () => subscription.unsubscribe(),
|
|
8007
8007
|
};
|
|
8008
8008
|
}
|
|
8009
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8010
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
8009
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MovableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8010
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: MovableDirective, isStandalone: true, selector: "[wbMovable]", inputs: { wbHandleElement: { classPropertyName: "wbHandleElement", publicName: "wbHandle", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { wbMove: "wbMovableMove" }, ngImport: i0 });
|
|
8011
8011
|
}
|
|
8012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8012
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MovableDirective, decorators: [{
|
|
8013
8013
|
type: Directive,
|
|
8014
8014
|
args: [{ selector: '[wbMovable]' }]
|
|
8015
8015
|
}], ctorParameters: () => [] });
|
|
@@ -8046,7 +8046,7 @@ const HANDLE_SIZE = 6;
|
|
|
8046
8046
|
* - must be horizontally centered in its layout
|
|
8047
8047
|
*/
|
|
8048
8048
|
class ResizableDirective {
|
|
8049
|
-
enabled = input(true, { alias: 'wbResizableEnabled' });
|
|
8049
|
+
enabled = input(true, ...(ngDevMode ? [{ debugName: "enabled", alias: 'wbResizableEnabled' }] : [{ alias: 'wbResizableEnabled' }]));
|
|
8050
8050
|
wbResize = output({ alias: 'wbResizableResize' });
|
|
8051
8051
|
_workbenchLayoutService = inject(WorkbenchLayoutService);
|
|
8052
8052
|
_host = inject(ElementRef).nativeElement;
|
|
@@ -8305,10 +8305,10 @@ class ResizableDirective {
|
|
|
8305
8305
|
translateX: getComputedTranslateX(this._host) + delta / 2, // Move only by half the delta as centered horizontally.
|
|
8306
8306
|
});
|
|
8307
8307
|
}
|
|
8308
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8309
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
8308
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8309
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: ResizableDirective, isStandalone: true, selector: "[wbResizable]", inputs: { enabled: { classPropertyName: "enabled", publicName: "wbResizableEnabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wbResize: "wbResizableResize" }, ngImport: i0 });
|
|
8310
8310
|
}
|
|
8311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ResizableDirective, decorators: [{
|
|
8312
8312
|
type: Directive,
|
|
8313
8313
|
args: [{ selector: '[wbResizable]' }]
|
|
8314
8314
|
}], ctorParameters: () => [] });
|
|
@@ -8419,10 +8419,10 @@ class DialogHeaderComponent {
|
|
|
8419
8419
|
onCloseMouseDown(event) {
|
|
8420
8420
|
event.stopPropagation(); // Prevent dragging the dialog with the close button.
|
|
8421
8421
|
}
|
|
8422
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8423
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
8422
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DialogHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8423
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", 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 | wbText)()}}</span>\n </div>\n}\n\n@if (dialog.closable()) {\n <button tabindex=\"-1\" class=\"close e2e-close\"\n [title]=\"('%workbench.close.tooltip' | wbText)()\"\n (mousedown)=\"onCloseMouseDown($event)\"\n (click)=\"onCloseClick()\">\n <wb-icon icon=\"workbench.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),sans-serif;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:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);flex:none;align-self:center;border-radius:var(--sci-corner-small);padding:.125em}:host>button.close:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.close:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.close:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.close:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.close:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
8424
8424
|
}
|
|
8425
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DialogHeaderComponent, decorators: [{
|
|
8426
8426
|
type: Component,
|
|
8427
8427
|
args: [{ selector: 'wb-dialog-header', imports: [
|
|
8428
8428
|
TextPipe,
|
|
@@ -8458,10 +8458,10 @@ class NullIfEmptyPipe {
|
|
|
8458
8458
|
}
|
|
8459
8459
|
return value;
|
|
8460
8460
|
}
|
|
8461
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8462
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
8461
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NullIfEmptyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
8462
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: NullIfEmptyPipe, isStandalone: true, name: "wbNullIfEmpty" });
|
|
8463
8463
|
}
|
|
8464
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NullIfEmptyPipe, decorators: [{
|
|
8465
8465
|
type: Pipe,
|
|
8466
8466
|
args: [{ name: 'wbNullIfEmpty' }]
|
|
8467
8467
|
}] });
|
|
@@ -8482,10 +8482,10 @@ class DialogActionFilterPipe {
|
|
|
8482
8482
|
transform(actions, align) {
|
|
8483
8483
|
return actions?.filter(action => action.align() === align) ?? [];
|
|
8484
8484
|
}
|
|
8485
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8486
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
8485
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DialogActionFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
8486
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: DialogActionFilterPipe, isStandalone: true, name: "wbDialogActionFilter" });
|
|
8487
8487
|
}
|
|
8488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DialogActionFilterPipe, decorators: [{
|
|
8489
8489
|
type: Pipe,
|
|
8490
8490
|
args: [{ name: 'wbDialogActionFilter' }]
|
|
8491
8491
|
}] });
|
|
@@ -8504,10 +8504,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
8504
8504
|
*/
|
|
8505
8505
|
class DialogFooterComponent {
|
|
8506
8506
|
dialog = inject(ɵWorkbenchDialog);
|
|
8507
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8508
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
8507
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DialogFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8508
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: DialogFooterComponent, isStandalone: true, selector: "wb-dialog-footer", ngImport: i0, template: "<!-- Start Actions -->\n@if (dialog.actions | wbDialogActionFilter:'start' | wbNullIfEmpty; as actions) {\n <div class=\"actions start\">\n @for (action of actions; track action) {\n <ng-container *ngTemplateOutlet=\"action.template\"/>\n }\n </div>\n}\n\n<!-- End Actions -->\n@if (dialog.actions | wbDialogActionFilter:'end' | wbNullIfEmpty; as actions) {\n <div class=\"actions end\">\n @for (action of actions; track action) {\n <ng-container *ngTemplateOutlet=\"action.template\"/>\n }\n </div>\n}\n", styles: [":host{display:flex;padding:calc(.75 * var(--sci-workbench-dialog-padding)) var(--sci-workbench-dialog-padding);gap:calc(2 * var(--sci-workbench-dialog-padding))}:host>div.actions{flex:auto;display:flex;align-items:center;gap:calc(.5 * var(--sci-workbench-dialog-padding))}:host>div.actions.start{place-content:flex-start}:host>div.actions.end{place-content:flex-end}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: NullIfEmptyPipe, name: "wbNullIfEmpty" }, { kind: "pipe", type: DialogActionFilterPipe, name: "wbDialogActionFilter" }] });
|
|
8509
8509
|
}
|
|
8510
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8510
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DialogFooterComponent, decorators: [{
|
|
8511
8511
|
type: Component,
|
|
8512
8512
|
args: [{ selector: 'wb-dialog-footer', imports: [
|
|
8513
8513
|
NgTemplateOutlet,
|
|
@@ -8558,10 +8558,10 @@ class GlassPaneDirective {
|
|
|
8558
8558
|
ngOnDestroy() {
|
|
8559
8559
|
this._glassPane?.dispose();
|
|
8560
8560
|
}
|
|
8561
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8562
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
8561
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: GlassPaneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8562
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: GlassPaneDirective, isStandalone: true, selector: "[wbGlassPane]", ngImport: i0 });
|
|
8563
8563
|
}
|
|
8564
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8564
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: GlassPaneDirective, decorators: [{
|
|
8565
8565
|
type: Directive,
|
|
8566
8566
|
args: [{ selector: '[wbGlassPane]' }]
|
|
8567
8567
|
}], ctorParameters: () => [] });
|
|
@@ -8670,9 +8670,9 @@ class WorkbenchDialogComponent {
|
|
|
8670
8670
|
/** Element of the dialog that has or last had focus */
|
|
8671
8671
|
_activeElement$ = new BehaviorSubject(undefined);
|
|
8672
8672
|
dialog = inject(ɵWorkbenchDialog);
|
|
8673
|
-
headerHeight = signal(undefined);
|
|
8674
|
-
transformTranslateX = signal(0);
|
|
8675
|
-
transformTranslateY = signal(0);
|
|
8673
|
+
headerHeight = signal(undefined, ...(ngDevMode ? [{ debugName: "headerHeight" }] : []));
|
|
8674
|
+
transformTranslateX = signal(0, ...(ngDevMode ? [{ debugName: "transformTranslateX" }] : []));
|
|
8675
|
+
transformTranslateY = signal(0, ...(ngDevMode ? [{ debugName: "transformTranslateY" }] : []));
|
|
8676
8676
|
constructor() {
|
|
8677
8677
|
this.setDialogOffset();
|
|
8678
8678
|
this.addHostCssClasses();
|
|
@@ -8769,14 +8769,14 @@ class WorkbenchDialogComponent {
|
|
|
8769
8769
|
onHeaderDimensionChange(dimension) {
|
|
8770
8770
|
this.headerHeight.set(`${dimension.offsetHeight}px`);
|
|
8771
8771
|
}
|
|
8772
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
8773
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
8772
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8773
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: WorkbenchDialogComponent, isStandalone: true, selector: "wb-dialog", host: { listeners: { "keydown.escape": "onEscape($event)" }, properties: { "attr.data-dialogid": "dialog.id", "class.justified": "!dialog.padding()", "style.--\u0275dialog-transform-translate-x": "transformTranslateX()", "style.--\u0275dialog-transform-translate-y": "transformTranslateY()", "style.--\u0275dialog-min-height": "dialog.size.minHeight() ?? headerHeight()", "style.--\u0275dialog-height": "dialog.size.height()", "style.--\u0275dialog-max-height": "dialog.size.maxHeight()", "style.--\u0275dialog-min-width": "dialog.size.minWidth() ?? '100px'", "style.--\u0275dialog-width": "dialog.size.width()", "style.--\u0275dialog-max-width": "dialog.size.maxWidth()" } }, viewQueries: [{ propertyName: "_cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true, isSignal: true }, { propertyName: "_dialogElement", first: true, predicate: ["dialog_element"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"dialog e2e-dialog\"\n [class.blinking]=\"dialog.blinking$ | async\"\n [tabindex]=\"-1\"\n wbMovable [wbHandle]=\"header\" (wbMovableMove)=\"onMove($event)\"\n wbResizable [wbResizableEnabled]=\"dialog.resizable()\" (wbResizableResize)=\"onResize($event)\"\n @enter\n [@.disabled]=\"!dialog.animate\"\n wbGlassPane\n #dialog_element>\n <div class=\"dialog-box e2e-dialog-box\" cdkTrapFocus>\n <header #header\n class=\"e2e-dialog-header\"\n [class.divider]=\"dialog.header?.divider() ?? true\"\n sciDimension (sciDimensionChange)=\"onHeaderDimensionChange($event)\">\n <ng-container *ngTemplateOutlet=\"dialog.header?.template ?? default_dialog_header\"/>\n </header>\n\n <sci-viewport class=\"content e2e-dialog-content\">\n <ng-container *ngComponentOutlet=\"dialog.component; inputs: dialog.inputs\"/>\n </sci-viewport>\n\n @if (dialog.footer || dialog.actions.length) {\n <footer class=\"e2e-dialog-footer\" [class.divider]=\"dialog.footer?.divider() ?? true\">\n <ng-container *ngTemplateOutlet=\"dialog.footer?.template ?? default_dialog_footer\"/>\n </footer>\n }\n </div>\n</div>\n\n<ng-template #default_dialog_header>\n <wb-dialog-header/>\n</ng-template>\n\n<ng-template #default_dialog_footer>\n <wb-dialog-footer/>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{--\\275 dialog-transform-translate-x: 0;--\\275 dialog-transform-translate-y: 0;--\\275 dialog-min-height: initial;--\\275 dialog-height: initial;--\\275 dialog-max-height: initial;--\\275 dialog-min-width: initial;--\\275 dialog-width: initial;--\\275 dialog-max-width: initial;--\\275 dialog-padding: var(--sci-workbench-dialog-padding);display:flex;flex-direction:column;align-items:center;position:relative}:host.justified{--\\275 dialog-padding: 0}:host>div.dialog{display:flex;flex-direction:column;position:absolute;top:3%;color:var(--sci-color-text);transform:translate(calc(1px * var(--\\275 dialog-transform-translate-x))) translateY(calc(1px * var(--\\275 dialog-transform-translate-y)));min-height:var(--\\275 dialog-min-height);height:var(--\\275 dialog-height);max-height:var(--\\275 dialog-max-height);min-width:var(--\\275 dialog-min-width);width:var(--\\275 dialog-width);max-width:var(--\\275 dialog-max-width);outline:none;pointer-events:auto}:host>div.dialog>div.dialog-box{flex:auto;display:flex;flex-direction:column;gap:calc(1.25 * var(--\\275 dialog-padding));border:1px solid var(--sci-color-border);border-radius:var(--sci-corner);background-color:var(--sci-color-background-elevation);box-shadow:var(--sci-elevation) var(--sci-static-color-black);overflow:hidden}:host>div.dialog>div.dialog-box>header{flex:none}:host>div.dialog>div.dialog-box>header.divider{border-bottom:1px solid var(--sci-color-border)}:host>div.dialog>div.dialog-box>sci-viewport{flex:auto}:host>div.dialog>div.dialog-box>sci-viewport::part(content){padding-inline:var(--\\275 dialog-padding)}:host>div.dialog>div.dialog-box>footer{flex:none}:host>div.dialog>div.dialog-box>footer.divider{border-top:1px solid var(--sci-color-border)}:host>div.dialog.blinking{animation-duration:50ms;animation-iteration-count:infinite;animation-name:blink-animation}@keyframes blink-animation{0%{transform:translate(calc(1px * var(--\\275 dialog-transform-translate-x) - 2px)) translateY(calc(1px * var(--\\275 dialog-transform-translate-y) - 1px))}to{transform:translate(calc(1px * var(--\\275 dialog-transform-translate-x) + 2px)) translateY(calc(1px * var(--\\275 dialog-transform-translate-y) + 1px))}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: MovableDirective, selector: "[wbMovable]", inputs: ["wbHandle"], outputs: ["wbMovableMove"] }, { kind: "directive", type: ResizableDirective, selector: "[wbResizable]", inputs: ["wbResizableEnabled"], outputs: ["wbResizableResize"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "directive", type: SciDimensionDirective, selector: "[sciDimension]", inputs: ["emitOutsideAngular"], outputs: ["sciDimensionChange"] }, { kind: "component", type: DialogHeaderComponent, selector: "wb-dialog-header" }, { kind: "component", type: DialogFooterComponent, selector: "wb-dialog-footer" }, { kind: "directive", type: GlassPaneDirective, selector: "[wbGlassPane]" }, { kind: "pipe", type: AsyncPipe, name: "async" }], viewProviders: [
|
|
8774
8774
|
configureDialogGlassPane(),
|
|
8775
8775
|
], animations: [
|
|
8776
8776
|
trigger('enter', provideEnterAnimation()),
|
|
8777
8777
|
] });
|
|
8778
8778
|
}
|
|
8779
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
8779
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogComponent, decorators: [{
|
|
8780
8780
|
type: Component,
|
|
8781
8781
|
args: [{ selector: 'wb-dialog', imports: [
|
|
8782
8782
|
NgComponentOutlet,
|
|
@@ -8860,11 +8860,11 @@ class ɵWorkbenchDialog {
|
|
|
8860
8860
|
_blink$ = new Subject();
|
|
8861
8861
|
_focusMonitor = inject(WorkbenchFocusMonitor);
|
|
8862
8862
|
_attached;
|
|
8863
|
-
_title = signal(undefined);
|
|
8864
|
-
_closable = signal(true);
|
|
8865
|
-
_resizable = signal(true);
|
|
8866
|
-
_padding = signal(true);
|
|
8867
|
-
_cssClass = signal([]);
|
|
8863
|
+
_title = signal(undefined, ...(ngDevMode ? [{ debugName: "_title" }] : []));
|
|
8864
|
+
_closable = signal(true, ...(ngDevMode ? [{ debugName: "_closable" }] : []));
|
|
8865
|
+
_resizable = signal(true, ...(ngDevMode ? [{ debugName: "_resizable" }] : []));
|
|
8866
|
+
_padding = signal(true, ...(ngDevMode ? [{ debugName: "_padding" }] : []));
|
|
8867
|
+
_cssClass = signal([], ...(ngDevMode ? [{ debugName: "_cssClass" }] : []));
|
|
8868
8868
|
/**
|
|
8869
8869
|
* Result (or error) to be passed to the dialog opener.
|
|
8870
8870
|
*/
|
|
@@ -8875,7 +8875,7 @@ class ɵWorkbenchDialog {
|
|
|
8875
8875
|
*/
|
|
8876
8876
|
blockedBy$ = new BehaviorSubject(null);
|
|
8877
8877
|
size = new ɵWorkbenchDialogSize();
|
|
8878
|
-
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id);
|
|
8878
|
+
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id, ...(ngDevMode ? [{ debugName: "focused" }] : []));
|
|
8879
8879
|
blinking$ = new BehaviorSubject(false);
|
|
8880
8880
|
context = {
|
|
8881
8881
|
view: inject(ɵWorkbenchView, { optional: true }),
|
|
@@ -9096,7 +9096,7 @@ class ɵWorkbenchDialog {
|
|
|
9096
9096
|
}
|
|
9097
9097
|
else {
|
|
9098
9098
|
const workbenchElementRef = inject(WORKBENCH_ELEMENT_REF);
|
|
9099
|
-
const hostElement = computed(() => (this.context.view ? this.context.view.slot.portal.element() : workbenchElementRef()?.element.nativeElement));
|
|
9099
|
+
const hostElement = computed(() => (this.context.view ? this.context.view.slot.portal.element() : workbenchElementRef()?.element.nativeElement), ...(ngDevMode ? [{ debugName: "hostElement" }] : []));
|
|
9100
9100
|
const hostBounds = boundingClientRect(hostElement);
|
|
9101
9101
|
const viewDragService = inject(ViewDragService);
|
|
9102
9102
|
effect(() => {
|
|
@@ -9220,10 +9220,10 @@ class ɵWorkbenchDialogService {
|
|
|
9220
9220
|
async waitUntilApplicationModalDialogsClosed() {
|
|
9221
9221
|
await firstValueFrom(this._dialogRegistry.top$().pipe(filter(top => !top)));
|
|
9222
9222
|
}
|
|
9223
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9224
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
9223
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9224
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchDialogService, providedIn: 'root' });
|
|
9225
9225
|
}
|
|
9226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchDialogService, decorators: [{
|
|
9227
9227
|
type: Injectable,
|
|
9228
9228
|
args: [{ providedIn: 'root' }]
|
|
9229
9229
|
}] });
|
|
@@ -9313,10 +9313,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
9313
9313
|
* - `--sci-workbench-dialog-title-align`
|
|
9314
9314
|
*/
|
|
9315
9315
|
class WorkbenchDialogService {
|
|
9316
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9317
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
9316
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9317
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogService, providedIn: 'root', useExisting: ɵWorkbenchDialogService });
|
|
9318
9318
|
}
|
|
9319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogService, decorators: [{
|
|
9320
9320
|
type: Injectable,
|
|
9321
9321
|
args: [{ providedIn: 'root', useExisting: ɵWorkbenchDialogService }]
|
|
9322
9322
|
}] });
|
|
@@ -9331,11 +9331,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
9331
9331
|
* SPDX-License-Identifier: EPL-2.0
|
|
9332
9332
|
*/
|
|
9333
9333
|
class MessageBoxFooterComponent {
|
|
9334
|
-
actions = input.required();
|
|
9335
|
-
severity = input.required();
|
|
9334
|
+
actions = input.required(...(ngDevMode ? [{ debugName: "actions" }] : []));
|
|
9335
|
+
severity = input.required(...(ngDevMode ? [{ debugName: "severity" }] : []));
|
|
9336
9336
|
action = output();
|
|
9337
9337
|
preferredSizeChange = output();
|
|
9338
|
-
_actionButtons = viewChildren('action_button');
|
|
9338
|
+
_actionButtons = viewChildren('action_button', ...(ngDevMode ? [{ debugName: "_actionButtons" }] : []));
|
|
9339
9339
|
constructor() {
|
|
9340
9340
|
void this.emitPreferredSize();
|
|
9341
9341
|
}
|
|
@@ -9360,10 +9360,10 @@ class MessageBoxFooterComponent {
|
|
|
9360
9360
|
host.classList.remove('calculating-min-width');
|
|
9361
9361
|
}
|
|
9362
9362
|
}
|
|
9363
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9364
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
9363
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageBoxFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9364
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: MessageBoxFooterComponent, isStandalone: true, selector: "wb-message-box-footer", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { action: "action", preferredSizeChange: "preferredSizeChange" }, host: { properties: { "attr.data-severity": "severity()" } }, viewQueries: [{ propertyName: "_actionButtons", predicate: ["action_button"], descendants: true, isSignal: true }], ngImport: i0, template: "@for (action of actions() | keyvalue:insertionSortOrderFn; track action.key) {\n <button #action_button\n (click)=\"onAction(action.key)\"\n (keydown.arrowLeft)=\"onArrowKey($index, 'left')\"\n (keydown.arrowRight)=\"onArrowKey($index, 'right')\"\n [attr.data-action]=\"action.key\"\n class=\"action e2e-action\">\n {{(action.value | wbText)()}}\n </button>\n\n @if (!$last) {\n <span class=\"divider\"></span>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{--\\275message-box-severity-color: initial;display:flex;height:3em;background-color:var(--sci-color-background-secondary);color:var(--sci-color-text)}:host[data-severity=info]{--\\275message-box-severity-color: var(--sci-color-accent)}:host[data-severity=warn]{--\\275message-box-severity-color: var(--sci-color-notice)}:host[data-severity=error]{--\\275message-box-severity-color: var(--sci-color-negative)}:host.calculating-min-width{position:absolute}:host>button.action:is(button,#sci-reset){all:unset;flex:1;margin:2px;border:1px solid transparent;border-radius:var(--sci-corner-small);transition:border-color ease-in-out .15s;cursor:var(--sci-workbench-messagebox-action-cursor);-webkit-user-select:none;user-select:none;text-align:center;min-width:7.5em;padding-inline:.5em;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host>button.action:is(button,#sci-reset):focus,:host>button.action:is(button,#sci-reset):active{outline:none;color:var(--\\275message-box-severity-color);border-color:var(--\\275message-box-severity-color)}:host>button.action:is(button,#sci-reset):hover{background-color:var(--sci-workbench-messagebox-action-background-color-hover)}:host>span.divider{width:1px;background-color:var(--sci-color-border)}\n"], dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
9365
9365
|
}
|
|
9366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageBoxFooterComponent, decorators: [{
|
|
9367
9367
|
type: Component,
|
|
9368
9368
|
args: [{ selector: 'wb-message-box-footer', imports: [
|
|
9369
9369
|
KeyValuePipe,
|
|
@@ -9399,7 +9399,7 @@ class WorkbenchDialogFooterDirective {
|
|
|
9399
9399
|
* Specifies if to display a visual separator between the dialog content and this footer.
|
|
9400
9400
|
* Defaults to `true`.
|
|
9401
9401
|
*/
|
|
9402
|
-
divider = input(undefined, { transform: booleanAttribute });
|
|
9402
|
+
divider = input(undefined, ...(ngDevMode ? [{ debugName: "divider", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
9403
9403
|
template = inject(TemplateRef);
|
|
9404
9404
|
_footer;
|
|
9405
9405
|
constructor() {
|
|
@@ -9409,10 +9409,10 @@ class WorkbenchDialogFooterDirective {
|
|
|
9409
9409
|
// Defer disposing footer to avoid `ExpressionChangedAfterItHasBeenCheckedError`.
|
|
9410
9410
|
inject(DestroyRef).onDestroy(() => asapScheduler.schedule(() => this._footer?.dispose()));
|
|
9411
9411
|
}
|
|
9412
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9413
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
9412
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9413
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchDialogFooterDirective, isStandalone: true, selector: "ng-template[wbDialogFooter]", inputs: { divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
9414
9414
|
}
|
|
9415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogFooterDirective, decorators: [{
|
|
9416
9416
|
type: Directive,
|
|
9417
9417
|
args: [{ selector: 'ng-template[wbDialogFooter]' }]
|
|
9418
9418
|
}], ctorParameters: () => [] });
|
|
@@ -9443,7 +9443,7 @@ class WorkbenchDialogHeaderDirective {
|
|
|
9443
9443
|
* Specifies if to display a visual separator between this header and the dialog content.
|
|
9444
9444
|
* Defaults to `true`.
|
|
9445
9445
|
*/
|
|
9446
|
-
divider = input(undefined, { transform: booleanAttribute });
|
|
9446
|
+
divider = input(undefined, ...(ngDevMode ? [{ debugName: "divider", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
9447
9447
|
template = inject(TemplateRef);
|
|
9448
9448
|
_header;
|
|
9449
9449
|
constructor() {
|
|
@@ -9453,10 +9453,10 @@ class WorkbenchDialogHeaderDirective {
|
|
|
9453
9453
|
// Defer disposing header to avoid `ExpressionChangedAfterItHasBeenCheckedError`.
|
|
9454
9454
|
inject(DestroyRef).onDestroy(() => asapScheduler.schedule(() => this._header?.dispose()));
|
|
9455
9455
|
}
|
|
9456
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9457
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
9456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9457
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchDialogHeaderDirective, isStandalone: true, selector: "ng-template[wbDialogHeader]", inputs: { divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
9458
9458
|
}
|
|
9459
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogHeaderDirective, decorators: [{
|
|
9460
9460
|
type: Directive,
|
|
9461
9461
|
args: [{ selector: 'ng-template[wbDialogHeader]' }]
|
|
9462
9462
|
}], ctorParameters: () => [] });
|
|
@@ -9471,12 +9471,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
9471
9471
|
* SPDX-License-Identifier: EPL-2.0
|
|
9472
9472
|
*/
|
|
9473
9473
|
class MessageBoxHeaderComponent {
|
|
9474
|
-
title = input();
|
|
9475
|
-
severity = input.required();
|
|
9476
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9477
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
9474
|
+
title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
|
|
9475
|
+
severity = input.required(...(ngDevMode ? [{ debugName: "severity" }] : []));
|
|
9476
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageBoxHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9477
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: MessageBoxHeaderComponent, isStandalone: true, selector: "wb-message-box-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-severity": "severity()" } }, ngImport: i0, template: "@if (title()) {\n <span class=\"title e2e-title\">{{(title() | wbText)()}}</span>\n}\n", styles: ["@charset \"UTF-8\";:host{--\\275message-box-severity-color: initial;display:grid;border-top:var(--sci-workbench-messagebox-severity-indicator-size) solid var(--\\275message-box-severity-color);padding-inline:var(--sci-workbench-messagebox-padding);padding-top:var(--sci-workbench-messagebox-padding);-webkit-user-select:none;user-select:none}:host[data-severity=info]{--\\275message-box-severity-color: var(--sci-color-accent)}:host[data-severity=warn]{--\\275message-box-severity-color: var(--sci-color-notice)}:host[data-severity=error]{--\\275message-box-severity-color: var(--sci-color-negative)}:host>span.title{overflow-wrap:break-word;white-space:pre-line;font-family:var(--sci-workbench-messagebox-title-font-family),sans-serif;font-size:var(--sci-workbench-messagebox-title-font-size);font-weight:var(--sci-workbench-messagebox-title-font-weight);text-align:var(--sci-workbench-messagebox-title-align)}\n"], dependencies: [{ kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
9478
9478
|
}
|
|
9479
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9479
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MessageBoxHeaderComponent, decorators: [{
|
|
9480
9480
|
type: Component,
|
|
9481
9481
|
args: [{ selector: 'wb-message-box-header', imports: [
|
|
9482
9482
|
TextPipe,
|
|
@@ -9501,10 +9501,10 @@ class TypeofPipe {
|
|
|
9501
9501
|
transform(object, type) {
|
|
9502
9502
|
return typeof object === type;
|
|
9503
9503
|
}
|
|
9504
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9505
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
9504
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TypeofPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
9505
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: TypeofPipe, isStandalone: true, name: "wbTypeof" });
|
|
9506
9506
|
}
|
|
9507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TypeofPipe, decorators: [{
|
|
9508
9508
|
type: Pipe,
|
|
9509
9509
|
args: [{ name: 'wbTypeof' }]
|
|
9510
9510
|
}] });
|
|
@@ -9524,8 +9524,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
9524
9524
|
* This component is designed to be opened in a workbench dialog.
|
|
9525
9525
|
*/
|
|
9526
9526
|
class WorkbenchMessageBoxComponent {
|
|
9527
|
-
message = input.required({ transform: nullIfEmptyMessage });
|
|
9528
|
-
options = input();
|
|
9527
|
+
message = input.required(...(ngDevMode ? [{ debugName: "message", transform: nullIfEmptyMessage }] : [{ transform: nullIfEmptyMessage }]));
|
|
9528
|
+
options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : []));
|
|
9529
9529
|
_dialog = inject(ɵWorkbenchDialog);
|
|
9530
9530
|
// Ensure host element to be focusable in order to close the message box on Escape keystroke.
|
|
9531
9531
|
tabindex = -1;
|
|
@@ -9556,10 +9556,10 @@ class WorkbenchMessageBoxComponent {
|
|
|
9556
9556
|
onContentDimensionChange(dimension) {
|
|
9557
9557
|
this.empty = !dimension.offsetHeight;
|
|
9558
9558
|
}
|
|
9559
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9560
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
9559
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchMessageBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9560
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: WorkbenchMessageBoxComponent, isStandalone: true, selector: "wb-message-box", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onEscape()" }, properties: { "attr.tabindex": "this.tabindex", "class.empty": "this.empty", "class.content-selectable": "this.contentSelectable", "class.has-title": "this.hasTitle" } }, ngImport: i0, template: "@let options = this.options() ?? {};\n<ng-template wbDialogHeader [divider]=\"false\">\n <wb-message-box-header [title]=\"options.title\" [severity]=\"options.severity ?? 'info'\"/>\n</ng-template>\n\n@let message = this.message();\n<div class=\"message e2e-message\" [class.text]=\"message | wbTypeof:'string'\" sciDimension (sciDimensionChange)=\"onContentDimensionChange($event)\">\n @if (message | wbTypeof:'string') {\n {{($any(message) | wbText)()}}\n } @else {\n <ng-container *ngComponentOutlet=\"message; inputs: options.inputs\"/>\n }\n</div>\n\n<ng-template wbDialogFooter>\n <wb-message-box-footer [actions]=\"options.actions ?? {ok: '%workbench.ok.action'}\"\n [severity]=\"options.severity ?? 'info'\"\n (action)=\"onAction($event)\"\n (keydown.escape)=\"onEscape()\"\n (preferredSizeChange)=\"onFooterPreferredSizeChange($event)\"/>\n</ng-template>\n", styles: [":host{display:block;overflow:hidden;outline:none;padding-inline:var(--sci-workbench-messagebox-padding);padding-bottom:var(--sci-workbench-messagebox-padding)}:host.has-title:not(.empty){padding-top:var(--sci-workbench-messagebox-padding)}:host:not(.content-selectable){-webkit-user-select:none;user-select:none}:host>div.message.text{overflow-wrap:break-word;white-space:pre-line;text-align:var(--sci-workbench-messagebox-text-align)}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: SciDimensionDirective, selector: "[sciDimension]", inputs: ["emitOutsideAngular"], outputs: ["sciDimensionChange"] }, { kind: "directive", type: WorkbenchDialogHeaderDirective, selector: "ng-template[wbDialogHeader]", inputs: ["divider"] }, { kind: "directive", type: WorkbenchDialogFooterDirective, selector: "ng-template[wbDialogFooter]", inputs: ["divider"] }, { kind: "component", type: MessageBoxHeaderComponent, selector: "wb-message-box-header", inputs: ["title", "severity"] }, { kind: "component", type: MessageBoxFooterComponent, selector: "wb-message-box-footer", inputs: ["actions", "severity"], outputs: ["action", "preferredSizeChange"] }, { kind: "pipe", type: TypeofPipe, name: "wbTypeof" }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
9561
9561
|
}
|
|
9562
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9562
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchMessageBoxComponent, decorators: [{
|
|
9563
9563
|
type: Component,
|
|
9564
9564
|
args: [{ selector: 'wb-message-box', imports: [
|
|
9565
9565
|
NgComponentOutlet,
|
|
@@ -9588,7 +9588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
9588
9588
|
args: ['keydown.escape']
|
|
9589
9589
|
}] } });
|
|
9590
9590
|
function nullIfEmptyMessage(message) {
|
|
9591
|
-
return message
|
|
9591
|
+
return message !== '' ? message : null;
|
|
9592
9592
|
}
|
|
9593
9593
|
|
|
9594
9594
|
/*
|
|
@@ -9622,10 +9622,10 @@ class ɵWorkbenchMessageBoxService {
|
|
|
9622
9622
|
animate: true,
|
|
9623
9623
|
}));
|
|
9624
9624
|
}
|
|
9625
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9626
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
9625
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchMessageBoxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9626
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchMessageBoxService, providedIn: 'root' });
|
|
9627
9627
|
}
|
|
9628
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵWorkbenchMessageBoxService, decorators: [{
|
|
9629
9629
|
type: Injectable,
|
|
9630
9630
|
args: [{ providedIn: 'root' }]
|
|
9631
9631
|
}] });
|
|
@@ -9663,14 +9663,14 @@ class PopupComponent {
|
|
|
9663
9663
|
// the popup loses focus by clicking on an element in a microfrontend.
|
|
9664
9664
|
void this._cdkTrapFocus().focusTrap.focusInitialElementWhenReady();
|
|
9665
9665
|
effectRef.destroy();
|
|
9666
|
-
});
|
|
9666
|
+
}, ...(ngDevMode ? [{ debugName: "effectRef" }] : []));
|
|
9667
9667
|
}
|
|
9668
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9669
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
9668
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9669
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: PopupComponent, isStandalone: true, selector: "wb-popup", host: { properties: { "attr.data-popupid": "popup.id", "style.width": "popup.size?.width", "style.min-width": "popup.size?.minWidth", "style.max-width": "popup.size?.maxWidth", "style.height": "popup.size?.height", "style.min-height": "popup.size?.minHeight", "style.max-height": "popup.size?.maxHeight", "attr.class": "popup.cssClasses.join(' ')" } }, providers: [
|
|
9670
9670
|
configurePopupGlassPane(),
|
|
9671
9671
|
], viewQueries: [{ propertyName: "_cdkTrapFocus", first: true, predicate: ["focus_trap"], descendants: true, read: CdkTrapFocus, isSignal: true }], hostDirectives: [{ directive: GlassPaneDirective }], ngImport: i0, template: "<sci-viewport cdkTrapFocus class=\"e2e-popup-viewport\" #focus_trap>\n <ng-container *cdkPortalOutlet=\"portal\"/>\n</sci-viewport>\n", styles: [":host{display:grid;grid-template-columns:100%;grid-template-rows:100%;outline:none;border-radius:var(--sci-corner);overflow:hidden}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }] });
|
|
9672
9672
|
}
|
|
9673
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9673
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PopupComponent, decorators: [{
|
|
9674
9674
|
type: Component,
|
|
9675
9675
|
args: [{ selector: 'wb-popup', imports: [
|
|
9676
9676
|
CdkTrapFocus,
|
|
@@ -9988,10 +9988,10 @@ class PopupService {
|
|
|
9988
9988
|
}
|
|
9989
9989
|
return null;
|
|
9990
9990
|
}
|
|
9991
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
9992
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
9991
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9992
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PopupService, providedIn: 'root' });
|
|
9993
9993
|
}
|
|
9994
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
9994
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PopupService, decorators: [{
|
|
9995
9995
|
type: Injectable,
|
|
9996
9996
|
args: [{ providedIn: 'root' }]
|
|
9997
9997
|
}] });
|
|
@@ -10080,10 +10080,10 @@ function isEqualDomRect(a, b) {
|
|
|
10080
10080
|
* - `--sci-workbench-messagebox-title-font-size`
|
|
10081
10081
|
*/
|
|
10082
10082
|
class WorkbenchMessageBoxService {
|
|
10083
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10084
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
10083
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchMessageBoxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10084
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchMessageBoxService, providedIn: 'root', useExisting: ɵWorkbenchMessageBoxService });
|
|
10085
10085
|
}
|
|
10086
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10086
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchMessageBoxService, decorators: [{
|
|
10087
10087
|
type: Injectable,
|
|
10088
10088
|
args: [{ providedIn: 'root', useExisting: ɵWorkbenchMessageBoxService }]
|
|
10089
10089
|
}] });
|
|
@@ -10122,14 +10122,14 @@ function provideViewContext(view) {
|
|
|
10122
10122
|
* SPDX-License-Identifier: EPL-2.0
|
|
10123
10123
|
*/
|
|
10124
10124
|
class MenuItemComponent {
|
|
10125
|
-
menuItem = input.required({ transform: (menuItem) => runInInjectionContext(this._injector, () => transform(menuItem)) });
|
|
10125
|
+
menuItem = input.required(...(ngDevMode ? [{ debugName: "menuItem", transform: (menuItem) => runInInjectionContext(this._injector, () => transform(menuItem)) }] : [{ transform: (menuItem) => runInInjectionContext(this._injector, () => transform(menuItem)) }]));
|
|
10126
10126
|
_injector = inject(Injector);
|
|
10127
10127
|
TemplateMenuItem = TemplateMenuItem;
|
|
10128
10128
|
ComponentMenuItem = ComponentMenuItem;
|
|
10129
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10130
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
10129
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: MenuItemComponent, isStandalone: true, selector: "wb-menu-item", inputs: { menuItem: { classPropertyName: "menuItem", publicName: "menuItem", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (menuItem() | wbInstanceof:TemplateMenuItem; as menuItem) {\r\n <ng-container *ngTemplateOutlet=\"menuItem.template; context: menuItem.context; injector: menuItem.injector\"/>\r\n}\r\n@if (menuItem() | wbInstanceof:ComponentMenuItem; as menuItem) {\r\n <ng-container *ngComponentOutlet=\"menuItem.component; inputs: menuItem.inputs; injector: menuItem.injector\"/>\r\n}\r\n", styles: [":host{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: InstanceofPipe, name: "wbInstanceof" }] });
|
|
10131
10131
|
}
|
|
10132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
10133
10133
|
type: Component,
|
|
10134
10134
|
args: [{ selector: 'wb-menu-item', imports: [
|
|
10135
10135
|
NgTemplateOutlet,
|
|
@@ -10228,10 +10228,10 @@ class ViewMenuComponent {
|
|
|
10228
10228
|
return Maps.addListValue(groups, menuItem.group ?? 'default', menuItem);
|
|
10229
10229
|
}, new Map()));
|
|
10230
10230
|
}
|
|
10231
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10232
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
10231
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10232
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewMenuComponent, isStandalone: true, selector: "wb-view-menu", host: { listeners: { "document:keydown.escape": "onEscape()", "mousedown": "onHostCloseEvent($event)", "sci-microfrontend-focusin": "onHostCloseEvent($event)", "document:mousedown": "onDocumentCloseEvent()", "document:sci-microfrontend-focusin": "onDocumentCloseEvent()" }, properties: { "attr.data-viewid": "this.viewId" } }, ngImport: i0, template: "@for (menuItemGroup of menuItemGroups() | keyvalue; track menuItemGroup; let isLast = $last) {\n @for (menuItem of menuItemGroup.value; track menuItem) {\n <button class=\"menu-item\"\n [ngClass]=\"menuItem.cssClass\"\n [disabled]=\"menuItem.disabled\"\n (click)=\"onMenuItemClick(menuItem)\">\n <wb-menu-item [menuItem]=\"menuItem\"/>\n <div class=\"accelerator\">{{menuItem.accelerator | wbFormatAccelerator}}</div>\n </button>\n }\n @if (!isLast) {\n <hr>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;gap:1px;width:var(--sci-workbench-contextmenu-width);border:1px solid var(--sci-color-border);color:var(--sci-color-text);background-color:var(--sci-color-background-elevation);border-radius:var(--sci-corner);overflow:hidden}:host>button.menu-item:is(button,#sci-reset){all:unset;display:flex;flex-flow:row nowrap;padding:.6em 1.5em;font-size:smaller;position:relative;-webkit-user-select:none;user-select:none;cursor:var(--sci-workbench-button-cursor)}:host>button.menu-item:is(button,#sci-reset)>wb-menu-item{flex:auto}:host>button.menu-item:is(button,#sci-reset)>div.accelerator{flex:none;margin-left:1em}:host>button.menu-item:is(button,#sci-reset):hover{background-color:var(--sci-color-background-elevation-hover);box-shadow:0 0 0 1px var(--sci-color-border)}:host>button.menu-item:is(button,#sci-reset):disabled{opacity:.5;pointer-events:none}:host>button.menu-item:is(button,#sci-reset):has(+hr):after{position:absolute;left:0;right:0;bottom:-1px;height:1px;background-color:var(--sci-color-border);content:\"\"}:host>hr{display:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MenuItemComponent, selector: "wb-menu-item", inputs: ["menuItem"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: WbFormatAcceleratorPipe, name: "wbFormatAccelerator" }] });
|
|
10233
10233
|
}
|
|
10234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMenuComponent, decorators: [{
|
|
10235
10235
|
type: Component,
|
|
10236
10236
|
args: [{ selector: 'wb-view-menu', imports: [
|
|
10237
10237
|
NgClass,
|
|
@@ -10260,11 +10260,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
10260
10260
|
}] } });
|
|
10261
10261
|
|
|
10262
10262
|
class TextComponent {
|
|
10263
|
-
text = input.required();
|
|
10264
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10265
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
10263
|
+
text = input.required(...(ngDevMode ? [{ debugName: "text" }] : []));
|
|
10264
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10265
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: TextComponent, isStandalone: true, selector: "wb-text", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '{{(text() | wbText)()}}', isInline: true, styles: [":host{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}\n"], dependencies: [{ kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
10266
10266
|
}
|
|
10267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextComponent, decorators: [{
|
|
10268
10268
|
type: Component,
|
|
10269
10269
|
args: [{ selector: 'wb-text', template: '{{(text() | wbText)()}}', imports: [
|
|
10270
10270
|
TextPipe,
|
|
@@ -10300,17 +10300,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
10300
10300
|
function rootEffect(effectFn, options) {
|
|
10301
10301
|
const injector = options?.injector ?? inject(Injector);
|
|
10302
10302
|
const rootInjector = injector.get(ApplicationRef).injector;
|
|
10303
|
-
const effectRef = effect(effectFn, {
|
|
10304
|
-
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10303
|
+
const effectRef = effect(effectFn, ...(ngDevMode ? [{ debugName: "effectRef", ...options,
|
|
10304
|
+
injector: rootInjector,
|
|
10305
|
+
manualCleanup: true }] : [{
|
|
10306
|
+
...options,
|
|
10307
|
+
injector: rootInjector,
|
|
10308
|
+
manualCleanup: true,
|
|
10309
|
+
}]));
|
|
10308
10310
|
const manualCleanup = options?.manualCleanup ?? false;
|
|
10309
10311
|
if (!manualCleanup) {
|
|
10310
10312
|
injector.get(DestroyRef).onDestroy(() => effectRef.destroy());
|
|
10311
10313
|
}
|
|
10312
10314
|
return effectRef;
|
|
10313
10315
|
}
|
|
10316
|
+
/**
|
|
10317
|
+
* Like {@link toObservable}, but uses a root effect to continue emitting even if the "contextual" component is detached from the change detector tree.
|
|
10318
|
+
*
|
|
10319
|
+
* @see rootEffect
|
|
10320
|
+
*/
|
|
10321
|
+
function toRootObservable(source, options) {
|
|
10322
|
+
const injector = options?.injector ?? inject(Injector);
|
|
10323
|
+
const rootInjector = injector.get(ApplicationRef).injector;
|
|
10324
|
+
const observableInjector = createEnvironmentInjector([], rootInjector);
|
|
10325
|
+
injector.get(DestroyRef).onDestroy(() => observableInjector.destroy());
|
|
10326
|
+
return toObservable(source, { injector: observableInjector });
|
|
10327
|
+
}
|
|
10314
10328
|
|
|
10315
10329
|
/*
|
|
10316
10330
|
* Copyright (c) 2018-2022 Swiss Federal Railways
|
|
@@ -10569,10 +10583,10 @@ class ViewMenuService {
|
|
|
10569
10583
|
});
|
|
10570
10584
|
}
|
|
10571
10585
|
}
|
|
10572
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10573
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
10586
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10587
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMenuService, providedIn: 'root' });
|
|
10574
10588
|
}
|
|
10575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10589
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMenuService, decorators: [{
|
|
10576
10590
|
type: Injectable,
|
|
10577
10591
|
args: [{ providedIn: 'root' }]
|
|
10578
10592
|
}], ctorParameters: () => [] });
|
|
@@ -10624,11 +10638,11 @@ class ViewTabComponent {
|
|
|
10624
10638
|
_layout = inject(WorkbenchLayoutService).layout;
|
|
10625
10639
|
_injector = inject(Injector);
|
|
10626
10640
|
host = inject(ElementRef).nativeElement;
|
|
10627
|
-
view = input.required({ alias: 'viewId', transform: (viewId) => this._viewRegistry.get(viewId) });
|
|
10641
|
+
view = input.required(...(ngDevMode ? [{ debugName: "view", alias: 'viewId', transform: (viewId) => this._viewRegistry.get(viewId) }] : [{ alias: 'viewId', transform: (viewId) => this._viewRegistry.get(viewId) }]));
|
|
10628
10642
|
boundingClientRect = boundingClientRect(inject(ElementRef));
|
|
10629
10643
|
viewTabContentPortal;
|
|
10630
10644
|
viewDragService = inject(ViewDragService);
|
|
10631
|
-
viewTitleOffsetRight = computed(() => this.view().closable() ? '1.5rem' : undefined); // offset for the title to not overlap the close button
|
|
10645
|
+
viewTitleOffsetRight = computed(() => this.view().closable() ? '1.5rem' : undefined, ...(ngDevMode ? [{ debugName: "viewTitleOffsetRight" }] : [])); // offset for the title to not overlap the close button
|
|
10632
10646
|
constructor() {
|
|
10633
10647
|
this.addHostCssClasses();
|
|
10634
10648
|
this.installMenuAccelerators();
|
|
@@ -10714,10 +10728,10 @@ class ViewTabComponent {
|
|
|
10714
10728
|
}));
|
|
10715
10729
|
});
|
|
10716
10730
|
}
|
|
10717
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10718
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
10731
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10732
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewTabComponent, isStandalone: true, selector: "wb-view-tab", inputs: { view: { classPropertyName: "view", publicName: "viewId", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "onClick()", "mousedown": "onMousedown($event)", "contextmenu": "onContextmenu($event)", "dragstart": "onDragStart($event)", "dragend": "onDragEnd()" }, properties: { "attr.data-viewid": "view().id", "attr.data-active": "view().active() ? '' : null", "attr.data-dirty": "view().dirty() ? '' : null", "attr.data-focus-within-view": "view().focused() ? '' : null", "attr.draggable": "true", "attr.tabindex": "-1", "class.view-drag": "viewDragService.dragging()", "style.--sci-workbench-tab-title-offset-right": "viewTitleOffsetRight()" } }, ngImport: i0, template: "<!-- IMPORTANT: THIS HTML FILE IS ALSO USED BY `ViewTabDragImageComponent` -->\n\n@if (view().active()) {\n <div class=\"corner-radius start\">\n <div class=\"circle\"></div>\n </div>\n}\n\n<div class=\"content\">\n <ng-container *cdkPortalOutlet=\"viewTabContentPortal()\"/>\n</div>\n\n@if (view().active()) {\n <div class=\"corner-radius end\">\n <div class=\"circle\"></div>\n </div>\n}\n\n@if (view().closable()) {\n <button (click)=\"onClose($event)\"\n [title]=\"('%workbench.close_tab.tooltip;close_others_modifier=Alt' | wbText)()\"\n [disabled]=\"!view().isClosable()\"\n class=\"close e2e-close\">\n <wb-icon icon=\"workbench.close\"/>\n </button>\n}\n", styles: [":host{display:grid;align-items:center;padding-left:var(--sci-workbench-tab-padding-inline);padding-right:var(--sci-workbench-tab-padding-inline);position:relative;-webkit-user-select:none;user-select:none;cursor:var(--sci-workbench-tab-cursor);box-sizing:border-box;outline:none;border-top:var(--sci-workbench-tab-border-top-width) solid transparent;border-left:var(--sci-workbench-tab-border-width) solid transparent;border-right:var(--sci-workbench-tab-border-width) solid transparent;border-top-left-radius:var(--sci-workbench-tab-border-radius);border-top-right-radius:var(--sci-workbench-tab-border-radius)}:host[data-active]{cursor:default;border-left-color:var(--sci-workbench-tab-border-color);border-right-color:var(--sci-workbench-tab-border-color);border-top-color:var(--sci-workbench-tab-border-color);background-color:var(--sci-workbench-view-background-color)}wb-part[data-peripheral] :host[data-active]{background-color:var(--sci-workbench-view-peripheral-background-color)}:host[data-active]>div.content{color:var(--sci-workbench-tab-text-color-active)}:host[data-active][data-focus-within-view]>div.content{color:var(--sci-workbench-part-active-tab-text-color-active)}:host>div.content{display:inline-grid;font-family:var(--sci-workbench-tab-font-family),sans-serif;font-size:var(--sci-workbench-tab-font-size);font-weight:var(--sci-workbench-tab-font-weight);min-width:var(--sci-workbench-tab-min-width);max-width:var(--sci-workbench-tab-max-width);isolation:isolate;transform:translateY(calc(-1 * var(--sci-workbench-tab-border-top-width)))}:host>button.close:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);position:absolute;right:calc(var(--sci-workbench-tab-padding-inline) - .125em);visibility:hidden;padding:.125em;border-radius:var(--sci-corner-small);transform:translateY(calc(-1 * var(--sci-workbench-tab-border-top-width)))}:host>button.close:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.close:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.close:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.close:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.close:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host[data-active]>button.close:is(button,#sci-reset),:host:hover:not(.view-drag)>button.close:is(button,#sci-reset){visibility:visible}@container style(--sci-workbench-tab-background-color-hover){:host:hover:not([data-active]):not(.view-drag):before{content:\"\";position:absolute;place-self:start center;box-sizing:border-box;height:calc(100% - var(--sci-workbench-tab-padding-block-hover) - var(--sci-workbench-part-bar-border-bottom-width));width:calc(100% - var(--sci-workbench-tab-padding-inline-hover) + 2 * var(--sci-workbench-tab-border-width));background-color:var(--sci-workbench-tab-background-color-hover);border:var(--sci-workbench-tab-border-width) solid var(--sci-workbench-tab-background-color-hover);border-radius:var(--sci-workbench-tab-border-radius);pointer-events:none}:host:hover:not([data-active]):not(.view-drag)>button.close:is(button,#sci-reset):not(:disabled):hover{background-color:color-mix(in srgb,var(--sci-workbench-tab-background-color-hover) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}}:host>div.corner-radius{height:var(--sci-workbench-tab-border-radius);width:var(--sci-workbench-tab-border-radius);overflow:hidden;position:absolute;bottom:0}:host>div.corner-radius>div.circle{position:absolute;top:calc(-2 * var(--sci-workbench-tab-border-radius));width:calc(2 * var(--sci-workbench-tab-border-radius));height:calc(2 * var(--sci-workbench-tab-border-radius));border:var(--sci-workbench-tab-border-radius) solid var(--sci-workbench-view-background-color);border-radius:50%;box-shadow:inset 0 0 0 var(--sci-workbench-tab-border-width) var(--sci-workbench-tab-border-color);box-sizing:content-box}wb-part[data-peripheral] :host>div.corner-radius>div.circle{border-color:var(--sci-workbench-view-peripheral-background-color)}:host>div.corner-radius.start{left:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.start>div.circle{left:calc(-2 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end{right:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end>div.circle{right:calc(-2 * var(--sci-workbench-tab-border-radius))}@container viewtab (height >= 3.5rem){:host>button.close:is(button,#sci-reset){top:5px;right:5px}}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
10719
10733
|
}
|
|
10720
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabComponent, decorators: [{
|
|
10721
10735
|
type: Component,
|
|
10722
10736
|
args: [{ selector: 'wb-view-tab', imports: [
|
|
10723
10737
|
CdkPortalOutlet,
|
|
@@ -10810,10 +10824,10 @@ class ViewTabDragImageComponent {
|
|
|
10810
10824
|
.pipe(subscribeIn(fn => zone.runOutsideAngular(fn)), map(event => event.defaultPrevented), distinctUntilChanged());
|
|
10811
10825
|
return toSignal(canDrop$, { initialValue: false });
|
|
10812
10826
|
}
|
|
10813
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10814
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
10827
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabDragImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10828
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewTabDragImageComponent, isStandalone: true, selector: "wb-view-tab-drag-image", host: { properties: { "attr.data-viewid": "view().id", "attr.data-active": "view().active() ? '' : null", "class.view-drag": "true", "class.can-drop": "canDrop()", "class.drag-over-tabbar": "isDragOverTabbar()", "class.drag-over-peripheral-tabbar": "isDragOverPeripheralTabbar()" } }, ngImport: i0, template: "<!-- IMPORTANT: THIS HTML FILE IS ALSO USED BY `ViewTabDragImageComponent` -->\n\n@if (view().active()) {\n <div class=\"corner-radius start\">\n <div class=\"circle\"></div>\n </div>\n}\n\n<div class=\"content\">\n <ng-container *cdkPortalOutlet=\"viewTabContentPortal()\"/>\n</div>\n\n@if (view().active()) {\n <div class=\"corner-radius end\">\n <div class=\"circle\"></div>\n </div>\n}\n\n@if (view().closable()) {\n <button (click)=\"onClose($event)\"\n [title]=\"('%workbench.close_tab.tooltip;close_others_modifier=Alt' | wbText)()\"\n [disabled]=\"!view().isClosable()\"\n class=\"close e2e-close\">\n <wb-icon icon=\"workbench.close\"/>\n </button>\n}\n", styles: [":host{display:grid;align-items:center;padding-left:var(--sci-workbench-tab-padding-inline);padding-right:var(--sci-workbench-tab-padding-inline);position:relative;-webkit-user-select:none;user-select:none;cursor:var(--sci-workbench-tab-cursor);box-sizing:border-box;outline:none;border-top:var(--sci-workbench-tab-border-top-width) solid transparent;border-left:var(--sci-workbench-tab-border-width) solid transparent;border-right:var(--sci-workbench-tab-border-width) solid transparent;border-top-left-radius:var(--sci-workbench-tab-border-radius);border-top-right-radius:var(--sci-workbench-tab-border-radius)}:host[data-active]{cursor:default;border-left-color:var(--sci-workbench-tab-border-color);border-right-color:var(--sci-workbench-tab-border-color);border-top-color:var(--sci-workbench-tab-border-color);background-color:var(--sci-workbench-view-background-color)}wb-part[data-peripheral] :host[data-active]{background-color:var(--sci-workbench-view-peripheral-background-color)}:host[data-active]>div.content{color:var(--sci-workbench-tab-text-color-active)}:host[data-active][data-focus-within-view]>div.content{color:var(--sci-workbench-part-active-tab-text-color-active)}:host>div.content{display:inline-grid;font-family:var(--sci-workbench-tab-font-family),sans-serif;font-size:var(--sci-workbench-tab-font-size);font-weight:var(--sci-workbench-tab-font-weight);min-width:var(--sci-workbench-tab-min-width);max-width:var(--sci-workbench-tab-max-width);isolation:isolate;transform:translateY(calc(-1 * var(--sci-workbench-tab-border-top-width)))}:host>button.close:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);position:absolute;right:calc(var(--sci-workbench-tab-padding-inline) - .125em);visibility:hidden;padding:.125em;border-radius:var(--sci-corner-small);transform:translateY(calc(-1 * var(--sci-workbench-tab-border-top-width)))}:host>button.close:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.close:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.close:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.close:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.close:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host[data-active]>button.close:is(button,#sci-reset),:host:hover:not(.view-drag)>button.close:is(button,#sci-reset){visibility:visible}@container style(--sci-workbench-tab-background-color-hover){:host:hover:not([data-active]):not(.view-drag):before{content:\"\";position:absolute;place-self:start center;box-sizing:border-box;height:calc(100% - var(--sci-workbench-tab-padding-block-hover) - var(--sci-workbench-part-bar-border-bottom-width));width:calc(100% - var(--sci-workbench-tab-padding-inline-hover) + 2 * var(--sci-workbench-tab-border-width));background-color:var(--sci-workbench-tab-background-color-hover);border:var(--sci-workbench-tab-border-width) solid var(--sci-workbench-tab-background-color-hover);border-radius:var(--sci-workbench-tab-border-radius);pointer-events:none}:host:hover:not([data-active]):not(.view-drag)>button.close:is(button,#sci-reset):not(:disabled):hover{background-color:color-mix(in srgb,var(--sci-workbench-tab-background-color-hover) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}}:host>div.corner-radius{height:var(--sci-workbench-tab-border-radius);width:var(--sci-workbench-tab-border-radius);overflow:hidden;position:absolute;bottom:0}:host>div.corner-radius>div.circle{position:absolute;top:calc(-2 * var(--sci-workbench-tab-border-radius));width:calc(2 * var(--sci-workbench-tab-border-radius));height:calc(2 * var(--sci-workbench-tab-border-radius));border:var(--sci-workbench-tab-border-radius) solid var(--sci-workbench-view-background-color);border-radius:50%;box-shadow:inset 0 0 0 var(--sci-workbench-tab-border-width) var(--sci-workbench-tab-border-color);box-sizing:content-box}wb-part[data-peripheral] :host>div.corner-radius>div.circle{border-color:var(--sci-workbench-view-peripheral-background-color)}:host>div.corner-radius.start{left:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.start>div.circle{left:calc(-2 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end{right:calc(-1 * var(--sci-workbench-tab-border-radius))}:host>div.corner-radius.end>div.circle{right:calc(-2 * var(--sci-workbench-tab-border-radius))}@container viewtab (height >= 3.5rem){:host>button.close:is(button,#sci-reset){top:5px;right:5px}}\n", ":host{--sci-workbench-tab-text-color-active: var(--sci-workbench-tab-drag-text-color)}:host.drag-over-peripheral-tabbar{--sci-workbench-view-background-color: var(--sci-workbench-view-peripheral-background-color)}:host:not(.drag-over-tabbar){border-radius:var(--sci-workbench-tab-border-radius);border:1px solid var(--sci-workbench-tab-drag-border-color)}:host:not(.drag-over-tabbar)>div.corner-radius{display:none}:host:not(.drag-over-tabbar)>div.content{transform:unset}:host:not(.drag-over-tabbar)>button.close:is(button,#sci-reset){transform:unset}:host:not(.can-drop){--sci-workbench-tab-text-color-active: var(--sci-workbench-tab-drag-text-color-disabled);--sci-workbench-tab-drag-border-color: var(--sci-workbench-tab-drag-border-color-disabled)}:host:not(.can-drop) button.close:is(button,#sci-reset){color:var(--sci-workbench-tab-drag-text-color-disabled)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
10815
10829
|
}
|
|
10816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
10830
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabDragImageComponent, decorators: [{
|
|
10817
10831
|
type: Component,
|
|
10818
10832
|
args: [{ selector: 'wb-view-tab-drag-image', imports: [
|
|
10819
10833
|
CdkPortalOutlet,
|
|
@@ -10984,10 +10998,10 @@ class ViewTabDragImageRenderer {
|
|
|
10984
10998
|
}
|
|
10985
10999
|
});
|
|
10986
11000
|
}
|
|
10987
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
10988
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
11001
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabDragImageRenderer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11002
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabDragImageRenderer, providedIn: 'root' });
|
|
10989
11003
|
}
|
|
10990
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
11004
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabDragImageRenderer, decorators: [{
|
|
10991
11005
|
type: Injectable,
|
|
10992
11006
|
args: [{ providedIn: 'root' }]
|
|
10993
11007
|
}], ctorParameters: () => [] });
|
|
@@ -11013,18 +11027,18 @@ class DragImageWorkbenchView {
|
|
|
11013
11027
|
last = signal(true).asReadonly();
|
|
11014
11028
|
position = signal(0).asReadonly();
|
|
11015
11029
|
scrolledIntoView = signal(true).asReadonly();
|
|
11016
|
-
menuItems = signal([]);
|
|
11030
|
+
menuItems = signal([], ...(ngDevMode ? [{ debugName: "menuItems" }] : []));
|
|
11017
11031
|
isClosable;
|
|
11018
|
-
activationInstant = signal(0);
|
|
11032
|
+
activationInstant = signal(0, ...(ngDevMode ? [{ debugName: "activationInstant" }] : []));
|
|
11019
11033
|
constructor(dragData) {
|
|
11020
11034
|
this.id = dragData.viewId;
|
|
11021
11035
|
this.alternativeId = dragData.alternativeViewId;
|
|
11022
|
-
this.part = computed(() => throwError('UnsupportedOperationError'));
|
|
11023
|
-
this.navigation = signal(dragData.navigation && { ...dragData.navigation, id: UUID.randomUUID() });
|
|
11024
|
-
this.navigationHint = computed(() => this.navigation()?.hint);
|
|
11025
|
-
this.navigationData = computed(() => this.navigation()?.data ?? {});
|
|
11026
|
-
this.navigationState = computed(() => this.navigation()?.state ?? {});
|
|
11027
|
-
this.urlSegments = computed(() => this.navigation()?.path ?? []);
|
|
11036
|
+
this.part = computed(() => throwError('UnsupportedOperationError'), ...(ngDevMode ? [{ debugName: "part" }] : []));
|
|
11037
|
+
this.navigation = signal(dragData.navigation && { ...dragData.navigation, id: UUID.randomUUID() }, ...(ngDevMode ? [{ debugName: "navigation" }] : []));
|
|
11038
|
+
this.navigationHint = computed(() => this.navigation()?.hint, ...(ngDevMode ? [{ debugName: "navigationHint" }] : []));
|
|
11039
|
+
this.navigationData = computed(() => this.navigation()?.data ?? {}, ...(ngDevMode ? [{ debugName: "navigationData" }] : []));
|
|
11040
|
+
this.navigationState = computed(() => this.navigation()?.state ?? {}, ...(ngDevMode ? [{ debugName: "navigationState" }] : []));
|
|
11041
|
+
this.urlSegments = computed(() => this.navigation()?.path ?? [], ...(ngDevMode ? [{ debugName: "urlSegments" }] : []));
|
|
11028
11042
|
this.title = signal(dragData.viewTitle).asReadonly();
|
|
11029
11043
|
this.heading = signal(dragData.viewHeading).asReadonly();
|
|
11030
11044
|
this.dirty = signal(dragData.viewDirty).asReadonly();
|
|
@@ -11088,7 +11102,7 @@ class ViewTabBarComponent {
|
|
|
11088
11102
|
/**
|
|
11089
11103
|
* Defines the maximum available width for the tab bar, used to constrain the drag image to the tab bar bounds.
|
|
11090
11104
|
*/
|
|
11091
|
-
maxWidth = input.required();
|
|
11105
|
+
maxWidth = input.required(...(ngDevMode ? [{ debugName: "maxWidth" }] : []));
|
|
11092
11106
|
_host = inject(ElementRef).nativeElement;
|
|
11093
11107
|
_partBarElement = inject(PART_BAR_ELEMENT);
|
|
11094
11108
|
_viewportChange$ = new Subject();
|
|
@@ -11097,7 +11111,7 @@ class ViewTabBarComponent {
|
|
|
11097
11111
|
_viewTabDragImageRenderer = inject(ViewTabDragImageRenderer);
|
|
11098
11112
|
_viewDragService = inject(ViewDragService);
|
|
11099
11113
|
_zone = inject(NgZone);
|
|
11100
|
-
_viewTabs = viewChildren(ViewTabComponent);
|
|
11114
|
+
_viewTabs = viewChildren(ViewTabComponent, ...(ngDevMode ? [{ debugName: "_viewTabs" }] : []));
|
|
11101
11115
|
_hostBoundingClientRect = boundingClientRect(inject(ElementRef));
|
|
11102
11116
|
_viewportComponent = viewChild.required(SciViewportComponent);
|
|
11103
11117
|
_viewportComponentElement = viewChild.required(SciViewportComponent, { read: (ElementRef) });
|
|
@@ -11111,12 +11125,12 @@ class ViewTabBarComponent {
|
|
|
11111
11125
|
/**
|
|
11112
11126
|
* Reference to the tab before which to insert the drag source on drop, or `end` if dropping it after the last tab.
|
|
11113
11127
|
*/
|
|
11114
|
-
dropTargetViewTab = signal(null);
|
|
11128
|
+
dropTargetViewTab = signal(null, ...(ngDevMode ? [{ debugName: "dropTargetViewTab" }] : []));
|
|
11115
11129
|
/**
|
|
11116
11130
|
* Reference to the tab where the drag operation was started.
|
|
11117
11131
|
* This reference is only set if the drag operation started on a tab of this tabbar.
|
|
11118
11132
|
*/
|
|
11119
|
-
dragSourceViewTab = signal(null);
|
|
11133
|
+
dragSourceViewTab = signal(null, ...(ngDevMode ? [{ debugName: "dragSourceViewTab" }] : []));
|
|
11120
11134
|
/**
|
|
11121
11135
|
* Transfer data of the tab being dragged over this tabbar.
|
|
11122
11136
|
*/
|
|
@@ -11128,7 +11142,7 @@ class ViewTabBarComponent {
|
|
|
11128
11142
|
/**
|
|
11129
11143
|
* Signals when unsetting drag state.
|
|
11130
11144
|
*/
|
|
11131
|
-
_onUnsetDragState = signal(undefined, { equal: () => false });
|
|
11145
|
+
_onUnsetDragState = signal(undefined, ...(ngDevMode ? [{ debugName: "_onUnsetDragState", equal: () => false }] : [{ equal: () => false }]));
|
|
11132
11146
|
/**
|
|
11133
11147
|
* Tabbar indents where to display the rounded bottom corners of the first and last view tab.
|
|
11134
11148
|
*/
|
|
@@ -11530,10 +11544,10 @@ class ViewTabBarComponent {
|
|
|
11530
11544
|
ngOnDestroy() {
|
|
11531
11545
|
this.unsetDragState();
|
|
11532
11546
|
}
|
|
11533
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
11534
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
11547
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11548
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ViewTabBarComponent, isStandalone: true, selector: "wb-view-tab-bar", inputs: { maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "_viewTabs", predicate: ViewTabComponent, descendants: true, isSignal: true }, { propertyName: "_viewportComponent", first: true, predicate: SciViewportComponent, descendants: true, isSignal: true }, { propertyName: "_viewportComponentElement", first: true, predicate: SciViewportComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "_tabCornerRadiusElement", first: true, predicate: ["tab_corner_radius"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<sci-viewport class=\"e2e-tab-viewport\" scrollbarStyle=\"hidden\">\n @for (view of part.views(); track view.id) {\n @if (viewtab === dropTargetViewTab()) {\n <div class=\"divider\"></div>\n }\n <wb-view-tab #viewtab\n [viewId]=\"view.id\"\n [class.drag-source]=\"viewtab === dragSourceViewTab()\"\n [class.drop-target]=\"viewtab === dropTargetViewTab()\"/>\n <div class=\"divider\"></div>\n }\n\n <!-- Placeholder for expanding the viewport when dragging a tab to the right, moving part actions along with the dragover event. -->\n <div class=\"drag-placeholder\"></div>\n</sci-viewport>\n\n<!-- Element for injecting the corner radius into the component. -->\n<div class=\"tab-corner-radius\" #tab_corner_radius></div>\n", styles: ["@charset \"UTF-8\";:host{--\\275part-bar-indent-left: 0;--\\275part-bar-indent-right: 0;--\\275part-bar-drag-source-width: 0;--\\275part-bar-drag-placeholder-width: 0;display:grid}:host>sci-viewport::part(content){display:flex;padding-left:var(--\\275part-bar-indent-left)}:host>sci-viewport::part(content):after{flex:none;width:var(--\\275part-bar-indent-right);content:\"\"}:host>sci-viewport>wb-view-tab{flex:none}:host>sci-viewport>wb-view-tab.drag-source{display:none}:host>sci-viewport>div.divider{flex:none;display:flex;position:relative;width:0}:host>sci-viewport>div.divider:after{flex:none;align-self:center;content:\"\";position:absolute;width:1px;left:-1px;height:65%;background-color:var(--sci-workbench-part-bar-divider-color)}@container style(--sci-workbench-tab-background-color-hover){:host>sci-viewport>div.divider{transition:opacity .2s ease-out}:host>sci-viewport>wb-view-tab:hover+div.divider{opacity:0}:host>sci-viewport>div.divider:has(+wb-view-tab:hover){opacity:0}}:host>sci-viewport>div.drag-placeholder{flex:none;width:var(--\\275part-bar-drag-placeholder-width)}:host>sci-viewport>wb-view-tab.drop-target,:host>sci-viewport wb-view-tab.drop-target~:is(wb-view-tab,div.divider),:host>sci-viewport>div.divider:has(+wb-view-tab.drop-target){transform:translate(var(--\\275part-bar-drag-source-width))}:host>sci-viewport>wb-view-tab:is([data-active],.drag-source)+div.divider{display:none}:host>sci-viewport>div.divider:has(+wb-view-tab[data-active]:not(.drag-source)){display:none}:host>sci-viewport>div.divider:has(+wb-view-tab.drag-source:not([data-active])){display:none}:host:not(.drag-over)>sci-viewport:not(:has(wb-view-tab:not(.drag-source)))::part(content):after{display:none}:host.on-drag-enter:not(.on-drag-start) wb-view-tab,:host.on-drag-enter:not(.on-drag-start) div.divider,:host.drag-over wb-view-tab,:host.drag-over div.divider,:host.on-drag-leave wb-view-tab,:host.on-drag-leave div.divider{transition:transform 175ms cubic-bezier(0,0,.2,1)}:host.on-drag-enter:not(.on-drag-start) div.drag-placeholder,:host.on-drag-leave div.drag-placeholder{transition:width 175ms cubic-bezier(0,0,.2,1)}:host:not(:has(wb-view-tab.drag-source)):not(:has(wb-view-tab.drop-target)):not(.drag-over) div.drag-placeholder{display:none}:host.pointer-events-disabled>sci-viewport::part(content){pointer-events:none}:host>div.tab-corner-radius{position:absolute;visibility:hidden;width:var(--sci-workbench-tab-border-radius)}\n"], dependencies: [{ kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }, { kind: "component", type: ViewTabComponent, selector: "wb-view-tab", inputs: ["viewId"] }] });
|
|
11535
11549
|
}
|
|
11536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
11550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewTabBarComponent, decorators: [{
|
|
11537
11551
|
type: Component,
|
|
11538
11552
|
args: [{ selector: 'wb-view-tab-bar', imports: [
|
|
11539
11553
|
SciViewportComponent,
|
|
@@ -11556,11 +11570,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
11556
11570
|
const PART_BAR_ELEMENT = new InjectionToken('PART_BAR_ELEMENT');
|
|
11557
11571
|
class PartBarComponent {
|
|
11558
11572
|
_router = inject(ɵWorkbenchRouter);
|
|
11559
|
-
_viewTabBar = viewChild(ViewTabBarComponent, { read: (ElementRef) });
|
|
11573
|
+
_viewTabBar = viewChild(ViewTabBarComponent, ...(ngDevMode ? [{ debugName: "_viewTabBar", read: (ElementRef) }] : [{ read: (ElementRef) }]));
|
|
11560
11574
|
_fillerElement = viewChild.required('filler');
|
|
11561
11575
|
part = inject(ɵWorkbenchPart);
|
|
11562
|
-
startActions = computed(() => this.part.actions().filter(action => action.align === 'start'));
|
|
11563
|
-
endActions = computed(() => this.part.actions().filter(action => action.align !== 'start'));
|
|
11576
|
+
startActions = computed(() => this.part.actions().filter(action => action.align === 'start'), ...(ngDevMode ? [{ debugName: "startActions" }] : []));
|
|
11577
|
+
endActions = computed(() => this.part.actions().filter(action => action.align !== 'start'), ...(ngDevMode ? [{ debugName: "endActions" }] : []));
|
|
11564
11578
|
maxViewTabBarWidth;
|
|
11565
11579
|
constructor() {
|
|
11566
11580
|
this.maxViewTabBarWidth = this.calculateMaxViewTabBarWidth();
|
|
@@ -11613,12 +11627,12 @@ class PartBarComponent {
|
|
|
11613
11627
|
const viewTabBarDimension = dimension(this._viewTabBar);
|
|
11614
11628
|
return computed(() => (viewTabBarDimension()?.offsetWidth ?? 0) + fillerDimension().offsetWidth);
|
|
11615
11629
|
}
|
|
11616
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
11617
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
11630
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11631
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: PartBarComponent, isStandalone: true, selector: "wb-part-bar", providers: [
|
|
11618
11632
|
{ provide: PART_BAR_ELEMENT, useFactory: () => inject(ElementRef).nativeElement },
|
|
11619
|
-
], viewQueries: [{ propertyName: "_viewTabBar", first: true, predicate: ViewTabBarComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "_fillerElement", first: true, predicate: ["filler"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Title -->\n@if (part.title()) {\n <span class=\"title e2e-title\" (mousedown)=\"onPartBarMouseDown($event)\">{{(part.title() | wbText)()}}</span>\n}\n\n<!-- View Tabs -->\n@if (part.views().length) {\n <wb-view-tab-bar [maxWidth]=\"maxViewTabBarWidth()\"/>\n}\n\n<!-- Start Actions -->\n@if (startActions().length) {\n <div class=\"actions\">\n @for (action of startActions(); track action) {\n <wb-part-action [action]=\"action\" [ngClass]=\"action.cssClass\" data-align=\"start\"/>\n }\n </div>\n}\n\n<!-- Filler -->\n<div class=\"filler e2e-filler\" #filler (mousedown)=\"onPartBarMouseDown($event)\"></div>\n\n<!-- End Actions -->\n@if (endActions().length) {\n <div class=\"actions\">\n @for (action of endActions(); track action) {\n <wb-part-action [action]=\"action\" [ngClass]=\"action.cssClass\" data-align=\"end\"/>\n }\n </div>\n}\n\n<!-- View List Dropdown -->\n@if (part.views().length) {\n <wb-view-list-button [title]=\"('%workbench.show_open_tabs.tooltip' | wbText)()\"/>\n}\n\n<!-- Minimize Button -->\n@if (part.canMinimize()) {\n <button (click)=\"onMinimize()\" [title]=\"('%workbench.minimize.tooltip' | wbText)()\" class=\"minimize e2e-minimize\">\n <wb-icon icon=\"workbench.minimize\"/>\n </button>\n}\n", styles: [":host{display:flex;color:var(--sci-workbench-tab-text-color);background-color:var(--sci-workbench-part-bar-background-color);border-top:var(--sci-workbench-part-bar-padding-top) solid transparent;background-clip:border-box;height:var(--sci-workbench-tab-height);box-sizing:content-box;container-name:viewtab;container-type:size;position:relative;padding-inline:var(--sci-workbench-part-bar-padding-inline)}:host:has(wb-view-tab-bar:first-child){padding-left:calc(var(--sci-workbench-part-bar-padding-inline) - var(--sci-workbench-tab-border-radius))}wb-part[data-peripheral] :host{background-color:var(--sci-workbench-part-peripheral-bar-background-color)}:host>span.title{flex:none;align-self:center;-webkit-user-select:none;user-select:none;margin-right:.5em;font-family:var(--sci-workbench-part-title-font-family),sans-serif;font-size:var(--sci-workbench-part-title-font-size);font-weight:var(--sci-workbench-part-title-font-weight);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host>wb-view-tab-bar{flex:initial}:host>div.actions{flex:initial;display:flex;align-items:center;gap:var(--sci-workbench-part-bar-actions-gap);padding-inline:var(--sci-workbench-part-bar-actions-padding-inline)}:host>div.actions>wb-part-action{flex:initial}:host>div.filler{flex:auto}:host>wb-view-list-button{flex:none;align-self:center}:host>button.minimize:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:.25em;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);flex:none;align-self:center}:host>button.minimize:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.minimize:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.minimize:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.minimize:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.minimize:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host:before{content:\"\";position:absolute;bottom:0;left:0;right:0;height:var(--sci-workbench-part-bar-border-bottom-width);background-color:var(--sci-workbench-tab-border-color)}\n"], dependencies: [{ kind: "component", type: ViewTabBarComponent, selector: "wb-view-tab-bar", inputs: ["maxWidth"] }, { kind: "component", type: PartActionComponent, selector: "wb-part-action", inputs: ["action"] }, { kind: "component", type: ViewListButtonComponent, selector: "wb-view-list-button" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "
|
|
11633
|
+
], viewQueries: [{ propertyName: "_viewTabBar", first: true, predicate: ViewTabBarComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "_fillerElement", first: true, predicate: ["filler"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Title -->\n@if (part.title()) {\n <span class=\"title e2e-title\" (mousedown)=\"onPartBarMouseDown($event)\">{{(part.title() | wbText)()}}</span>\n}\n\n<!-- View Tabs -->\n@if (part.views().length) {\n <wb-view-tab-bar [maxWidth]=\"maxViewTabBarWidth()\"/>\n}\n\n<!-- Start Actions -->\n@if (startActions().length) {\n <div class=\"actions\">\n @for (action of startActions(); track action) {\n <wb-part-action [action]=\"action\" [ngClass]=\"action.cssClass\" data-align=\"start\"/>\n }\n </div>\n}\n\n<!-- Filler -->\n<div class=\"filler e2e-filler\" #filler (mousedown)=\"onPartBarMouseDown($event)\"></div>\n\n<!-- End Actions -->\n@if (endActions().length) {\n <div class=\"actions\">\n @for (action of endActions(); track action) {\n <wb-part-action [action]=\"action\" [ngClass]=\"action.cssClass\" data-align=\"end\"/>\n }\n </div>\n}\n\n<!-- View List Dropdown -->\n@if (part.views().length) {\n <wb-view-list-button [title]=\"('%workbench.show_open_tabs.tooltip' | wbText)()\"/>\n}\n\n<!-- Minimize Button -->\n@if (part.canMinimize()) {\n <button (click)=\"onMinimize()\" [title]=\"('%workbench.minimize.tooltip' | wbText)()\" class=\"minimize e2e-minimize\">\n <wb-icon icon=\"workbench.minimize\"/>\n </button>\n}\n", styles: [":host{display:flex;color:var(--sci-workbench-tab-text-color);background-color:var(--sci-workbench-part-bar-background-color);border-top:var(--sci-workbench-part-bar-padding-top) solid transparent;background-clip:border-box;height:var(--sci-workbench-tab-height);box-sizing:content-box;container-name:viewtab;container-type:size;position:relative;padding-inline:var(--sci-workbench-part-bar-padding-inline)}:host:has(wb-view-tab-bar:first-child){padding-left:calc(var(--sci-workbench-part-bar-padding-inline) - var(--sci-workbench-tab-border-radius))}wb-part[data-peripheral] :host{background-color:var(--sci-workbench-part-peripheral-bar-background-color)}:host>span.title{flex:none;align-self:center;-webkit-user-select:none;user-select:none;margin-right:.5em;font-family:var(--sci-workbench-part-title-font-family),sans-serif;font-size:var(--sci-workbench-part-title-font-size);font-weight:var(--sci-workbench-part-title-font-weight);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host>wb-view-tab-bar{flex:initial}:host>div.actions{flex:initial;display:flex;align-items:center;gap:var(--sci-workbench-part-bar-actions-gap);padding-inline:var(--sci-workbench-part-bar-actions-padding-inline)}:host>div.actions>wb-part-action{flex:initial}:host>div.filler{flex:auto}:host>wb-view-list-button{flex:none;align-self:center}:host>button.minimize:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:.25em;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);flex:none;align-self:center}:host>button.minimize:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.minimize:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.minimize:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.minimize:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.minimize:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}:host:before{content:\"\";position:absolute;bottom:0;left:0;right:0;height:var(--sci-workbench-part-bar-border-bottom-width);background-color:var(--sci-workbench-tab-border-color)}\n"], dependencies: [{ kind: "component", type: ViewTabBarComponent, selector: "wb-view-tab-bar", inputs: ["maxWidth"] }, { kind: "component", type: PartActionComponent, selector: "wb-part-action", inputs: ["action"] }, { kind: "component", type: ViewListButtonComponent, selector: "wb-view-list-button" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
11620
11634
|
}
|
|
11621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
11635
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartBarComponent, decorators: [{
|
|
11622
11636
|
type: Component,
|
|
11623
11637
|
args: [{ selector: 'wb-part-bar', imports: [
|
|
11624
11638
|
ViewTabBarComponent,
|
|
@@ -11704,10 +11718,10 @@ class PartComponent {
|
|
|
11704
11718
|
logger.debug(() => `Constructing PartComponent [partId=${this.part.id}]`, LoggerNames.LIFECYCLE);
|
|
11705
11719
|
inject(DestroyRef).onDestroy(() => logger.debug(() => `Destroying PartComponent [partId=${this.part.id}]'`, LoggerNames.LIFECYCLE));
|
|
11706
11720
|
}
|
|
11707
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
11708
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
11721
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11722
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: PartComponent, isStandalone: true, selector: "wb-part", host: { properties: { "attr.data-partid": "part.id", "attr.data-peripheral": "part.peripheral() ? '' : null", "attr.data-grid": "dasherize(part.gridName())", "attr.data-active": "part.active() ? '' : null", "attr.data-referencepart": "part.referencePart() ? '' : null", "attr.tabindex": "-1" } }, ngImport: i0, template: "@if (part.title() || part.views().length || part.actions().length || part.canMinimize()) {\n <wb-part-bar/>\n}\n\n@if (part.views().length) {\n <!-- Prevent splitting if there is no active view, i.e, when dragging the last view out of the tabbar. -->\n @let canSplit = !!part.activeView();\n <div wbViewDropZone\n [wbViewDropZoneRegionSize]=\".25\"\n [wbViewDropZonePlaceholderSize]=\".5\"\n [wbViewDropZoneAttributes]=\"{'data-partid': part.id}\"\n [wbViewDropZoneRegions]=\"canDrop() && {center: true, north: canSplit, south: canSplit, west: canSplit, east: canSplit}\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\"\n class=\"content e2e-content e2e-view-content\">\n <ng-container *wbPortalOutlet=\"part.activeView()?.slot!.portal; destroyOnDetach: false\"/>\n </div>\n} @else {\n <div wbViewDropZone\n [wbViewDropZoneRegions]=\"canDrop() && {center: false, north: true, south: true, west: true, east: true}\"\n [wbViewDropZoneAttributes]=\"{'data-partid': part.id}\"\n (wbViewDropZoneDrop)=\"onViewDrop($event)\"\n class=\"content e2e-content e2e-part-content\">\n <ng-container *wbPortalOutlet=\"part.slot.portal; destroyOnDetach: false\"/>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column;outline:none;background-color:var(--sci-workbench-part-background-color);overflow:hidden}:host[data-peripheral]{background-color:var(--sci-workbench-part-peripheral-background-color)}:host>wb-part-bar{flex:none}:host>div.content{flex:auto;display:grid;position:relative}\n"], dependencies: [{ kind: "component", type: PartBarComponent, selector: "wb-part-bar" }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneAttributes", "wbViewDropZoneRegionSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet", "wbPortalOutletDestroyOnDetach"] }] });
|
|
11709
11723
|
}
|
|
11710
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
11724
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PartComponent, decorators: [{
|
|
11711
11725
|
type: Component,
|
|
11712
11726
|
args: [{ selector: 'wb-part', imports: [
|
|
11713
11727
|
PartBarComponent,
|
|
@@ -11739,23 +11753,23 @@ class ɵWorkbenchPart {
|
|
|
11739
11753
|
_rootOutletContexts = inject(ChildrenOutletContexts);
|
|
11740
11754
|
_focusMonitor = inject(WorkbenchFocusMonitor);
|
|
11741
11755
|
_layout = inject(WorkbenchLayoutService).layout;
|
|
11742
|
-
_title = signal(undefined);
|
|
11756
|
+
_title = signal(undefined, ...(ngDevMode ? [{ debugName: "_title" }] : []));
|
|
11743
11757
|
_titleComputed = this.computeTitle();
|
|
11744
11758
|
alternativeId;
|
|
11745
|
-
navigation = signal(undefined);
|
|
11746
|
-
activationInstant = signal(0);
|
|
11747
|
-
active = signal(false);
|
|
11748
|
-
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id);
|
|
11749
|
-
viewIds = computed(() => this.views().map(view => view.id));
|
|
11750
|
-
activeViewId = computed(() => this.activeView()?.id ?? null);
|
|
11759
|
+
navigation = signal(undefined, ...(ngDevMode ? [{ debugName: "navigation" }] : []));
|
|
11760
|
+
activationInstant = signal(0, ...(ngDevMode ? [{ debugName: "activationInstant" }] : []));
|
|
11761
|
+
active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
11762
|
+
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id, ...(ngDevMode ? [{ debugName: "focused" }] : []));
|
|
11763
|
+
viewIds = computed(() => this.views().map(view => view.id), ...(ngDevMode ? [{ debugName: "viewIds" }] : []));
|
|
11764
|
+
activeViewId = computed(() => this.activeView()?.id ?? null, ...(ngDevMode ? [{ debugName: "activeViewId" }] : []));
|
|
11751
11765
|
mPart;
|
|
11752
11766
|
gridName;
|
|
11753
|
-
peripheral = signal(false);
|
|
11754
|
-
referencePart = signal(false);
|
|
11755
|
-
topLeft = signal(false);
|
|
11756
|
-
topRight = signal(false);
|
|
11757
|
-
activity = signal(null);
|
|
11758
|
-
canMinimize = computed(() => this.activity() !== null && this.topRight());
|
|
11767
|
+
peripheral = signal(false, ...(ngDevMode ? [{ debugName: "peripheral" }] : []));
|
|
11768
|
+
referencePart = signal(false, ...(ngDevMode ? [{ debugName: "referencePart" }] : []));
|
|
11769
|
+
topLeft = signal(false, ...(ngDevMode ? [{ debugName: "topLeft" }] : []));
|
|
11770
|
+
topRight = signal(false, ...(ngDevMode ? [{ debugName: "topRight" }] : []));
|
|
11771
|
+
activity = signal(null, ...(ngDevMode ? [{ debugName: "activity" }] : []));
|
|
11772
|
+
canMinimize = computed(() => this.activity() !== null && this.topRight(), ...(ngDevMode ? [{ debugName: "canMinimize" }] : []));
|
|
11759
11773
|
actions;
|
|
11760
11774
|
activeView;
|
|
11761
11775
|
views;
|
|
@@ -11765,8 +11779,8 @@ class ɵWorkbenchPart {
|
|
|
11765
11779
|
_isInMainArea;
|
|
11766
11780
|
constructor(id, layout) {
|
|
11767
11781
|
this.id = id;
|
|
11768
|
-
this.mPart = signal(layout.part({ partId: id }));
|
|
11769
|
-
this.gridName = signal(layout.grid({ partId: id }).gridName);
|
|
11782
|
+
this.mPart = signal(layout.part({ partId: id }), ...(ngDevMode ? [{ debugName: "mPart" }] : []));
|
|
11783
|
+
this.gridName = signal(layout.grid({ partId: id }).gridName, ...(ngDevMode ? [{ debugName: "gridName" }] : []));
|
|
11770
11784
|
this.actions = computePartActions(this);
|
|
11771
11785
|
this.activeView = computeActiveView(this.mPart);
|
|
11772
11786
|
this.views = computeViews(this.mPart);
|
|
@@ -12085,7 +12099,7 @@ class ViewDragService {
|
|
|
12085
12099
|
/**
|
|
12086
12100
|
* Indicates if a drag operation is active across application instances of the same origin.
|
|
12087
12101
|
*/
|
|
12088
|
-
dragging = computed(() => this.viewDragData() !== null);
|
|
12102
|
+
dragging = computed(() => this.viewDragData() !== null, ...(ngDevMode ? [{ debugName: "dragging" }] : []));
|
|
12089
12103
|
constructor() {
|
|
12090
12104
|
this.installDragDetector();
|
|
12091
12105
|
}
|
|
@@ -12272,7 +12286,7 @@ class ViewDragService {
|
|
|
12272
12286
|
untracked(() => onDragEnd());
|
|
12273
12287
|
options?.once && effectRef.destroy();
|
|
12274
12288
|
}
|
|
12275
|
-
}, { injector: options?.injector });
|
|
12289
|
+
}, ...(ngDevMode ? [{ debugName: "effectRef", injector: options?.injector }] : [{ injector: options?.injector }]));
|
|
12276
12290
|
}
|
|
12277
12291
|
/**
|
|
12278
12292
|
* Signals when start dragging a view.
|
|
@@ -12288,10 +12302,10 @@ class ViewDragService {
|
|
|
12288
12302
|
this._viewDragStartBroadcastChannel.destroy();
|
|
12289
12303
|
this._viewDragEndBroadcastChannel.destroy();
|
|
12290
12304
|
}
|
|
12291
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
12292
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
12305
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDragService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12306
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDragService, providedIn: 'root' });
|
|
12293
12307
|
}
|
|
12294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
12308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewDragService, decorators: [{
|
|
12295
12309
|
type: Injectable,
|
|
12296
12310
|
args: [{ providedIn: 'root' }]
|
|
12297
12311
|
}], ctorParameters: () => [] });
|
|
@@ -12382,12 +12396,12 @@ class ViewSlotComponent {
|
|
|
12382
12396
|
logger.debug(() => `Constructing ViewComponent. [viewId=${this.view.id}]`, LoggerNames.LIFECYCLE);
|
|
12383
12397
|
inject(DestroyRef).onDestroy(() => logger.debug(() => `Destroying ViewComponent [viewId=${this.view.id}]'`, LoggerNames.LIFECYCLE));
|
|
12384
12398
|
}
|
|
12385
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
12386
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
12399
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12400
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: ViewSlotComponent, isStandalone: true, selector: "wb-view-slot", host: { properties: { "attr.data-viewid": "view.id", "attr.data-active": "view.active() ? '' : null", "class.view-drag": "viewDragService.dragging()" } }, providers: [
|
|
12387
12401
|
configureViewGlassPane(),
|
|
12388
12402
|
], viewQueries: [{ propertyName: "_viewport", first: true, predicate: SciViewportComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: GlassPaneDirective }], ngImport: i0, template: "<sci-viewport cdkTrapFocus>\n <router-outlet [name]=\"view.id\" wbRouterOutletRootContext/>\n</sci-viewport>\n", styles: [":host{display:flex;flex-direction:column;background-color:var(--sci-workbench-view-background-color);color:var(--sci-color-text)}wb-part[data-peripheral] :host{background-color:var(--sci-workbench-view-peripheral-background-color)}:host.view-drag{pointer-events:none}:host>sci-viewport{flex:1 1 0}:host>sci-viewport>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterOutletRootContextDirective, selector: "router-outlet[wbRouterOutletRootContext]" }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: SciViewportComponent, selector: "sci-viewport", inputs: ["scrollbarStyle"], outputs: ["scroll"] }] });
|
|
12389
12403
|
}
|
|
12390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
12404
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewSlotComponent, decorators: [{
|
|
12391
12405
|
type: Component,
|
|
12392
12406
|
args: [{ selector: 'wb-view-slot', imports: [
|
|
12393
12407
|
RouterOutlet,
|
|
@@ -12443,30 +12457,30 @@ class ɵWorkbenchView {
|
|
|
12443
12457
|
_focusMonitor = inject(WorkbenchFocusMonitor);
|
|
12444
12458
|
_logger = inject(Logger);
|
|
12445
12459
|
_adapters = new Map();
|
|
12446
|
-
_title = signal(null);
|
|
12447
|
-
_heading = signal(null);
|
|
12448
|
-
_dirty = signal(false);
|
|
12449
|
-
_closable = signal(true);
|
|
12460
|
+
_title = signal(null, ...(ngDevMode ? [{ debugName: "_title" }] : []));
|
|
12461
|
+
_heading = signal(null, ...(ngDevMode ? [{ debugName: "_heading" }] : []));
|
|
12462
|
+
_dirty = signal(false, ...(ngDevMode ? [{ debugName: "_dirty" }] : []));
|
|
12463
|
+
_closable = signal(true, ...(ngDevMode ? [{ debugName: "_closable" }] : []));
|
|
12450
12464
|
_blockedBy;
|
|
12451
|
-
_scrolledIntoView = signal(true);
|
|
12465
|
+
_scrolledIntoView = signal(true, ...(ngDevMode ? [{ debugName: "_scrolledIntoView" }] : []));
|
|
12452
12466
|
alternativeId;
|
|
12453
|
-
navigation = signal(undefined);
|
|
12454
|
-
navigationHint = computed(() => this.navigation()?.hint);
|
|
12455
|
-
navigationData = computed(() => this.navigation()?.data ?? {});
|
|
12456
|
-
navigationState = computed(() => this.navigation()?.state ?? {});
|
|
12457
|
-
urlSegments = computed(() => this.navigation()?.path ?? []);
|
|
12458
|
-
position = computed(() => this.part().views().indexOf(this));
|
|
12459
|
-
first = computed(() => this.position() === 0);
|
|
12460
|
-
last = computed(() => this.position() === this.part().views().length - 1);
|
|
12461
|
-
part = signal(null);
|
|
12462
|
-
activationInstant = signal(0);
|
|
12463
|
-
active = signal(false);
|
|
12464
|
-
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id);
|
|
12467
|
+
navigation = signal(undefined, ...(ngDevMode ? [{ debugName: "navigation" }] : []));
|
|
12468
|
+
navigationHint = computed(() => this.navigation()?.hint, ...(ngDevMode ? [{ debugName: "navigationHint" }] : []));
|
|
12469
|
+
navigationData = computed(() => this.navigation()?.data ?? {}, ...(ngDevMode ? [{ debugName: "navigationData" }] : []));
|
|
12470
|
+
navigationState = computed(() => this.navigation()?.state ?? {}, ...(ngDevMode ? [{ debugName: "navigationState" }] : []));
|
|
12471
|
+
urlSegments = computed(() => this.navigation()?.path ?? [], ...(ngDevMode ? [{ debugName: "urlSegments" }] : []));
|
|
12472
|
+
position = computed(() => this.part().views().indexOf(this), ...(ngDevMode ? [{ debugName: "position" }] : []));
|
|
12473
|
+
first = computed(() => this.position() === 0, ...(ngDevMode ? [{ debugName: "first" }] : []));
|
|
12474
|
+
last = computed(() => this.position() === this.part().views().length - 1, ...(ngDevMode ? [{ debugName: "last" }] : []));
|
|
12475
|
+
part = signal(null, ...(ngDevMode ? [{ debugName: "part" }] : []));
|
|
12476
|
+
activationInstant = signal(0, ...(ngDevMode ? [{ debugName: "activationInstant" }] : []));
|
|
12477
|
+
active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
12478
|
+
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id, ...(ngDevMode ? [{ debugName: "focused" }] : []));
|
|
12465
12479
|
menuItems;
|
|
12466
12480
|
blockedBy$;
|
|
12467
12481
|
slot;
|
|
12468
12482
|
classList = new ClassList();
|
|
12469
|
-
isClosable = computed(() => this._closable() && !this._blockedBy());
|
|
12483
|
+
isClosable = computed(() => this._closable() && !this._blockedBy(), ...(ngDevMode ? [{ debugName: "isClosable" }] : []));
|
|
12470
12484
|
/**
|
|
12471
12485
|
* Guard to confirm closing the view, if any.
|
|
12472
12486
|
*
|
|
@@ -12885,7 +12899,7 @@ class ɵPopup {
|
|
|
12885
12899
|
};
|
|
12886
12900
|
_destroyed = false;
|
|
12887
12901
|
cssClasses;
|
|
12888
|
-
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id);
|
|
12902
|
+
focused = computed(() => this._focusMonitor.activeElement()?.id === this.id, ...(ngDevMode ? [{ debugName: "focused" }] : []));
|
|
12889
12903
|
/**
|
|
12890
12904
|
* Indicates whether this popup is blocked by dialog(s) that overlay it.
|
|
12891
12905
|
*/
|
|
@@ -12981,11 +12995,11 @@ class PageNotFoundComponent {
|
|
|
12981
12995
|
popup: isPopupOutlet(this.outlet) || undefined,
|
|
12982
12996
|
});
|
|
12983
12997
|
return outlets.get(this.outlet)?.map(segment => `${segment}`).join('/') ?? '';
|
|
12984
|
-
});
|
|
12985
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
12986
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
12998
|
+
}, ...(ngDevMode ? [{ debugName: "path" }] : []));
|
|
12999
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13000
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: PageNotFoundComponent, isStandalone: true, selector: "wb-page-not-found", ngImport: i0, template: "<header>{{('%workbench.page_not_found.title' | wbText)()}}</header>\n\n@if (isViewOutlet(outlet)) {\n @let message = '%workbench.page_not_found_view.message;path=' + path() | wbText;\n <section class=\"message\" [innerHTML]=\"message()\"></section>\n} @else if (isPartOutlet(outlet)) {\n @let message = '%workbench.page_not_found_part.message;path=' + path() | wbText;\n <section class=\"message\" [innerHTML]=\"message()\"></section>\n} @else {\n @let message = '%workbench.page_not_found.message;path=' + path() | wbText;\n <section class=\"message\" [innerHTML]=\"message()\"></section>\n}\n\n<section class=\"actions\">\n @if (isViewOutlet(outlet)) {\n <button (click)=\"workbenchService.resetPerspective()\">{{('%workbench.reset_perspective.action' | wbText)()}}</button>\n <button (click)=\"view!.close()\">{{('%workbench.close.action' | wbText)()}}</button>\n } @else if (isPartOutlet(outlet)) {\n <button (click)=\"workbenchService.resetPerspective()\">{{('%workbench.reset_perspective.action' | wbText)()}}</button>\n } @else if (isDialogOutlet(outlet)) {\n <button (click)=\"dialog!.close()\">{{('%workbench.close.action' | wbText)()}}</button>\n } @else if (isPopupOutlet(outlet)) {\n <button (click)=\"popup!.close()\">{{('%workbench.close.action' | wbText)()}}</button>\n }\n</section>\n\n@if (isDevMode) {\n @let hint = '%workbench.page_not_found_developer_hint.message' | wbText;\n @let tooltip = '%workbench.dev_mode_only_hint.tooltip' | wbText;\n <section class=\"developer-hint\" [title]=\"tooltip()\">{{hint()}}</section>\n}\n", styles: [":host{display:flex;flex-direction:column;gap:2em;padding:3em;align-items:center}:host>header{font-weight:700;font-size:1.3rem}:host>section.message{text-align:center;line-height:1.75}:host>section.developer-hint{border:1px solid var(--sci-color-accent);border-radius:var(--sci-corner);padding:1em;max-width:550px;color:var(--sci-color-accent);font-family:monospace;text-align:center}:host>section.actions{display:flex;gap:.5em}:host>section.actions>button:is(button,#sci-reset){all:unset;cursor:var(--sci-workbench-button-cursor);padding:.5em 1.5em;color:var(--sci-color-accent-inverse);background-color:var(--sci-color-accent);background-clip:padding-box;border:1px solid var(--sci-color-accent);border-radius:var(--sci-corner);text-align:center}:host>section.actions>button:is(button,#sci-reset):focus,:host>section.actions>button:is(button,#sci-reset):active{border-color:transparent;outline:1px solid var(--sci-color-accent);color:var(--sci-color-accent-inverse)}\n"], dependencies: [{ kind: "pipe", type: TextPipe, name: "wbText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12987
13001
|
}
|
|
12988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: PageNotFoundComponent, decorators: [{
|
|
12989
13003
|
type: Component,
|
|
12990
13004
|
args: [{ selector: 'wb-page-not-found', imports: [
|
|
12991
13005
|
TextPipe,
|
|
@@ -13012,10 +13026,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
13012
13026
|
* For more information, see the `standardizeConfig` function in Angular.
|
|
13013
13027
|
*/
|
|
13014
13028
|
class ɵEmptyOutletComponent {
|
|
13015
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13016
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
13029
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13030
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<router-outlet/>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
13017
13031
|
}
|
|
13018
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13032
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
13019
13033
|
type: Component,
|
|
13020
13034
|
args: [{ imports: [RouterOutlet], template: "<router-outlet/>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"] }]
|
|
13021
13035
|
}] });
|
|
@@ -13035,10 +13049,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
13035
13049
|
class NullContentComponent {
|
|
13036
13050
|
isDevMode = isDevMode();
|
|
13037
13051
|
view = inject(WorkbenchView, { optional: true });
|
|
13038
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13039
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
13052
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NullContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13053
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: NullContentComponent, isStandalone: true, selector: "wb-null-content", ngImport: i0, template: "@if (isDevMode && view) {\n @let hint = '%workbench.null_view_developer_hint.message;view=' + (view.alternativeId ?? view.id) | wbText;\n @let tooltip = '%workbench.dev_mode_only_hint.tooltip' | wbText;\n <section class=\"developer-hint\" [title]=\"tooltip()\" [innerHTML]=\"hint()\"></section>\n} @else {\n {{('%workbench.null_content.message' | wbText)()}}\n}\n", styles: [":host{display:flex;flex-direction:column;gap:2em;padding:3em;align-items:center;color:var(--sci-color-text-subtlest);-webkit-user-select:none;user-select:none}:host>section.developer-hint{border:1px solid var(--sci-color-accent);border-radius:var(--sci-corner);padding:1em;max-width:550px;color:var(--sci-color-accent);font-family:monospace;text-align:center;-webkit-user-select:text;user-select:text}\n"], dependencies: [{ kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
13040
13054
|
}
|
|
13041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13055
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NullContentComponent, decorators: [{
|
|
13042
13056
|
type: Component,
|
|
13043
13057
|
args: [{ selector: 'wb-null-content', imports: [
|
|
13044
13058
|
TextPipe,
|
|
@@ -13273,10 +13287,10 @@ class WorkbenchAuxiliaryRouteInstaller {
|
|
|
13273
13287
|
const newRoutes = [...config];
|
|
13274
13288
|
this._router.config.splice(0, this._router.config.length, ...newRoutes);
|
|
13275
13289
|
}
|
|
13276
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13277
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13290
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchAuxiliaryRouteInstaller, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13291
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchAuxiliaryRouteInstaller, providedIn: 'root' });
|
|
13278
13292
|
}
|
|
13279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchAuxiliaryRouteInstaller, decorators: [{
|
|
13280
13294
|
type: Injectable,
|
|
13281
13295
|
args: [{ providedIn: 'root' }]
|
|
13282
13296
|
}] });
|
|
@@ -13362,10 +13376,10 @@ class WorkbenchLayoutDiffer {
|
|
|
13362
13376
|
views: this._viewsDiffer.diff(views),
|
|
13363
13377
|
});
|
|
13364
13378
|
}
|
|
13365
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13366
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13379
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutDiffer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13380
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutDiffer, providedIn: 'root' });
|
|
13367
13381
|
}
|
|
13368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutDiffer, decorators: [{
|
|
13369
13383
|
type: Injectable,
|
|
13370
13384
|
args: [{ providedIn: 'root' }]
|
|
13371
13385
|
}], ctorParameters: () => [] });
|
|
@@ -13439,10 +13453,10 @@ class WorkbenchOutletDiffer {
|
|
|
13439
13453
|
dialogs: this._dialogsDiffer.diff(dialogOutlets),
|
|
13440
13454
|
});
|
|
13441
13455
|
}
|
|
13442
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13443
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchOutletDiffer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13457
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchOutletDiffer, providedIn: 'root' });
|
|
13444
13458
|
}
|
|
13445
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchOutletDiffer, decorators: [{
|
|
13446
13460
|
type: Injectable,
|
|
13447
13461
|
args: [{ providedIn: 'root' }]
|
|
13448
13462
|
}] });
|
|
@@ -13744,10 +13758,10 @@ class WorkbenchUrlObserver {
|
|
|
13744
13758
|
}
|
|
13745
13759
|
});
|
|
13746
13760
|
}
|
|
13747
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13748
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13761
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchUrlObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13762
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchUrlObserver, providedIn: 'root' });
|
|
13749
13763
|
}
|
|
13750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchUrlObserver, decorators: [{
|
|
13751
13765
|
type: Injectable,
|
|
13752
13766
|
args: [{ providedIn: 'root' }]
|
|
13753
13767
|
}], ctorParameters: () => [] });
|
|
@@ -13876,10 +13890,10 @@ class ViewMoveHandler {
|
|
|
13876
13890
|
void this.onViewMove(event).finally(() => viewDragService.signalViewMoved(event));
|
|
13877
13891
|
});
|
|
13878
13892
|
}
|
|
13879
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13880
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13893
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMoveHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13894
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMoveHandler, providedIn: 'root' });
|
|
13881
13895
|
}
|
|
13882
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13896
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewMoveHandler, decorators: [{
|
|
13883
13897
|
type: Injectable,
|
|
13884
13898
|
args: [{ providedIn: 'root' }]
|
|
13885
13899
|
}], ctorParameters: () => [] });
|
|
@@ -13931,10 +13945,10 @@ class NgZoneObservableDecorator {
|
|
|
13931
13945
|
return () => subscription.unsubscribe();
|
|
13932
13946
|
});
|
|
13933
13947
|
}
|
|
13934
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13935
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
13948
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NgZoneObservableDecorator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13949
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NgZoneObservableDecorator });
|
|
13936
13950
|
}
|
|
13937
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
13951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NgZoneObservableDecorator, decorators: [{
|
|
13938
13952
|
type: Injectable
|
|
13939
13953
|
}] });
|
|
13940
13954
|
|
|
@@ -14033,10 +14047,10 @@ const MICROFRONTEND_PLATFORM_POST_STARTUP = new InjectionToken('MICROFRONTEND_PL
|
|
|
14033
14047
|
* Allows loading the configuration for the SCION Microfrontend Platform asynchronously, e.g., over the network or from a JSON file.
|
|
14034
14048
|
*/
|
|
14035
14049
|
class MicrofrontendPlatformConfigLoader {
|
|
14036
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14037
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
14050
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPlatformConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14051
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPlatformConfigLoader });
|
|
14038
14052
|
}
|
|
14039
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14053
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPlatformConfigLoader, decorators: [{
|
|
14040
14054
|
type: Injectable
|
|
14041
14055
|
}] });
|
|
14042
14056
|
|
|
@@ -14083,10 +14097,10 @@ class ManifestObjectCache {
|
|
|
14083
14097
|
return this._capabilities$
|
|
14084
14098
|
.pipe(startWith(undefined), map(() => this.getCapability(capabilityId, { orElse: null })), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)));
|
|
14085
14099
|
}
|
|
14086
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14087
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
14100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ManifestObjectCache, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14101
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ManifestObjectCache });
|
|
14088
14102
|
}
|
|
14089
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ManifestObjectCache, decorators: [{
|
|
14090
14104
|
type: Injectable
|
|
14091
14105
|
}] });
|
|
14092
14106
|
/**
|
|
@@ -14326,13 +14340,106 @@ class MicrofrontendViewIntentHandler {
|
|
|
14326
14340
|
.map(view => view.id);
|
|
14327
14341
|
return viewIds.length ? viewIds : null;
|
|
14328
14342
|
}
|
|
14329
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14330
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
14343
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewIntentHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14344
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewIntentHandler });
|
|
14331
14345
|
}
|
|
14332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14346
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewIntentHandler, decorators: [{
|
|
14333
14347
|
type: Injectable
|
|
14334
14348
|
}] });
|
|
14335
14349
|
|
|
14350
|
+
/*
|
|
14351
|
+
* Copyright (c) 2018-2025 Swiss Federal Railways
|
|
14352
|
+
*
|
|
14353
|
+
* This program and the accompanying materials are made
|
|
14354
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
14355
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
14356
|
+
*
|
|
14357
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
14358
|
+
*/
|
|
14359
|
+
/**
|
|
14360
|
+
* Registers a text provider for the SCION Workbench to get texts from micro apps.
|
|
14361
|
+
*
|
|
14362
|
+
* If the key matches the format of a remote key, text is requested via intent from the respective 'text-provider' capability.
|
|
14363
|
+
* If not, the key is ignored and `undefined` is returned.
|
|
14364
|
+
*
|
|
14365
|
+
* Remote key format: "workbench.external.~<APP_SYMBOLIC_NAME>~.<TEXT_KEY>".
|
|
14366
|
+
*
|
|
14367
|
+
* @see createRemoteTranslatable
|
|
14368
|
+
*/
|
|
14369
|
+
function provideRemoteTextProvider() {
|
|
14370
|
+
const REMOTE_KEY = /^workbench\.external\.~(?<provider>[^\\~]+)~\.(?<key>.+)$/;
|
|
14371
|
+
return makeEnvironmentProviders([
|
|
14372
|
+
{
|
|
14373
|
+
provide: WORKBENCH_TEXT_PROVIDER,
|
|
14374
|
+
useValue: remoteTextProvider,
|
|
14375
|
+
multi: true,
|
|
14376
|
+
},
|
|
14377
|
+
]);
|
|
14378
|
+
function remoteTextProvider(remoteKey, params) {
|
|
14379
|
+
// Test if the key matches a remote key.
|
|
14380
|
+
const match = REMOTE_KEY.exec(remoteKey);
|
|
14381
|
+
if (!match) {
|
|
14382
|
+
return undefined; // ignore key
|
|
14383
|
+
}
|
|
14384
|
+
// Parse key and provider from the remote key.
|
|
14385
|
+
const { key, provider } = match.groups;
|
|
14386
|
+
// Request the text by intent. Parameters starting with the topic protocol 'topic://' are resolved via messaging.
|
|
14387
|
+
const text$ = observeParams$(params)
|
|
14388
|
+
.pipe(map$1(params => params.reduce((translatable, [name, value]) => `${translatable};${name}=${value}`, `%${key}`)), switchMap(translatable => Beans.get(WorkbenchTextService).text$(translatable, { provider: provider })), map$1(text => text ?? key));
|
|
14389
|
+
return toSignal(text$, { initialValue: '' });
|
|
14390
|
+
}
|
|
14391
|
+
/**
|
|
14392
|
+
* Creates an Observable that emits tuples of name/value pairs from the passed parameters.
|
|
14393
|
+
*
|
|
14394
|
+
* Parameters starting with the topic protocol 'topic://' are resolved via topic-based messaging.
|
|
14395
|
+
*/
|
|
14396
|
+
function observeParams$(params) {
|
|
14397
|
+
const observableParams = Object.entries(params).map(([name, value]) => {
|
|
14398
|
+
if (!value.startsWith(TOPIC_PROTOCOL)) {
|
|
14399
|
+
return of([name, value]);
|
|
14400
|
+
}
|
|
14401
|
+
const topic = value.substring(TOPIC_PROTOCOL.length);
|
|
14402
|
+
return Beans.get(MessageClient).request$(topic, undefined, { retain: true }).pipe(map$1(({ body: resolved }) => ([name, resolved ?? ''])));
|
|
14403
|
+
});
|
|
14404
|
+
return observableParams.length ? combineLatest(observableParams) : of([]);
|
|
14405
|
+
}
|
|
14406
|
+
}
|
|
14407
|
+
/**
|
|
14408
|
+
* Creates a translatable for the SCION Workbench to request the text from a micro app.
|
|
14409
|
+
*
|
|
14410
|
+
* Passed parameters are used to substitute named interpolation parameters. A named interpolation parameter starts with a colon (`:`) followed by a name.
|
|
14411
|
+
*
|
|
14412
|
+
* Example: %translationKey;param1=value1;param2=:value2 // :value2 is a named interpolation parameter
|
|
14413
|
+
*
|
|
14414
|
+
* Named interpolation parameters can be substituted by explicit values (passed as value params) or topics (passed as topic params).
|
|
14415
|
+
* Unlike value params, topic params define a topic and the actual value will be requested when resolving the translatable.
|
|
14416
|
+
* Like the translatable's interpolation params, a topic can reference value params as named parameters in topic segments.
|
|
14417
|
+
*
|
|
14418
|
+
* @param translatable - Specifies the translatable.
|
|
14419
|
+
* @param config - Specifies the text provider and values for substituting named interpolation parameters.
|
|
14420
|
+
* @return Translatable that can be passed to the workbench's {@link text()} function for translation.
|
|
14421
|
+
*
|
|
14422
|
+
* @see provideRemoteTextProvider
|
|
14423
|
+
*/
|
|
14424
|
+
function createRemoteTranslatable(translatable, config) {
|
|
14425
|
+
if (!translatable?.startsWith('%')) {
|
|
14426
|
+
return translatable;
|
|
14427
|
+
}
|
|
14428
|
+
const remoteTranslatable = `%workbench.external.~${config.appSymbolicName}~.${translatable.substring(1)}`;
|
|
14429
|
+
const valueParams = Dictionaries.coerce(config.valueParams);
|
|
14430
|
+
const topicParams = Object.fromEntries(Object.entries(Dictionaries.coerce(config.topicParams))
|
|
14431
|
+
// Replace named params in topic segments.
|
|
14432
|
+
.map(([name, topic]) => [name, topic.replace(/(?<=\/|^):(?<namedParam>[^/]+)/g, (match, namedParam) => `${valueParams[namedParam] ?? match}`)])
|
|
14433
|
+
// Add topic protocol to indicate resolution via topic-based messaging.
|
|
14434
|
+
.map(([paramName, topic]) => [paramName, `${TOPIC_PROTOCOL}${topic}`]));
|
|
14435
|
+
// Replace named params in matrix param values.
|
|
14436
|
+
return remoteTranslatable.replace(/(?<==):(?<namedParam>[^;]+)/g, (match, namedParam) => `${valueParams[namedParam] ?? topicParams[namedParam] ?? match}`);
|
|
14437
|
+
}
|
|
14438
|
+
/**
|
|
14439
|
+
* Prefix of topic params.
|
|
14440
|
+
*/
|
|
14441
|
+
const TOPIC_PROTOCOL = 'topic://';
|
|
14442
|
+
|
|
14336
14443
|
/*
|
|
14337
14444
|
* Copyright (c) 2018-2024 Swiss Federal Railways
|
|
14338
14445
|
*
|
|
@@ -14348,14 +14455,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
14348
14455
|
* This component is designed to be displayed in {@link MicrofrontendHostMessageBoxComponent}.
|
|
14349
14456
|
*/
|
|
14350
14457
|
class TextMessageComponent {
|
|
14351
|
-
message
|
|
14352
|
-
|
|
14353
|
-
|
|
14458
|
+
message;
|
|
14459
|
+
constructor() {
|
|
14460
|
+
const messageBox = inject(WorkbenchMessageBox);
|
|
14461
|
+
const translatable = messageBox.params.get(eMESSAGE_BOX_MESSAGE_PARAM);
|
|
14462
|
+
this.message = createRemoteTranslatable(translatable, { appSymbolicName: messageBox.referrer.appSymbolicName });
|
|
14463
|
+
}
|
|
14464
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14465
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: TextMessageComponent, isStandalone: true, selector: "wb-text-message", ngImport: i0, template: "@if (message) {\n {{(message | wbText)()}}\n}\n", styles: [":host{overflow-wrap:break-word;white-space:pre-line;text-align:var(--sci-workbench-messagebox-text-align)}\n"], dependencies: [{ kind: "pipe", type: TextPipe, name: "wbText" }] });
|
|
14354
14466
|
}
|
|
14355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextMessageComponent, decorators: [{
|
|
14356
14468
|
type: Component,
|
|
14357
|
-
args: [{ selector: 'wb-text-message',
|
|
14358
|
-
|
|
14469
|
+
args: [{ selector: 'wb-text-message', imports: [
|
|
14470
|
+
TextPipe,
|
|
14471
|
+
], template: "@if (message) {\n {{(message | wbText)()}}\n}\n", styles: [":host{overflow-wrap:break-word;white-space:pre-line;text-align:var(--sci-workbench-messagebox-text-align)}\n"] }]
|
|
14472
|
+
}], ctorParameters: () => [] });
|
|
14359
14473
|
/**
|
|
14360
14474
|
* Route for the built-in text message box capability provided by the workbench host application.
|
|
14361
14475
|
*/
|
|
@@ -14388,6 +14502,7 @@ class WorkbenchHostManifestInterceptor {
|
|
|
14388
14502
|
...hostManifest.intentions ?? [],
|
|
14389
14503
|
providePerspectiveIntention(),
|
|
14390
14504
|
provideViewIntention(),
|
|
14505
|
+
provideTextProviderIntention(),
|
|
14391
14506
|
];
|
|
14392
14507
|
hostManifest.capabilities = [
|
|
14393
14508
|
...hostManifest.capabilities ?? [],
|
|
@@ -14395,10 +14510,10 @@ class WorkbenchHostManifestInterceptor {
|
|
|
14395
14510
|
provideBuiltInTextNotificationCapability(),
|
|
14396
14511
|
];
|
|
14397
14512
|
}
|
|
14398
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14399
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
14513
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchHostManifestInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14514
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchHostManifestInterceptor });
|
|
14400
14515
|
}
|
|
14401
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14516
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchHostManifestInterceptor, decorators: [{
|
|
14402
14517
|
type: Injectable
|
|
14403
14518
|
}] });
|
|
14404
14519
|
/**
|
|
@@ -14419,6 +14534,15 @@ function provideViewIntention() {
|
|
|
14419
14534
|
qualifier: { '*': '*' },
|
|
14420
14535
|
};
|
|
14421
14536
|
}
|
|
14537
|
+
/**
|
|
14538
|
+
* Provides a wildcard intention for the workbench to request texts from any application.
|
|
14539
|
+
*/
|
|
14540
|
+
function provideTextProviderIntention() {
|
|
14541
|
+
return {
|
|
14542
|
+
type: WorkbenchCapabilities.TextProvider,
|
|
14543
|
+
qualifier: { provider: '*' },
|
|
14544
|
+
};
|
|
14545
|
+
}
|
|
14422
14546
|
/**
|
|
14423
14547
|
* Provides the built-in notification capability to display text.
|
|
14424
14548
|
*
|
|
@@ -14467,10 +14591,10 @@ function provideBuiltInTextMessageBoxCapability() {
|
|
|
14467
14591
|
* SPDX-License-Identifier: EPL-2.0
|
|
14468
14592
|
*/
|
|
14469
14593
|
class MicrofrontendSplashComponent {
|
|
14470
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14471
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
14594
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendSplashComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14595
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: MicrofrontendSplashComponent, isStandalone: true, selector: "wb-microfrontend-splash", ngImport: i0, template: "<sci-throbber type=\"ellipsis\"/>\n", styles: [":host{display:grid;place-items:center;grid-template-rows:minmax(3em,150px);overflow:hidden}:host>sci-throbber{--sci-throbber-size: 64px}\n"], dependencies: [{ kind: "component", type: SciThrobberComponent, selector: "sci-throbber", inputs: ["type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14472
14596
|
}
|
|
14473
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14597
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendSplashComponent, decorators: [{
|
|
14474
14598
|
type: Component,
|
|
14475
14599
|
args: [{ selector: 'wb-microfrontend-splash', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SciThrobberComponent], template: "<sci-throbber type=\"ellipsis\"/>\n", styles: [":host{display:grid;place-items:center;grid-template-rows:minmax(3em,150px);overflow:hidden}:host>sci-throbber{--sci-throbber-size: 64px}\n"] }]
|
|
14476
14600
|
}] });
|
|
@@ -14555,7 +14679,7 @@ const Microfrontends = {
|
|
|
14555
14679
|
},
|
|
14556
14680
|
/**
|
|
14557
14681
|
* Replaces named parameters in the given value with values contained in the given {@link Map}.
|
|
14558
|
-
* Named parameters
|
|
14682
|
+
* Named parameters start with a colon (`:`).
|
|
14559
14683
|
*/
|
|
14560
14684
|
substituteNamedParameters,
|
|
14561
14685
|
};
|
|
@@ -14670,10 +14794,10 @@ class MicrofrontendPopupComponent {
|
|
|
14670
14794
|
get popupContext() {
|
|
14671
14795
|
return this.popup.input;
|
|
14672
14796
|
}
|
|
14673
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14674
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
14797
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14798
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: MicrofrontendPopupComponent, isStandalone: true, selector: "wb-microfrontend-popup", host: { properties: { "class.workbench-drag": "workbenchLayoutService.dragging()" } }, viewQueries: [{ propertyName: "_routerOutletElement", first: true, predicate: ["router_outlet"], descendants: true, isSignal: true }], ngImport: i0, template: "<sci-router-outlet #router_outlet\n [name]=\"popup.id\"\n [attr.data-capabilityid]=\"popupCapability.metadata!.id\"\n [attr.data-app]=\"popupCapability.metadata!.appSymbolicName\"\n [ngClass]=\"popup.cssClasses\" class=\"e2e-popup\"\n keystrokes=\"keydown.escape\"\n (focuswithin)=\"onFocusWithin($event)\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n</sci-router-outlet>\n", styles: [":host{display:grid}:host.workbench-drag>sci-router-outlet{pointer-events:none}:host>sci-router-outlet::part(splash){display:grid}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] });
|
|
14675
14799
|
}
|
|
14676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupComponent, decorators: [{
|
|
14677
14801
|
type: Component,
|
|
14678
14802
|
args: [{ selector: 'wb-microfrontend-popup', imports: [NgClass, NgComponentOutlet], schemas: [CUSTOM_ELEMENTS_SCHEMA], host: {
|
|
14679
14803
|
'[class.workbench-drag]': 'workbenchLayoutService.dragging()',
|
|
@@ -14746,10 +14870,10 @@ class MicrofrontendHostPopupComponent {
|
|
|
14746
14870
|
const commands = [{ outlets: { [this.popup.id]: outletCommands } }];
|
|
14747
14871
|
return this._angularRouterMutex.submit(() => this._router.navigate(commands, { skipLocationChange: true, queryParamsHandling: 'preserve' }));
|
|
14748
14872
|
}
|
|
14749
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14750
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
14873
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendHostPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14874
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: MicrofrontendHostPopupComponent, isStandalone: true, selector: "wb-microfrontend-host-popup", ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"router_outlet; injector: outletInjector\"/>\n\n<ng-template #router_outlet>\n <router-outlet [name]=\"popup.id\"/>\n</ng-template>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
14751
14875
|
}
|
|
14752
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
14876
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendHostPopupComponent, decorators: [{
|
|
14753
14877
|
type: Component,
|
|
14754
14878
|
args: [{ selector: 'wb-microfrontend-host-popup', imports: [
|
|
14755
14879
|
RouterOutlet,
|
|
@@ -14920,10 +15044,10 @@ class MicrofrontendPopupIntentHandler {
|
|
|
14920
15044
|
viewCapabilityId: view.adapt(MicrofrontendWorkbenchView)?.capability.metadata.id,
|
|
14921
15045
|
};
|
|
14922
15046
|
}
|
|
14923
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14924
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15047
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupIntentHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15048
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupIntentHandler });
|
|
14925
15049
|
}
|
|
14926
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15050
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupIntentHandler, decorators: [{
|
|
14927
15051
|
type: Injectable
|
|
14928
15052
|
}] });
|
|
14929
15053
|
|
|
@@ -14951,10 +15075,10 @@ class MicrofrontendPopupCapabilityValidator {
|
|
|
14951
15075
|
}
|
|
14952
15076
|
return capability;
|
|
14953
15077
|
}
|
|
14954
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
14955
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15078
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15079
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupCapabilityValidator });
|
|
14956
15080
|
}
|
|
14957
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15081
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPopupCapabilityValidator, decorators: [{
|
|
14958
15082
|
type: Injectable
|
|
14959
15083
|
}] });
|
|
14960
15084
|
|
|
@@ -14976,8 +15100,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
14976
15100
|
* This component is designed to be displayed in a workbench message box.
|
|
14977
15101
|
*/
|
|
14978
15102
|
class MicrofrontendHostMessageBoxComponent {
|
|
14979
|
-
capability = input.required();
|
|
14980
|
-
params = input.required();
|
|
15103
|
+
capability = input.required(...(ngDevMode ? [{ debugName: "capability" }] : []));
|
|
15104
|
+
params = input.required(...(ngDevMode ? [{ debugName: "params" }] : []));
|
|
15105
|
+
referrer = input.required(...(ngDevMode ? [{ debugName: "referrer" }] : []));
|
|
14981
15106
|
_host = inject(ElementRef).nativeElement;
|
|
14982
15107
|
_injector = inject(Injector);
|
|
14983
15108
|
_router = inject(Router);
|
|
@@ -15015,11 +15140,17 @@ class MicrofrontendHostMessageBoxComponent {
|
|
|
15015
15140
|
computeOutletInjector() {
|
|
15016
15141
|
const injector = inject(Injector);
|
|
15017
15142
|
return computed(() => {
|
|
15018
|
-
const
|
|
15019
|
-
|
|
15143
|
+
const context = {
|
|
15144
|
+
capability: this.capability(),
|
|
15145
|
+
params: this.params(),
|
|
15146
|
+
dialogId: this.dialog.id,
|
|
15147
|
+
referrer: {
|
|
15148
|
+
appSymbolicName: this.referrer(),
|
|
15149
|
+
},
|
|
15150
|
+
};
|
|
15020
15151
|
return untracked(() => Injector.create({
|
|
15021
15152
|
parent: injector,
|
|
15022
|
-
providers: [provideWorkbenchClientMessageBoxHandle(
|
|
15153
|
+
providers: [provideWorkbenchClientMessageBoxHandle(context)],
|
|
15023
15154
|
}));
|
|
15024
15155
|
});
|
|
15025
15156
|
}
|
|
@@ -15038,10 +15169,10 @@ class MicrofrontendHostMessageBoxComponent {
|
|
|
15038
15169
|
});
|
|
15039
15170
|
});
|
|
15040
15171
|
}
|
|
15041
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15042
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
15172
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendHostMessageBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15173
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: MicrofrontendHostMessageBoxComponent, isStandalone: true, selector: "wb-microfrontend-host-message-box", inputs: { capability: { classPropertyName: "capability", publicName: "capability", isSignal: true, isRequired: true, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: true, transformFunction: null }, referrer: { classPropertyName: "referrer", publicName: "referrer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"router_outlet; injector: outletInjector()\"/>\n\n<ng-template #router_outlet>\n <router-outlet [name]=\"dialog.id\"/>\n</ng-template>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
15043
15174
|
}
|
|
15044
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendHostMessageBoxComponent, decorators: [{
|
|
15045
15176
|
type: Component,
|
|
15046
15177
|
args: [{ selector: 'wb-microfrontend-host-message-box', imports: [
|
|
15047
15178
|
RouterOutlet,
|
|
@@ -15051,14 +15182,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
15051
15182
|
/**
|
|
15052
15183
|
* Provides the {WorkbenchMessageBox} handle to the routed component.
|
|
15053
15184
|
*/
|
|
15054
|
-
function provideWorkbenchClientMessageBoxHandle(
|
|
15185
|
+
function provideWorkbenchClientMessageBoxHandle(context) {
|
|
15055
15186
|
return {
|
|
15056
15187
|
provide: WorkbenchMessageBox,
|
|
15057
15188
|
useFactory: () => {
|
|
15058
15189
|
const dialog = inject(ɵWorkbenchDialog);
|
|
15059
15190
|
return new class {
|
|
15060
|
-
capability = capability;
|
|
15061
|
-
params = params;
|
|
15191
|
+
capability = context.capability;
|
|
15192
|
+
params = context.params;
|
|
15193
|
+
referrer = context.referrer;
|
|
15062
15194
|
id = dialog.id;
|
|
15063
15195
|
focused$ = toObservable(dialog.focused, { injector: dialog.injector });
|
|
15064
15196
|
signalReady() {
|
|
@@ -15084,8 +15216,9 @@ function provideWorkbenchClientMessageBoxHandle(capability, params) {
|
|
|
15084
15216
|
* This component is designed to be displayed in a workbench message box.
|
|
15085
15217
|
*/
|
|
15086
15218
|
class MicrofrontendMessageBoxComponent {
|
|
15087
|
-
capability = input.required();
|
|
15088
|
-
params = input.required();
|
|
15219
|
+
capability = input.required(...(ngDevMode ? [{ debugName: "capability" }] : []));
|
|
15220
|
+
params = input.required(...(ngDevMode ? [{ debugName: "params" }] : []));
|
|
15221
|
+
referrer = input.required(...(ngDevMode ? [{ debugName: "referrer" }] : []));
|
|
15089
15222
|
_host = inject(ElementRef).nativeElement;
|
|
15090
15223
|
_outletRouter = inject(OutletRouter);
|
|
15091
15224
|
_messageClient = inject(MessageClient);
|
|
@@ -15145,6 +15278,9 @@ class MicrofrontendMessageBoxComponent {
|
|
|
15145
15278
|
dialogId: this.dialog.id,
|
|
15146
15279
|
capability: this.capability(),
|
|
15147
15280
|
params: this.params(),
|
|
15281
|
+
referrer: {
|
|
15282
|
+
appSymbolicName: this.referrer(),
|
|
15283
|
+
},
|
|
15148
15284
|
};
|
|
15149
15285
|
const routerOutletElement = this._routerOutletElement().nativeElement;
|
|
15150
15286
|
untracked(() => routerOutletElement.setContextValue(_MESSAGE_BOX_CONTEXT, context));
|
|
@@ -15165,10 +15301,10 @@ class MicrofrontendMessageBoxComponent {
|
|
|
15165
15301
|
const properties = this.capability().properties;
|
|
15166
15302
|
untracked(() => {
|
|
15167
15303
|
setStyle(routerOutletElement, {
|
|
15168
|
-
'width': properties.size?.width ?? '0', // allow content size to go
|
|
15304
|
+
'width': properties.size?.width ?? '0', // allow content size to go below the default iframe size when reporting preferred size
|
|
15169
15305
|
'min-width': properties.size?.minWidth ?? null,
|
|
15170
15306
|
'max-width': properties.size?.maxWidth ?? null,
|
|
15171
|
-
'height': properties.size?.height ?? '0', // allow content size to go
|
|
15307
|
+
'height': properties.size?.height ?? '0', // allow content size to go below the default iframe size when reporting preferred size
|
|
15172
15308
|
'min-height': properties.size?.minHeight ?? null,
|
|
15173
15309
|
'max-height': properties.size?.maxHeight ?? null,
|
|
15174
15310
|
});
|
|
@@ -15178,10 +15314,10 @@ class MicrofrontendMessageBoxComponent {
|
|
|
15178
15314
|
propagateWorkbenchTheme() {
|
|
15179
15315
|
Microfrontends.propagateTheme(this._routerOutletElement);
|
|
15180
15316
|
}
|
|
15181
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15182
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
15317
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15318
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: MicrofrontendMessageBoxComponent, isStandalone: true, selector: "wb-microfrontend-message-box", inputs: { capability: { classPropertyName: "capability", publicName: "capability", isSignal: true, isRequired: true, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: true, transformFunction: null }, referrer: { classPropertyName: "referrer", publicName: "referrer", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.workbench-drag": "workbenchLayoutService.dragging()" } }, viewQueries: [{ propertyName: "_routerOutletElement", first: true, predicate: ["router_outlet"], descendants: true, isSignal: true }], ngImport: i0, template: "<sci-router-outlet #router_outlet\n [name]=\"dialog.id\"\n [attr.data-capabilityid]=\"capability().metadata!.id\"\n [attr.data-app]=\"capability().metadata!.appSymbolicName\"\n keystrokes=\"keydown.escape\"\n (focuswithin)=\"onFocusWithin($event)\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n</sci-router-outlet>\n", styles: [":host{display:grid}:host.workbench-drag>sci-router-outlet{pointer-events:none}:host>sci-router-outlet::part(splash){display:grid}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] });
|
|
15183
15319
|
}
|
|
15184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxComponent, decorators: [{
|
|
15185
15321
|
type: Component,
|
|
15186
15322
|
args: [{ selector: 'wb-microfrontend-message-box', imports: [
|
|
15187
15323
|
NgComponentOutlet,
|
|
@@ -15245,12 +15381,13 @@ class MicrofrontendMessageBoxIntentHandler {
|
|
|
15245
15381
|
const options = message.body ?? {};
|
|
15246
15382
|
const capability = message.capability;
|
|
15247
15383
|
const params = message.intent.params ?? new Map();
|
|
15384
|
+
const referrer = message.headers.get(MessageHeaders.AppSymbolicName);
|
|
15248
15385
|
const isHostProvider = capability.metadata.appSymbolicName === Beans.get(APP_IDENTITY);
|
|
15249
15386
|
this._logger.debug(() => 'Handling microfrontend messagebox intent', LoggerNames.MICROFRONTEND, options);
|
|
15250
15387
|
return this._messageBoxService.open(isHostProvider ? MicrofrontendHostMessageBoxComponent : MicrofrontendMessageBoxComponent, {
|
|
15251
|
-
inputs: { capability, params },
|
|
15252
|
-
title: options.title,
|
|
15253
|
-
actions: options.actions,
|
|
15388
|
+
inputs: { capability, params, referrer },
|
|
15389
|
+
title: createRemoteTranslatable(options.title, { appSymbolicName: referrer }),
|
|
15390
|
+
actions: options.actions && Object.fromEntries(Object.entries(options.actions).map(([key, label]) => [key, createRemoteTranslatable(label, { appSymbolicName: referrer })])),
|
|
15254
15391
|
severity: options.severity,
|
|
15255
15392
|
modality: options.modality,
|
|
15256
15393
|
contentSelectable: options.contentSelectable,
|
|
@@ -15258,10 +15395,10 @@ class MicrofrontendMessageBoxIntentHandler {
|
|
|
15258
15395
|
context: options.context,
|
|
15259
15396
|
});
|
|
15260
15397
|
}
|
|
15261
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15262
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15398
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxIntentHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15399
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxIntentHandler });
|
|
15263
15400
|
}
|
|
15264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxIntentHandler, decorators: [{
|
|
15265
15402
|
type: Injectable
|
|
15266
15403
|
}] });
|
|
15267
15404
|
|
|
@@ -15280,8 +15417,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
15280
15417
|
* This component is designed to be displayed in a workbench dialog.
|
|
15281
15418
|
*/
|
|
15282
15419
|
class MicrofrontendDialogComponent {
|
|
15283
|
-
capability = input.required();
|
|
15284
|
-
params = input.required();
|
|
15420
|
+
capability = input.required(...(ngDevMode ? [{ debugName: "capability" }] : []));
|
|
15421
|
+
params = input.required(...(ngDevMode ? [{ debugName: "params" }] : []));
|
|
15285
15422
|
_host = inject(ElementRef).nativeElement;
|
|
15286
15423
|
_outletRouter = inject(OutletRouter);
|
|
15287
15424
|
_messageClient = inject(MessageClient);
|
|
@@ -15355,6 +15492,7 @@ class MicrofrontendDialogComponent {
|
|
|
15355
15492
|
effect(() => {
|
|
15356
15493
|
const properties = this.capability().properties;
|
|
15357
15494
|
const params = this.params();
|
|
15495
|
+
const appSymbolicName = this.capability().metadata.appSymbolicName;
|
|
15358
15496
|
untracked(() => {
|
|
15359
15497
|
this.dialog.size.width = properties.size.width;
|
|
15360
15498
|
this.dialog.size.height = properties.size.height;
|
|
@@ -15362,7 +15500,7 @@ class MicrofrontendDialogComponent {
|
|
|
15362
15500
|
this.dialog.size.maxWidth = properties.size.maxWidth;
|
|
15363
15501
|
this.dialog.size.minHeight = properties.size.minHeight;
|
|
15364
15502
|
this.dialog.size.maxHeight = properties.size.maxHeight;
|
|
15365
|
-
this.dialog.title =
|
|
15503
|
+
this.dialog.title = createRemoteTranslatable(properties.title, { appSymbolicName, valueParams: params, topicParams: properties.resolve });
|
|
15366
15504
|
this.dialog.closable = properties.closable ?? true;
|
|
15367
15505
|
this.dialog.resizable = properties.resizable ?? true;
|
|
15368
15506
|
this.dialog.padding = properties.padding ?? false;
|
|
@@ -15389,13 +15527,14 @@ class MicrofrontendDialogComponent {
|
|
|
15389
15527
|
inject(MessageClient).observe$(_WorkbenchCommands.dialogTitleTopic(this.dialog.id))
|
|
15390
15528
|
.pipe(takeUntilDestroyed())
|
|
15391
15529
|
.subscribe(message => {
|
|
15392
|
-
|
|
15530
|
+
const sender = message.headers.get(MessageHeaders.AppSymbolicName);
|
|
15531
|
+
this.dialog.title = createRemoteTranslatable(message.body, { appSymbolicName: sender });
|
|
15393
15532
|
});
|
|
15394
15533
|
}
|
|
15395
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15396
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
15534
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15535
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: MicrofrontendDialogComponent, isStandalone: true, selector: "wb-microfrontend-dialog", inputs: { capability: { classPropertyName: "capability", publicName: "capability", isSignal: true, isRequired: true, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.workbench-drag": "workbenchLayoutService.dragging()" } }, viewQueries: [{ propertyName: "_routerOutletElement", first: true, predicate: ["router_outlet"], descendants: true, isSignal: true }], ngImport: i0, template: "<sci-router-outlet #router_outlet\n [name]=\"dialog.id\"\n [attr.data-capabilityid]=\"capability().metadata!.id\"\n [attr.data-app]=\"capability().metadata!.appSymbolicName\"\n keystrokes=\"keydown.escape\"\n (focuswithin)=\"onFocusWithin($event)\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n</sci-router-outlet>\n", styles: [":host{display:grid}:host.workbench-drag>sci-router-outlet{pointer-events:none}:host>sci-router-outlet::part(splash){display:grid}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] });
|
|
15397
15536
|
}
|
|
15398
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogComponent, decorators: [{
|
|
15399
15538
|
type: Component,
|
|
15400
15539
|
args: [{ selector: 'wb-microfrontend-dialog', imports: [
|
|
15401
15540
|
NgComponentOutlet,
|
|
@@ -15422,8 +15561,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
15422
15561
|
* This component is designed to be displayed in a workbench dialog.
|
|
15423
15562
|
*/
|
|
15424
15563
|
class MicrofrontendHostDialogComponent {
|
|
15425
|
-
capability = input.required();
|
|
15426
|
-
params = input.required();
|
|
15564
|
+
capability = input.required(...(ngDevMode ? [{ debugName: "capability" }] : []));
|
|
15565
|
+
params = input.required(...(ngDevMode ? [{ debugName: "params" }] : []));
|
|
15427
15566
|
_injector = inject(Injector);
|
|
15428
15567
|
_router = inject(Router);
|
|
15429
15568
|
/** Mutex to serialize Angular Router navigation requests, preventing the cancellation of previously initiated asynchronous navigations. */
|
|
@@ -15472,6 +15611,7 @@ class MicrofrontendHostDialogComponent {
|
|
|
15472
15611
|
effect(() => {
|
|
15473
15612
|
const properties = this.capability().properties;
|
|
15474
15613
|
const params = this.params();
|
|
15614
|
+
const appSymbolicName = this.capability().metadata.appSymbolicName;
|
|
15475
15615
|
untracked(() => {
|
|
15476
15616
|
this.dialog.size.width = properties.size?.width;
|
|
15477
15617
|
this.dialog.size.height = properties.size?.height;
|
|
@@ -15479,17 +15619,17 @@ class MicrofrontendHostDialogComponent {
|
|
|
15479
15619
|
this.dialog.size.maxWidth = properties.size?.maxWidth;
|
|
15480
15620
|
this.dialog.size.minHeight = properties.size?.minHeight;
|
|
15481
15621
|
this.dialog.size.maxHeight = properties.size?.maxHeight;
|
|
15482
|
-
this.dialog.title =
|
|
15622
|
+
this.dialog.title = createRemoteTranslatable(properties.title, { appSymbolicName, valueParams: params, topicParams: properties.resolve });
|
|
15483
15623
|
this.dialog.closable = properties.closable ?? true;
|
|
15484
15624
|
this.dialog.resizable = properties.resizable ?? true;
|
|
15485
15625
|
this.dialog.padding = properties.padding ?? true;
|
|
15486
15626
|
});
|
|
15487
15627
|
});
|
|
15488
15628
|
}
|
|
15489
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15490
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
15629
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendHostDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15630
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: MicrofrontendHostDialogComponent, isStandalone: true, selector: "wb-microfrontend-host-dialog", inputs: { capability: { classPropertyName: "capability", publicName: "capability", isSignal: true, isRequired: true, transformFunction: null }, params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"router_outlet; injector: outletInjector()\"/>\n\n<ng-template #router_outlet>\n <router-outlet [name]=\"dialog.id\"/>\n</ng-template>\n", styles: [":host{display:grid}:host>router-outlet{position:absolute}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
15491
15631
|
}
|
|
15492
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendHostDialogComponent, decorators: [{
|
|
15493
15633
|
type: Component,
|
|
15494
15634
|
args: [{ selector: 'wb-microfrontend-host-dialog', imports: [
|
|
15495
15635
|
RouterOutlet,
|
|
@@ -15514,7 +15654,7 @@ function provideWorkbenchClientDialogHandle(capability, params) {
|
|
|
15514
15654
|
titleChange$.next();
|
|
15515
15655
|
Observables.coerce(title)
|
|
15516
15656
|
.pipe(takeUntilDestroyed(dialog.injector.get(DestroyRef)), takeUntil(titleChange$))
|
|
15517
|
-
.subscribe(title => dialog.title = title);
|
|
15657
|
+
.subscribe(title => dialog.title = createRemoteTranslatable(title, { appSymbolicName: capability.metadata.appSymbolicName }));
|
|
15518
15658
|
}
|
|
15519
15659
|
close(result) {
|
|
15520
15660
|
dialog.close(result);
|
|
@@ -15592,10 +15732,10 @@ class MicrofrontendDialogIntentHandler {
|
|
|
15592
15732
|
cssClass: Arrays.coerce(capability.properties.cssClass).concat(Arrays.coerce(options.cssClass)),
|
|
15593
15733
|
});
|
|
15594
15734
|
}
|
|
15595
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15596
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15735
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogIntentHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15736
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogIntentHandler });
|
|
15597
15737
|
}
|
|
15598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogIntentHandler, decorators: [{
|
|
15599
15739
|
type: Injectable
|
|
15600
15740
|
}] });
|
|
15601
15741
|
|
|
@@ -15644,10 +15784,10 @@ class MicrofrontendDialogCapabilityValidator {
|
|
|
15644
15784
|
throw Error(`[NullSizeError] Dialog capability requires width and height in its size properties [application="${capability.metadata.appSymbolicName}", capability="${Objects.toMatrixNotation(capability.qualifier)}"]`);
|
|
15645
15785
|
}
|
|
15646
15786
|
}
|
|
15647
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15648
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15787
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15788
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogCapabilityValidator });
|
|
15649
15789
|
}
|
|
15650
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15790
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendDialogCapabilityValidator, decorators: [{
|
|
15651
15791
|
type: Injectable
|
|
15652
15792
|
}] });
|
|
15653
15793
|
|
|
@@ -15675,10 +15815,10 @@ class MicrofrontendViewCapabilityValidator {
|
|
|
15675
15815
|
}
|
|
15676
15816
|
return capability;
|
|
15677
15817
|
}
|
|
15678
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15679
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15818
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15819
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewCapabilityValidator });
|
|
15680
15820
|
}
|
|
15681
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15821
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewCapabilityValidator, decorators: [{
|
|
15682
15822
|
type: Injectable
|
|
15683
15823
|
}] });
|
|
15684
15824
|
|
|
@@ -15701,10 +15841,10 @@ class StableCapabilityIdAssigner {
|
|
|
15701
15841
|
},
|
|
15702
15842
|
};
|
|
15703
15843
|
}
|
|
15704
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15705
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15844
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: StableCapabilityIdAssigner, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15845
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: StableCapabilityIdAssigner });
|
|
15706
15846
|
}
|
|
15707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: StableCapabilityIdAssigner, decorators: [{
|
|
15708
15848
|
type: Injectable
|
|
15709
15849
|
}] });
|
|
15710
15850
|
|
|
@@ -15732,10 +15872,10 @@ class MicrofrontendMessageBoxCapabilityValidator {
|
|
|
15732
15872
|
}
|
|
15733
15873
|
return capability;
|
|
15734
15874
|
}
|
|
15735
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15736
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15875
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15876
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxCapabilityValidator });
|
|
15737
15877
|
}
|
|
15738
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15878
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendMessageBoxCapabilityValidator, decorators: [{
|
|
15739
15879
|
type: Injectable
|
|
15740
15880
|
}] });
|
|
15741
15881
|
function isBuiltInTextMessageBoxCapability(capability) {
|
|
@@ -15773,10 +15913,10 @@ class MicrofrontendPerspectiveCapabilityValidator {
|
|
|
15773
15913
|
}
|
|
15774
15914
|
return capability;
|
|
15775
15915
|
}
|
|
15776
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15777
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15916
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveCapabilityValidator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15917
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveCapabilityValidator });
|
|
15778
15918
|
}
|
|
15779
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15919
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveCapabilityValidator, decorators: [{
|
|
15780
15920
|
type: Injectable
|
|
15781
15921
|
}] });
|
|
15782
15922
|
|
|
@@ -15818,10 +15958,37 @@ class MicrofrontendPerspectiveIntentHandler {
|
|
|
15818
15958
|
this._logger.debug(() => `Switching to perspective ${perspectiveId}.`, LoggerNames.MICROFRONTEND);
|
|
15819
15959
|
return this._workbenchService.switchPerspective(perspectiveId);
|
|
15820
15960
|
}
|
|
15821
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15822
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
15961
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveIntentHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15962
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveIntentHandler });
|
|
15823
15963
|
}
|
|
15824
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15964
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveIntentHandler, decorators: [{
|
|
15965
|
+
type: Injectable
|
|
15966
|
+
}] });
|
|
15967
|
+
|
|
15968
|
+
/**
|
|
15969
|
+
* Configures view capabilities not defining {@link WorkbenchViewCapability.properties.lazy} to preload views to maintain compatibility with applications setting view titles and headings in view microfrontends.
|
|
15970
|
+
*
|
|
15971
|
+
* @see MicrofrontendPlatformConfig.preloadInactiveViews
|
|
15972
|
+
*/
|
|
15973
|
+
class ViewCapabilityPreloadCapabilityInterceptor {
|
|
15974
|
+
_logger = inject(Logger);
|
|
15975
|
+
async intercept(capability) {
|
|
15976
|
+
if (capability.type !== WorkbenchCapabilities.View) {
|
|
15977
|
+
return capability;
|
|
15978
|
+
}
|
|
15979
|
+
const viewCapability = capability;
|
|
15980
|
+
if (viewCapability.properties.lazy === undefined) {
|
|
15981
|
+
viewCapability.properties.lazy = false;
|
|
15982
|
+
const appSymbolicName = viewCapability.metadata?.appSymbolicName;
|
|
15983
|
+
const qualifier = Object.entries(viewCapability.qualifier).reduce((qualifier, [key, value]) => `${qualifier};${key}=${value}`, '').substring(1);
|
|
15984
|
+
this._logger.warn(`[Deprecation] Application '${appSymbolicName}' provides a "non-lazy" view capability: {${qualifier}}. Change to lazy by setting 'lazy' in capability properties. Lazy views require a title and heading in the manifest. Title and heading can be localized with optional interpolation parameters using resolvers. See documentation for details: https://workbench-client-api.scion.vercel.app/interfaces/WorkbenchViewCapability.html`);
|
|
15985
|
+
}
|
|
15986
|
+
return viewCapability;
|
|
15987
|
+
}
|
|
15988
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewCapabilityPreloadCapabilityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15989
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewCapabilityPreloadCapabilityInterceptor });
|
|
15990
|
+
}
|
|
15991
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ViewCapabilityPreloadCapabilityInterceptor, decorators: [{
|
|
15825
15992
|
type: Injectable
|
|
15826
15993
|
}] });
|
|
15827
15994
|
|
|
@@ -15852,6 +16019,7 @@ class MicrofrontendPlatformInitializer {
|
|
|
15852
16019
|
_dialogCapabilityValidator = inject(MicrofrontendDialogCapabilityValidator);
|
|
15853
16020
|
_messageBoxCapabilityValidator = inject(MicrofrontendMessageBoxCapabilityValidator);
|
|
15854
16021
|
_stableCapabilityIdAssigner = inject(StableCapabilityIdAssigner);
|
|
16022
|
+
_viewCapabilityPreloadCapabilityInterceptor = inject(ViewCapabilityPreloadCapabilityInterceptor);
|
|
15855
16023
|
_injector = inject(Injector);
|
|
15856
16024
|
_zone = inject(NgZone);
|
|
15857
16025
|
_logger = inject(Logger);
|
|
@@ -15873,6 +16041,7 @@ class MicrofrontendPlatformInitializer {
|
|
|
15873
16041
|
Beans.register(WorkbenchMessageBoxService$1, { useClass: _WorkbenchMessageBoxService });
|
|
15874
16042
|
Beans.register(WorkbenchDialogService$1, { useClass: _WorkbenchDialogService });
|
|
15875
16043
|
Beans.register(WorkbenchNotificationService);
|
|
16044
|
+
Beans.register(WorkbenchTextService, { useClass: _WorkbenchTextService });
|
|
15876
16045
|
// Register host manifest interceptor for the workbench to register workbench-specific intentions and capabilities.
|
|
15877
16046
|
Beans.register(HostManifestInterceptor, { useValue: this._hostManifestInterceptor, multi: true });
|
|
15878
16047
|
// Synchronize emissions of Observables exposed by the SCION Microfrontend Platform with the Angular zone.
|
|
@@ -15899,6 +16068,10 @@ class MicrofrontendPlatformInitializer {
|
|
|
15899
16068
|
Beans.register(CapabilityInterceptor, { useValue: this._messageBoxCapabilityValidator, multi: true });
|
|
15900
16069
|
// Register capability interceptor to assign perspective and view capabilities a stable identifier.
|
|
15901
16070
|
Beans.register(CapabilityInterceptor, { useValue: this._stableCapabilityIdAssigner, multi: true });
|
|
16071
|
+
// Register view capability interceptor to preload inactive microfrontend views not defining the `lazy` property to maintain compatibility with applications setting view titles and headings in view microfrontends.
|
|
16072
|
+
if (this.config.preloadInactiveViews) {
|
|
16073
|
+
Beans.register(CapabilityInterceptor, { useValue: this._viewCapabilityPreloadCapabilityInterceptor, multi: true });
|
|
16074
|
+
}
|
|
15902
16075
|
// Inject services registered under {MICROFRONTEND_PLATFORM_POST_STARTUP} DI token;
|
|
15903
16076
|
// must be done in runlevel 2, i.e., before activator microfrontends are installed.
|
|
15904
16077
|
Beans.registerInitializer({
|
|
@@ -15914,10 +16087,10 @@ class MicrofrontendPlatformInitializer {
|
|
|
15914
16087
|
ngOnDestroy() {
|
|
15915
16088
|
void MicrofrontendPlatform.destroy();
|
|
15916
16089
|
}
|
|
15917
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
15918
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
16090
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPlatformInitializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16091
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPlatformInitializer });
|
|
15919
16092
|
}
|
|
15920
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPlatformInitializer, decorators: [{
|
|
15921
16094
|
type: Injectable
|
|
15922
16095
|
}] });
|
|
15923
16096
|
|
|
@@ -15949,7 +16122,8 @@ class MicrofrontendViewCommandHandler {
|
|
|
15949
16122
|
return this._messageClient.onMessage(_WorkbenchCommands.viewTitleTopic(':viewId'), message => {
|
|
15950
16123
|
const viewId = message.params.get('viewId');
|
|
15951
16124
|
this.runIfPrivileged(viewId, message, view => {
|
|
15952
|
-
|
|
16125
|
+
const referrer = message.headers.get(MessageHeaders.AppSymbolicName);
|
|
16126
|
+
view.title = createRemoteTranslatable(message.body, { appSymbolicName: referrer }) ?? null;
|
|
15953
16127
|
});
|
|
15954
16128
|
});
|
|
15955
16129
|
}
|
|
@@ -15960,7 +16134,8 @@ class MicrofrontendViewCommandHandler {
|
|
|
15960
16134
|
return this._messageClient.onMessage(_WorkbenchCommands.viewHeadingTopic(':viewId'), message => {
|
|
15961
16135
|
const viewId = message.params.get('viewId');
|
|
15962
16136
|
this.runIfPrivileged(viewId, message, view => {
|
|
15963
|
-
|
|
16137
|
+
const referrer = message.headers.get(MessageHeaders.AppSymbolicName);
|
|
16138
|
+
view.heading = createRemoteTranslatable(message.body, { appSymbolicName: referrer }) ?? null;
|
|
15964
16139
|
});
|
|
15965
16140
|
});
|
|
15966
16141
|
}
|
|
@@ -16014,10 +16189,10 @@ class MicrofrontendViewCommandHandler {
|
|
|
16014
16189
|
ngOnDestroy() {
|
|
16015
16190
|
this._subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
16016
16191
|
}
|
|
16017
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16018
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
16192
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewCommandHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16193
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewCommandHandler });
|
|
16019
16194
|
}
|
|
16020
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewCommandHandler, decorators: [{
|
|
16021
16196
|
type: Injectable
|
|
16022
16197
|
}], ctorParameters: () => [] });
|
|
16023
16198
|
/**
|
|
@@ -16058,10 +16233,10 @@ class Notification {
|
|
|
16058
16233
|
*/
|
|
16059
16234
|
class TextNotificationComponent {
|
|
16060
16235
|
text = inject(Notification).input;
|
|
16061
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16062
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
16236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16237
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: TextNotificationComponent, isStandalone: true, selector: "wb-text-notification", ngImport: i0, template: `{{(text | wbText)()}}`, isInline: true, dependencies: [{ kind: "pipe", type: TextPipe, name: "wbText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16063
16238
|
}
|
|
16064
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: TextNotificationComponent, decorators: [{
|
|
16065
16240
|
type: Component,
|
|
16066
16241
|
args: [{
|
|
16067
16242
|
selector: 'wb-text-notification',
|
|
@@ -16233,10 +16408,10 @@ class NotificationService {
|
|
|
16233
16408
|
this.closeNotification(lastNotification);
|
|
16234
16409
|
});
|
|
16235
16410
|
}
|
|
16236
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16237
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
16411
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16412
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationService, providedIn: 'root' });
|
|
16238
16413
|
}
|
|
16239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationService, decorators: [{
|
|
16240
16415
|
type: Injectable,
|
|
16241
16416
|
args: [{ providedIn: 'root' }]
|
|
16242
16417
|
}], ctorParameters: () => [] });
|
|
@@ -16257,11 +16432,13 @@ function installNotificationIntentHandler() {
|
|
|
16257
16432
|
const intentClient = inject(IntentClient);
|
|
16258
16433
|
const notificationService = inject(NotificationService);
|
|
16259
16434
|
const logger = inject(Logger);
|
|
16260
|
-
intentClient.onIntent({ type: WorkbenchCapabilities.Notification, qualifier: {} },
|
|
16435
|
+
intentClient.onIntent({ type: WorkbenchCapabilities.Notification, qualifier: {} }, message => {
|
|
16436
|
+
const config = message.body;
|
|
16437
|
+
const referrer = message.headers.get(MessageHeaders.AppSymbolicName);
|
|
16261
16438
|
logger.debug(() => 'Showing notification', LoggerNames.MICROFRONTEND, config);
|
|
16262
16439
|
notificationService.notify({
|
|
16263
|
-
title: config?.title,
|
|
16264
|
-
content: config?.content
|
|
16440
|
+
title: createRemoteTranslatable(config?.title, { appSymbolicName: referrer }),
|
|
16441
|
+
content: createRemoteTranslatable(config?.content, { appSymbolicName: referrer }) ?? '',
|
|
16265
16442
|
severity: config?.severity,
|
|
16266
16443
|
duration: config?.duration,
|
|
16267
16444
|
group: config?.group,
|
|
@@ -16317,11 +16494,11 @@ class ContentAsOverlayComponent {
|
|
|
16317
16494
|
*
|
|
16318
16495
|
* A config input is used instead of separate input properties to support updating the config if detached from the Angular change detector.
|
|
16319
16496
|
*/
|
|
16320
|
-
config = input.required();
|
|
16497
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
|
|
16321
16498
|
_template = viewChild.required(TemplateRef);
|
|
16322
|
-
_visible = computed(() => this.config().visible());
|
|
16323
|
-
_location = computed(() => this.config().location());
|
|
16324
|
-
_overlay = signal(undefined);
|
|
16499
|
+
_visible = computed(() => this.config().visible(), ...(ngDevMode ? [{ debugName: "_visible" }] : []));
|
|
16500
|
+
_location = computed(() => this.config().location(), ...(ngDevMode ? [{ debugName: "_location" }] : []));
|
|
16501
|
+
_overlay = signal(undefined, ...(ngDevMode ? [{ debugName: "_overlay" }] : []));
|
|
16325
16502
|
constructor() {
|
|
16326
16503
|
this.createOverlay();
|
|
16327
16504
|
this.alignOverlayToHostBounds();
|
|
@@ -16383,10 +16560,10 @@ class ContentAsOverlayComponent {
|
|
|
16383
16560
|
});
|
|
16384
16561
|
});
|
|
16385
16562
|
}
|
|
16386
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16387
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
16563
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ContentAsOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16564
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", 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" });
|
|
16388
16565
|
}
|
|
16389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ContentAsOverlayComponent, decorators: [{
|
|
16390
16567
|
type: Component,
|
|
16391
16568
|
args: [{ selector: 'wb-content-as-overlay', template: "<ng-template>\n <ng-content/>\n</ng-template>\n" }]
|
|
16392
16569
|
}], ctorParameters: () => [] });
|
|
@@ -16432,7 +16609,7 @@ class MicrofrontendViewComponent {
|
|
|
16432
16609
|
location: inject(IFRAME_OVERLAY_HOST),
|
|
16433
16610
|
visible: this.view.slot.portal.attached,
|
|
16434
16611
|
};
|
|
16435
|
-
capability = null;
|
|
16612
|
+
capability = signal(null, ...(ngDevMode ? [{ debugName: "capability" }] : []));
|
|
16436
16613
|
constructor() {
|
|
16437
16614
|
this._logger.debug(() => `Constructing MicrofrontendViewComponent. [viewId=${this.view.id}]`, LoggerNames.MICROFRONTEND_ROUTING);
|
|
16438
16615
|
this.keystrokesToBubble = this.computeKeyStrokesToBubble();
|
|
@@ -16448,7 +16625,8 @@ class MicrofrontendViewComponent {
|
|
|
16448
16625
|
}
|
|
16449
16626
|
installNavigator() {
|
|
16450
16627
|
this._route.params
|
|
16451
|
-
.pipe(switchMap(params => this.fetchCapability$(params[_MicrofrontendRouteParams.ɵVIEW_CAPABILITY_ID]).pipe(map(capability => ({ capability, params })))),
|
|
16628
|
+
.pipe(switchMap(params => this.fetchCapability$(params[_MicrofrontendRouteParams.ɵVIEW_CAPABILITY_ID]).pipe(map(capability => ({ capability, params })))), executeOnCapabilityChange(context => this.onCapabilityChange(context)), filterNullCapability(), delayIfLazy(), serializeExecution(context => this.onNavigate(context)), subscribeOn(asyncScheduler), // subscribe asynchronously to prevent manual change detection in `onCapabilityChange` during component construction.
|
|
16629
|
+
takeUntilDestroyed())
|
|
16452
16630
|
.subscribe();
|
|
16453
16631
|
}
|
|
16454
16632
|
/**
|
|
@@ -16461,23 +16639,39 @@ class MicrofrontendViewComponent {
|
|
|
16461
16639
|
untracked(() => routerOutletElement.setContextValue(_VIEW_ID_CONTEXT_KEY, this.view.id));
|
|
16462
16640
|
});
|
|
16463
16641
|
}
|
|
16464
|
-
|
|
16642
|
+
/**
|
|
16643
|
+
* Method invoked each time when navigating to a different capability.
|
|
16644
|
+
*/
|
|
16645
|
+
onCapabilityChange(context) {
|
|
16646
|
+
const { capability, prevCapability, params } = context;
|
|
16647
|
+
this.capability.set(capability);
|
|
16648
|
+
// Signal the currently loaded application to unload.
|
|
16649
|
+
if (prevCapability && prevCapability.metadata.appSymbolicName !== capability?.metadata.appSymbolicName) {
|
|
16650
|
+
void this._messageClient.publish(_WorkbenchCommands.viewUnloadingTopic(this.view.id));
|
|
16651
|
+
}
|
|
16652
|
+
// Update view properties.
|
|
16653
|
+
this.setViewProperties(context);
|
|
16654
|
+
// Inactive views are not checked for changes since detached from the Angular component tree.
|
|
16655
|
+
// So, we manually trigger change detection to update attributes on the `sci-router-outlet`.
|
|
16656
|
+
if (!this.view.active()) {
|
|
16657
|
+
this._changeDetectorRef.detectChanges();
|
|
16658
|
+
}
|
|
16659
|
+
// Unload microfrontend if capability is not found.
|
|
16465
16660
|
if (!capability) {
|
|
16466
16661
|
this._logger.warn(() => `[NullCapabilityError] No application found to provide a view capability of id '${params[_MicrofrontendRouteParams.ɵVIEW_CAPABILITY_ID]}'. Maybe, the requested view is not public API or the providing application not available.`, LoggerNames.MICROFRONTEND_ROUTING);
|
|
16467
16662
|
this.unload();
|
|
16468
|
-
return;
|
|
16469
16663
|
}
|
|
16470
|
-
|
|
16664
|
+
}
|
|
16665
|
+
/**
|
|
16666
|
+
* Method invoked to perform a navigation.
|
|
16667
|
+
*/
|
|
16668
|
+
async onNavigate(context) {
|
|
16669
|
+
const { capability, prevCapability, params } = context;
|
|
16471
16670
|
this.view.registerAdapter(MicrofrontendWorkbenchView, new MicrofrontendWorkbenchView(capability, params));
|
|
16472
|
-
// Check if navigating to a
|
|
16671
|
+
// Check if navigating to a different microfrontend.
|
|
16473
16672
|
if (!prevCapability || prevCapability.metadata.id !== capability.metadata.id) {
|
|
16474
|
-
this.setViewProperties(capability, params);
|
|
16475
16673
|
this.installParamsUpdater(capability);
|
|
16476
16674
|
}
|
|
16477
|
-
// Signal the currently loaded application to unload.
|
|
16478
|
-
if (prevCapability && prevCapability.metadata.appSymbolicName !== capability.metadata.appSymbolicName) {
|
|
16479
|
-
await this._messageClient.publish(_WorkbenchCommands.viewUnloadingTopic(this.view.id));
|
|
16480
|
-
}
|
|
16481
16675
|
// Pass parameters to the microfrontend.
|
|
16482
16676
|
await this._messageClient.publish(_WorkbenchCommands.viewParamsTopic(this.view.id), Maps.coerce(params), { retain: true });
|
|
16483
16677
|
// When navigating to another view capability of the same app, wait until transported the params to the microfrontend before loading the
|
|
@@ -16493,7 +16687,7 @@ class MicrofrontendViewComponent {
|
|
|
16493
16687
|
}
|
|
16494
16688
|
// Navigate to the microfrontend.
|
|
16495
16689
|
const application = this._manifestService.getApplication(capability.metadata.appSymbolicName);
|
|
16496
|
-
this._logger.debug(() => `Loading microfrontend into
|
|
16690
|
+
this._logger.debug(() => `Loading microfrontend into "${this.view.id}" [app=${capability.metadata.appSymbolicName}, baseUrl=${application.baseUrl}, path=${(capability.properties.path)}].`, LoggerNames.MICROFRONTEND_ROUTING, params, capability);
|
|
16497
16691
|
await this._outletRouter.navigate(capability.properties.path, {
|
|
16498
16692
|
outlet: this.view.id,
|
|
16499
16693
|
relativeTo: application.baseUrl,
|
|
@@ -16502,11 +16696,6 @@ class MicrofrontendViewComponent {
|
|
|
16502
16696
|
showSplash: capability.properties.showSplash,
|
|
16503
16697
|
ɵcapabilityId: capability.metadata.id,
|
|
16504
16698
|
});
|
|
16505
|
-
// Inactive views are not checked for changes since detached from the Angular component tree.
|
|
16506
|
-
// So, we manually trigger change detection to update attributes on the `sci-router-outlet`.
|
|
16507
|
-
if (!this.view.active()) {
|
|
16508
|
-
this._changeDetectorRef.detectChanges();
|
|
16509
|
-
}
|
|
16510
16699
|
}
|
|
16511
16700
|
fetchCapability$(capabilityId) {
|
|
16512
16701
|
return this._manifestObjectCache.observeCapability$(capabilityId);
|
|
@@ -16550,11 +16739,12 @@ class MicrofrontendViewComponent {
|
|
|
16550
16739
|
/**
|
|
16551
16740
|
* Updates the properties of this view, such as the view title, as defined by the capability.
|
|
16552
16741
|
*/
|
|
16553
|
-
setViewProperties(
|
|
16554
|
-
|
|
16555
|
-
this.view.
|
|
16556
|
-
this.view.
|
|
16557
|
-
this.view.
|
|
16742
|
+
setViewProperties(context) {
|
|
16743
|
+
const { capability, params } = context;
|
|
16744
|
+
this.view.title = (capability && createRemoteTranslatable(capability.properties.title, { appSymbolicName: capability.metadata.appSymbolicName, valueParams: params, topicParams: capability.properties.resolve })) ?? null;
|
|
16745
|
+
this.view.heading = (capability && createRemoteTranslatable(capability.properties.heading, { appSymbolicName: capability.metadata.appSymbolicName, valueParams: params, topicParams: capability.properties.resolve })) ?? null;
|
|
16746
|
+
this.view.classList.application = capability?.properties.cssClass;
|
|
16747
|
+
this.view.closable = capability?.properties.closable ?? true;
|
|
16558
16748
|
this.view.dirty = false;
|
|
16559
16749
|
}
|
|
16560
16750
|
installViewActivePublisher() {
|
|
@@ -16654,12 +16844,12 @@ class MicrofrontendViewComponent {
|
|
|
16654
16844
|
void this._outletRouter.navigate(null, { outlet: this.view.id });
|
|
16655
16845
|
this.view.unregisterAdapter(MicrofrontendWorkbenchView);
|
|
16656
16846
|
}
|
|
16657
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16658
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.
|
|
16847
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16848
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: MicrofrontendViewComponent, isStandalone: true, selector: "wb-microfrontend-view", viewQueries: [{ propertyName: "_routerOutletElement", first: true, predicate: ["router_outlet"], descendants: true, isSignal: true }], ngImport: i0, template: "<wb-content-as-overlay [config]=\"overlayConfig\">\n <div class=\"microfrontend-view\"\n [class.workbench-drag]=\"workbenchLayoutService.dragging()\"\n [attr.data-viewid]=\"view.id\"\n wbGlassPane>\n <sci-router-outlet #router_outlet\n [name]=\"view.id\"\n [attr.data-capabilityid]=\"capability()?.metadata!.id\"\n [attr.data-app]=\"capability()?.metadata!.appSymbolicName\"\n [ngClass]=\"view.classList.asList()\"\n (focuswithin)=\"onFocusWithin($event)\"\n [keystrokes]=\"keystrokesToBubble()\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n </sci-router-outlet>\n </div>\n</wb-content-as-overlay>\n", styles: [":host{display:grid}div.microfrontend-view{display:grid}div.microfrontend-view.workbench-drag{pointer-events:none}div.microfrontend-view>sci-router-outlet::part(splash){display:grid}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ContentAsOverlayComponent, selector: "wb-content-as-overlay", inputs: ["config"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: GlassPaneDirective, selector: "[wbGlassPane]" }], viewProviders: [
|
|
16659
16849
|
configureMicrofrontendGlassPane(),
|
|
16660
16850
|
] });
|
|
16661
16851
|
}
|
|
16662
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
16852
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendViewComponent, decorators: [{
|
|
16663
16853
|
type: Component,
|
|
16664
16854
|
args: [{ selector: 'wb-microfrontend-view', imports: [
|
|
16665
16855
|
NgClass,
|
|
@@ -16668,7 +16858,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
16668
16858
|
GlassPaneDirective,
|
|
16669
16859
|
], viewProviders: [
|
|
16670
16860
|
configureMicrofrontendGlassPane(),
|
|
16671
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<wb-content-as-overlay [config]=\"overlayConfig\">\n <div class=\"microfrontend-view\"\n [class.workbench-drag]=\"workbenchLayoutService.dragging()\"\n [attr.data-viewid]=\"view.id\"\n wbGlassPane>\n <sci-router-outlet #router_outlet\n [name]=\"view.id\"\n [attr.data-capabilityid]=\"capability?.metadata!.id\"\n [attr.data-app]=\"capability?.metadata!.appSymbolicName\"\n [ngClass]=\"view.classList.asList()\"\n (focuswithin)=\"onFocusWithin($event)\"\n [keystrokes]=\"keystrokesToBubble()\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n </sci-router-outlet>\n </div>\n</wb-content-as-overlay>\n", styles: [":host{display:grid}div.microfrontend-view{display:grid}div.microfrontend-view.workbench-drag{pointer-events:none}div.microfrontend-view>sci-router-outlet::part(splash){display:grid}\n"] }]
|
|
16861
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<wb-content-as-overlay [config]=\"overlayConfig\">\n <div class=\"microfrontend-view\"\n [class.workbench-drag]=\"workbenchLayoutService.dragging()\"\n [attr.data-viewid]=\"view.id\"\n wbGlassPane>\n <sci-router-outlet #router_outlet\n [name]=\"view.id\"\n [attr.data-capabilityid]=\"capability()?.metadata!.id\"\n [attr.data-app]=\"capability()?.metadata!.appSymbolicName\"\n [ngClass]=\"view.classList.asList()\"\n (focuswithin)=\"onFocusWithin($event)\"\n [keystrokes]=\"keystrokesToBubble()\">\n <ng-container *ngComponentOutlet=\"splash\"/>\n </sci-router-outlet>\n </div>\n</wb-content-as-overlay>\n", styles: [":host{display:grid}div.microfrontend-view{display:grid}div.microfrontend-view.workbench-drag{pointer-events:none}div.microfrontend-view>sci-router-outlet::part(splash){display:grid}\n"] }]
|
|
16672
16862
|
}], ctorParameters: () => [] });
|
|
16673
16863
|
/**
|
|
16674
16864
|
* Blocks the microfrontend outlet when dialog(s) overlay this view.
|
|
@@ -16685,6 +16875,39 @@ function configureMicrofrontendGlassPane() {
|
|
|
16685
16875
|
},
|
|
16686
16876
|
];
|
|
16687
16877
|
}
|
|
16878
|
+
/**
|
|
16879
|
+
* Executes passed function each time when the source emits a different capability.
|
|
16880
|
+
*/
|
|
16881
|
+
function executeOnCapabilityChange(onCapabilityChange) {
|
|
16882
|
+
let prevCapability = null;
|
|
16883
|
+
return map(({ capability, params }) => {
|
|
16884
|
+
const context = { capability, prevCapability, params };
|
|
16885
|
+
if (prevCapability?.metadata.id !== capability?.metadata.id) {
|
|
16886
|
+
onCapabilityChange(context);
|
|
16887
|
+
prevCapability = capability;
|
|
16888
|
+
}
|
|
16889
|
+
return context;
|
|
16890
|
+
});
|
|
16891
|
+
}
|
|
16892
|
+
/**
|
|
16893
|
+
* Continues the execution chain only if the capability is not `null`.
|
|
16894
|
+
*/
|
|
16895
|
+
function filterNullCapability() {
|
|
16896
|
+
return filter((context) => !!context.capability);
|
|
16897
|
+
}
|
|
16898
|
+
/**
|
|
16899
|
+
* Mirrors the source if the view is active or non-lazy. Otherwise, emission is delayed until the view is activated.
|
|
16900
|
+
*
|
|
16901
|
+
* Cancels any previous delayed emission when the source emits again.
|
|
16902
|
+
*/
|
|
16903
|
+
function delayIfLazy() {
|
|
16904
|
+
// Use a root effect to continue emitting even if the component is detached from change detection.
|
|
16905
|
+
const active$ = toRootObservable(inject(ɵWorkbenchView).active);
|
|
16906
|
+
return switchMap(context => {
|
|
16907
|
+
const lazy = context.capability.properties.lazy ?? true;
|
|
16908
|
+
return active$.pipe(filter(active => active || !lazy), map(() => context), take(1));
|
|
16909
|
+
});
|
|
16910
|
+
}
|
|
16688
16911
|
|
|
16689
16912
|
/*
|
|
16690
16913
|
* Copyright (c) 2018-2024 Swiss Federal Railways
|
|
@@ -16799,10 +17022,10 @@ class MicrofrontendPerspectiveInstaller {
|
|
|
16799
17022
|
}));
|
|
16800
17023
|
return firstValueFrom(viewCapabilities$);
|
|
16801
17024
|
}
|
|
16802
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16803
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
17025
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveInstaller, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17026
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveInstaller });
|
|
16804
17027
|
}
|
|
16805
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17028
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MicrofrontendPerspectiveInstaller, decorators: [{
|
|
16806
17029
|
type: Injectable
|
|
16807
17030
|
}], ctorParameters: () => [] });
|
|
16808
17031
|
/**
|
|
@@ -16815,6 +17038,33 @@ function providePerspectiveInstaller() {
|
|
|
16815
17038
|
]);
|
|
16816
17039
|
}
|
|
16817
17040
|
|
|
17041
|
+
/*
|
|
17042
|
+
* Copyright (c) 2018-2025 Swiss Federal Railways
|
|
17043
|
+
*
|
|
17044
|
+
* This program and the accompanying materials are made
|
|
17045
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
17046
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
17047
|
+
*
|
|
17048
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
17049
|
+
*/
|
|
17050
|
+
/**
|
|
17051
|
+
* Registers a text provider for micro apps to request texts of the host app.
|
|
17052
|
+
*/
|
|
17053
|
+
function provideHostTextProvider() {
|
|
17054
|
+
return makeEnvironmentProviders([
|
|
17055
|
+
provideMicrofrontendPlatformInitializer(() => {
|
|
17056
|
+
const injector = inject(Injector);
|
|
17057
|
+
WorkbenchClient.registerTextProvider((key, params) => {
|
|
17058
|
+
const translatable = Object.entries(params).reduce((translatable, [name, value]) => `${translatable};${name}=${value}`, `%${key}`);
|
|
17059
|
+
const environmentInjector = createEnvironmentInjector([], injector.get(EnvironmentInjector));
|
|
17060
|
+
return toObservable(text(translatable, { injector: environmentInjector }), { injector: environmentInjector })
|
|
17061
|
+
.pipe(map$1(text => text !== '' && text !== key ? text : undefined), // emit `undefined` if not found the text
|
|
17062
|
+
finalize(() => environmentInjector.destroy()));
|
|
17063
|
+
});
|
|
17064
|
+
}),
|
|
17065
|
+
]);
|
|
17066
|
+
}
|
|
17067
|
+
|
|
16818
17068
|
/*
|
|
16819
17069
|
* Copyright (c) 2018-2024 Swiss Federal Railways
|
|
16820
17070
|
*
|
|
@@ -16849,12 +17099,15 @@ function provideWorkbenchMicrofrontendSupport(workbenchConfig) {
|
|
|
16849
17099
|
MicrofrontendDialogCapabilityValidator,
|
|
16850
17100
|
MicrofrontendMessageBoxCapabilityValidator,
|
|
16851
17101
|
StableCapabilityIdAssigner,
|
|
17102
|
+
ViewCapabilityPreloadCapabilityInterceptor,
|
|
16852
17103
|
NgZoneObservableDecorator,
|
|
16853
17104
|
WorkbenchHostManifestInterceptor,
|
|
16854
17105
|
provideBuiltInTextMessageBoxCapabilityRoute(),
|
|
16855
17106
|
provideMicrofrontendViewRoute(),
|
|
16856
17107
|
provideMicrofrontendPlatformBeans(),
|
|
16857
17108
|
provideWorkbenchClientBeans(),
|
|
17109
|
+
provideRemoteTextProvider(),
|
|
17110
|
+
provideHostTextProvider(),
|
|
16858
17111
|
]);
|
|
16859
17112
|
}
|
|
16860
17113
|
/**
|
|
@@ -16903,6 +17156,7 @@ function provideWorkbenchClientBeans() {
|
|
|
16903
17156
|
{ provide: WorkbenchDialogService$1, useFactory: () => Beans.get(WorkbenchDialogService$1) },
|
|
16904
17157
|
{ provide: WorkbenchMessageBoxService$1, useFactory: () => Beans.get(WorkbenchMessageBoxService$1) },
|
|
16905
17158
|
{ provide: WorkbenchNotificationService, useFactory: () => Beans.get(WorkbenchNotificationService) },
|
|
17159
|
+
{ provide: WorkbenchTextService, useFactory: () => Beans.get(WorkbenchTextService) },
|
|
16906
17160
|
]);
|
|
16907
17161
|
}
|
|
16908
17162
|
/**
|
|
@@ -16945,10 +17199,10 @@ class StaticMicrofrontendPlatformConfigLoader {
|
|
|
16945
17199
|
async load() {
|
|
16946
17200
|
return this._workbenchConfig.microfrontendPlatform;
|
|
16947
17201
|
}
|
|
16948
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
16949
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
17202
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: StaticMicrofrontendPlatformConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17203
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: StaticMicrofrontendPlatformConfigLoader });
|
|
16950
17204
|
}
|
|
16951
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: StaticMicrofrontendPlatformConfigLoader, decorators: [{
|
|
16952
17206
|
type: Injectable
|
|
16953
17207
|
}] });
|
|
16954
17208
|
|
|
@@ -17006,10 +17260,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17006
17260
|
* @see provideWorkbenchInitializer
|
|
17007
17261
|
*/
|
|
17008
17262
|
class WorkbenchLauncher {
|
|
17009
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17010
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
17263
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLauncher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17264
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLauncher, providedIn: 'root', useExisting: ɵWorkbenchLauncher });
|
|
17011
17265
|
}
|
|
17012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLauncher, decorators: [{
|
|
17013
17267
|
type: Injectable,
|
|
17014
17268
|
args: [{ providedIn: 'root', useExisting: ɵWorkbenchLauncher }]
|
|
17015
17269
|
}] });
|
|
@@ -17084,10 +17338,10 @@ class ɵLocation extends Location {
|
|
|
17084
17338
|
// the router only if the platform is still running.
|
|
17085
17339
|
return (this._router ??= !this._appRef.destroyed ? this._appRef.injector.get(Router) : undefined);
|
|
17086
17340
|
}
|
|
17087
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17088
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
17341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17342
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵLocation });
|
|
17089
17343
|
}
|
|
17090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ɵLocation, decorators: [{
|
|
17091
17345
|
type: Injectable
|
|
17092
17346
|
}], ctorParameters: () => [] });
|
|
17093
17347
|
|
|
@@ -17242,7 +17496,7 @@ function provideTextProviders(config) {
|
|
|
17242
17496
|
// Provide app-specific texts.
|
|
17243
17497
|
{
|
|
17244
17498
|
provide: WORKBENCH_TEXT_PROVIDER,
|
|
17245
|
-
useValue: config
|
|
17499
|
+
useValue: applicationTextProvider(config),
|
|
17246
17500
|
multi: true,
|
|
17247
17501
|
},
|
|
17248
17502
|
// Provide texts of menu items configured in `config.viewMenuItems`.
|
|
@@ -17259,6 +17513,25 @@ function provideTextProviders(config) {
|
|
|
17259
17513
|
},
|
|
17260
17514
|
]);
|
|
17261
17515
|
}
|
|
17516
|
+
/**
|
|
17517
|
+
* Provides application-specifc texts and translated workbench texts.
|
|
17518
|
+
*
|
|
17519
|
+
* Register this provider as the first text provider, enabling change or translation of built-in workbench texts.
|
|
17520
|
+
*/
|
|
17521
|
+
function applicationTextProvider(config) {
|
|
17522
|
+
const appTextProvider = config.textProvider;
|
|
17523
|
+
if (!appTextProvider) {
|
|
17524
|
+
return () => undefined;
|
|
17525
|
+
}
|
|
17526
|
+
return (key, params) => {
|
|
17527
|
+
// Translation keys starting with the `workbench.external.` prefix are external and must not
|
|
17528
|
+
// be localized by the workbench application, such as remote keys to resolve texts from micro apps.
|
|
17529
|
+
if (key.startsWith('workbench.external.')) {
|
|
17530
|
+
return undefined;
|
|
17531
|
+
}
|
|
17532
|
+
return appTextProvider(key, params);
|
|
17533
|
+
};
|
|
17534
|
+
}
|
|
17262
17535
|
|
|
17263
17536
|
/**
|
|
17264
17537
|
* Provides Material icons for non-workbench icons.
|
|
@@ -17284,11 +17557,11 @@ class MaterialIconComponent {
|
|
|
17284
17557
|
/**
|
|
17285
17558
|
* Specifies the ligature of the Material icon.
|
|
17286
17559
|
*/
|
|
17287
|
-
ligature = input.required();
|
|
17288
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17289
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
17560
|
+
ligature = input.required(...(ngDevMode ? [{ debugName: "ligature" }] : []));
|
|
17561
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MaterialIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17562
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: MaterialIconComponent, isStandalone: true, selector: "wb-material-icon", inputs: { ligature: { classPropertyName: "ligature", publicName: "ligature", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.material-icons": "true", "class.material-icons-outlined": "true", "class.material-icons-round": "true", "class.material-icons-sharp": "true", "class.material-symbols-sharp": "true", "class.material-symbols-outlined": "true", "class.material-symbols-rounded": "true" } }, ngImport: i0, template: '{{ligature()}}', isInline: true });
|
|
17290
17563
|
}
|
|
17291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17564
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MaterialIconComponent, decorators: [{
|
|
17292
17565
|
type: Component,
|
|
17293
17566
|
args: [{
|
|
17294
17567
|
selector: 'wb-material-icon',
|
|
@@ -17347,11 +17620,11 @@ class WorkbenchIconComponent {
|
|
|
17347
17620
|
/**
|
|
17348
17621
|
* Specifies the ligature of the icon.
|
|
17349
17622
|
*/
|
|
17350
|
-
ligature = input.required();
|
|
17351
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17352
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
17623
|
+
ligature = input.required(...(ngDevMode ? [{ debugName: "ligature" }] : []));
|
|
17624
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchIconComponent, isStandalone: true, selector: "wb-workbench-icon", inputs: { ligature: { classPropertyName: "ligature", publicName: "ligature", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.scion-workbench-icons": "true" } }, ngImport: i0, template: '{{ligature()}}', isInline: true });
|
|
17353
17626
|
}
|
|
17354
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17627
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchIconComponent, decorators: [{
|
|
17355
17628
|
type: Component,
|
|
17356
17629
|
args: [{
|
|
17357
17630
|
selector: 'wb-workbench-icon',
|
|
@@ -17532,10 +17805,10 @@ function rejectIfNotRootEnvironment() {
|
|
|
17532
17805
|
* Default splash displayed while starting the workbench.
|
|
17533
17806
|
*/
|
|
17534
17807
|
class SplashComponent {
|
|
17535
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17536
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
17808
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SplashComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17809
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: SplashComponent, isStandalone: true, selector: "wb-splash", ngImport: i0, template: "<sci-throbber type=\"ellipsis\"/>\n", styles: [":host{display:grid;justify-content:center;margin-top:3em}:host>sci-throbber{--sci-throbber-size: 80px}\n"], dependencies: [{ kind: "component", type: SciThrobberComponent, selector: "sci-throbber", inputs: ["type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17537
17810
|
}
|
|
17538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SplashComponent, decorators: [{
|
|
17539
17812
|
type: Component,
|
|
17540
17813
|
args: [{ selector: 'wb-splash', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SciThrobberComponent], template: "<sci-throbber type=\"ellipsis\"/>\n", styles: [":host{display:grid;justify-content:center;margin-top:3em}:host>sci-throbber{--sci-throbber-size: 80px}\n"] }]
|
|
17541
17814
|
}] });
|
|
@@ -17557,10 +17830,10 @@ class CoerceObservablePipe {
|
|
|
17557
17830
|
transform(value) {
|
|
17558
17831
|
return Observables.coerce(value);
|
|
17559
17832
|
}
|
|
17560
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17561
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
17833
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: CoerceObservablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
17834
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: CoerceObservablePipe, isStandalone: true, name: "wbCoerceObservable$" });
|
|
17562
17835
|
}
|
|
17563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: CoerceObservablePipe, decorators: [{
|
|
17564
17837
|
type: Pipe,
|
|
17565
17838
|
args: [{ name: 'wbCoerceObservable$' }]
|
|
17566
17839
|
}] });
|
|
@@ -17579,7 +17852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17579
17852
|
* It informs the user of a system event, e.g., that a task has been completed or an error has occurred.
|
|
17580
17853
|
*/
|
|
17581
17854
|
class NotificationComponent {
|
|
17582
|
-
notification = input.required();
|
|
17855
|
+
notification = input.required(...(ngDevMode ? [{ debugName: "notification" }] : []));
|
|
17583
17856
|
closeNotification = output();
|
|
17584
17857
|
_injector = inject(Injector);
|
|
17585
17858
|
_cd = inject(ChangeDetectorRef);
|
|
@@ -17648,10 +17921,10 @@ class NotificationComponent {
|
|
|
17648
17921
|
});
|
|
17649
17922
|
}
|
|
17650
17923
|
}
|
|
17651
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17652
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
17924
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17925
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: NotificationComponent, isStandalone: true, selector: "wb-notification", inputs: { notification: { classPropertyName: "notification", publicName: "notification", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closeNotification: "closeNotification" }, host: { listeners: { "mousedown": "onMousedown($event)" } }, ngImport: i0, template: "<div class=\"outline\">\n @if (notification().title$ | async | wbCoerceObservable$ | async; as title) {\n <header class=\"e2e-title\">{{(title | wbText)()}}</header>\n }\n <ng-container *cdkPortalOutlet=\"portal\"/>\n</div>\n<button (click)=\"onClose()\"\n [title]=\"('%workbench.close.tooltip' | wbText)()\"\n class=\"close e2e-close\">\n <wb-icon icon=\"workbench.close\"/>\n</button>\n", styles: [":host{display:grid;background-color:var(--sci-color-background-elevation);color:var(--sci-color-text);font-size:1rem;border-radius:var(--sci-corner);box-shadow:var(--sci-elevation) var(--sci-static-color-black);width:var(--sci-workbench-notification-width);border-left:var(--sci-workbench-notification-severity-indicator-size) solid transparent;position:relative}:host.info{border-left-color:var(--sci-color-accent)}:host.warn{border-left-color:var(--sci-color-notice)}:host.error{border-left-color:var(--sci-color-negative)}:host>div.outline{border:1px solid var(--sci-color-border);border-left:none;padding:1em 1.5em;border-top-right-radius:var(--sci-corner);border-bottom-right-radius:var(--sci-corner);font-size:.9em;white-space:pre-line;overflow-wrap:break-word;overflow:hidden}:host>div.outline>header{font-weight:700;margin-bottom:.75em}:host>button.close:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;border-radius:var(--sci-corner);-webkit-user-select:none;user-select:none;overflow:hidden;cursor:var(--sci-workbench-button-cursor);position:absolute;top:.275em;right:.275em;padding:.125em;border-radius:var(--sci-corner-small)}:host>button.close:is(button,#sci-reset):hover:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-hover)}:host>button.close:is(button,#sci-reset):active:where(:not(:disabled)){background-color:var(--sci-workbench-button-background-color-active)}:host>button.close:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button.close:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent)}:host>button.close:is(button,#sci-reset):disabled{color:var(--sci-color-gray-500)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: CoerceObservablePipe, name: "wbCoerceObservable$" }, { kind: "pipe", type: TextPipe, name: "wbText" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17653
17926
|
}
|
|
17654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
17655
17928
|
type: Component,
|
|
17656
17929
|
args: [{ selector: 'wb-notification', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
17657
17930
|
AsyncPipe,
|
|
@@ -17681,10 +17954,10 @@ class NotificationCssClassesPipe {
|
|
|
17681
17954
|
.concat(severity)
|
|
17682
17955
|
.concat(`e2e-severity-${severity}`)));
|
|
17683
17956
|
}
|
|
17684
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17685
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.
|
|
17957
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationCssClassesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
17958
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.2.3", ngImport: i0, type: NotificationCssClassesPipe, isStandalone: true, name: "wbNotificationCssClasses$" });
|
|
17686
17959
|
}
|
|
17687
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17960
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationCssClassesPipe, decorators: [{
|
|
17688
17961
|
type: Pipe,
|
|
17689
17962
|
args: [{ name: 'wbNotificationCssClasses$' }]
|
|
17690
17963
|
}] });
|
|
@@ -17718,10 +17991,10 @@ class NotificationListComponent {
|
|
|
17718
17991
|
]),
|
|
17719
17992
|
];
|
|
17720
17993
|
}
|
|
17721
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17722
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
17994
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17995
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: NotificationListComponent, isStandalone: true, selector: "wb-notification-list", ngImport: i0, template: "@for (notification of notifications$ | async; track notification.config.group || notification) {\n <wb-notification [notification]=\"notification\"\n [ngClass]=\"notification | wbNotificationCssClasses$ | async\"\n (closeNotification)=\"onNotificationClose(notification)\"\n @notification-enter-or-leave/>\n}\n", styles: [":host{display:flex;flex-flow:column wrap-reverse;gap:.5em;max-height:100%;align-items:flex-start;align-content:flex-start;pointer-events:none;padding:.5em}:host>wb-notification{position:relative;pointer-events:auto;max-width:calc(100% - 1em)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NotificationComponent, selector: "wb-notification", inputs: ["notification"], outputs: ["closeNotification"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: NotificationCssClassesPipe, name: "wbNotificationCssClasses$" }], animations: [trigger('notification-enter-or-leave', NotificationListComponent.provideAnimation())], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17723
17996
|
}
|
|
17724
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
17997
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: NotificationListComponent, decorators: [{
|
|
17725
17998
|
type: Component,
|
|
17726
17999
|
args: [{ selector: 'wb-notification-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
17727
18000
|
AsyncPipe,
|
|
@@ -17744,8 +18017,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17744
18017
|
* Renders a button to toggle the visibility of an activity.
|
|
17745
18018
|
*/
|
|
17746
18019
|
class ActivityItemComponent {
|
|
17747
|
-
activity = input.required();
|
|
17748
|
-
active = input.required();
|
|
18020
|
+
activity = input.required(...(ngDevMode ? [{ debugName: "activity" }] : []));
|
|
18021
|
+
active = input.required(...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
17749
18022
|
tooltip = text(computed(() => this.activity().tooltip ?? this.activity().label));
|
|
17750
18023
|
focusWithinActivity = this.computeFocusWithinActivity();
|
|
17751
18024
|
_workbenchRouter = inject(ɵWorkbenchRouter);
|
|
@@ -17779,10 +18052,10 @@ class ActivityItemComponent {
|
|
|
17779
18052
|
});
|
|
17780
18053
|
});
|
|
17781
18054
|
}
|
|
17782
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17783
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
18055
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18056
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: ActivityItemComponent, isStandalone: true, selector: "wb-activity-item", inputs: { activity: { classPropertyName: "activity", publicName: "activity", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-active": "active() ? '' : null", "attr.data-focus-within-activity": "focusWithinActivity() ? '' : null", "attr.data-activityid": "activity().id", "attr.title": "tooltip()" } }, ngImport: i0, template: "<button (click)=\"onToggle()\"\n [class.focus-within-activity]=\"focusWithinActivity()\"\n [class.active]=\"active()\">\n <wb-icon [icon]=\"activity().icon\"/>\n</button>\n", styles: [":host{display:inline-grid}:host>button:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:var(--sci-workbench-activity-item-padding);background-color:var(--sci-workbench-activity-item-background-color);color:var(--sci-workbench-activity-item-text-color);border:var(--sci-workbench-activity-item-border-width) solid var(--sci-workbench-activity-item-border-color);border-radius:var(--sci-workbench-activity-item-border-radius);cursor:var(--sci-workbench-activity-item-cursor);-webkit-user-select:none;user-select:none;overflow:hidden;height:24px;width:24px;font-size:24px}:host>button:is(button,#sci-reset):hover{background-color:var(--sci-workbench-activity-item-background-color-hover);border-color:var(--sci-workbench-activity-item-border-color-hover);color:var(--sci-workbench-activity-item-text-color-hover)}:host>button:is(button,#sci-reset):active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-hover) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).active{background-color:var(--sci-workbench-activity-item-background-color-active);border-color:var(--sci-workbench-activity-item-border-color-active);color:var(--sci-workbench-activity-item-text-color-active)}:host>button:is(button,#sci-reset).active:hover{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-active) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).active:active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-active) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent);background-clip:padding-box}:host>button:is(button,#sci-reset).focus-within-activity{background-color:var(--sci-workbench-activity-item-background-color-focus);border-color:var(--sci-workbench-activity-item-border-color-focus);color:var(--sci-workbench-activity-item-text-color-focus)}:host>button:is(button,#sci-reset).focus-within-activity:hover{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-focus) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).focus-within-activity:active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-focus) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "wb-icon", inputs: ["icon"] }] });
|
|
17784
18057
|
}
|
|
17785
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18058
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityItemComponent, decorators: [{
|
|
17786
18059
|
type: Component,
|
|
17787
18060
|
args: [{ selector: 'wb-activity-item', imports: [
|
|
17788
18061
|
IconComponent,
|
|
@@ -17791,7 +18064,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17791
18064
|
'[attr.data-focus-within-activity]': `focusWithinActivity() ? '' : null`,
|
|
17792
18065
|
'[attr.data-activityid]': 'activity().id',
|
|
17793
18066
|
'[attr.title]': 'tooltip()',
|
|
17794
|
-
}, template: "<button (click)=\"onToggle()\"\n [class.focus-within-activity]=\"focusWithinActivity()\"\n [class.active]=\"active()\">\n <wb-icon [icon]=\"activity().icon\"/>\n</button>\n", styles: [":host{display:inline-grid}:host>button:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:var(--sci-workbench-activity-item-padding);background-color:var(--sci-workbench-activity-item-background-color);color:var(--sci-workbench-activity-item-text-color);border:var(--sci-workbench-activity-item-border-width) solid var(--sci-workbench-activity-item-border-color);border-radius:var(--sci-workbench-activity-item-border-radius);cursor:var(--sci-workbench-activity-item-cursor);-webkit-user-select:none;user-select:none;overflow:hidden;height:24px;width:24px;font-size:24px}:host>button:is(button,#sci-reset):hover{background-color:var(--sci-workbench-activity-item-background-color-hover);border-color:var(--sci-workbench-activity-item-border-color-hover);color:var(--sci-workbench-activity-item-text-color-hover)}:host>button:is(button,#sci-reset).active{background-color:var(--sci-workbench-activity-item-background-color-active);border-color:var(--sci-workbench-activity-item-border-color-active);color:var(--sci-workbench-activity-item-text-color-active)}:host>button:is(button,#sci-reset).active:hover{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-active) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).active:active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-active) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent);background-clip:padding-box}:host>button:is(button,#sci-reset).focus-within-activity{background-color:var(--sci-workbench-activity-item-background-color-focus);border-color:var(--sci-workbench-activity-item-border-color-focus);color:var(--sci-workbench-activity-item-text-color-focus)}:host>button:is(button,#sci-reset).focus-within-activity:hover{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-focus) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).focus-within-activity:active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-focus) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}\n"] }]
|
|
18067
|
+
}, template: "<button (click)=\"onToggle()\"\n [class.focus-within-activity]=\"focusWithinActivity()\"\n [class.active]=\"active()\">\n <wb-icon [icon]=\"activity().icon\"/>\n</button>\n", styles: [":host{display:inline-grid}:host>button:is(button,#sci-reset){all:unset;display:inline-grid;place-content:center;place-items:center;padding:var(--sci-workbench-activity-item-padding);background-color:var(--sci-workbench-activity-item-background-color);color:var(--sci-workbench-activity-item-text-color);border:var(--sci-workbench-activity-item-border-width) solid var(--sci-workbench-activity-item-border-color);border-radius:var(--sci-workbench-activity-item-border-radius);cursor:var(--sci-workbench-activity-item-cursor);-webkit-user-select:none;user-select:none;overflow:hidden;height:24px;width:24px;font-size:24px}:host>button:is(button,#sci-reset):hover{background-color:var(--sci-workbench-activity-item-background-color-hover);border-color:var(--sci-workbench-activity-item-border-color-hover);color:var(--sci-workbench-activity-item-text-color-hover)}:host>button:is(button,#sci-reset):active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-hover) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).active{background-color:var(--sci-workbench-activity-item-background-color-active);border-color:var(--sci-workbench-activity-item-border-color-active);color:var(--sci-workbench-activity-item-text-color-active)}:host>button:is(button,#sci-reset).active:hover{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-active) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).active:active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-active) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset):focus:not(:focus-visible){outline:none}:host>button:is(button,#sci-reset):focus-visible{outline:var(--sci-workbench-button-outline-width-focus) solid var(--sci-color-accent);background-clip:padding-box}:host>button:is(button,#sci-reset).focus-within-activity{background-color:var(--sci-workbench-activity-item-background-color-focus);border-color:var(--sci-workbench-activity-item-border-color-focus);color:var(--sci-workbench-activity-item-text-color-focus)}:host>button:is(button,#sci-reset).focus-within-activity:hover{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-focus) 95%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}:host>button:is(button,#sci-reset).focus-within-activity:active{background-color:color-mix(in srgb,var(--sci-workbench-activity-item-background-color-focus) 90%,light-dark(var(--sci-static-color-black),var(--sci-static-color-white)))}\n"] }]
|
|
17795
18068
|
}], ctorParameters: () => [] });
|
|
17796
18069
|
|
|
17797
18070
|
/*
|
|
@@ -17807,11 +18080,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17807
18080
|
* Represents the stack of activities in a docking area.
|
|
17808
18081
|
*/
|
|
17809
18082
|
class ActivityStackComponent {
|
|
17810
|
-
stack = input.required();
|
|
17811
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17812
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
18083
|
+
stack = input.required(...(ngDevMode ? [{ debugName: "stack" }] : []));
|
|
18084
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18085
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ActivityStackComponent, isStandalone: true, selector: "wb-activity-stack", inputs: { stack: { classPropertyName: "stack", publicName: "stack", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (activity of stack().activities; track activity.id) {\n <wb-activity-item [activity]=\"activity\" [active]=\"stack().activeActivityId === activity.id\"/>\n}\n", styles: [":host{display:flex;flex-direction:column;align-items:center;gap:var(--sci-workbench-activity-item-gap)}\n"], dependencies: [{ kind: "component", type: ActivityItemComponent, selector: "wb-activity-item", inputs: ["activity", "active"] }] });
|
|
17813
18086
|
}
|
|
17814
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18087
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityStackComponent, decorators: [{
|
|
17815
18088
|
type: Component,
|
|
17816
18089
|
args: [{ selector: 'wb-activity-stack', imports: [
|
|
17817
18090
|
ActivityItemComponent,
|
|
@@ -17831,12 +18104,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17831
18104
|
* Renders the activity bar of a given workbench side.
|
|
17832
18105
|
*/
|
|
17833
18106
|
class ActivityBarComponent {
|
|
17834
|
-
align = input.required();
|
|
18107
|
+
align = input.required(...(ngDevMode ? [{ debugName: "align" }] : []));
|
|
17835
18108
|
layout = inject(ɵWorkbenchService).layout;
|
|
17836
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17837
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
18109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ActivityBarComponent, isStandalone: true, selector: "wb-activity-bar", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-align": "align()" } }, ngImport: i0, template: "@let activityLayout = layout().activityLayout;\n\n@switch (align()) {\n @case ('left') {\n @if (activityLayout.toolbars.leftTop.activities.length) {\n <wb-activity-stack [stack]=\"activityLayout.toolbars.leftTop\" data-docking-area=\"left-top\"/>\n }\n\n @if (activityLayout.toolbars.leftTop.activities.length && activityLayout.toolbars.leftBottom.activities.length) {\n <hr/>\n }\n\n @if (activityLayout.toolbars.leftBottom.activities.length) {\n <wb-activity-stack [stack]=\"activityLayout.toolbars.leftBottom\" data-docking-area=\"left-bottom\"/>\n }\n <div class=\"filler\"></div>\n @if (activityLayout.toolbars.bottomLeft.activities.length) {\n <wb-activity-stack [stack]=\"activityLayout.toolbars.bottomLeft\" data-docking-area=\"bottom-left\"/>\n }\n }\n @case ('right') {\n @if (activityLayout.toolbars.rightTop.activities.length) {\n <wb-activity-stack [stack]=\"activityLayout.toolbars.rightTop\" data-docking-area=\"right-top\"/>\n }\n\n @if (activityLayout.toolbars.rightTop.activities.length && activityLayout.toolbars.rightBottom.activities.length) {\n <hr>\n }\n\n @if (activityLayout.toolbars.rightBottom.activities.length) {\n <wb-activity-stack [stack]=\"activityLayout.toolbars.rightBottom\" data-docking-area=\"right-bottom\"/>\n }\n <div class=\"filler\"></div>\n @if (activityLayout.toolbars.bottomRight.activities.length) {\n <wb-activity-stack [stack]=\"activityLayout.toolbars.bottomRight\" data-docking-area=\"bottom-right\"/>\n }\n }\n}\n", styles: [":host{display:flex;flex-direction:column;gap:var(--sci-workbench-activity-item-gap);-webkit-user-select:none;user-select:none;padding:var(--sci-workbench-activity-bar-padding);background-color:var(--sci-workbench-activity-bar-background-color)}:host[data-align=left]{border-right:1px solid var(--sci-color-border)}:host[data-align=right]{border-left:1px solid var(--sci-color-border)}:host>wb-activity-stack{display:flex;flex-direction:column;align-items:center}:host>hr{all:unset;height:1px;width:24px;align-self:center;background-color:var(--sci-color-border);border-radius:var(--sci-corner)}:host>div.filler{flex:auto}\n"], dependencies: [{ kind: "component", type: ActivityStackComponent, selector: "wb-activity-stack", inputs: ["stack"] }] });
|
|
17838
18111
|
}
|
|
17839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityBarComponent, decorators: [{
|
|
17840
18113
|
type: Component,
|
|
17841
18114
|
args: [{ selector: 'wb-activity-bar', imports: [
|
|
17842
18115
|
ActivityStackComponent,
|
|
@@ -17861,15 +18134,15 @@ class ActivityPanelComponent {
|
|
|
17861
18134
|
/**
|
|
17862
18135
|
* Specifies the location of the panel.
|
|
17863
18136
|
*/
|
|
17864
|
-
panel = input.required();
|
|
18137
|
+
panel = input.required(...(ngDevMode ? [{ debugName: "panel" }] : []));
|
|
17865
18138
|
/**
|
|
17866
18139
|
* Specifies the first activity to display in the panel.
|
|
17867
18140
|
*/
|
|
17868
|
-
activityId1 = input.required();
|
|
18141
|
+
activityId1 = input.required(...(ngDevMode ? [{ debugName: "activityId1" }] : []));
|
|
17869
18142
|
/**
|
|
17870
18143
|
* Specifies the second activity to display in the panel.
|
|
17871
18144
|
*/
|
|
17872
|
-
activityId2 = input.required();
|
|
18145
|
+
activityId2 = input.required(...(ngDevMode ? [{ debugName: "activityId2" }] : []));
|
|
17873
18146
|
_workbenchLayoutService = inject(WorkbenchLayoutService);
|
|
17874
18147
|
_workbenchRouter = inject(ɵWorkbenchRouter);
|
|
17875
18148
|
layout = this._workbenchLayoutService.layout;
|
|
@@ -17908,10 +18181,10 @@ class ActivityPanelComponent {
|
|
|
17908
18181
|
};
|
|
17909
18182
|
}, { equal: Objects$1.isEqual });
|
|
17910
18183
|
}
|
|
17911
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17912
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
18184
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18185
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: ActivityPanelComponent, isStandalone: true, selector: "wb-activity-panel", inputs: { panel: { classPropertyName: "panel", publicName: "panel", isSignal: true, isRequired: true, transformFunction: null }, activityId1: { classPropertyName: "activityId1", publicName: "activityId1", isSignal: true, isRequired: true, transformFunction: null }, activityId2: { classPropertyName: "activityId2", publicName: "activityId2", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.data-panel": "panel()" } }, ngImport: i0, template: "@if (activityId1() && activityId2()) {\n <sci-sashbox [direction]=\"direction()\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onSashEnd($event)\">\n <ng-template sciSash [size]=\"sashSizes().sash1\" key=\"sash1\">\n <ng-container *ngTemplateOutlet=\"activity_template; context: {$implicit: activityId1()}\"/>\n </ng-template>\n\n <ng-template sciSash [size]=\"sashSizes().sash2\" key=\"sash2\">\n <ng-container *ngTemplateOutlet=\"activity_template; context: {$implicit: activityId2()}\"/>\n </ng-template>\n </sci-sashbox>\n} @else if (activityId1()) {\n <ng-container *ngTemplateOutlet=\"activity_template; context: {$implicit: activityId1()}\"/>\n} @else if (activityId2()) {\n <ng-container *ngTemplateOutlet=\"activity_template; context: {$implicit: activityId2()}\"/>\n}\n\n<ng-template #activity_template let-activityId>\n <wb-grid [grid]=\"layout().grids[activityId]!\"\n [attr.data-grid]=\"activityId\"\n [gridDropZone]=\"{\n dropRegionSize: .15,\n dropPlaceholderSize: .15,\n dropZoneAttributes: {'data-grid': activityId},\n }\"/>\n</ng-template>\n", styles: [":host{display:grid}:host>sci-sashbox{z-index:auto}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SciSashboxComponent, selector: "sci-sashbox", inputs: ["direction"], outputs: ["sashStart", "sashEnd"] }, { kind: "directive", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: ["size", "minSize", "key", "animate"], exportAs: ["sciSash"] }, { kind: "component", type: GridComponent, selector: "wb-grid", inputs: ["grid", "gridDropZone"] }] });
|
|
17913
18186
|
}
|
|
17914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: ActivityPanelComponent, decorators: [{
|
|
17915
18188
|
type: Component,
|
|
17916
18189
|
args: [{ selector: 'wb-activity-panel', imports: [
|
|
17917
18190
|
NgTemplateOutlet,
|
|
@@ -17933,19 +18206,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
17933
18206
|
* SPDX-License-Identifier: EPL-2.0
|
|
17934
18207
|
*/
|
|
17935
18208
|
class LayoutComponent {
|
|
17936
|
-
layout = input.required();
|
|
18209
|
+
layout = input.required(...(ngDevMode ? [{ debugName: "layout" }] : []));
|
|
17937
18210
|
_workbenchLayoutService = inject(WorkbenchLayoutService);
|
|
17938
18211
|
_workbenchRouter = inject(ɵWorkbenchRouter);
|
|
17939
18212
|
_workbenchId = inject(WORKBENCH_ID);
|
|
17940
18213
|
_viewDragService = inject(ViewDragService);
|
|
17941
|
-
_panels = computed(() => this.layout().activityLayout.panels);
|
|
18214
|
+
_panels = computed(() => this.layout().activityLayout.panels, ...(ngDevMode ? [{ debugName: "_panels" }] : []));
|
|
17942
18215
|
desktop = inject(WorkbenchDesktop);
|
|
17943
|
-
toolbars = computed(() => this.layout().activityLayout.toolbars);
|
|
17944
|
-
leftActivityPanel = computed(() => this.toolbars().leftTop.activeActivityId || this.toolbars().leftBottom.activeActivityId ? this._panels().left : null);
|
|
17945
|
-
rightActivityPanel = computed(() => this.toolbars().rightTop.activeActivityId || this.toolbars().rightBottom.activeActivityId ? this._panels().right : null);
|
|
17946
|
-
bottomActivityPanel = computed(() => this.toolbars().bottomLeft.activeActivityId || this.toolbars().bottomRight.activeActivityId ? this._panels().bottom : null);
|
|
17947
|
-
leftActivityBarVisible = computed(() => this.toolbars().leftTop.activities.length || this.toolbars().leftBottom.activities.length || this.toolbars().bottomLeft.activities.length);
|
|
17948
|
-
rightActivityBarVisible = computed(() => this.toolbars().rightTop.activities.length || this.toolbars().rightBottom.activities.length || this.toolbars().bottomRight.activities.length);
|
|
18216
|
+
toolbars = computed(() => this.layout().activityLayout.toolbars, ...(ngDevMode ? [{ debugName: "toolbars" }] : []));
|
|
18217
|
+
leftActivityPanel = computed(() => this.toolbars().leftTop.activeActivityId || this.toolbars().leftBottom.activeActivityId ? this._panels().left : null, ...(ngDevMode ? [{ debugName: "leftActivityPanel" }] : []));
|
|
18218
|
+
rightActivityPanel = computed(() => this.toolbars().rightTop.activeActivityId || this.toolbars().rightBottom.activeActivityId ? this._panels().right : null, ...(ngDevMode ? [{ debugName: "rightActivityPanel" }] : []));
|
|
18219
|
+
bottomActivityPanel = computed(() => this.toolbars().bottomLeft.activeActivityId || this.toolbars().bottomRight.activeActivityId ? this._panels().bottom : null, ...(ngDevMode ? [{ debugName: "bottomActivityPanel" }] : []));
|
|
18220
|
+
leftActivityBarVisible = computed(() => this.toolbars().leftTop.activities.length || this.toolbars().leftBottom.activities.length || this.toolbars().bottomLeft.activities.length, ...(ngDevMode ? [{ debugName: "leftActivityBarVisible" }] : []));
|
|
18221
|
+
rightActivityBarVisible = computed(() => this.toolbars().rightTop.activities.length || this.toolbars().rightBottom.activities.length || this.toolbars().bottomRight.activities.length, ...(ngDevMode ? [{ debugName: "rightActivityBarVisible" }] : []));
|
|
17949
18222
|
panelAlignment = inject(WorkbenchService).settings.panelAlignment;
|
|
17950
18223
|
panelAnimation = inject(WorkbenchService).settings.panelAnimation;
|
|
17951
18224
|
perspectiveService = inject(WorkbenchPerspectiveService);
|
|
@@ -17960,7 +18233,7 @@ class LayoutComponent {
|
|
|
17960
18233
|
*/
|
|
17961
18234
|
canDropInMainGrid = computed(() => {
|
|
17962
18235
|
return !this.layout().hasActivities() || this.layout().parts({ grid: 'main' }).some(part => part.id !== MAIN_AREA);
|
|
17963
|
-
});
|
|
18236
|
+
}, ...(ngDevMode ? [{ debugName: "canDropInMainGrid" }] : []));
|
|
17964
18237
|
onSashStart() {
|
|
17965
18238
|
this._workbenchLayoutService.signalResizing(true);
|
|
17966
18239
|
}
|
|
@@ -17992,10 +18265,10 @@ class LayoutComponent {
|
|
|
17992
18265
|
dragData: event.dragData,
|
|
17993
18266
|
});
|
|
17994
18267
|
}
|
|
17995
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
17996
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LayoutComponent, isStandalone: true, selector: "wb-layout", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "@.disabled": "perspectiveService.switchingPerspective() || perspectiveService.resettingPerspective()" } }, ngImport: i0, template: "<!-- Left Activity Bar -->\n@if (leftActivityBarVisible()) {\n <wb-activity-bar [align]=\"'left'\"/>\n}\n\n<main>\n @switch (panelAlignment()) {\n @case ('left') {\n <ng-container *ngTemplateOutlet=\"layout_align_left\"/>\n }\n @case ('right') {\n <ng-container *ngTemplateOutlet=\"layout_align_right\"/>\n }\n @case ('center') {\n <ng-container *ngTemplateOutlet=\"layout_center\"/>\n }\n @case ('justify') {\n <ng-container *ngTemplateOutlet=\"layout_justify\"/>\n }\n }\n</main>\n\n<!-- Right Activity Bar -->\n@if (rightActivityBarVisible()) {\n <wb-activity-bar [align]=\"'right'\"/>\n}\n\n<!-- Layout with bottom panel alignment left -->\n<ng-template #layout_align_left>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | | R | -->\n <!-- | E | MAIN | I | -->\n <!-- | F | GRID | G | -->\n <!-- | T | | H | -->\n <!-- +---+------------+ T | -->\n <!-- | BOTTOM | | -->\n <!-- +----------------+---+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n </sci-sashbox>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n</ng-template>\n\n<!-- Layout with bottom panel alignment right -->\n<ng-template #layout_align_right>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | | R | -->\n <!-- | E | MAIN | I | -->\n <!-- | F | GRID | G | -->\n <!-- | T | | H | -->\n <!-- | | | T | -->\n <!-- | +------------+---| -->\n <!-- | | BOTTOM | -->\n <!-- +---+----------------+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n </sci-sashbox>\n</ng-template>\n\n<!-- Layout with bottom panel alignment center -->\n<ng-template #layout_center>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | MAIN | R | -->\n <!-- | E | GRID | I | -->\n <!-- | F | | G | -->\n <!-- | T +------------+ H | -->\n <!-- | | BOTTOM | T | -->\n <!-- +---+------------+---+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n</ng-template>\n\n<!-- Layout with bottom panel alignment justify -->\n<ng-template #layout_justify>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | | R | -->\n <!-- | E | MAIN | I | -->\n <!-- | F | GRID | G | -->\n <!-- | T | | H | -->\n <!-- | | | T | -->\n <!-- +---+------------+---+ -->\n <!-- | BOTTOM | -->\n <!-- +--------------------+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n</ng-template>\n\n<!-- Main Grid -->\n<ng-template #main_grid>\n @if (layout().grids.main.root.visible) {\n <wb-grid [grid]=\"layout().grids.main\"\n [gridDropZone]=\"canDropInMainGrid() && {\n dropRegionSize: 50,\n dropPlaceholderSize: 50,\n dropZoneAttributes: {'data-grid': 'main'}\n }\"\n [attr.data-grid]=\"'main'\"/>\n } @else {\n <div wbViewDropZone\n [wbViewDropZoneRegions]=\"canDrop() && {center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneAttributes]=\"{'data-desktop': ''}\"\n (wbViewDropZoneDrop)=\"onDesktopViewDrop($event)\"\n class=\"desktop\">\n <ng-container *wbPortalOutlet=\"desktop.slot.portal; destroyOnDetach: false\"/>\n </div>\n }\n</ng-template>\n", styles: [":host{display:flex;--sci-sashbox-gap: 0;--sci-sashbox-splitter-background-color: var(--sci-workbench-part-divider-color);--sci-sashbox-splitter-background-color-hover: var(--sci-workbench-part-divider-color-hover);--sci-sashbox-splitter-size: var(--sci-workbench-part-divider-size);--sci-sashbox-splitter-size-hover: var(--sci-workbench-part-divider-size-hover);--sci-sashbox-splitter-touch-target-size: var(--sci-workbench-part-divider-touch-target-size);--sci-sashbox-splitter-border-radius: 0;--sci-sashbox-splitter-opacity-active: var(--sci-workbench-part-divider-opacity-active);--sci-sashbox-splitter-opacity-hover: var(--sci-workbench-part-divider-opacity-hover)}:host>wb-activity-bar{flex:none}:host>main{flex:auto;display:grid}:host>main div.desktop{display:grid;position:relative}:host>main sci-sashbox{z-index:auto}\n"], dependencies: [{ kind: "component", type: ActivityBarComponent, selector: "wb-activity-bar", inputs: ["align"] }, { kind: "directive", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: ["size", "minSize", "key", "animate"], exportAs: ["sciSash"] }, { kind: "component", type: SciSashboxComponent, selector: "sci-sashbox", inputs: ["direction"], outputs: ["sashStart", "sashEnd"] }, { kind: "component", type: ActivityPanelComponent, selector: "wb-activity-panel", inputs: ["panel", "activityId1", "activityId2"] }, { kind: "component", type: GridComponent, selector: "wb-grid", inputs: ["grid", "gridDropZone"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneAttributes", "wbViewDropZoneRegionSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet", "wbPortalOutletDestroyOnDetach"] }] });
|
|
18268
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18269
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: LayoutComponent, isStandalone: true, selector: "wb-layout", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "@.disabled": "perspectiveService.switchingPerspective() || perspectiveService.resettingPerspective()" } }, ngImport: i0, template: "<!-- Left Activity Bar -->\n@if (leftActivityBarVisible()) {\n <wb-activity-bar [align]=\"'left'\"/>\n}\n\n<main>\n @switch (panelAlignment()) {\n @case ('left') {\n <ng-container *ngTemplateOutlet=\"layout_align_left\"/>\n }\n @case ('right') {\n <ng-container *ngTemplateOutlet=\"layout_align_right\"/>\n }\n @case ('center') {\n <ng-container *ngTemplateOutlet=\"layout_center\"/>\n }\n @case ('justify') {\n <ng-container *ngTemplateOutlet=\"layout_justify\"/>\n }\n }\n</main>\n\n<!-- Right Activity Bar -->\n@if (rightActivityBarVisible()) {\n <wb-activity-bar [align]=\"'right'\"/>\n}\n\n<!-- Layout with bottom panel alignment left -->\n<ng-template #layout_align_left>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | | R | -->\n <!-- | E | MAIN | I | -->\n <!-- | F | GRID | G | -->\n <!-- | T | | H | -->\n <!-- +---+------------+ T | -->\n <!-- | BOTTOM | | -->\n <!-- +----------------+---+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n </sci-sashbox>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n</ng-template>\n\n<!-- Layout with bottom panel alignment right -->\n<ng-template #layout_align_right>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | | R | -->\n <!-- | E | MAIN | I | -->\n <!-- | F | GRID | G | -->\n <!-- | T | | H | -->\n <!-- | | | T | -->\n <!-- | +------------+---| -->\n <!-- | | BOTTOM | -->\n <!-- +---+----------------+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n </sci-sashbox>\n</ng-template>\n\n<!-- Layout with bottom panel alignment center -->\n<ng-template #layout_center>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | MAIN | R | -->\n <!-- | E | GRID | I | -->\n <!-- | F | | G | -->\n <!-- | T +------------+ H | -->\n <!-- | | BOTTOM | T | -->\n <!-- +---+------------+---+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n</ng-template>\n\n<!-- Layout with bottom panel alignment justify -->\n<ng-template #layout_justify>\n <!-- @formatter:off -->\n <!-- +---+------------+---+ -->\n <!-- | L | | R | -->\n <!-- | E | MAIN | I | -->\n <!-- | F | GRID | G | -->\n <!-- | T | | H | -->\n <!-- | | | T | -->\n <!-- +---+------------+---+ -->\n <!-- | BOTTOM | -->\n <!-- +--------------------+ -->\n <!-- @formatter:on -->\n <sci-sashbox [direction]=\"'column'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onVerticalSashEnd($event)\">\n <ng-template sciSash>\n <sci-sashbox [direction]=\"'row'\" (sashStart)=\"onSashStart()\" (sashEnd)=\"onHorizontalSashEnd($event)\">\n <!-- Left Activity Panel -->\n @if (leftActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"left\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'left'\" [activityId1]=\"toolbars().leftTop.activeActivityId\" [activityId2]=\"toolbars().leftBottom.activeActivityId\"/>\n </ng-template>\n }\n <!-- Main Grid -->\n <ng-template sciSash>\n <ng-container *ngTemplateOutlet=\"main_grid\"/>\n </ng-template>\n <!-- Right Activity Panel -->\n @if (rightActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.width}px`\" key=\"right\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'right'\" [activityId1]=\"toolbars().rightTop.activeActivityId\" [activityId2]=\"toolbars().rightBottom.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n </ng-template>\n <!-- Bottom Activity Panel -->\n @if (bottomActivityPanel(); as panel) {\n <ng-template sciSash [size]=\"`${panel.height}px`\" key=\"bottom\" [animate]=\"panelAnimation()\">\n <wb-activity-panel [panel]=\"'bottom'\" [activityId1]=\"toolbars().bottomLeft.activeActivityId\" [activityId2]=\"toolbars().bottomRight.activeActivityId\"/>\n </ng-template>\n }\n </sci-sashbox>\n</ng-template>\n\n<!-- Main Grid -->\n<ng-template #main_grid>\n @if (layout().grids.main.root.visible) {\n <wb-grid [grid]=\"layout().grids.main\"\n [gridDropZone]=\"canDropInMainGrid() && {\n dropRegionSize: 50,\n dropPlaceholderSize: 50,\n dropZoneAttributes: {'data-grid': 'main'}\n }\"\n [attr.data-grid]=\"'main'\"/>\n } @else {\n <div wbViewDropZone\n [wbViewDropZoneRegions]=\"canDrop() && {center: true, north: false, south: false, west: false, east: false}\"\n [wbViewDropZoneAttributes]=\"{'data-desktop': ''}\"\n (wbViewDropZoneDrop)=\"onDesktopViewDrop($event)\"\n class=\"desktop\">\n <ng-container *wbPortalOutlet=\"desktop.slot.portal; destroyOnDetach: false\"/>\n </div>\n }\n</ng-template>\n", styles: [":host{display:flex;--sci-sashbox-gap: 0;--sci-sashbox-splitter-background-color: var(--sci-workbench-part-divider-color);--sci-sashbox-splitter-background-color-hover: var(--sci-workbench-part-divider-color-hover);--sci-sashbox-splitter-size: var(--sci-workbench-part-divider-size);--sci-sashbox-splitter-size-hover: var(--sci-workbench-part-divider-size-hover);--sci-sashbox-splitter-touch-target-size: var(--sci-workbench-part-divider-touch-target-size);--sci-sashbox-splitter-border-radius: 0;--sci-sashbox-splitter-opacity-active: var(--sci-workbench-part-divider-opacity-active);--sci-sashbox-splitter-opacity-hover: var(--sci-workbench-part-divider-opacity-hover)}:host>wb-activity-bar{flex:none}:host>main{flex:auto;display:grid}:host>main div.desktop{display:grid;position:relative}:host>main sci-sashbox{z-index:auto}\n"], dependencies: [{ kind: "component", type: ActivityBarComponent, selector: "wb-activity-bar", inputs: ["align"] }, { kind: "directive", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: ["size", "minSize", "key", "animate"], exportAs: ["sciSash"] }, { kind: "component", type: SciSashboxComponent, selector: "sci-sashbox", inputs: ["direction"], outputs: ["sashStart", "sashEnd"] }, { kind: "component", type: ActivityPanelComponent, selector: "wb-activity-panel", inputs: ["panel", "activityId1", "activityId2"] }, { kind: "component", type: GridComponent, selector: "wb-grid", inputs: ["grid", "gridDropZone"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ViewDropZoneDirective, selector: "[wbViewDropZone]", inputs: ["wbViewDropZoneRegions", "wbViewDropZoneAttributes", "wbViewDropZoneRegionSize", "wbViewDropZonePlaceholderSize"], outputs: ["wbViewDropZoneDrop"] }, { kind: "directive", type: WorkbenchPortalOutletDirective, selector: "ng-template[wbPortalOutlet]", inputs: ["wbPortalOutlet", "wbPortalOutletDestroyOnDetach"] }] });
|
|
17997
18270
|
}
|
|
17998
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
17999
18272
|
type: Component,
|
|
18000
18273
|
args: [{ selector: 'wb-layout', imports: [
|
|
18001
18274
|
ActivityBarComponent,
|
|
@@ -18027,8 +18300,8 @@ class WorkbenchComponent {
|
|
|
18027
18300
|
_workbenchLauncher = inject(WorkbenchLauncher);
|
|
18028
18301
|
_logger = inject(Logger);
|
|
18029
18302
|
_workbenchRouter = inject(ɵWorkbenchRouter);
|
|
18030
|
-
_iframeOverlayHost = viewChild('iframe_overlay_host', { read: ViewContainerRef });
|
|
18031
|
-
_viewDropZoneOverlayHost = viewChild('view_drop_zone_overlay_host', { read: ViewContainerRef });
|
|
18303
|
+
_iframeOverlayHost = viewChild('iframe_overlay_host', ...(ngDevMode ? [{ debugName: "_iframeOverlayHost", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
|
|
18304
|
+
_viewDropZoneOverlayHost = viewChild('view_drop_zone_overlay_host', ...(ngDevMode ? [{ debugName: "_viewDropZoneOverlayHost", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
|
|
18032
18305
|
/** Splash to display during workbench startup. */
|
|
18033
18306
|
splash = inject(WorkbenchConfig).splashComponent ?? inject(WorkbenchConfig).startup?.splash ?? SplashComponent;
|
|
18034
18307
|
workbenchStartup = inject(WorkbenchStartup);
|
|
@@ -18105,12 +18378,12 @@ class WorkbenchComponent {
|
|
|
18105
18378
|
}
|
|
18106
18379
|
throw Error(`[WorkbenchError] Circular loading of the workbench component detected in workbench outlet '${outlet}'. Did you forget to add the CanMatch guard 'canMatchWorkbenchOutlet(false)' to the application's empty-path default route?`);
|
|
18107
18380
|
}
|
|
18108
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18109
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
18381
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18382
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.3", type: WorkbenchComponent, isStandalone: true, selector: "wb-workbench", viewQueries: [{ propertyName: "_iframeOverlayHost", first: true, predicate: ["iframe_overlay_host"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_viewDropZoneOverlayHost", first: true, predicate: ["view_drop_zone_overlay_host"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (workbenchStartup.done()) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n <wb-layout [layout]=\"workbenchService.layout()\"/>\n\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_overlay_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_zone_overlay_host class=\"view-drop-zone-overlay-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:where(:host){position:relative}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-layout{flex:auto}:host>div.view-drop-zone-overlay-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: NotificationListComponent, selector: "wb-notification-list" }, { kind: "directive", type: GlassPaneDirective, selector: "[wbGlassPane]" }, { kind: "component", type: LayoutComponent, selector: "wb-layout", inputs: ["layout"] }], viewProviders: [
|
|
18110
18383
|
configureWorkbenchGlassPane(),
|
|
18111
18384
|
] });
|
|
18112
18385
|
}
|
|
18113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchComponent, decorators: [{
|
|
18114
18387
|
type: Component,
|
|
18115
18388
|
args: [{ selector: 'wb-workbench', imports: [
|
|
18116
18389
|
NgComponentOutlet,
|
|
@@ -18163,10 +18436,10 @@ function configureWorkbenchGlassPane() {
|
|
|
18163
18436
|
* Factory for creating a {@link WorkbenchLayout}.
|
|
18164
18437
|
*/
|
|
18165
18438
|
class WorkbenchLayoutFactory {
|
|
18166
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18167
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
18439
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18440
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutFactory, providedIn: 'root', useExisting: ɵWorkbenchLayoutFactory });
|
|
18168
18441
|
}
|
|
18169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchLayoutFactory, decorators: [{
|
|
18170
18443
|
type: Injectable,
|
|
18171
18444
|
args: [{ providedIn: 'root', useExisting: ɵWorkbenchLayoutFactory }]
|
|
18172
18445
|
}] });
|
|
@@ -18234,10 +18507,10 @@ class WorkbenchDesktopDirective {
|
|
|
18234
18507
|
}
|
|
18235
18508
|
});
|
|
18236
18509
|
}
|
|
18237
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18238
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
18510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDesktopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18511
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.3", type: WorkbenchDesktopDirective, isStandalone: true, selector: "ng-template[wbDesktop]", ngImport: i0 });
|
|
18239
18512
|
}
|
|
18240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDesktopDirective, decorators: [{
|
|
18241
18514
|
type: Directive,
|
|
18242
18515
|
args: [{ selector: 'ng-template[wbDesktop]' }]
|
|
18243
18516
|
}], ctorParameters: () => [] });
|
|
@@ -18313,15 +18586,15 @@ class WorkbenchViewMenuItemDirective {
|
|
|
18313
18586
|
*
|
|
18314
18587
|
* Supported modifiers are 'ctrl', 'shift', 'alt' and 'meta'.
|
|
18315
18588
|
*/
|
|
18316
|
-
accelerator = input();
|
|
18589
|
+
accelerator = input(...(ngDevMode ? [undefined, { debugName: "accelerator" }] : []));
|
|
18317
18590
|
/**
|
|
18318
18591
|
* Enables grouping of menu items.
|
|
18319
18592
|
*/
|
|
18320
|
-
group = input();
|
|
18593
|
+
group = input(...(ngDevMode ? [undefined, { debugName: "group" }] : []));
|
|
18321
18594
|
/**
|
|
18322
18595
|
* Controls if the menu item is disabled. Defaults to `false`.
|
|
18323
18596
|
*/
|
|
18324
|
-
disabled = input();
|
|
18597
|
+
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : []));
|
|
18325
18598
|
/**
|
|
18326
18599
|
* Predicate to match a specific context, such as a particular view or condition. Defaults to any context.
|
|
18327
18600
|
*
|
|
@@ -18330,11 +18603,11 @@ class WorkbenchViewMenuItemDirective {
|
|
|
18330
18603
|
* - Runs in a reactive context and is called again when tracked signals change.
|
|
18331
18604
|
* Use Angular's `untracked` function to execute code outside this reactive context.
|
|
18332
18605
|
*/
|
|
18333
|
-
canMatch = input();
|
|
18606
|
+
canMatch = input(...(ngDevMode ? [undefined, { debugName: "canMatch" }] : []));
|
|
18334
18607
|
/**
|
|
18335
18608
|
* Specifies CSS class(es) to add to the menu item, e.g., to locate the menu item in tests.
|
|
18336
18609
|
*/
|
|
18337
|
-
cssClass = input();
|
|
18610
|
+
cssClass = input(...(ngDevMode ? [undefined, { debugName: "cssClass" }] : []));
|
|
18338
18611
|
/**
|
|
18339
18612
|
* Emits when the menu item is clicked.
|
|
18340
18613
|
*/
|
|
@@ -18366,10 +18639,10 @@ class WorkbenchViewMenuItemDirective {
|
|
|
18366
18639
|
});
|
|
18367
18640
|
inject(DestroyRef).onDestroy(() => action.dispose());
|
|
18368
18641
|
}
|
|
18369
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18370
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
18642
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchViewMenuItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18643
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchViewMenuItemDirective, isStandalone: true, selector: "ng-template[wbViewMenuItem]", inputs: { accelerator: { classPropertyName: "accelerator", publicName: "accelerator", isSignal: true, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, canMatch: { classPropertyName: "canMatch", publicName: "canMatch", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action" }, ngImport: i0 });
|
|
18371
18644
|
}
|
|
18372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18645
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchViewMenuItemDirective, decorators: [{
|
|
18373
18646
|
type: Directive,
|
|
18374
18647
|
args: [{ selector: 'ng-template[wbViewMenuItem]' }]
|
|
18375
18648
|
}], ctorParameters: () => [] });
|
|
@@ -18424,7 +18697,7 @@ class WorkbenchPartActionDirective {
|
|
|
18424
18697
|
/**
|
|
18425
18698
|
* Specifies where to place this action in the part bar. Defaults to `end`.
|
|
18426
18699
|
*/
|
|
18427
|
-
align = input();
|
|
18700
|
+
align = input(...(ngDevMode ? [undefined, { debugName: "align" }] : []));
|
|
18428
18701
|
/**
|
|
18429
18702
|
* Predicate to match a specific context, such as a particular part or condition. Defaults to any context.
|
|
18430
18703
|
*
|
|
@@ -18433,11 +18706,11 @@ class WorkbenchPartActionDirective {
|
|
|
18433
18706
|
* - Runs in a reactive context and is called again when tracked signals change.
|
|
18434
18707
|
* Use Angular's `untracked` function to execute code outside this reactive context.
|
|
18435
18708
|
*/
|
|
18436
|
-
canMatch = input();
|
|
18709
|
+
canMatch = input(...(ngDevMode ? [undefined, { debugName: "canMatch" }] : []));
|
|
18437
18710
|
/**
|
|
18438
18711
|
* Specifies CSS class(es) to add to the action, e.g., to locate the action in tests.
|
|
18439
18712
|
*/
|
|
18440
|
-
cssClass = input();
|
|
18713
|
+
cssClass = input(...(ngDevMode ? [undefined, { debugName: "cssClass" }] : []));
|
|
18441
18714
|
constructor() {
|
|
18442
18715
|
this.registerPartAction();
|
|
18443
18716
|
}
|
|
@@ -18469,10 +18742,10 @@ class WorkbenchPartActionDirective {
|
|
|
18469
18742
|
});
|
|
18470
18743
|
inject(DestroyRef).onDestroy(() => action.dispose());
|
|
18471
18744
|
}
|
|
18472
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18473
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
18745
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPartActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18746
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchPartActionDirective, isStandalone: true, selector: "ng-template[wbPartAction]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, canMatch: { classPropertyName: "canMatch", publicName: "canMatch", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
18474
18747
|
}
|
|
18475
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchPartActionDirective, decorators: [{
|
|
18476
18749
|
type: Directive,
|
|
18477
18750
|
args: [{ selector: 'ng-template[wbPartAction]' }]
|
|
18478
18751
|
}], ctorParameters: () => [] });
|
|
@@ -18530,8 +18803,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
18530
18803
|
* ```
|
|
18531
18804
|
*/
|
|
18532
18805
|
class WorkbenchRouterLinkDirective {
|
|
18533
|
-
commands = input.required({ alias: 'wbRouterLink', transform: (commands) => Arrays.coerce(commands) });
|
|
18534
|
-
extras = input({}, { alias: 'wbRouterLinkExtras', transform: (extras) => extras ?? {} });
|
|
18806
|
+
commands = input.required(...(ngDevMode ? [{ debugName: "commands", alias: 'wbRouterLink', transform: (commands) => Arrays.coerce(commands) }] : [{ alias: 'wbRouterLink', transform: (commands) => Arrays.coerce(commands) }]));
|
|
18807
|
+
extras = input({}, ...(ngDevMode ? [{ debugName: "extras", alias: 'wbRouterLinkExtras', transform: (extras) => extras ?? {} }] : [{ alias: 'wbRouterLinkExtras', transform: (extras) => extras ?? {} }]));
|
|
18535
18808
|
_workbenchRouter = inject(WorkbenchRouter);
|
|
18536
18809
|
_router = inject(Router);
|
|
18537
18810
|
_route = inject(ActivatedRoute);
|
|
@@ -18578,10 +18851,10 @@ class WorkbenchRouterLinkDirective {
|
|
|
18578
18851
|
.pipe(combineLatestWith(extras$, navigationEnd$), switchMap$1(([commands, extras]) => workbenchRouter.createUrlTree(createNavigationFromCommands(commands, extras), extras)), map(urlTree => urlTree && locationStrategy.prepareExternalUrl(this._router.serializeUrl(urlTree))));
|
|
18579
18852
|
return toSignal(href$, { initialValue: null });
|
|
18580
18853
|
}
|
|
18581
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18582
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
18854
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchRouterLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18855
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchRouterLinkDirective, isStandalone: true, selector: "[wbRouterLink]", inputs: { commands: { classPropertyName: "commands", publicName: "wbRouterLink", isSignal: true, isRequired: true, transformFunction: null }, extras: { classPropertyName: "extras", publicName: "wbRouterLinkExtras", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.metaKey)" }, properties: { "attr.href": "href()" } }, ngImport: i0 });
|
|
18583
18856
|
}
|
|
18584
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18857
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchRouterLinkDirective, decorators: [{
|
|
18585
18858
|
type: Directive,
|
|
18586
18859
|
args: [{
|
|
18587
18860
|
selector: '[wbRouterLink]',
|
|
@@ -18641,7 +18914,7 @@ class WorkbenchDialogActionDirective {
|
|
|
18641
18914
|
/**
|
|
18642
18915
|
* Specifies where to place this action in the dialog footer. Defaults to `end`.
|
|
18643
18916
|
*/
|
|
18644
|
-
align = input('end');
|
|
18917
|
+
align = input('end', ...(ngDevMode ? [{ debugName: "align" }] : []));
|
|
18645
18918
|
template = inject(TemplateRef);
|
|
18646
18919
|
_action;
|
|
18647
18920
|
constructor() {
|
|
@@ -18651,10 +18924,10 @@ class WorkbenchDialogActionDirective {
|
|
|
18651
18924
|
// Defer disposing action to avoid `ExpressionChangedAfterItHasBeenCheckedError`.
|
|
18652
18925
|
inject(DestroyRef).onDestroy(() => asapScheduler.schedule(() => this._action?.dispose()));
|
|
18653
18926
|
}
|
|
18654
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
18655
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
18927
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18928
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.3", type: WorkbenchDialogActionDirective, isStandalone: true, selector: "ng-template[wbDialogAction]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
18656
18929
|
}
|
|
18657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
18930
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: WorkbenchDialogActionDirective, decorators: [{
|
|
18658
18931
|
type: Directive,
|
|
18659
18932
|
args: [{ selector: 'ng-template[wbDialogAction]' }]
|
|
18660
18933
|
}], ctorParameters: () => [] });
|